APP下载

模板匹配优化耦合图像校正的旋转工件目标定位算法*

2016-07-04胡明星王小兰2

组合机床与自动化加工技术 2016年6期
关键词:目标识别

胡明星,王小兰2

(1.华中师范大学武汉传媒学院,武汉 430205;2.华中科技大学 计算机科学与技术学院,武汉 430074)

模板匹配优化耦合图像校正的旋转工件目标定位算法*

胡明星1,王小兰2

(1.华中师范大学武汉传媒学院,武汉430205;2.华中科技大学 计算机科学与技术学院,武汉430074)

摘要:为了解决当前工件定位算法难以有效识别带有旋转角度的目标,且计算复杂度大等不足,文章设计了基于Canny检测与SIFT特征的旋转工件目标识别算法。首先,对采集工件图像的RGB三通道完成权重分配,获取灰度化图像;并利用Canny边缘检测和霍夫直线检测处理灰度图像,计算出工件旋转角度;并基于几何变换,定义图像校正模型,消除工件旋转角度,对其完成复位处理,并采用模板匹配在图像中定位工件。最后分别提取模板工件与待识别工件的SIFT特征,计算欧式距离,以度量相似性,完成工件目标识别。实验数据显示:与当前识别算法相比,在面对带有旋转角度工件时,文中工件目标识别算法具备更高的准确性和鲁棒性。

关键词:霍夫变换;几何变换;SIFT;模板匹配;目标识别

0引言

近几年来,计算机视觉,这个以图像处理算法与软件编程为基础的多学科技术,越来越多的应用于工业领域中的目标定位。而在工业领域中离不开各种工件的制造、传送、组装,在这些过程中,都需要用到工件目标定位,能否对工件进行准确定位,直接影响制造质量[1-2]。以往采用人眼定位工件位置,操作设备作业工件,此种方法不但效率低下,而且成本较高。对此,研究人员于提出了计算机视觉技术,代替人眼定位工件,把数据传输给设备,不仅精度高,而且效率也明显提高[3-4]。

目前有一些基于图像处理算法的视觉技术用于工件目标定位,并取得了一定成果。如杨萌等[5]先基于目标模板遍历图像查找目标位置,然后分别提取目标特征与模板特征,进行距离比较,最后确定目标位置。如赵君爱等[6]先基于灰度图像分割得到二值图像,然后逐个提取轮廓的几何特征,最后与先验标准进行对比,从而确定目标位置。

虽然上述工件定位技术用于不带有旋转的工件时,具有良好的识别质量;但是在实际情况中,待定位的工件往往是带有旋转角度的,而上述方法对于角度没有很好的耦合性,使其定位精度欠佳。

对此,有学者对模板定位方法进行了改进,如余旺盛等人[7]为了解决旋转目标跟踪问题,提出了基于旋转不变直方图的快速匹配穷搜索,并通过基于双圆定位的旋转不变直方图对目标进行了准确的定位和旋转校正,从而提高了工件定位精度,但是该算法需要依赖双圆形定位,其圆的半径、双圆位置的确定是比较局限的,且容易丢失部分细节特征,使其直方图存在失真,继而使其精度有待进一步提高。

对此,本文以提高对旋转工件定位的精度与效率为目标,提出了基于Canny检测与SIFT特征的旋转工件目标识别算法。并测试了本文算法的工件定位精度。

1本文旋转工件定位算法设计

本文对带有旋转角度的工件目标完成定位,主要分为角度测量、图像校正、目标定位、特征匹配。因工件旋转角度为工件边缘与图像宽边夹角,而边缘与图像宽边都为直线。因此,基于Canny边缘检测与霍夫变换查找直线,计算旋转角度。再获取旋转角度后,采用图像几何变换算法,对图像进行校正,使工件目标无角度旋转。然后基于模板,遍历图像,定位出疑似工件目标的位置,并提取出SIFT描述算子,计算出疑似工件与模板的SIFT描述算子欧式距离,测量出相似度,进行定性判断,从而完成带旋转角度的工件目标定位。本文算法的流程见图1。

图1 系统架构图

1.1旋转角度计算与图像校正

