1. 引言
如今,工业机器人被广泛应用到自动化生产线上,这对复杂环境下机器视觉的应用提出了更高的要求 [1] 。在叉车工件生产和喷砂上料的过程中,一方面,工作大多重复性高,精度要求高,负载大;另一方面,需要面临噪声大、有害气体等复杂环境。相比于人工,基于机器视觉的识别定位方法能够表现出更高的精度、效率以及安全性能 [2] 。叉车工件的识别定位是机器人控制系统实现对机械臂的控制并完成对叉车工件的自动抓取和上料的基础。
现实中,叉车工件的堆叠情况如图1所示,由于堆叠中各工件之间存在上、下层关系并放置于料框中,在识别上层工件时,下层工件特征暴露易造成干扰;识别下层工件时,明显的凸起部分因被料框遮挡而无法成为识别的特征;同时,上、下层工件表面都存在氧化生锈、光照不均匀、堆叠不整齐等情况,增加了边缘识别与分割难度。
(a) 上层工件
(b) 下层工件
Figure 1. Stacking forklift workpieces
图1. 堆叠叉车工件
针对企业现有喷砂上料桁架机器人的视觉系统需求——能够实现在复杂条件下对不同型号的堆叠叉车工件进行识别与定位,将得到的位置信息发送给机械臂控制系统,实现对叉车工件的自动抓取,通过X、Y、Z三轴系统实现三个方向的位移,再通过A轴旋转实现叉车工件的调头,最终自动送到喷砂设备的滚棒线上,喷砂上料桁架机械手系统如图2所示,本文提出了一种基于改进的角约束的概率Hough变换的直线检测方法,对工件边缘的直线检测结果进行分组得到叉车工件中心点坐标,完成对叉车工件的识别与定位。
2. 特征点分析
针对上、下层堆叠叉车工件定位识别存在难题,对如图3所示的叉车工件模型开展定位点的分析。根据叉车工件两侧AO、OB特征直线交点的准确性,并且存在着对上、下层工件识别的通用性和方便实现等特点,以此作为识别唯一的特征点。如图3(a)所示,
为叉车工件中心点即为最终所求目标点。堆叠叉车工件配合摄像头的安装位置及角度,可使采集图像的AO、OB直线呈现倾斜的特点,图像模型如图3(b)所示,根据倾斜直线与水平线存在大于0的夹角,本文提出了一种基于改进的角约束的概率Hough变换(Progressive Probabilistic Hough Transform, PPHT)的直线检测方法,通过识别边缘直线AO、OB得到两直线交叉点坐标O,再结合叉车工件已知尺寸条件得到叉车工件中心点
,将
点坐标信息发送给机械臂控制端,配合图1所示的喷砂上料桁架机器人系统,使其能自动调整四脚吸盘完成抓取工作。
(a) 俯视平面图
(b) 立体图
Figure 3. Analysis of forklift workpiece model
图3. 叉车工件模型分析
由于上、下层堆叠叉车工件都存在氧化生锈、光照不均匀等表面不一致情况,需对原始图像预处理 [3] ,包括灰度化、图像增强、滤波和canny边缘检测等图像技术,视觉系统识别与定位算法流程如图4所示。
3. 直线检测
3.1. 图像增强
图像增强算法主要是增强图像的整体效果或是局部细节,进一步地提高整体与部分的对比度,使其符合人眼的视觉特性,同时抑制不必要的细节信息,改善图像的质量,使其更易于机器识别 [4] 。常见图像增强方法有直方图均衡(Histogram Equalization, HE)、小波变换(Wavelet transform, WT)、偏微分方程(Partial differential equation, PDE)等 [5] ,针对动态范围小且对比度低的图像使用不同图像增强算法进行处理呈现不同效果。WT算法在增强图像细节信息的同时也放大了噪声;PDE算法放大了图像的对比度场,使得增强后的图像具有高对比度 [6] 。本文针对叉车工件对比度低的特点,采用HE算法进行图像增强。
直方图均衡化过程中,首先计算原始灰度图像像素的概率分布,根据像素概率分布获得图像累积分布函数,最后根据映射函数得到变换之后的图像 [7] 。映射过程中保证图像像素与原始大小相同,像素映射函数的值域是[0, 255],映射方法是:
(1)
其中,
图像像素的总和,
是当前灰度级的像素个数,L是图像中可能的灰度级总数。
如图5所示,采用HE算法对灰度化后的叉车工件图像进行处理,能有效提升叉车工件图像的对比度,并且图像中灰度值分布更加均匀,保持图像亮度,显示出前景和背景的差异。
(a) 原图
(b) 原图直方图
(c) 均衡化后
(d) 均衡化后直方图
Figure 5. Comparison of histogram before and after equalization
图5. 直方图均衡化前后对比图
3.2. 边缘检测
基于Hough变换能够完成直线检测的前提是要获取叉车工件的有效边缘信息,常见的边缘检测方法有一阶导数的边缘检测算子(Canny算子、Sobel算子等)和二阶导数的边缘检测算子(如Laplace算子等) [8] ,不同算子的提取效果截然不同。对于灰度渐变、噪声较大的图像,Sobel算子检测方法处理的效果较好,但边缘定位精确度低;由于Laplacian算子对噪声较为敏感,较少用于检测边缘,而多用于边缘像素被视为图像的明或暗区的判断;Canny算子法不易受噪声干扰,使用双阈值分别检测强边缘和弱边缘,能够有效检测到弱边缘,定位准确。针对叉车工件自身光照不均匀、边缘不明显并且要求定位精准的情况,本文选用canny算子进行边缘检测,canny边缘检测算法流程如图6所示。

