APP下载

基于直线段检测的SIM卡槽图像中切割线定位算法*

2018-03-21王丽威马丽艳李功燕1

数据采集与处理 2018年1期
关键词:像素点梯度边缘

王丽威 马丽艳 李功燕1,

(1.江苏物联网研究发展中心,无锡,214135; 2.中国科学院大学微电子学院,北京,100049; 3.中国科学院微电子研究所,北京,100029)

引 言

视觉引导激光切割技术是通过机器视觉系统引导激光切割机器人完成零件切割作业,从而实现对产品的自动化处理,具有非接触、速度快和柔性好等优点,在现代制造业中有着广阔的应用前景[1-2]。它是工业智能机器人的一个重要组成部分,在国内外得到了很大的重视。本文针对手机SIM(Subscriber identification module)卡槽工件切割需求,利用同轴视觉激光系统进行作业。

同轴视觉激光系统如图1(a)所示。系统主要有视觉采集和激光切割两部分组成。由视觉系统采集工件图像,利用图像处理算法检测待切割部位在图像中的位置,通过图像坐标和激光坐标关联,进而引导激光对工件进行切割。本文工件是在固定件上固定包含4个SIM卡槽的注塑模(图1(b)),每个卡槽都被上下两个臂连接。切割的目的就是断开这些连接以获得完整的卡槽。为达到高精度检测需求,视觉系统采用500万像素的工业相机(Basler acA2500-14gm,图像分辨率2 592×1 944),调整振镜角度每次拍摄卡槽和臂的一个连接部位,采集8次之后得到每个连接部位的清晰图片。

图1 图像采集方式Fig.1 Image acquisition

待切割的连接部位呈现直线段特征,因此可以通过在图像中检测该直线段来定位切割部位。由此可知,如何在一幅图像中快速精确地检测出特定位置的直线段是本文要解决的关键问题。

直线检测是机器视觉和模式识别中最重要的任务之一[3]。直线检测最经典的算法是基于Hough变换方法[4-6]。它具有鲁棒性强的特点,适合全局的直线检测,但是需要较大的计算空间和计算量,提取的参数受参数空间的量化间隔制约。Xu等人[7]提出了随机霍夫变换(Random Hough transform, RHT),采用多对一的映射方式,避免了传统Hough变换一对多映射方式的庞大计算量,并且在参数累积时使用动态链表,降低内存需求,因此RHT具有参数空间任意大、参数精度无限高的优点。但是在处理复杂图像时,由于随机采样引入大量无效单元,造成无效积累。

Burns等人[8]提出了一个利用图像梯度方向信息的直线检测算法。该算法利用梯度方向信息将图像分割成不同的线段支撑区域,每个支撑区域中梯度方向趋于一致,然后在每个支撑区域中利用梯度幅值强度等信息检测直线段。Desolneux等人[9]提出了无需人为调节外部参数的直线检测算法。该算法统计梯度方向一致的像素到一个集合中,然后验证每个集合中所有像素元素组成的结构是否符合直线特征。但会错误地把图像中几个较短的直线段检测为一条较长的直线段,且计算量大,速度较慢。Gioi等人[10]在文献[8, 9]提出的直线检测算法的基础上进行改进,并结合文献[9]提出的直线段验证方法,提出了一种基于假设检验的直线段检测算法(Line segment detector, LSD)。该算法按梯度模值进行区域增长,利用Helmholtz Principle准则判定直线段候选区域,最后拟合直选段。LSD算法具有鲁棒性好、计算量小、误检及漏检率低的优点,不足之处在于容易受到高斯白噪声的影响,且无法有效地直接在高分辨率的图像上检测直线段。Akinlar等人[11]提出了一个基于图像边缘提取的直线段检测算法。该算法首先运行边缘提取算法获得边缘像素点链,然后从获得的像素点链中提取直线段,最后验证提取的直线段是否是真实的图像直线特征边缘,但该算法使用的固定阈值会造成漏检。Ding 等人[12]提出了一种直线段和圆弧相结合检测算法。该算法通过移除图像中的平滑弧线结构从而避免了其对直线段检测造成的干扰,非常适合检测图像中的直线段、圆、椭圆或者其他的复杂结构,但是该算法速度较慢而且如果阈值选择不合适会造成误检。