由于采集到的工件图像往往存在一定的旋转,见图2。为此,本文采用先对其完成图像校正,再定位目标。首先将图像灰度化,为边缘检测做好准备。本文采用黑白相机取像,由于其数据通道为RGB三通道,计算量大,故对其完成灰度处理,转换成单通道,提高系统效率。为了更好地符合人眼特性,本文对采集图像RGB三通道的权重进行分配,得到加权灰度化模型:

gray(x,y)=0.299R(x,y)+0.587G(x,y)+

0.114B(x,y)

(1)

其中,gray(x,y)为图像坐标(x,y)处的灰度值;R(x,y)为红色通道(x,y)处的亮度值;G(x,y)为绿色通道(x,y)处的亮度值;B(x,y)为蓝色通道(x,y)处的亮度值。

经模型(1)处理后的灰度图像,见图2,其工件目标带有明显的旋转角度。

图2 灰度化工件图像

随后,采用Canny边缘检测处理灰度图像。首先,进行二维高斯滤波去噪:

(2)

式中K为高斯滤波,δ为高斯核。

完成滤波后,用X、Y方向Canny算子进行一阶有限差分处理,求灰度值梯度。其中X与Y方向的Canny算子为:

(3)

(4)

计算X,Y一阶偏导矩阵,如式(5)、(6)所示。

(5)

(6)

式中P为X方向一阶偏导矩阵,Q为X方向一阶偏导矩阵,f为图像矩阵。

(7)

θ[i,j]=arctan(Q(i,j)/P(i,j))

(8)

式中M为幅值矩阵,θ为方向矩阵。

图3 边缘检测图像

经过边缘检测处理得到二值图轮廓后,再引入霍夫变换[8],查找直线,以计算出直线与水平面的夹角,即工件目标旋转角度。本文基于OpenCV图像库函数cvHoughLines2实现基于霍夫的直线检测,结果见图4。从下图中可知,图像中的直线北精确检测出来,所有直线与工件目标水平线平行。

图4 霍夫直线检测图像

得到目标旋转角度后,再进行图像几何变换,即图像校正。校正模型为:

(9)

式中W0、H0为原图宽高;Wn、Hn为新图宽高;a为旋转角度;x,y为新图坐标;x0,y0为原图坐标。

经模型(5)校正后的图像见图5。从图中可知,经过模型(5)处理后,有效消除了旋转角度,为后续图像定位提供良好的基础。

图5 校正后的工件图像

部分关键代码:

IplImage*gray=cvCreateImage(cvGetSize(image),8,1);

cvCvtColor(image,gray,CV_BGR2GRAY);

cvCanny(gray,gray,200,250,3);

CvMemStorage*storage=cvCreateMemStorage(0);

CvSeq*Lines=NULL;

int max=0;

double angle=0.0;

for(int i=0;itotal;i++)

{

CvPoint*line=(CvPoint*)cvGetSeqElem(Lines,i);

if((line(0).x-line(1).x)*(line(0).x-line(1).x)+(line(0).y-line(1).y)*(line(0).y-line(1).y)>max){

max=(line(0).x-line(1).x)*(line(0).x-line(1).x)+(line(0).y-line(1).y)*(line(0).y-line(1).y);

angle=atan((double)(line(0).y-line(1).y)/(double)(line(0).x-line(1).x))*180/3.14;}

cvLine(image,line(0),line(1),CV_RGB(255,0,0),3,8);

}

rotateImage(image,image,angle);

void rotateImage(IplImage*img,IplImage*img_rotate,int degree){

CvPoint2D32f center;

center.x=float(img->width/2.0+0.5);

center.y=float(img->height/2.0+0.5);

float m(6);

CvMat M=cvMat(2,3,CV_32F,m);

cv2DRotationMatrix(center,degree,1,&M);

cvWarpAffine(img,img_rotate,&M,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,cvScalar(0));}

1.2目标定位与特征分析

得到校正图像后,使得目标不带旋转角度。接下来,本文利用模板匹配定位(9)的方法查找目标。本文同样基于OpenCV函数cvMatchTemplate实现,以比较图像目标与模板图像的平方差。该值越小,表明检测到的目标与模板越接近。大致步骤为:

(1)是先截取一个标准工件目标图像作为模板;

(2)然后在待处理图像中,以模板图像大小,进行逐个像素遍历,计算平方差,并记录;

(3)遍历完成后,以平方差最小处的坐标定位工件位置,从而完成目标定位。

为了进一步提高定位精度,本文引入SIFT特征描述算子[10],确认目标是否准确。SIFT特征描述算子具有方向、大小、对比度无关性,即不敏感性。基于多维空间变换下的高斯滤波[11],分别提取模板图像与检测目标的SIFT特征描述算子,以计算欧式距离,取相似度最高处坐标为检测定位结果。SIFT特征描述算子由位置特征因子、方向特征因子组成:

m(x,y)=

(10)

(11)

其中,m为位置特征因子;θ为方向特征因子。最后的定位质量见图6。依图可知,精确定位出了图像中间的矩形工件目标。

图6 定位图像

部分关键代码:

IplImage*src2,*temp1,*ftmp,*ROI;

src2=cvCreateImage(cvGetSize(image),8,3);

cvCopy(image,src2,NULL);

cvResetImageROI(image);

temp1=cvLoadImage("D:match.bmp");

int iwidth=src2->width-temp1->width+1;

int iheight=src2->height-temp1->height+1;

ftmp=cvCreateImage(cvSize(iwidth,iheight),32,1);

double min_val;

double max_val;

CvPoint min_loc;

CvPoint max_loc;

cvMatchTemplate(src2,temp1,ftmp,0);

cvMinMaxLoc(ftmp,&min_val,&max_val,&min_loc,&max_loc,NULL);

cvSetImageROI(image,cvRect(image->width/8+min_loc.x,image->height/8+min_loc.y,temp1->width,temp1->height));

ROI=cvCreateImage(cvGetSize(image),8,3);

cvCopy(image,ROI,NULL);

cvResetImageROI(image);

m_CvvImage.CopyOf(image,1);

m_CvvImage.DrawToHDC(hDC,&rect);

2实验与讨论

为了直观体现本文算法的旋转工件定位效果,在VS2013平台上基于C++语言编程实现。仿真条件为Windows7系统。部分关键实验参数:Canny高阈值为200,低阈值为50,霍夫线段长为200。同时,为了体现所提技术的先进性,将当前定位性能较好地算法视为对照组:文献[5]与文献[7]。

取一张旋转角度较明显的工件图像,见图7。再利用所提算法与对照组技术对其完成定位,结果见图8~图11。依图可知,本文算法消除了旋转角度,见图8,精确定位出了目标,见图9;文献[7]虽然能识别目标,但其定位精度不高,没有准确识别目标位置,存在误差,见图11。而文献[5]的精度最差,定位失败,无法精确识别目标,见图10。原因是本文算法对旋转工件进行了几何变换校正,有效消除角度,并在模板匹配定位中引入SIFT特征描述子,优化定位结果。而文献[7]算法是通过双圆定位,在确定其圆半径与双圆位置时,丢失了诸多细节特征,使其精度不高。而文献[5]算法没有对旋转工件完成校正,使其定位失败。

图7 具有旋转角度的工件图像

图8 本文算法的校正图像

图9 本文算法的定位结果

图10 文献[5]的定位结果

图11 文献[7]的定位效果

为了比较两种算法的效率,挑选了100图像进行处理,由于本文先校正后定位,只需一次图像遍历即可完成定位搜索,而文献[5]采用较多角度的模板图像,故必须逐一模板进行遍历,文献[7]需要对目标模板的全局最优穷搜索,其复杂度仍然较高。故对照组的运算效率远远不如本文算法。最终统计以时间为标准,本文算法消耗时间为26s;而文献[7]、文献[5]的算法消耗时间分别为66s、149s。

3结论

为了解决工件旋转目标定位的精度与效率问题,本文提出并实现了一个Canny检测与SIFT特征的旋转工件目标识别算法。本文算法彻底避开了当前的定位思想:先定位后校正分析的方式。而所提技术是先测量旋转角度并校正图像,后定位分析的方式,不但提高了精度,也改善了效率。实验验证结果表明:在面对带有旋转角度工件定位时,本文算法拥有更好的自适应性,且具有更高的定位精度与效率。

