APP下载

基于OpenCV的图像椭圆特征识别与定位研究

2017-01-16胡瑞钦张立建孟少华

计算机测量与控制 2016年12期
关键词:螺纹轮廓椭圆

胡瑞钦,张立建,孟少华

(1.北京卫星环境工程研究所,北京 100094; 2.北京市航天产品智能装配技术与装备工程技术研究中心,北京 100094)

基于OpenCV的图像椭圆特征识别与定位研究

胡瑞钦1,2,张立建1,2,孟少华1,2

(1.北京卫星环境工程研究所,北京 100094; 2.北京市航天产品智能装配技术与装备工程技术研究中心,北京 100094)

面向平板零件上螺纹孔的识别定位需求,基于开源计算机视觉库OpenCV进行椭圆特征的识别与定位研究;采用Canny边缘检测算法提取图像边缘信息,对边缘图像通过轮廓检索得到单一的连续轮廓,并对得到的每一条连续轮廓进行椭圆拟合;研究给出一种评价轮廓与所拟合椭圆误差的计算方法,以此误差为准则实现非椭圆特征的剔除;进一步针对螺纹孔形成的相套椭圆特征,采用聚类筛选的方法得到螺纹孔对应的内环椭圆特征,从而实现了板上螺纹孔的识别与定位。

椭圆识别;螺纹孔;目标筛选;图像处理

0 引言

圆形是各类物体上的常见特征,如机械结构上常见的轴和孔、用于辅助视觉测量的标志点等。由于拍照角度往往不垂直于圆形面,圆形目标物在经过相机成像后成为椭圆,对图像中的椭圆特征进行可靠的识别和定位,是对目标物进行测量定位的基础。

目前常用的椭圆检测算法主要由Hough变换法、最小二乘法等。Hough变换是常用的一种形状检测方法[1],常被应用于检测直线和圆[2-3]。也有研究将Hough变换用于椭圆检测[4-5],传统的Hough 变换需要将图像空间映射到参数空间进行五维统计,计算效率很低且精度不高[6]。由此,又出现了随机Hough 变换法[7],虽降低了计算量,但其性能随图像复杂度下降很快,且仍未很好的提高精度[8]。最小二乘法是在随机误差为正态分布时,可使测量误差的平方和最小,被视为从一组测量值中求出一组未知量的最可信赖的方法之一[9]。采用最小二乘法进行椭圆拟合,是通过全部或部分目标物体的边界信息,估计出椭圆方程参数,计算高效[10],在椭圆目标物具有完整边界的情况下,具有较高的拟合精度[8]。

OpenCV是Intel公司资助的开源计算机视觉库,由一系列C函数和少量C++类构成,)提供了丰富的图像及计算机视觉处理函数,在物体识别、运动跟踪、机器视觉等领域有广泛的应用。利用OpenCV进行图像处理并进行椭圆识别与定位,方便快捷,便于自动化系统的快速构件和开发。

现有的OpenCV给出了进行椭圆拟合的函数cvFitEllipse2(),该函数基于最小二乘法,对任意形状的轮廓均能给出与轮廓最相似的椭圆,但OpenCV没有给出拟合误差评估与椭圆筛选的函数,无法直接将椭圆特征与其他特征如方形、三角形进行区分识别。

本文面向平板零件上螺纹孔的识别定位需求,首先在图像中提取孔边缘的特征轮廓,而后利用cvFitEllipse2()函数对轮廓进行椭圆拟合,研究给出一种用于评价原有轮廓与所拟合椭圆间误差的计算方法,进而据此将非椭圆特征剔除,有效地实现椭圆特征的识别与定位。

1 椭圆识别定位流程

图1所示为一平板零件图像,需要在图像中识别出板上螺纹孔对应的椭圆特征,并给出圆心在图像中的位置。

图1 带有螺纹孔的平板照片 图2 图像处理流程

图像处理流程如图2所示,首先进行图像预处理,将彩色图像转换为灰度图像,并对图像进行平滑滤波,去除噪点;进一步通过边缘提取得到圆孔边缘对应的图像像素,而后进行轮廓检索,得到图像中所有的连续轮廓;对每一条连续轮廓进行椭圆拟合,得到椭圆大小、坐标等相关参数;最后计算原有轮廓与所拟合椭圆间的误差,将误差小于一定值的轮廓识别为椭圆,完成对椭圆特征的识别和定位。

2 椭圆识别定位实现

2.1 边缘提取

边缘为图像中灰度发生急剧变化的区域边界,边缘点能够给出目标轮廓的位置[11]。边缘检测是图像处理与理解的重要部分,最终的结果好坏对图像分析和图像理解有重要影响,边缘检测的本质是利用各种算法来得到图像中对象与背景之间的相交线[12]。常见的边缘检测算子有Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、LOG算子、Canny算子等[11]。