本文针对SIM卡槽图像的特点,在前人研究的基础上,提出了一种新的特定位置直线段的检测算法。该算法的基本思想是:(1) 找到待检测直线位置处的一个像素点作为寻找直线段候选区域的种子点;(2)从种子点开始寻找直线段候选区域;(3)在候选区域上拟合直线。实验表明该算法具有较强的鲁棒性。

1 SIM卡槽图像中切割线定位算法

图像中待切割的连接部位边缘特征不明显,因此无法直接精确检测出这个部位的直线段。但是图像中固定件孔洞区域和注塑模交界处边缘特征明显,而且待切割部位的起始、终止点都落在这两个边缘上。因此一种可行的方案是:首先在图像中检测出这两个直线段,如图2 中标记为1,2的两个直线段,将一条直线段的一个端点作为切割的起始点(图2中虚线和直线段1 的交点),两条直线段延长线的交点作为切割的终止点(图2 中虚线和直线段2的交点)。起始点和终止点之间的直线段即为待切割的边缘(图2 中的虚线)。

图2 切割线示意图Fig.2 Cutting line

由以上分析可知,本文方法最重要的是检测图2中的直线段1和2。由于每次使用机械手臂自动抓取工件放置于激光切割平台,且自动调整振镜的角度采集不同待切割位置的图像,因此切割线在图像中的位置不固定,会出现小幅度平移和旋转(旋转角度不超过±15°)。由于存在大量干扰直线段,利用Hough变换将不能准确检测出特定的直线段1和2。本文待检测的直线段最长可达600个像素点,一般的直线段检测方法并不适用。此外,由于本文图像分辨率高,若在整幅图上检测直线段再进行筛选,计算量过大;若缩小图像检测直线段再将位置返回原图像,则损失检测精度。

根据SIM卡槽图像的特点,本文设计的特定位置直线段检测算法流程为:首先对采集到的图像进行预处理,去除噪声的影响;由于两条待检测直线段都在固定件孔洞与注塑模的交界处,因此首先从原图像中分割出固定件孔洞区域(至少两个),针对待检测的直线段1和2各选择一个像素点;从该点开始利用图像梯度幅值信息寻找检测直线段的种子点;在种子点上再利用梯度方向信息进行直线段候选区域增长,然后在候选区域上拟合直线。最后通过计算得到的两个直线段端点和两直线交点位置,即可得到待切割位置的起始点。系统流程如图3所示。

图3 本文算法流程图Fig.3 Flow chart for the proposed algorithm

1.1 直线段检测算法

1.1.1 图像梯度的计算

图像的梯度反映相邻像素间灰度值的变化情况[13],因此像素的梯度信息对于图像中的边缘结构检测来说具有重要的意义。有多种模板可以用来计算梯度,但是当模板选的过大时会模糊图像细节。相比于2×2模板,Sobel算子能得到更大的梯度幅值和较强的抗噪声能力[14]。本文选择使用Sobel算子计算图像的梯度。像素点梯度的幅值和方向分别为

mag(f)

(1)

式中f(x,y)为原图像,其x轴和y轴梯度为fx和fy。

像素点在边缘处梯度幅值较大,方向趋于一致,且梯度方向和边缘延伸方向正交。虽然像素点在边缘处梯度方向趋于一致,但并不是严格相等,若两像素点的梯度方向之差小于2π/k,即可认为在方向准确度为k时两像素的梯度方向一致,通常k取8~16。

1.1.2 寻找区域增长种子点

通过图像采集系统获得的图像一般都会受到噪声的干扰,因此在对图像进行处理之前必须先对图像进行降噪预处理。由于采集的图像分辨率较高,直接在原图上定位固定件孔洞区域计算量过大。因此,本文采用高斯金字塔向下降采样原图像[15],通过逐级向下降采样n次,获得一个原图1/n大小的图像(本文取n=8)。向下降采样的过程既能放缩图像大小,又能对图像进行高斯滤波平滑。在降采样8次后得到的图像中寻找种子点。

