APP下载

机器视觉在螺母定位中的应用

2018-05-07黄一鸣陆雨婷任兴龙

机电工程技术 2018年3期
关键词:圆心像素点螺母

刘 刚,黄一鸣,陆雨婷,任兴龙

(华中农业大学,湖北武汉 430070)

0 引言

在工业生产中,当前仍主要采用人工的方法进行机床上下物料的工作。由于机器人的重复定位精度很高(±0.5 mm左右),而人工操作存在错误率高等问题,因此机器人(手臂)代替人工可以大大提高准确率。但是,机器人并不知道自己需要从哪里抓取目标物体。现实情况中,螺母不可能是完全平放的,很多时候是层叠在一起的,这无疑加大了机器人进行视觉识别的难度。

本文从机器视觉系统出发,基于Kinect传感器获得的深度图像,利用图像处理技术与Python语言编程,实现了对复杂摆放情况下螺母中心位置的拟合,从而实现对螺母的定位。

1 深度图像获取

在桌面上有如图1所示放置的螺母。采用Kinect传感器获得如图2所示的深度图。

图1 实物图

图2 深度图

2 视觉检测方法

2.1 图像预处理

为了增强图像质量,提高拟合精度,需对传感器获得的深度图像进行预处理。图像的预处理包括插值填充、二值化和图像平滑。通过编写Python代码实现了以上过程,经过图像预处理后结果的如图3所示。插值填充的目的是为了去除图像中的噪声;二值化处理的目的是为了分割图像中的螺母与背景环境;图像平滑的目的是为了提高图像质量。

2.2 基于Canny算法的边缘检测

为了有效去除背景等因素的影响,采用Canny边缘检测的方法对二值化之后的图像进行边缘检测。

图3 图像预处理结果

图4 边缘检测结果

Canny边缘检测的最优性与以下因素有关[1-3]:

(1)高信噪比,即在进行边缘判断时的准确率高;

(2)定位准确,即检测出的边缘点要尽可能在实际边缘的中心;

(3)对单一边缘具有唯一一个像素响应。处理结果如图4所示。

2.3 类圆分割方法

螺母为类圆图像,因此在螺母的图像中,经常会出现类圆螺母粘连和重叠的现象,为了更准确的统计类圆螺母的数量,首先需要将类圆目标分割成单独螺母[4]。本文应用基于凹点的分割方法,对粘连的类圆螺母进行分割。

本文提出的凹点判断原理[5]:在圆域边缘上取3点C1,C2和A,其中A处于C1,C2之间,连接以上三点构成三角形,如图5所示。

取连线的中点为D,根据D点左边对应像素的灰度值来判断D是否在层叠的目标螺母上。

在进行判定时,有两种情况,一种情况是D在边缘内侧,则D∈O1O2,则直线AD上面所有的点都在圆域内,;另一种情况是D不在边缘内侧,则若直线AD上除A点以外的点不在边际圆域内,则边缘形成凹陷,点A为凹点。

将n个相邻凹点集聚在一起构成的群称为凹点群,当仅存在着唯一凹点,即当n=1时,称凹点群为独立凹点群。

设凹点深度d为边缘特征点xi与线段xi-1、xi+1之间的直线距离p称为凹点深度,其中xi-1、xi+1分别为点xi的邻继特征点。

借助轮廓图,建立一个数组S用于存放凹点对应的边缘特征点序号,同时将这些凹点分为孤立的凹点群以便于找出分割点。在搜索分割点的过程中,将每个凹点群中的凹点深度与阈值Y进行比较,如果某一凹点的深度值超过了阈值Y,则视这一凹点为备选分割凹点。当凹点群中有且仅有唯一备选分割凹点时,则认为该点就是分割凹点;对于另一种情况,即当凹点群中的备选分割凹点有多个时,需要依据N点方向编码差法[6]减去非凹点。处理结果如图6所示。

图5 凹点搜索原理

图6 类圆分割结果

3 螺母定位

3.1 基于OpenCV改进的Hough变换

经过以上的处理,可以认为螺母边缘实际上已经弱化接近为一个圆。因此,拟合螺母的中心位置的问题可以转化为寻找圆心的问题。Hough变换是目前应用较为广泛的圆检测方法,很多情况下,一些干扰或其他事物的遮盖会引起目标区域边界的间断,对于这些情况,Hough变换具有很好的容错性和鲁棒性[6]。

由于图像出现了边缘被干扰的情况,因此选择Hough变换以实现较好的拟合效果。