[参考文献]

[1] 沈霞.工件装配基准端的形状识别研究[J].现代制造工程,2015,37(2):117-120.

[2] Trinidad Pérez-Palacios,Daniel Caballero,Andrés Caro.Applying data mining and Computer Vision Techniques to MRI to estimate quality traits in Iberian hams[J].Journal of Food Engineering, 2014,131(7);82-88.

[3] 张亚荣,裴志利.OpenCV耦合三目视觉的标准件目标定位研究与应用[J].组合机床与自动化加工技术,2015(1):67-70.

[4] 张智丰,张亚荣,裴志利.OpenCV 耦合人机交互的手机表面目标检测定位研究[J].组合机床与自动化加工技术,2015(3):67-70.

[5] 杨萌.基于机器视觉的工件特征识别与分类方法研究[J].无线互联科技,2014,23(17):96-99.

[6] 赵君爱.工件表面微小缺陷的检测与识别方法[J].东南大学学报(自然科学版),2014,73(2):371-376.

[7] 余旺盛,侯志强,田孝华.基于旋转不变直方图的快速匹配穷搜索[J].电子学报,2012,40(11):2177-2182.

[8] 魏弦.基于3D视觉识别的工件姿态研究[J].煤矿机械,2013,13(21):31-36.

[9] Jisung Yoo,Sung Soo Hwang, Seong Dae Kim.Scale-Invariant Template Matching using Histogram of Dominant Gradients[J].Pattern Recognition,2014,47(9):3006-3018.

[10] Jing-neng Liu,Gui-hua Zeng.Improved global context descriptor for describing interest regions[J].Journal of Shanghai Jiaotong University (Science), 2012,17(2):147-152.

[11] Roaldje Nadjiasngar,Michael Inggs.Gauss-Newton filtering incorporating Levenberg-Marquardt methods for tracking[J].Digital Signal Processing,2013,23(5):1662-1667.

(编辑赵蓉)

The Research and Application on the Rotary Workpiece Recognition Based on Canny Detect and SIFT Features

HU Ming-xing1,WANG Xiao-lan2

(1.Wuhan Media and Communications College of Huazhong Normal University, Wuhan 430205,China;2.College of Computer Science and Technology,Huazhong University of Science and Technology,Wuhan 430205,China)

Abstract:Industry in the field of vision,it is necessary to identify all kinds of artifacts with rotation Angle,and at present most there is larger error recognition algorithm.With rotation Angle in order to improve the recognition rate of work piece,this paper puts forward a set of based on hough transform and the rotation of the SIFT features of target recognition system, and the program implementation.First using Canny edge detection and Hough straight line detection, the gray image processing, calculation work a rotation Angle.Then based on the geometric transform correction work piece Angle,and USES the template matching positioning the work piece in the image.Finally respectively extracted template SIFT features of work piece and to identify the artifacts,calculate the Euclidean distance,similarity measure,complete work piece target recognition.Verified by the experiment,this article artifacts the accuracy and robustness of target recognition algorithm is superior to the common algorithm,and meet the requirements of practical engineering.

Key words:hough transform; geometric transformation; SIFT; template matching; target recognition

文章编号:1001-2265(2016)06-0035-04

DOI:10.13462/j.cnki.mmtamt.2016.06.009

收稿日期:2015-10-21

*基金项目:国家自然科学基金项目(60673010);湖北省教育厅项目(D201118007)

作者简介:胡明星(1980—),女,武汉人,华中师范大学武汉传媒学院讲师,硕士,研究方向为计算机应用、目标识别,(E-mail)humxing02580@sina.com。

中图分类号:TH161;TG506

文献标识码:A

猜你喜欢

目标识别
基于偏振数字图像的特征提取及处理方法研究
一种BCI与SAR融合的目标检测系统设计
Java数字音频识别程序
渡口水域安全监管技术研究
渡口水域安全监管技术研究
全自动模拟目标搜救系统的设计与实现
动态场景中的视觉目标识别方法分析
基于PC的视觉解决方案在 Delta机器人抓放中的应用
移动机器人图像目标识别
基于动态模糊积分的决策层融合识别算法