图像分割一种常用的方法是基于阈值分割[16,17],具有实现简单、速度较快且稳定性好等优点。阈值分割最基本的任务是找到最优的阈值T。文献[18]提出了一种自适应阈值法,称为大律法(Otsu),又称最大类间方差法。该算法主要是利用最大类间方差将图像分为前景和背景两个部分。本文待分割的固定件孔洞区域像素值较低,对应在灰度直方图上为左侧区域(图4(a)中阈值T2左侧),因此可以采用Otsu方法对图像进行两次分割。第一次对图像使用Otsu方法求得一个最优阈值T1,使用该阈值对图像进行阈值分割操作去除背景信息得到前景图像。此时前景图像中既包括固定件孔洞区域又包括注塑模信息。为了从前景图像中提取出固定件孔洞区域,第二次对前景图像使用Otsu方法求得一个最优阈值T2,此阈值即为从原图像中分割固定件孔洞区域所需的最优阈值。使用阈值T2对原图像进行二值化,低于阈值T2的像素值设置为255,高于阈值T2的像素值设置为0。

由于噪声或阴影的影响,阈值分割后通常会存在一些小的连通区域。为了去除这些小区域的干扰,本文使用一个半径为20的圆形模板对二值图像进行形态学开运算,只保留了感兴趣区域,如图4(b)所示。需要指出的是,由于固定件上每个卡槽和孔洞的相对位置会发生变化,存在检测出3个孔洞区域的情况。但是由于本文事先已知每幅图像中孔洞和待检测直线段的空间位置关系,可以轻易判断出所需的两个孔洞区域。

图4 孔洞区域分割Fig.4 Holeregion segmentation

两个孔洞区域的质心坐标(xc1,yc1)和(xc2,yc2)可分别由式(2)进行计算

(2)

通常具有较高梯度幅值的像素点对应着较强的边缘,并且边缘中心位置处的梯度幅值更大,所以一种合理的寻找种子点的方法是从区域质心开始朝某一方向逐像素遍历梯度幅值图像。当相邻像素点之间的梯度幅值差值大于一个给定阈值TG时,停止遍历。从图2中可以看出图像右侧区域边缘在其质心的下方,左侧区域的边缘在其质心的右方。所以遍历时分别采用向下、向右方向遍历。当仅采用1个梯度幅值与给定阈值TG比较作为遍历终止条件时,容易受到噪声点的干扰,造成误判。为了消除这种情况,本文每次在遍历方向上计算相邻3个梯度幅值。当3个梯度差值都大于给定阈值TG时,才结束遍历。此时对应的像素点即为找到的种子点(xs,ys)。

1.1.3 区域增长

角度阈值τ的选取会对区域增长产生重要影响。如果阈值设定得太小,区域增长获得直线段支持像素点过少,导致检测的直线段过短;如果阈值设定得太大,区域就会增长到偏离直线段的地方,导致获得的区域过大,并且一些不相关的点也加入到候选区域中,因此检测的直线段和真实的边缘有较大偏差。如果图像中的直线边缘结构特征比较明显,角度阈值τ的选取对检测精度影响不大。但是如果直线结构特征不明显或者噪声点太多,这个参数选取合适与否就会对检测精度产生重要影响。没有理论证明τ为多大时最合适[10],但是通过大量实验发现τ取28.5°最适合本文的检测需求。

1.1.4 直线拟合

从候选直线段像素区域中拟合一条最佳直线段,可以采用外接矩形的方法,即用一个最小矩形包围所有候选直线段像素。外接矩形的中心可以作为直线段的中心,外接矩形的第一惯性轴作为直线段的方向[10,19]。

矩形中心点(Cx,Cy)可以通过式(3)计算

(3)

式中i为遍历所有的候选直线段像素点。

(4)

(5)

(6)

则候选直线段像素区域外接矩形的第一惯性轴方向为矩阵M的最小特征值对应的特征向量方向。

1.2 计算切割线起始点

切割线起点可以设置为检测到的直线段的1个端点,终点即为检测到的2个直线段的延长线交点。由中心点和直线段方向可以求得2个直线段的点斜式表示为

y1=k1(x-Cx1)+Cy1,y2=k2(x-Cx2)+Cy2

(7)

式中:(Cx1,Cy1)和(Cx2,Cy2)分别为直线段1,2的中心;k1和k2为直线段的斜率。由式(7)可以计算出交点坐标(xe,ye),即

(8)

2 实验及分析