但是,由于其自身的原理,Hough变换也存在着一些不足。比如,在进行运算时,Hough变换往往要进行全局的累加运算,会导致计算量急剧上升从而耗费大量的存储空间,同时所用时间也会随之增加。事实上,通过Kinect传感器获得的图像往往受到外界噪声的干扰,这会造成传统Hough变换在进行参数空间的搜索时性能急剧下降。

为了克服Hough变换的这一不足,利用OpenCV对Hough变换进行了改进。改进之后的算法不仅对噪声敏感度低,而且在检测圆心时速度大大增加。

改进Hough算法寻找圆心的基本步骤如下。

(1)利用遍历法找到满足以下条件的像素点不是边缘点:对相邻的像素点分别进行向左和向右搜索,分别找到两边的第一个相邻的边缘像素点,记为rwp(右 )和lwq(左 ) ;pwj-lwq=rwp-owj。

(2)对满足上一步骤条件的owj,采用改进后的Hough变换在一维的空间中进行累加计数。

(3)在参数空间中,通过步骤(2)累加计数的最大值所对应的owj即为圆心对应的横坐标c=owj。

同理,可以求出圆心的纵坐标,这样就可以得到圆心坐标(c,d)。

根据以上步骤求得的圆心坐标(c,d),将边际像素点代入(x-c)2+(x-d)2=r2(圆的方程),可得出一个备选半径,然后在单维空间中再利用经过OpenCV改进后的Hough变换对备选半径进行累加计算。最后,依据的计数值是否满足构成圆所允许的最小点数来确定圆,得到如图7所示的图像。

图7 改进Hough变换结果

图8 边缘曲率处理结果

3.2 边缘曲率的重叠螺母分割方法

通过先得出的四个类圆环,可以得到其他三个重叠类圆环的边缘曲率范围。由于螺母相互重叠的区域在彼此交界处,边缘点曲率会发生突变,利用这一特征可以实现重叠区域边缘的分割[7]。

式(2)中,x1、y1为前采样点的坐标,x2、y2为后采样点坐标。θ是两相邻采样点连线与x轴夹角。

式(3)中,v代表采样间隔,θ1是当前点到前一点连线与x轴夹角,θ2是后一点到当前点连线与x轴夹角,C为当前采样点曲率。

式(4)中,x,y表示圆上点坐标,b,c,d表示方程系数。

由于各边缘点未必都恰好在同一圆上,这些边缘点有可能处在不同的圆上,边缘点处在不同的圆上时情形与处在同一圆上有巨大的差距。因此,不能确保所有边缘点的E值都恰好等于0。各点与回归圆(即拟合出的圆)上相应点的偏差为

式(5)中,xi、yi表示轮廓边缘点坐标。

用最小二乘原理,使各点偏差平方和最小,进而求得圆的回归方程,拟合出螺母边缘圆,拟合出的圆为回归圆。将回归圆叠加到原图上,如图8所示。

4 结束语

本文采用OpenCV改进的Hough算法进行螺母中心位置的确定。改进后的Hough算法不仅具有很好的鲁棒性和容错性,而且在检测圆心时速度大大增加。结果证明,本文所用方法不仅在圆边界轻微间断的情况下表现出了很好的拟合效果,而且当实物在空间中重叠导致图像中实物部分遮盖时也同样表现出了很好的拟合效果。因此,在螺母定位时能够实现很好的效果。

参考文献:

[1]蔡健荣,周小军,李玉良,等.基于机器视觉自然场景下成熟柑橘识别[J].农业工程学报,2008,24(01):175-178.

[2]王植,贺赛先.一种基于Canny理论的自适应边缘检测方法[J].中国图像图形学报,2004,9(08):957-962.

[3]王会江.结合Canny算法和Hough变换的轴类零件边缘提取[J].机电工程技术,2016(9):27-30.

[4]陈健,廖唯.机器视觉概况及其在轴系部件测量中的应用[J].现代机械,2011(03):24-26.

[5]苏威.基于机器视觉的重叠类圆颗粒计数系统[D].镇江:江苏大学,2009.

[6]谢忠红,姬长英,郭小清,等.基于凹点搜索的重叠果实定位检测算法研究[J].农业机械学报,2011,42(12):191-196.

[7]尚璐,李锐,宋信玉.改进的Hough变换圆检测算法[J].电子设计工程,2011,19(14):168-171.

猜你喜欢

圆心像素点螺母
新型自锁、防松螺母的制作与应用*
基于局部相似性的特征匹配筛选算法
三种铆螺母紧固件的应用与对比
“永不松动”的螺母
杯沿“叠罗汉”
基于5×5邻域像素点相关性的划痕修复算法
以圆周上一点为圆心作圆的图的性质及应用
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
参考答案