基于机器视觉的试验间入口检测识别
2022-09-16熊兴旺刘忠山
熊兴旺,刘忠山,孙 田
(1.中汽研新能源汽车检验中心(天津)有限公司,天津 300300;2.中汽科技(北京)有限公司,北京 100176)
试验园区内进行汽车及零部件检测试验前后,使用人工叉车运送货物时,若货物外包装体积较大,会造成叉车司机前方视野的盲区,存在安全隐患。为消除隐患,提升运送效率,尝试对叉车进行智能化改造,推进智慧园区建设。针对运送试验样品或设备进入试验间这一应用场景,尝试利用机器视觉技术,对试验间入口进行检测识别,用于辅助人工驾驶叉车或集成开发自动引导车(Automated Guided Vehicle, AGV)。
研究人员对自动驾驶车辆车道线检测识别和AGV物品检测识别算法开展了丰富的研究。典型的目标物体检测识别算法流程包括图像预处理、边缘检测、特定形状检测等,最后联系实际应用场景构造合理优化方法,实现目标物体的检测识别。本文借鉴上述算法流程,基于OpenCV库和Python开发环境,实现了园区内试验间入口检测识别功能。
1 图像预处理
叉车车载摄像头布置在叉车顶架最高处,方便从高点拍摄全局照片,图像通过数据线传输至驾驶员视野右前方。拍摄的试验间入口图像,包含试验间外侧墙壁、路面及部分试验间内设备物料等干扰项。原始图像用于试验间入口识别之前,需预先进行预处理,本文所涉及的预处理主要为图像灰度化和二值化处理。
首先把原始图像转换为灰度图像,便于图像处理,降低后续算法复杂度。采用加权平均法,将图像RGB三通道分量分别乘以不同的权重之后再相加,如式(1)所示。
式中,为某像素点的灰度值;为该像素点的红色分量值;为该像素点的绿色分量值;为该像素点的蓝色分量值。
原始图像和灰度化处理后的图像分别如图1和图2所示。
为增强背景和目标检测物体的对比效果,使用阈值法将原始图像进行二值化,便于后续进行边缘检测。设定阈值为60,对于像素值大于60的像素点,将其设置为255;对于像素值小于60的像素点,将其设置为0。二值化处理后的图像如图3所示。
2 边缘检测
边缘检测可以更好地表达图像的基本特征,它主要根据灰度值发生明显变化的临界点,反映图像属性特征的信号,分割出目标物体与背景物体。边缘信息的提取可以很好地保留图像的信息,并去除无用的干扰信息。经典的边缘检测算法有Canny 算法、Roberts 算法和Sobel 算法等。Canny算法抗干扰能力强,边缘检测后的图像边缘连续性好。Canny算法需要四步实现:
(1)首先需要用高斯滤波器对待处理的图像进行平滑滤波;
(2)计算图像中每个像素点的梯度大小和方向;
(3)对图像进行非极大值抑制,通过梯度方向和大小找到像素局部最大位置,在不是极大值处对应的数置零;
(4)设置双阈值,用低阈值和高阈值分别对经过非极大值抑制的图像进行处理,将梯度低于阈值的像素点置为0,由此将图像的边缘提取出来。结合两个阈值处理后的图像,最后输出边缘检测后的完整二值图像。
本文采用Canny边缘检测算法,设定合理阈值,对二值化处理后的图像进行边缘检测。图4所示为经过Canny边缘检测处理后的图像。
3 直线检测及筛选优化
试验间入口在图像中表现为直线形式。得到边缘检测处理后的图像后,需要对图像进行直线检测,以区分图像中的目标检测物体直线部分和背景干扰项。
霍夫变换是用于图像直线特征提取的经典算法。其原理是将直线从直角坐标系空间转换到极坐标系空间。直角坐标系中通过某个点(,)的一条直线,在极坐标系中表现形式为某个点(,);直角坐标系中通过点(,)的所有直线,在极坐标系中为表现形式为一条曲线。直角坐标系中在同一条直线上的多个点经过极坐标系变换形成的多条曲线都在极坐标系中相交于一点,越多条曲线交于这一点,表示在直角坐标系中这个点对应的直线由更多的点组成,当交于某一点的曲线数量超过了某个阈值,则认为该点在直角坐标系中为一条直线。本文调用OpenCV库中函数实现Hough直线检测,rho参数取1,theta参数取1°,参数threshod取5,参数minLineLength 取60,参数maxLineGap取0,通过Hough直线检测处理后的图像如图5所示。
将图5经过Hough直线检测后的图像中试验间入口目标直线用虚线标识出来,如图6所示。从图6中可以看到试验间入口目标直线有如下特点:
(1)试验间入口目标直线分别位于图像中线的两侧,可以考虑以图像中线为界,分左右两侧对入口目标直线进行检测识别;
(2)试验间入口目标直线与检测到的其他直线相比,长度相对较长;
(3)试验间入口目标直线斜率绝对值较大(或趋近于+∞)。
针对上述三项特点,设置直线斜率和直线长度阈值条件,对Hough直线检测后的图像进行线条筛选优化,筛选出目标直线,筛选优化后的图像分别如图7和图8所示。
4 试验间入口检测识别
对图7和图8优化处理后,针对所有直线的端点的坐标(,),以为横坐标,为纵坐标,进行最小二乘法线性拟合,并将拟合后的直线进行适当延长,画线进行表征。对试验间入口进行检测识别的最终结果如图9所示。
5 结论
本文借鉴车道线识别及物体检测算法,类比提出了园区内试验间入口检测识别的算法流程,在此基础上基于OpenCV库和Python开发环境,利用提出的算法成功检测识别出了试验间入口,对后续开发智能叉车辅助系统有一定的工程意义。