为验证本文算法的有效性,本文将对不同算法的性能进行对比分析,对比算法有Hough变换和LSD算法。图5(a)是用500万像素工业相机拍摄到的工件左上卡槽和上臂的连接部位图片(图1(b)椭圆圈出的部位)。图5 (b)是使用统计概率Hough变换检测到的结果图像(Hough变换方法设定的幅值准确度为1像素,相位准确度π/180),Hough变换由于没有考虑直线的连通性和方向性特点,实际检测到的不是真正的直线段而是组成直线段的分散边缘像素点,因此要想获得真正意义上的直线段结构后续还需要复杂的处理过程。图5(c)是LSD算法检测的结果(参数Scale=0.8,quant=1.0),算法从具有最大梯度模值的像素点开始区域增长,接着选取次最大梯度模值的像素点开始下一个区域增长,依次进行直到检测出所有的直线段,从图像中看到大量的直线边缘结构被检测到,待切割部位检测到的直线段断裂,因此要精确地定位出切割起始、终止点同样也需要后续复杂的处理过程。图5(d)是本文提出的算法检测到的结果,实验中将角度阈值τ取为28.5°,寻找种子点时的梯度阈值TG设定为20.0,从图中可以看到本文算法精确地检测到切割边缘位置。相对于LSD算法,本文算法首先精确地找到区域增长的种子点,从种子点开始直线段候选区域增长,有针对性地检测两条边缘直线段,从而避免检测到大量的无关直线段,提高检测效率。

图5 各种算法检测直线段结果对比Fig.5 Comparison of line segment detection results by different algorithms

下面对注塑模的8个切割部位图像分别使用本文算法进行检测。实际8个切割部位的图像根据固定件孔洞和卡槽的相对位置两两相似,所以本文仅给出4个不同切割部位图像进行实验分析。图6分别为从工件左上角开始逆时针方向采集到的切割部位图像。针对4个不同部位要适当调整寻找种子点时的遍历方向,白色直线段为本文算法检测的激光切割线位置。由图6可知,本文算法可以精确地检测到待切割的部位,直线段紧贴着待切割的边缘,误差较小。

图6 不同切割部位检测结果Fig.6 Cutting line detection for different cutting parts

图7 低光照时切割线的检测结果Fig.7 Cutting line detection in low light conditions

在本文相机成像系统采集图像时,为避免注塑模反光,LED光源照射亮度不能过大。因此,在实际操作中可能会出现采集到的图片偏暗的情况,图像的对比度降低,边缘结构变得模糊,如图7所示。此时,在角度阈值τ不变的情况下,适当降低梯度阈值TG,本文算法同样可以精确地检测到待切割的边缘位置。因此梯度阈值的大小可以根据实际应用场景光照条件进行调节,一旦光照强度固定,梯度阈值大小也应随之固定。

为了验证本文算法的准确性,共采集80幅样本图像进行检测,对比本文算法和基于Hough变换方法的性能。表1列出了检测正确、误检及漏检的图片数量,并计算了各种情况占有的百分比。由表1中可见本文提出的算法检测精度较高,并且漏检、误检率低。

当待检测直线段边缘处存在较强毛刺时(图8(a)),毛刺点上像素梯度角度方向与直线段边缘上像素梯度角度方向相比有较大改变,角度差值远远大于梯度角度阈值τ。因此在区域增长进行到强毛刺点时停止,得到的直线段候选区域不能涵盖整个边缘像素,从而导致检测到的直线段有时过短,在后续的切割线定位时会存在一定误差,但在实际中这种情况较少。为进一步提高本文算法的鲁棒性,根据孔洞区域定位结果,可在同一边缘处选取多个种子点分别进行区域增长(图8(b)),之后将这几个区域合并为1个直线段候选区域,最终获得直线拟合结果(图8(c))。

图8 边缘存在强毛刺时直线检测结果Fig.8 Influence of strong protrusions in edges

3 结束语

本文针对SIM卡槽激光切割需求,提出了一种图像中特定位置直线段的检测算法。该算法首先要找到进行区域增长的种子点,然后从该种子点开始执行区域增长策略,最后用矩形逼近区域增长得到的直线段候选区域,并在该区域上拟合直线段。实验结果表明本文算法具有更高的检测精度,更低的误检和漏检率。与现有直线段检测算法相比,本文算法检测的直线段为连续边缘,且可检测特定位置的长直线段。由于引入的直线段候选区域增长策略对噪声具有很强的抵抗性,而且受光照强弱变化和工件摆放位置变化影响较小,因此算法鲁棒性很强,适合工业现场检测。

[1] 李龙.激光视觉引导机器臂焊缝跟踪系统的研究与开发[D].无锡:江南大学,2013.

Li Long. Laser visual guide the machine arm weld tracking system research and development[D].Wuxi: Jiangnan University,2013.