Figure 6. Canny edge detection algorithm flow
图6. Canny边缘检测算法流程
图像处理中理想的图像信息是无噪声,质量好 [9] 。在现实中,存在采集设备、物体自身、环境干扰等多方面的原因导致采集的图像都含有大量的噪声信息 [10] ,为了减少干扰,有效提取直线,采用高斯平滑滤波器与图像卷积进行降噪,滤波器方程式如下:
(2)
其中,
表示高斯滤波器模板的元素值,
为标准差,
为正整数,
为模板元素坐标。
最后利用非极大值抑制来控制多边缘响应和边缘的定位精度,canny边缘检测双阈值能减少叉车工件边缘检测的漏检率 [11] [12] 。经过canny算子边缘检测得到的效果如图7所示,经过高斯滤波后能有效过滤大部分的噪声点,并使直线边缘更加平滑。
(a) 高斯滤波前
(b) 高斯滤波后
Figure 7. Canny edge detection effect
图7. Canny边缘检测效果
3.3. 改进概率Hough变换
标准Hough变换直线检测的主要思想是利用点—线的对偶性,将图像空间中的直线检测问题转换成参数空间里点的问题,通过在参数空间中累加统计各累加单元的累加器峰值完成直线检测 [13] 。如图8(a)所示,直线在直角坐标系中表达方程式:
(3)
其中,
表示直线到原点距离,
表示法线与
轴的夹角。如图8(b)所示,直线在极坐标系用点
表示。极坐标系中有多个累积单元 [14] ,每个累加单元对应一个初始值为0的累加器,当正弦曲线经过累加单元一次时,相应累加单元的累加器值就加1。可以看到直线上的3个点
、
和
转换成极坐标系下相应的3条正弦曲线,表示给该交点
所在的累加单元投票3次,相应的累加器值会加3。
(a) 直角坐标系
(b) 极坐标系
Figure 8. Hough transformation principle
图8. Hough变换原理
Matas等 [15] 人提出的概率Hough变换是基于标准Hough变换的基础上,对边界点进行随机抽样,在由
和
构成的累加器空间内进行投票。当达到阈值时,则认为存在一条直线。与标准Hough变换检索所有边界点的情况相比,概率Hough变换只进行部分抽样的特点能高效地减少计算时间和计算量 [16] 。
对于叉车工件图像,概率Hough变换算法能确定直线的方向信息,检测直线端点,定位图像中的直线。若要应用于工程项目中仍然存在一些问题需要解决,主要表现在:
1) 在识别定位过程中,叉车工件不是唯一具有直线特征的物体,并且工件本身并不仅有一处直线特征,会检测到其他物体或工件其他部位各个方向的直线,造成干扰。
2) 边缘邻近的噪点或边界点会投票产生虚假峰值,在检测叉车工件的同一直线时,出现了仅角度上存在微小差异的多余直线,造成误检。
3) 由于检测的边缘直线无法做到全光滑、完整,仅能从峰值获得该位置和角度,难以获知有多少条直线,因此会检测到有间断的多段直线。
针对上述存在的问题,为满足对叉车工件的高精度定位,本文对概率Hough变换算法进行了改进,采用角度约束的方式进行直线检测和筛选,角度约束的概率Hough变换步骤为:
1) 概率Hough变换直线检测。采用文中3.2所述canny边缘检测算法,获取叉车工件边缘,根据概率Hough变换可检测到图像中所有存在的直线。
2) 直线坐标分析,统计坐标。将极坐标空间下概率Hough变换检测到所有直线转换到直角坐标形式,并将直线两端点的横、纵坐标以
形式存储到直线矩阵 中,方便后续进行直线筛选和分组工作。其中
、
分别表示直线左端点横、纵坐标,
、
分别表示直线右端点横、纵坐标,叉车工件直线坐标系分析模型如图9所示。

