一种改进的AGV障碍物检测方法
2022-09-13杨莹莹石蕴玉
杨莹莹,刘 翔,石蕴玉
(上海工程技术大学 电子电气工程学院,上海 201620)
近年来,仓储物流的发展越来越趋近于智能化。自动导航车(Automated Guided Vehicle,AGV)的大量使用加速了现代化智能物流的发展。目前,AGV小车的导航方式主要有电磁导航、激光导航和磁带导航[1]。考虑到这几种导航方式存在灵活性差、成本较高、易磨损等问题,研究者逐渐将目光转向价格低且鲁棒性较好的视觉导航[2]。
AGV在路径运输过程中,能够检测到前方障碍物信息并实现自主避障,这也是视觉导航的关键。目前,检测障碍物的方式主要是通过视觉和激光雷达实现的[3]。文献[4]通过立体视觉的方式对负障进行检测。文献[5]提出基于三维激光雷达的技术检测物体与周围障碍物的安全距离。文献[6]基于单目视觉的方式检测观测区域内的运动障碍物。立体视觉虽然可以获取高分辨率的彩色图像,但是视觉匹配具有较大的复杂度与耗时性。激光雷达可以快速获取准确的三维点云,但是由于价格昂贵,体积笨重,仍无法被广泛应用于工厂中。综上,本文采用基于单目视觉的方式实现AGV运输过程中的障碍物检测,检测流程如图1所示。
图1 障碍物检测流程图Figure 1. Flow chart of obstacle detection
1 Lab颜色空间转换
CIE Lab简称Lab,是由国际照明委员会(Commission International Eclairage,CIE)于1976年制定的一种色彩模式。与其他常见的颜色空间(例如CMYK、RGB)相比,Lab定义的色彩最多。与人类的视觉色域范围相比,Lab具有更大的色域范围,其处理速度也是三维颜色空间中最快的[7]。在Lab 色彩空间中,它的3个基本坐标为:L代表亮度;a的正方向代表红色,负方向代表绿色;b的正方向代表黄色,负方向代表蓝色,如图2所示。
图2 Lab色彩空间Figure 2. Lab color space
在智能工厂环境中,地面存在灯光照射以及反光等干扰因素,因此使用传统的边缘检测容易产生伪边缘。相机采集的RGB图像的颜色空间是非均匀的,无法体现颜色差异[8],而Lab颜色空间是均匀的,可以用数字化的形式表述人类的视觉感受,因此本文采用基于Lab颜色空间变换的方法来减少光照不均和地面纹理等因素造成的干扰。虽然Lab的颜色空间是均匀的,但是其无法和XYZ色彩空间一样几乎包含人类可以感觉到的所有颜色,因此将RGB颜色空间转换到 Lab 颜色空间需要经过XYZ空间模型[9],即
(1)
Lab颜色空间与XYZ空间转换关系为
(2)
其中,f(X)如式(3)所示。
(3)
在Lab颜色空间中,b分量与其他两个分量是独立不相关的,单独使用b分量进行图像处理可以减少计算量,且b分量的像素分布对比度较为明显,有利于准确提取目标图像,因此本文采用b分量图像进行后续的图像处理。
2 改进的Canny边缘检测
Roberts、Sobel、Laplacian-of-Gaussian(LoG)等边缘检测算法通过微分算子提取边缘信息,这种方式对噪声比较敏感,易导致边缘定位不精确[10-12];而Canny算子提取的边缘最为完善,且具有较好的连续性和较精确的定位,因此本文使用改进的Canny算子进一步提取路径与障碍物信息。
2.1 改进的中值滤波与双边滤波融合去噪
传统Canny算法中,高斯滤波算法是对整幅图像进行加权平均,这样容易模糊图像的边缘特征。相较于高斯滤波,双边滤波算法结构简单,且计算复杂度低,其重要特性就是在降噪的同时保持图像边缘[13]。但是双边滤波无法去除椒盐噪声,而中值滤波不仅可以去除椒盐噪声,也能够对图像边缘起到保护作用,因此本文通过使用改进的中值滤波与双边滤波融合的方法来代替高斯滤波,在降噪的同时保留更多的边缘特征。
中值滤波是将图像中某个像素点邻域中各点值的中值代替该像素点的值,使周围的像素值接近于实际值,从而去除孤立噪声点。用计算式可以表述为
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(4)
式中,f(x,y)和g(x,y)分别为输入图像和中值滤波处理后的图像;W为奇数二维模板。
中值滤波在数据排序时需要耗费较长的时间,影响AGV工作系统的实时性。针对该问题,本文通过采用3×3的滤波器尺寸对算法的实时性进行改进。其中,t11、t12、t13、t21、t22、t23、t31、t32、t33为滤波器中的像素值,如图3所示。
图3 中值滤波处理Figure 3. Median filtering
首先定义Ti={ti1,ti2,ti3|i=1,2,3},Mini=min{max{Ti|i=1,2,3}},Maxi=max{min{Ti|i=1,2,3}},Medi=med{med{Ti|i=1,2,3}}。其中,Ti代表每行像素集,Mini代表取每行中的最大值后再取3个最大值中的最小值,Maxi代表取每行中的最小值后再取3个最小值中的最大值,Medi代表取每行中的中值后再取3个中值中的中值。对Mini、Maxi、Medi进行中值排序后就可以得到滤波器最后的中间像素值。在3×3的滤波器中,9个像素的中值Med如式(5)所示。
Med=med{Mini,Medi,Maxi|i=1,2,3}
(5)
通过改进的方法进行排序,只需要进行17次比较,与传统的中值滤波算法相比较,减少了约两倍的排序次数,提高了滤波算法的运算速度。
双边滤波通过定义域核对图像模糊去噪,同时利用值域核来保护图像边缘。假设图像I(x,y)中某像素点坐标为(i,j),式(6)和式(7)分别为定义域核与值域核的计算式。
(6)
(7)
其中,(g,k)为点(i,j)为中心的邻域内任意一点;f(i,j)为点(i,j)对应的像素值;f(g,k)为点(g,k)对应的像素值;σd是调整空间距离较大像素的权重值;σr是调整像素差异较大像素的权重值,可通过改变σd和σr的值来影响双边滤波的效果。依据式(6)和式(7)得到如下双边滤波权重系数
(8)
通过权重系数,计算出双边滤波后的输出像素值g(i,j)。
(9)
2.2 改进的梯度计算
障碍物检测的计算过程较为简单,但对边缘检测的精度要求较高。为了突出边缘信息,在原始Canny算法上,增加计算了26.57°、45°、63.44°、116.57°、135°、153.44°方向上的一阶偏导数,从而确定像素的梯度幅值。
Gx(x,y)=f(x+1,y)-f(x-1,y)
(10)
Gy(x,y)=f(x,y+1)-f(x,y-1)
(11)
G26.57°(x,y)=f(x+2,y+1)-f(x-2,y-1)
(12)
G45°(x,y)=f(x+1,y+1)-f(x-1,y-1)
(13)
G63.44°(x,y)=f(x+1,y+2)-f(x-1,y-2)
(14)
G116.57°(x,y)=f(x-1,y+2)-f(x+1,y-2)
(15)
G135°(x,y)=f(x-1,y+1)-f(x+1,y-1)
(16)
G153.44°(x,y)=f(x-2,y+1)-f(x+2,y-1)
(17)
其中,G表示求一阶偏导。根据上述计算式可求出梯度幅值M(x,y)和梯度方向θ(x,y),如下所示。
(18)
(19)
原始Canny算法只考虑了0°和90°上的梯度,容易产生误检,将非边缘部分错误地当作边缘。文献[14]中增加了45°和135°,降低了误检率,使得边缘检测的精度有所提高。为了进一步提高检测精度,本文在此基础上增加了4个方向,使得后续的路径线与障碍物检测的准确率更高。
2.3 Otsu实现自适应阈值
传统Canny算子需要人工设定高低阈值,针对不同的图像,需要人工不断调整阈值参数[15],不仅增加了人工工作量,也不适合智能化系统。因此,本文提出了使用最大类间方差法[16],又称Otsu法,来实现阈值的自适应。
假设AGV采集的路径图像尺寸为M×N,图像的前景与背景分割阈值为t。其中,前景像素点占整幅图像的比值以及其平均灰度分别为ω1和μ1;背景像素点占整幅图像的比值以及其平均灰度分别为ω2、μ2。图像的总平均灰度为μ,前景与背景间的方差为g,如式(20)和式(21)所示。
μ=ω1×μ1+ω2×μ2
(20)
g=ω1×(μ1-μ)2+ω2×(μ2-μ)2
(21)
当类间方差g取值最大时,对应的阈值t为图像最佳分割阈值,代表图像的前景和背景间的差别最大,即背景与前景间错分的概率最小[17]。本文将Otsu法获取的最佳分割阈值t作为高阈值提取边缘,经式(22)计算得出高阈值和低阈值。当高阈值为低阈值的2.5倍时,提取的路径与障碍物的边缘轮廓最佳。使用面积阈值法去除较小的边缘线,从而只保留最外围的轮廓边缘,如图4所示。
(22)
图4中,最左侧图像为采用改进的滤波对b分量处理的图像,中间为传统Canny检测结果,最右侧为本文方法检测结果。
图4 改进Canny边缘检测图Figure 4. Improved Canny edge detection map
3 实验结果与分析
本实验通过AGV车载摄像机采集路径图像,在OpenCV4.0.1平台中进行图像处理。实验中先将图像转换到Lab颜色空间中,提取b分量后进行滤波处理,效果如图5所示。
图5 经过滤波后的b分量图像Figure 5. b component image after filtering
图5中,最左侧为b分量图像,中间为高斯滤波处理图像,最右侧为改进的滤波处理图像。从图5中可以看出,在Lab颜色空间中,对b分量进行不同方式的滤波处理,本文的滤波方式优于高斯滤波。
对比原图像与b分量经过高斯滤波与本文滤波处理后的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR),如表1和表2所示。
表1 原图像经过滤波处理后的PSNR
表2 b分量图像经过滤波处理后的PSNR
从表1和表2中可以看出,在不同的颜色空间中,采用相同的滤波方式,b分量的信噪比高于原图像RGB颜色空间的信噪比;在同一个颜色空间中,本文改进的滤波方法信噪比高于高斯滤波,说明图像噪声被有效地去除,图像质量更好。
从表3中可以看出,与传统中值滤波比较,本文方法的处理速度得到了明显的提高,表明改进的中值滤波算法增强了算法的实时性。
表3 传统中值滤波与改进中值滤波的时间对比
通过使用改进Canny算法对不同位姿的障碍物进行检测,其中一部分实验结果如图6所示。
图6 障碍物检测效果Figure 6. Effects of obstacle detection
图6中,最左侧图片为采用改进的滤波对b分量图像的处理效果,中间为使用改进Canny算法检测路径与障碍物的效果,最右侧为通过计算最大外接矩形确定路径与障碍物的位置结果。
从图6中可以看出,在地面纹理干扰、光照不均匀、反光倒影等因素影响下,使用本文算法可以有效地检测到AGV行驶过程中遇到的障碍物,为实现AGV准确避障奠定了基础。
文献[18]提出通过边缘点数、4连通域数与8连通域数的指标来评价边缘。通过研究分析得出,8连通域数与4连通域数的比值(表4、表5中的比值1)代表单一边缘响应情况,比值越小,符合度越高;8连通域数与边缘像素总数比值(表4、表5中的比值2)代表边缘连续性,比值越小说明连续性越好。
表4 传统Canny边缘图像信息统计
表5 改进Canny边缘图像信息统计
将表4中的比值1、比值2与表5中对应的比值进行对比,由结果可知表5中的比值较小,表明改进Canny算子在单一边缘响应与边缘连续性方面效果更好。
表6 传统Canny与改进Canny时间对比
相较于传统Canny算法,改进Canny仅对b分量图像进行处理,减少了数据量,且通过改进中值滤波使滤波速度得到了提升。由表6可知,与传统Canny算法比较,本文方法提高了边缘检测速度,表明改进的方法具有实时性。
4 结束语
本文针对智能工厂中复杂多变的环境干扰,提出了将RGB图像进行Lab颜色空间转换,通过改进的中值滤波与双边滤波融合的方式对b分量图像进行处理,降低了噪声的干扰,提高了算法的运算速度。同时对传统Canny边缘检测算子中梯度方向以及阈值选取进行了改进,准确地检测到了障碍物的位置。实验结果表明,本文提出的方法可被用于智能工厂中基于AGV的障碍物检测,且为后期的障碍物距离测量奠定了一定的基础。未来,针对更加复杂的工厂环境,需要对动态以及不规则障碍物的检测做进一步研究,使算法更具通用性。