研究中边缘检测采用Canny算法。Canny算法具有很好的信噪比和检测精度,对含有白噪声的阶梯型边缘检测图像效果最好。Canny算法得到的边缘与真实边缘间的偏差很小,检测到的虚假边缘较少,漏检率较小。该算法的主要步骤包括:高斯平滑、梯度检测、沿梯度方向的非极大值抑制和双阈值边缘检测连接算法。Canny算法检测的边缘是闭合的、单像素宽的,能比较精确地定位图像中的边缘。

Canny边缘提取采用OpenCV中的Canny()函数实现,第一阈值设定为40,第二阈值设定为120,Sobel 算子内核大小设定为3,边缘提取结果如图3所示。

图3 Canny边缘提取结果

2.2 轮廓检索

图3所示的边缘图像包含了所有的边缘信息,直接进行椭圆拟合是对所有边缘像素信息整体进行椭圆拟合。若要识别出每个圆孔对应的椭圆特征,需要对图3中每一条连续的轮廓单独进行椭圆拟合,因此首先需要对图3中的轮廓进行检索。

在轮廓检索前,为增加轮廓的连续性,以尽量保证椭圆特征轮廓的完整性,对图3的边缘图像进行先“膨胀”再“腐蚀”的形态学运算,“膨胀”和“腐蚀”分别使用OpenCV提供的dilate()和erode()函数,“膨胀”和“腐蚀”均使用大小为3×3的结构元素。形态学运算后的结果如图4所示。

图4 形态学运算结果

对图4所示的二值图像进行轮廓检索,OpenCV中提供cvFindContours()函数用于从二值图像中检索轮廓,函数将检测到的轮廓逐一“编号”,可用于后续的椭圆拟合。对图4的二值图像进行轮廓检索的结果如图5所示,检索得到了所有的内轮廓及外轮廓。

图5 轮廓检索结果

2.3 椭圆拟合

对检索到的每一条轮廓进行椭圆拟合,使用OpenCV提供的cvFitEllipse2()函数,椭圆拟合结果如图6所示。cvFitEllipse2()函数返回椭圆长、短轴的像素长度(a,b),椭圆中心坐标(x0,y0),以及椭圆长轴相对于图像X轴的偏角θ0。由图6可见,对于每一条轮廓,均拟合得到了椭圆,后续进一步对圆孔边缘对应的椭圆进行筛选。

图6 椭圆拟合结果

2.4 椭圆筛选

为判断一条轮廓是否是椭圆,研究采用一种计算方法计算轮廓与椭圆间的误差,计算示意图如图7所示。

图7 椭圆拟合误差计算示意图 图8 椭圆参数方程示意图

对于轮廓上任意一点

P

2

,其在图像中的坐标为(

x

2

y

2

),计算其与椭圆中心

P

0

的距离:

(1)

将P2点与P0点连线,计算P0P2与图像X轴的偏角:

(2)

记P0P2连线与所拟合椭圆的交点为P1,则P0P1与图像X轴的偏角为:

θ1=θ2-θ0

(3)

椭圆参数方程如图8所示,由椭圆参数方程[13],椭圆上一点P的坐标为:

(4)

则图8中OP的长度为:

(5)

由椭圆的性质,易得到[13]:

(6)

式(6)代入式(5)可得到:

(7)

则图7中P0P1的长度为:

(8)

记图7中P2点偏离椭圆的误差为:

(9)

设一条轮廓有N个点,对每个点按式(9)计算偏离椭圆的误差δi(1≤i≤N),对N个误差δi求平均,得到该条轮廓偏离椭圆的误差为:

(10)

ε的值仅与轮廓的形状相关,而与轮廓的尺度无关,可用于进行椭圆特征的识别。对图6中拟合的椭圆进行初步筛选,筛选条件为轮廓误差ε≤0.2且椭圆短轴15≤b≤200,初步筛选结果如图9所示。由图9可见,在板上每个螺纹孔的对应位置,得到2个相套的椭圆,这一方面是由于相较于通孔,螺纹孔边缘不够突出明显,且板上的螺纹孔经过多次螺钉装拆,在孔周边造成了一定痕迹,相套椭圆中内环对应的椭圆才是螺纹孔的椭圆特征。

图9 初步椭圆筛选结果

图10 聚类椭圆筛选结果

为筛选出“内环椭圆”,对所有椭圆按中心位置进行聚类,将椭圆间中心距离小于一定数值的椭圆归为一类,在每一类中选择长轴数值较小的椭圆,即可得到“内环椭圆”。聚类筛选结果见图10,得到了板上螺纹孔对应的椭圆特征,其中图1中右下角的螺纹孔未得到识别,是由于孔周围磨损严重,磨损的边缘对识别造成了干扰。