Figure 9. Linear coordinate system model
图9. 直线坐标系模型
3) 限制角范围,筛选直线。根据100张堆叠叉车工件图像,调整直线倾斜角
大小筛选直线。如图10(b)所示,存在四个堆叠的叉车工件,仅识别到四个叉车工件两侧倾斜直线时为合格,统计图片数量加1,若识别到少于四个叉车工件的两侧直线或识别到架框、地面等干扰直线为不合格,则不统计。由表1结果,最终确定倾斜角范围在
和
。

Table 1. Linear angle and number of qualified pictures
表1. 直线夹角与合格图片数量
4) 去除误检测。确保边缘直线的准确性,需要对检测的多段直线进行筛选和去除重复操作,将倾斜角在该范围的直线累加到直线矩阵L,将直线矩阵L以倾斜角
大小进行降序排列,两两直线
差值小于3˚判定为检测目标边缘的同一直线,去除较大值,最后得到每个叉车工件两侧的唯一斜边直线,并对直线补充延长得到直线效果如图10(d)所示。
(a) 概率Hough直线检测
(b) 角约束后
(c) 去除重复线后
(d) 延长直线后
Figure 10. Improved probabilistic Hough transform detection process
图10. 改进概率Hough变换检测过程
4. 中心定位
4.1. 直线分组规则
筛选过后的直线,是多个堆叠的叉车工件所需识别的特征直线,而在数学空间中,所有不平行直线之间都存在交点。针对本文的叉车工件定位方法,以求出同一叉车工件左、右两侧的直线交点为目标。在自动识别的过程中,为确保实现自适应求出同一叉车工件两侧直线交点,需要制定直线分组规则,如图11所示,四个叉车工件有4组直线。
自适应分组求交点过程如下:
1) 不同叉车工件以左、右侧直线分组。根据直线斜率
和
将直线分为叉车工件左、右侧两组直线
和
,将左、右两侧直线延长至识别定位过程能直观看到所需直线交点。
2) 同一叉车工件左、右侧直线配对分组规则。如图11所示,观察图像中四个叉车工件所有直线坐标点,以1号工件为例,知同一叉车工件左侧直线右端点纵坐标
与右侧直线左端点纵坐标
的数值最接近。因此,在工件的所有直线中,以数值最接近的
与
在矩阵中匹配的索引号作为分组依据,可自适应求出直线组交点及像素坐标
,如图12所示,对于上、下层堆叠叉车工件,自适应所求直线交点结果都比较理想,符合工业现场要求。
(a) 上层堆叠叉车工件
(b) 下层堆叠叉车工件
Figure 12. Group Line Intersection Effect
图12. 分组直线交点效果
4.2. 中心坐标定位
由图9的直线坐标系模型可知,求出的直线交点
为叉车工件横向中心点,根据已知不同型号叉车工件固定的长、宽尺寸知直线交点到纵向中心点距离
,因此求得叉车工件中心像素坐标
,其中
,
,即完成叉车工件图像上的中心定位。
基于改进的概率Hough变换直线检测方法得到堆叠叉车工件中心点的像素坐标后,进行相机标定,得到相机内参,将中心点像素坐标转换成图像坐标,并根据相机相对于叉车工件的拍照高度和相机坐标系与图像坐标系的关系,可将图像坐标转换为相机坐标系下的坐标。获得相机坐标后,将坐标信息发送给机器人控制系统,根据手眼标定 [17] ,将相机坐标系下的坐标转换为以机械臂基座为原点的坐标。如图13所示,根据获取的多个堆叠叉车工件中心坐标,机器人控制系统规划路径,控制机械臂末端移动抓取料框中最上层的叉车工件。
(a) 四脚吸盘及中心定位点
(b) 抓取叉车工件
Figure 13. Positioning grab map
图13. 定位抓取图
5. 结束语
本文基于标准Hough变换,结合喷砂上料桁架机器人的抓取环境,提出了改进的角约束概率Hough变换直线检测,并以此作为移动桁架机器人视觉系统识别与定位的方法。提出的预处理和后处理方法,结合工业相机安装位置、角度和场地条件,在现场环境及被测物特征复杂的情况下能有效提取堆叠叉车工件所需的直线特征,并完成中心定位。根据叉车工件识别的实验结果,表明了本文提出的方法在噪声环境中具有一定的容错性能,能满足企业需求,这对工业生产及移动机器人视觉系统在对物体的识别与定位上具有一定的参考性。