刘 哲,唐立新
(华中科技大学 机械科学与工程学院,湖北 武汉 430073)
机械零件的视觉识别技术对提高制造过程中的检测、装配、分拣、入库的自动化程度有着十分重要的意义[1]。在工业生产中,工件分拣是关键环节之一,其准确率和速度对整条生产线有着直接的影响。工件的识别与定位是分拣工作的核心。传统的工件分拣有人工分拣和机器分拣两种方式。人工分拣是工人用眼睛完成对工件的识别与定位,进而进行分拣工作,这种方式工作效率低下且难以保证工作质量。机器分拣多采用工业机器人实现,需将工件位置和机器人动作进行严格的预先设定,因而难以实现智能化,大大限制了机器人的应用。将机器视觉技术应用到工业机器人分拣系统中,利用视觉识别技术完成对工件的识别与定位,可以很好地弥补传统机器人工件分拣方式的不足。
本文将讨论基于视觉的螺柱分拣问题,为了实现对不同类型螺柱的自动识别与定位,提出了一种基于特征匹配的螺柱视觉识别方法,利用该方法可完成视场范围内任意位置、无遮挡场景下螺柱的自动识别与定位。
螺柱视觉识别系统的结构框图如图1所示。系统工作过程分为训练阶段和识别阶段。在训练阶段中,将不同类型的螺柱作为训练样本输入,经过预处理和图像分割后,进行特征选择和提取,构造特征向量并将其保存至特征库。在识别阶段,经过对待识别图像进行预处理,将图像中的螺柱逐个进行分割;然后提取螺柱特征和位姿信息,将提取到的特征与特征库中的特征信息进行匹配,对螺柱进行分类;最后输出匹配结果和位姿信息,以供分拣机构完成螺柱分拣。
图1 螺柱视觉识别系统框图
螺柱样本特征库用于存储不同类型螺柱样本的特征信息。建立样本特征库的过程如下:采集螺柱样本图像,对图像进行预处理和边缘检测;根据边缘判断螺柱倾斜角度范围,选择合适的图像分割方法,确定原图像中螺柱最小外接四边形的4个顶点坐标;对螺柱样本进行特征提取和选择,将提取到的特征向量存储至样本特征库。
图像预处理[2]的目的是平滑螺柱边缘,以便于进行特征选择和提取工作。图像预处理过程包括3个步骤[3]:图像缩小、图像二值化和二值闭运算。第一步利用双线性插值法[4]将图像缩小至原图像的0.25倍,以提高图像处理速度,并平滑螺柱边缘;第二、三步分别进行图像二值化与二值闭运算,对螺柱的螺纹状边缘作进一步平滑处理,使之趋近于一条直线,便于螺柱区域图像分割。
在螺柱边缘的提取中,采用改进的Canny算子实现,对Canny算子的改进主要是加入了边缘细化环节,以提取到足够平滑的单像素边缘。
判断螺柱倾斜角度θ的取值范围,当0°≤θ<45°或135°<θ≤180°时,采用基于列扫描的图像分割算法;当45°≤θ≤135°时,采用基于行扫描的图像分割算法完成螺柱图像分割。
特征选择指从已有的M个特征中选择N个特征,使得系统的特定指标最优化[5,6],将最终选择和提取的特征描述量构成如下特征向量:
其中:x1为螺柱螺纹类型标记量,值取为0或1,0代表普通双头螺柱,1代表全螺纹螺柱;x2为螺柱总长度L;x3为螺柱公称直径d;x4为旋入机体端螺纹段长度b1;x5为旋入螺母端螺纹段长度b2。
样本图像特征提取算法与识别阶段中特征提取算法相同,完成特征提取工作之后,将提取到的特征向量以文本格式存储至特征库。
螺柱识别与定位流程如下:首先,对采集到的待识别图像进行预处理,提取目标边缘;其次,分别用基于行扫描的图像分割方法和基于列扫描的图像分割方法对螺柱逐个进行分割,同时确定螺柱的位姿信息;最后,对分割出的螺柱进行特征提取,并与样本特征库中的螺柱样本特征进行匹配,确定螺柱类型,输出结果。
为确定螺柱类型,需提取图像中螺柱的外边缘轮廓,即目标边缘。边缘提取包含两个步骤:利用改进的Canny算子提取边缘和保留外轮廓目标边缘。由Canny算子提取的边缘既包括外轮廓目标边缘,又包括部分螺柱内部螺纹边缘,一般外轮廓边缘为连续封闭边缘,而内部边缘为断续短边缘。因此,可采用以下方法去除螺柱内部边缘:首先,跟踪并统计边缘图像中每段边缘线所包含的像素总数;然后,设定一个阈值,将像素总数小于阈值的边缘线作为螺柱内部边缘去除;最后,保留下来的像素总数大于阈值的边缘线便是目标边缘。
在待识别图像中,用每个螺柱的最小外接矩形分割螺柱,并根据最小外接矩形的中心确定螺柱的中心位置,由矩形长边的斜率确定螺柱的倾斜角度。基于行扫描的图像分割方法和基于列扫描的图像分割方法原理相同,下面以基于行扫描的螺柱图像分割方法为例进行说明,其具体步骤如下:
(1)将目标边缘图像在竖直方向上m等分,循环进行m-1次行扫描,搜索并分别保存每一条行扫描线与边缘线的交点(边缘像素点),将交点标记为P[i][j](i=0,1,…,m-2;j=0,1,…,n-1;n为每条行扫描线上的交点总数)。
图2 螺柱图像分割示意图
(3)求校正后的中心线MN。设点P[i][2t+1],A,B的坐标分别为(x2t+1,y2t+1)、(xA,yA)和(xB,xB),且yA<yB。令Δy=yB-yA,在点A和B之间以Δy/5为间隔再次进行行扫描,若(yB-y2t+1)>(y2t+1-yA),则自上而下扫描;反之,则自下而上扫描。当得到新行扫描线与螺柱两螺纹边缘线的交点为Pl1和Pl2时,停止扫描。在点Pl1所在边缘线上找到距点Pl2最近的边缘像素点Pst2,Pst2Pl2中点为Pm2,求Pm1Pm2与螺柱两端边缘的交点M和N,则MN即为螺柱校正后的中心线。
(4)求出螺柱最小外接矩形的4个顶点坐标,同时确定螺柱的倾斜角度和中心位置坐标。螺柱最小外接矩形的两长边所在直线斜率应与中心线MN斜率k相等。过点M和N分别作两直线的垂线,垂足分别为PLD和PRD、PLU和PRU。显然,点PLD,PRD,PLU和PRU即为螺柱最小外接矩形的4个顶点,螺柱的倾斜角度θ=tan-1k,螺柱的中心位置即为中心线MN的中点。
图像预处理过程中,将待识别图像缩小到了原图像的0.25倍。因此,待识别图像中螺柱最小外接矩形的4个顶点坐标是PLD,PRD,PLU和PRU坐标的4倍。特征提取需在待识别图像中进行,具体步骤如下:
(1)利用改进的Canny算子提取螺柱矩形区域图像边缘,并进行倾斜校正[7],然后二值化,最后根据螺柱最小外接矩形4个顶点得到倾斜校正后的螺柱边缘图像,如图3(a)所示。对螺柱图像边缘进行扫描取点,只保留螺柱两螺纹边缘上的目标边缘像素点,结果如图3(b)所示。
(2)确定螺柱螺纹类型。分别检测图3(b)中螺柱上边缘的y坐标极大值点和螺柱下边缘的y坐标极小值点。分析y坐标极值点中是否存在光杆部分端点PLD,PRD,PLU和PRU,若存在,则为普通双头螺柱;若不存在,则为全螺纹螺柱。
(3)计算螺柱公称直径d。采用RANSAC算法[8]分别对螺柱上、下边缘的y坐标极值点进行直线拟合,拟合结果如图3(c)所示。计算两直线之间的距离,该距离即为螺柱公称直径。
(4)计算螺柱总长度L,螺柱两段螺纹长度b1和b2。由图2可知,螺柱中心线MN等于螺柱总长度L。若螺柱类型为全螺纹螺柱,则b1=b2=0;若为普通双头螺柱,设Pn1,Pn2,Pnr1和Pnr2的x坐标分别为xn1,xn2,xnr1和xnr2,且b1,b2分别为如图3(c)所示的左、右两段螺纹长度,则b1=(xn1+xnr1)/2,b2=(2L-xn2-xnr2)/2。
(5)将提取到的特征值表示为特征向量:
其中:y1为螺柱类型标记量;y2为螺柱总长度L;y3为螺柱公称直径d;y4为螺纹段长度d1;y5为螺纹段长度d2。
图3 特征提取中关键处理说明
计算待识别螺柱的特征向量Y与特征库中的样本特征向量Xr(r=1,2,…,w;w为特征库中样本总数)之间的相似性度量,首先根据y1与xr1是否相等,判断待识别螺柱与样本Xr类型是否相同,若不同,则跳过该样本;若相同,则计算特征向量之间的欧氏距离:
由于不确定螺纹长度y4和y5与旋入机体端和旋入螺母端螺纹长度x4和x5之间的对应关系,需将y4和y5交换位置后再计算一次,取两次的较小值作为dr的值。当欧氏距离dr值为最小时,其对应的样本Xr即为待识别螺柱的类型。
为了验证以上算法的正确性,建立了螺柱视觉识别与定位实验系统。系统硬件包括光源、摄像机、镜头、图像采集卡和计算机。其中,摄像机的图像分辨率为2 048×1 536像素,镜头焦距为8mm,计算机配置为Inter Core i5处理器,主频2.26GHz,内存2GB,64位Windows 7操作系统。系统软件分为两大模块:训练模块和识别模块,用Microsoft Visual Studio 2008开发,操作界面如图4所示。实验中,相机工作距离为200mm。在训练阶段,将11种不同类型的螺柱作为训练样本进行输入,建立样本特征库。在识别阶段,处理的待识别图像均包含任意位置、无遮挡场景下的11种不同类型螺柱。对一幅待识别图像的平均处理时间为1.9s,待识别图像中螺柱的识别正确率平均为92.8%。
图4 系统操作界面
该螺柱视觉识别方法采用基于特征匹配的思想,完成了对任意位置、无遮挡场景下螺柱的识别与定位。在图像识别过程中,图像分割效果的好坏直接影响最终的识别效果,本方法根据螺柱的形状特点,采用基于行扫描和基于列扫描的图像分割方法很好地完成了螺柱图像分割工作,对提高识别计算速度和识别正确率起到了关键作用。实验证明本文提出的螺柱视觉识别方法是可行有效的,具有一定的理论价值和实用价值。
[1]张道德.机械零件图像识别的关键技术研究与实现[D].武汉:华中科技大学,2008:10-13.
[2]章毓晋.图像工程(上册)—图像处理[M].北京:清华大学出版社,2006.
[3]冈萨雷斯.数字图像处理[M].阮秋琦,阮宇智,译.北京:电子工业出版社,2003.
[4]Mastylo M.Bilinear interpolation theorems and applications[J].Journal of Functional Analysis,2013,265(2):185-207.
[5]王植,贺赛先.一种基于Canny理论的自适应边缘检测方法[J].中国图像图形学报,2004(8):65-70.
[6]姚旭,王晓丹,张玉玺,等.特征选择方法综述[J].控制与决策,2012,27(2):161-166.
[7]谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2008.
[8]Richard H,Andrew Z.Multiple view geometry in computer vision[M].2rd ed.Cambridge:The Press Syndicate of the University of Cambridge,2003.