[2] 张永强.激光切割质量同轴视觉检测与控制的研究[D].北京:清华大学,2006.

Zhang Yongqiang. Quality monitoring and control for laser cutting with coaxial visual sensing system[D].Beijing:Tsinghua University,2006.

[3] 陈仁杰,刘利刚,董光昌. 图像主特征直线的检测算法[J]. 中国图像图形学报,2010, 15(3):403-408.

Chen Renjie, Liu Ligang, Dong Guangchang. Detection of principal lines in images[J]. Journal of Image and Graphics,2010,15(3):403-408.

[4] 段汝娇,赵伟,黄松岭,等.一种基于改进Hough变换的直线快速检测算法[J].仪器仪表学报,2010,31(12):2774-2780.

Duan Rujiao, Zhao Wei, Huang Songling, et al. Fast line detection algorithm based on improved Hough transformation[J]. Chinese Journal of Scientific Instrument, 2010,31(12):2774-2780.

[5] Illingworth J, Kittler J. A survey of Hough transform[J].Computer Graphics and Image Processing,1988,44(1):87-116.

[6] 王广志,童明,丁辉.基于几何特征的X射线图像中圆形标志点自动提取[J]. 数据采集与处理,2015,30(5):965-972.

Wang Guangzhi, Tong Ming, Ding Hui. Automatic circular marker detection for X-ray image base on geometric parameter[J]. Journal of Data Acquisition and Processing, 2015,30(5):965-972.

[7] Xu L, Oja E, Kultanen P. A new curve detection method: Randomized Hough transform[J].Pattern Recognition Letters, 1990, 11: 331-338.

[8] Burns J B, Hanson A R, Riseman E M. Extracting straight lines[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1996,8(4):425-455.

[9] Desonlneux A, Moisan L, Morel J M. Meaningful alignments[J].International Journal of Computer, 2000, 40(1):7-23.

[10] von Gioi R G, Jakubowicz J, Morel J-M, et al. LSD: A fast line segment detector with a false detection control [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(4):722-732.

[11] Akinlar C, Topal C. ED lines: A real-time line segment detector with a false detection control[J]. Pattern Recognition Letters, 2011,32:1633-1642.

[12] Ding Weili, Wang Wenfeng, Li Xiaoli. OT lines: A novel line-detection algorithm without the interference of smooth curves[J]. Pattern Recognition Letters, 2016,53: 238-258.

[13] 李士进,占迪,高祥涛,等. 基于梯度与颜色信息融合的水文资料图像分割[J]. 数据采集与处理,2016,31(1):94-101.

Li Shijin, Zhan Di, Gao Xiangtao, et al. Hydrological sheet color image segmentation based on gradient and color information[J]. Journal of Data Acquisition and Processing, 2016, 31(1): 94-101.

[14] Hast A. Simple filter design for first and second order derivatives by a double filtering approach [J]. Pattern Recognition Letters, 2014,42(1):65-71.

[15] Fleuret F, Geman D. Coarse-to-fine face detection [J]. International Journal of Computer Vision, 2001, 41(1/2): 85-107.

[16] 张新明,张贝,涂强. 广义概率Tsallis熵的快速多阈值图像分割[J]. 数据采集与处理,2016,31(3): 502-511.

Zhang Xinming, Zhang Bei, Tu Qiang. Fast multilevel thresholding for image segmentation based on generalized probability Tsallis entropy[J]. Journal of Data Acquisition and Processing, 2016,31(3): 502-511.

[17] 吴一全,孟天亮,吴诗婳.图像阈值分割方法研究进展20年(1994—2014)[J]. 数据采集与处理,2015,30(1): 1-23.

Wu Yiquan, Meng Tianliang, Wu Sihua. Research progress of image thresholding methods in Recent 20 years (1994—2014) [J]. Journal of Data Acquisition and Processing, 2015,30(1): 1-23.

[18] Nobuyuki O. A threshold selection method from gray-level histograms [J]. IEEE Trans Sys Man Cyber, 1979,9(1):62-66.

[19] Kahn P, Kitchen L, Riseman E M. A fast line finder for vision guided robot navigation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1990,12(11):1098-1102.

猜你喜欢

像素点梯度边缘
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
基于局部相似性的特征匹配筛选算法
一种自适应Dai-Liao共轭梯度法
一个具梯度项的p-Laplace 方程弱解的存在性
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一张图看懂边缘计算
在边缘寻找自我