包子涵,李龙海,刘丽丽,孙伟,邱天宇,芮哲立,胡江,芮文翰
(徐州工程学院 a. 机电工程学院; b. 电气与控制工程学院,江苏 徐州 221018)
救援机器人一直是国内外研究热点,其主要功能是在发生灾难后,为了避免搜救人员在情况不明条件下进入灾区引起二次伤亡,代替搜救人员第一时间进入事故现场,探测环境信息(甲烷、一氧化碳、氧气浓度、温度、灾害场景等),为救援决策提供第一手资料。矿山救援机器人主要原理是通过区分周围环境和障碍物来进行智能避障,以获取高质量清晰图像和提取周围环境关键信息。但在恶劣环境中,难以保证人员与机器人实时通信,因此要求机器人系统本身具有环境感知能力,机器视觉是感知环境重要途径之一。由于矿下粉尘、水雾、光线昏暗等复杂环境及设备自身影响,不可避免受到噪声干扰,使得图像在后续边缘检测及目标识别过程中变得困难。
为提高图像质量,有效识别环境,王平均等[1]利用小波变换原理提出一种改进型非局部均值滤波算法,通过叠加滤波后高频和低频信息,最终获得降噪后高质量图像;张凡等[2]提出一种基于改进Prewitt算子小波阈值降噪算法,首先通过Prewitt算子提取图像轮廓信息,采用自适应阈值小波函数对图像非边缘信息降噪处理,实验表明该算法耗时低,降噪效果优异;赵谦等[3]提出一种适用于矿井巷道图像边缘检测场景,基于Canny算子和小波变换的综合算法,其先对原始图像做小波分解,然后采用Canny算子获得低频和高频图像梯度图,通过局部梯度最大值提取图像边缘,具有良好的边缘点连接效果;李琳琳[4]提出自适应阈值的Sobel算子边缘检测算法,其在Sobel算子基础上,进行多种阈值设置,实验表明能够有效提取边缘信息。但就目前研究现状而言,仍存在噪声敏感、弱边缘检测不足等问题。
机器视觉传感器提取到环境信息后,需感知并测出自身与障碍物距离,规划避障路线。超声波传感器以其结构简单、成本低等优点,广泛用于传感测距中。与其他类型传感器相比,也拥有纵向分辨率高和测量覆盖范围广等优势。综合上述优点,本文构建基于STM32单片机工作平台的超声波测距装置。
由上述分析可知,图像处理算法和测距系统是实现矿山救援机器人自主化、智能化的重要步骤。在实际作业中,矿山救援机器人算法应满足两方面要求:1)对获取图像有良好去噪能力,确保图像局部纹理细节清晰,为后续边缘检测做基础;2)边缘检测准确度要高,能够提取边缘完整,准确区分识别障碍物,为后续障碍物测距做基础。为此,本文经过对比分析,分别提出基于余弦型高斯核函数的非局部均值滤波算法、多尺度B样条小波边缘检测算法以及STM32单片机超声波测距系统。实验结果表明,本文所使用算法能有效运用在对井下复杂恶劣环境的识别,成功帮助救援机器人识别和规避障碍物。
经典图像降噪方法包括均值滤波和中值滤波算法等。中值滤波算法是用指定像素网格邻域内灰度值中值代替某点灰度值;而均值算法则是利用像素网格内灰度值均值来替换。两者均是利用像素点之间相似性进行降噪,不能较好地保留图像细节,会产生阶梯效应,甚至丢失本身信息。针对上述问题,本文引入非局部均值滤波算法[5-7](non-local means, NLM),其主要通过图像自身非局部相似程度来判断噪声并决定是否去除,但仍然存在复杂度相比传统算法较高且权重分配不够合理的缺点。因此本文在现有NLM算法上,重新设计余弦型加权高斯核函数[8],提出基于余弦型高斯核函数的非局部均值滤波算法。此算法权重分配合理,降噪效果较优。
NLM核心思想是在图像全局范围内比较像素点灰度值,通过相似性对图中每一像素点进行权重分配,算法主要步骤如下:
定义图像噪声模型为
v(x)=u(x)+n(x)
(1)
式中:v(x)为噪声图像;u(x)为原始图像;n(x)为高斯噪声。
对整体像素计算加权平均值,得到所有像素点去噪后新灰度值,如下式所示。
(2)
(3)
式中Z(i)为归一算子。
理想型高斯核函数是对邻域内相似性高的像素点分配较大权重,相似性小的像素点分配较小权重,由此发现加权高斯核函数在图像降噪方面有理论依据,则核函数的构造就成为非局部均值滤波算法的核心任务。高斯型核函数定义为
(4)
式中h为滤波参数。
余弦型核函数为
(5)
高斯核函数在图像噪声程度减弱时容易出现加权不足,而余弦核函数则会出现加权过度,使得两种函数单一使用时都发挥不了最大去噪能力。因此本文综合两种函数提出改进余弦型高斯核函数,实现手段为在高斯型核函数上添加余弦系数,使得算法在不同噪声下仍能够保持良好去噪效果,具体公式为
(6)
式中h1和h2为滤波参数。
当图像经过余弦型高斯核函数去噪后,得到较为清晰图像,此时矿山救援机器人将使用边缘检测算法识别环境信息从而对障碍物进行规避。目前传统图像边缘检测算法大多使用Roberts算子[9]、Canny算子[10]、Prewitt算子[11]、Sobel算子[12]和Log算子等,均是从被识别图像高频分量中获得边缘点,但往往容易忽视图像低频区域细节,致使被检测图像缺失边缘信息。由于小波变换作用在低频部分和高频部分时具有不同的时间和视频分辨率,可以进行自主调整,所以针对复杂场景进行边缘检测通常具有良好效果,加上B样条小波边缘检测综合性能较好,因此可以综合小波多尺度优点,在不同尺度下提取图像细节。
设二维图形信号函数为f(x,y),按照下式对其进行小波变换:
WTf(a,x,y)=f(x,y)⊗ψa(x,y)=
(7)
式中:a为尺度因子;⊗为卷积运算;u1和u2为平移因子;WT为小波变换。
设二维平滑函数θ(x,y)满足:
∬θ(x,y)dxdy=1
(8)
(9)
对θ(x,y)分别沿着x和y方向取一阶偏导得到各自二维小波:
(10)
(11)
对原始图像进行灰度增强预处理,处理后图像在x和y方向上对应指定尺度a小波变化为:
(12)
(13)
将上式表示为向量形式:
2j·grad[fs(x,y)]
(14)
式中:fs(x,y)是f(x,y)被θa(x,y)平滑后的图像;WT(1)和WT(2)分别表示x,y方向上尺度为a的小波变换。
其模值和幅值(与x方向夹角)分别为:
(15)
(16)
采取四次B样条构建平滑函数θ(x,y)进行边缘检测。由于小波ψ(x)是平滑函数θ(x)一阶导数,所以本文四次B样条尺度所对应小波ψ(x)为三阶样条函数。依据N3(x)=N1⊗N1⊗N1(x)进行傅里叶变换得:
(17)
尺度变换公式:
(18)
由于:
(19)
因此,可推导出下式:
N3(2x-1)-N3(2x-2)
(20)
对上式进行傅里叶变换得:
(21)
令z=e-jw/2,代入尺度变换公式可得:
(22)
L(z)=0.5z-0.5z2
(23)
式中:z表示滤波器阶数;H(z)表示低通滤波系数;L(z)表示高通滤波系数。具体数值如表1所示。
表1 四阶B样条小波滤波器数值
Step1:将图像进行灰度化预处理并进行小波变换。
Step2:分别计算模值和幅值,找出模极大值点。
Step3:按顺序校验每个像素点,若幅角对应最接近方向为极大值则保存该值,否则记为0。
Step4:选择阈值λ,令模极大值低于阈值λ的像素模值设为0。
Step5:调节小波变换参数尺度,得出一系列尺度下检测图像和数值。
多尺度B样条小波变换算法流程如图1所示。
图1 B样条小波多尺度变换算法流程图
为验证并对比本文提出两种算法的有效性,选取检测图片加入高斯噪声进行实验。仿真实验操作系统为Windows 10、处理器为Intel i5、内存为8 GB的笔记本,编程环境为MATLAB 2017a。
在实际巡检作业中,影响图像识别的主要噪声来自于扬起的尘土,据此本文分别采用中值滤波、均值滤波(尺寸3)、均值滤波(尺寸5)、基本NLM去噪和高斯余弦核函数NLM去噪算法进行检测,处理后图像如图2所示。
图2 图像去噪实验
主观上对处理后图像从视觉效果对比观察,可以发现传统中值滤波和均值滤波虽然能降低部分噪声,但在复杂环境下效果远远不够,并且均值滤波选取尺寸越大,越容易产生模糊负作用。而使用余弦型高斯核函数去噪后的图像无论是相比于传统中值滤波、均值滤波还是基本NLM算法,均在噪点数量和图像边缘清晰度方面得到明显优化。综上可知,本文算法去噪后视觉直观清晰度最好,边缘更加清晰,较完整保留了原图纹理边缘信息。为更好对比去噪后图像细节情况,选取噪声标准差分别为0.3、0.4、0.5、0.6和0.7进行实验,选取PSNR、CORR和SSIM性能指标进行衡量,结果如表2所示。
为体现基本NLM与本文余弦型高斯核函数性能区别,给出噪声标准差为0.5时基本NLM与余弦型高斯核函数指标对比图,如图3所示。
客观上基于余弦型高斯核函数无论是PSNR、CORR还是SSIM的数值均高于其余4种算法,并且余弦型高斯核函数在一系列滤波参数下各项性能曲线均在基本NLM之上。其中PSNR代表降噪后图像保真性,说明在该算法下图像真实性较高;CORR代表原始图像与降噪后图像相关性,说明该算法下降噪图像保留了原始图像绝大部分信息;SSIM是衡量图像相似度,说明使用余弦型高斯核函数降噪后图像结构特征得到较好保留。因此本文提出改进算法具有较大优势,对于矿井下救援机器人视觉图像处理具有可行性。
选取经高斯余弦核函数降噪处理后图像为检测对象,对使用Canny算子、Sobel算子、Prewitt算子、Roberts算子、Log算子以及本文多尺度B样条小波边缘检测算子的算法进行边缘检测实验,运行结果如图4—图9所示。
图4 小波边缘检测效果
图5 Canny边缘检测效果图
图6 Sobel边缘检测效果
图7 Roberts边缘检测效果
图8 Prewitt边缘检测效果
图9 Log边缘检测效果
Canny算子存在去噪能力与边缘检测能力相冲突的问题,所以即使能较好检测出目标障碍物但缺失了管路边缘信息,不利于实际复杂环境中图像处理和边缘检测;Sobel算子具有抗噪能力强,效率高特点,但其定位精度低,存在局部噪点,不适用于检测高精度图像;Roberts算子定位和检测精度较高,但缺乏抗噪能力,同样不适用于边缘不明显、噪声大的图像;Prewitt算子和Log算子在噪声抑制方面较差,障碍物边缘以及道路信息均缺失严重,不适用复杂环境场合。从与上述图像边缘检测算法对比结果来看,本文构建的基于多尺度B样条小波边缘检测算法能够根据不同边缘情况进行小波尺度调整,具有自适应功能,精度较高,能帮助救援机器人有效识别图像形态特征并进行边缘检测从而进行自动避障。
与经典边缘检测算法相比,本文所提出的基于B样条小波多尺度边缘检测算法通过构建小波平滑函数在一定程度上去除了噪声,根据不同边缘进行调整小波尺度,具有自适应功能。能有效识别图像的形态特性并进行边缘提取,有较高精度,在实际表现中能提取恶劣粉尘环境下道路边缘和障碍物边缘。对于复杂环境及含有噪声图像,如矿山救援机器人的视觉算法中,选用小波边缘检测算法能够实现较好效果。
矿山救援机器人视觉传感器检测到障碍物边缘后,需测量机器人当前与障碍物之间距离并进行巡检路径规划[13-14]。在救援机器人领域,毫米波雷达主要应用于军事领域,受环境影响较小,但其造价昂贵,对于体积小的障碍物检测效果差,不适合矿井下救援机器人测距;红外测距和激光测距受外界影响较大,在空气介质中,光线条件、粉尘浓度、有毒气体均可能对测量精度造成较大影响。而超声波测距传感器在黑暗、灰尘等恶劣环境受到的影响微乎其微,且造价低廉和方便使用,因此适合矿井下复杂环境测量。
超声波测距使用方法主要包括声波幅值检测、相位检测和渡越时间检测等[15-16]。声波幅值检测法对反射介质敏感,工作条件要求较高;相位检测法实践工作空间范围较小,相比较而言渡越时间检测法原理易懂,成本低,可测范围大。因此本文超声波测距系统使用渡越时间检测法。
超声波压电换能器有双探头与单探头两种模式,其中单探头是既做发射端又做接收端,由于发射端发射超声波产生的余震会存在一段时间,因此单探头可能误将这种整波当成回波导致误差。双探头在发射端和接收端分别使用两个间隔距离h的探头,不会因此产生误差。因此本文采用双探头模式进行测距。
渡越时间检测法原理是测量超声波从发射端发射,经过障碍物返回后被接收端接收整个过程经历射程的时间,原理图如图10所示。
图10 渡越时间检测法原理图
障碍物与救援机器人之间距离s如下式所示。
(24)
式中:c为传播速度;t为经历总射程时间。
由于发射端、接收端与被测物体成三角关系,因此机器人实际与被测物体间距离d为
(25)
由声学理论可知,当环境温度升高,超声波传播速度c也会升高,在气体中声速与温度近似关系如下式所示。
c=331.5+0.61T
(26)
式中T为摄氏温度。
本文采用STM32单片机,其主频和定时器最大工作频率为72MHz。测距时,保持定时器开启时间与PWM启动和输入捕获一致,主要为了降低发射和计时之间的系统误差。整体设计原理如图11所示。
图11 超声波测距系统整体框架图
通过上述方法结合试验数据可知,本文建立的超声波测距系统盲区较小,有效提高了测量精度,为矿井下救援机器人进行避障提供了保障。
1)通过深入研究基于非局部均值处理的图像降噪算法和高斯型核函数,提出改进余弦型高斯核函数的非局部均值滤波算法。实验分析得出,余弦型高斯核函数算法具有良好抗噪能力,在主观表现和客观各项指标上优于其他算法,为后续机器人边缘检测奠定了基础。
2)构建多尺度B样条小波边缘检测算法,并探讨对比包括传统算法在内的7种算法。实验分析得出,多尺度B样条小波边缘检测既能够获取小尺度图像边缘细节,也能检测出大尺度图像边缘粗糙轮廓和灰度变化,有助于救援机器人实际工作中实现自动避障功能。
3)使用视觉算法检测出障碍物边缘后,构建基于STM32超声波测距系统测量机器人与障碍物之间距离,得到合理避障策略。