3 结论

本文面向平板零件上螺纹孔的识别定位需求,基于OpenCV进行椭圆特征的识别与定位研究。采用OpenCV中Canny()函数得到图像边缘信息,对边缘图像利用cvFindContours()函数进行轮廓检索得到单一的连续轮廓,并对每一条连续轮廓利用cvFitEllipse2()函数进行椭圆拟合。

研究给出一种评价轮廓与所拟合椭圆误差的计算方法,该算法得到的拟合误差仅与轮廓的形状相关,而与轮廓的尺度无关,使用该算法成功实现了非椭圆特征的排除。针对螺纹孔形成的相套椭圆特征,对所有椭圆按中心位置进行聚类,将椭圆间中心距离小于一定数值的椭圆归为一类,在每一类中选择长轴数值较小的椭圆,得到螺纹孔对应的内环椭圆特征,从而实现了板上螺纹孔的识别与定位。

在后续工作中,需进一步针对不同条件、不同情况的板类零件进行研究,增强算法的适应性。

[1] Hough P V C. Methods and means for recognizing complex patterns[P]. US, 3069654,1962-12-18.

[2] Xu Z, Shin B S, Klette R. Closed form line-segment extraction using the Hough transform[J]. Pattern Recognition, 2015, 48(12):4012-4023.

[3] 叶 峰, 陈灿杰, 赖乙宗,等. 基于有序Hough变换的快速圆检测算法[J]. 光学精密工程, 2014, 22(4): 1105-1111.

[4] 袁 理, 叶 露, 贾建禄. 基于Hough变换的椭圆检测算法[J]. 中国光学与应用光学, 2010, 03(4): 379-384.

[5] 陆 路, 梁光明, 丁建文. 基于Hough变换的椭圆检测改进算法[J]. 现代电子技术, 2015, 38(16):92-94.

[6] 韩建栋, 杨红菊, 吕乃光. 视觉测量中椭圆自动检测与定位方法[J]. 计算机工程与应用, 2011, 47(17): 169-171.

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

[8] 冯军帅, 樊庆文, 王德麾,等. 一种运用自聚类方法优化椭圆图像识别的方法[J]. 电子测试, 2013(9): 19-23.

[9] 王万国, 王仕荣, 徐正飞,等. 基于边界的最小二乘椭圆拟合改进算法[J]. 计算机技术与发展, 2013(4): 67-70.

[10] 薛 程, 王士同. 一种新的不基于Hough变换的随机椭圆检测算法[J]. 微计算机信息, 2006, 22(1): 265-268.

[11] 董鸿燕. 边缘检测的若干技术研究[D]. 长沙: 国防科学技术大学, 2008.

[12] 贺 萌. 基于自适应形态学的边缘检测及应用[D]. 长沙: 中南大学, 2013.

[13] 曹智梅. 巧用参数方程加工椭圆曲线[J]. 南方金属, 2012(4): 44-46.

Study on Recognition and Localization of Ellipse Based on OpenCV

Hu Ruiqin1,2,Zhang Lijian1,2,Meng Shaohua1,2

(1.Beijing Institute of Spacecraft Environment Engineering, Beijing 100094, China; 2.Beijing Engineering Research Center of the Intelligent Assembly Technology and Equipment for Aerospace Product, Beijing 100094, China)

For the recognition and localization of threaded holes on flat plate parts, a study on recognition and localization of ellipse based on OpenCV has been done. The canny edge detecting algorithm is used to obtain the edge information in the image, the individual contours is obtained through contour retrieving, and a ellipse is obtained for each contour by ellipse-fitting. An algorithm for evaluating the ellipse fitting error is proposed, which can be used to eliminate the non-ellipse features. For the nested ellipses detected on threaded holes, a method of cluster analysis is used to obtain the inner ellipses, thus the recognition and localization of threaded holes is realized.

ellipse recognition; threaded hole; target extract; image processing

2016-07-18;

2016-08-03。

北京市科技创新基地培育与发展专项项目(Z151104001615076)。

胡瑞钦(1988-),男,内蒙古呼和浩特人,硕士,工程师,主要从事航天器装配领域自动化机电技术方向的研究。

1671-4598(2016)12-0116-03

10.16526/j.cnki.11-4762/tp.2016.12.033

TP391

A

猜你喜欢

螺纹轮廓椭圆
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
例谈椭圆的定义及其应用
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
一道椭圆试题的别样求法
螺纹铣刀
螺纹升角
高速公路主动发光轮廓标应用方案设计探讨
椭圆的三类切点弦的包络
连接管自动脱螺纹注塑模具设计