宋韶辉,蒋佳佳,段发阶
(天津大学 精密测试技术及仪器国家重点实验室,天津300072)
近年来,视觉测量技术因可以快速准确地实现非接触测量被大量应用到航天、高精尖设备仪器制造等领域[1-3]。测量者常在被测对象上制作圆标记点,通过定位标记中心来实现被测物体定位[4]。因此,圆标记中心定位精度直接影响整个测量系统的精度,研究如何提高圆标记中心定位精度具有十分重要的意义[5]。
常用的圆标记中心定位方法有形心法、Hough变换和最小二乘曲线拟合法。形心法要求图像灰度分布均匀,对标记点质量要求较高;Hough 变换法计算开销较大;最小二乘曲线拟合法因实现简单且计算量小,得到广泛应用[6]。由于最小二乘拟合法运用边缘点拟合中心,所以边缘定位精度直接影响了圆心定位的精度[7]。为提高定位精度,学者们提出了多种亚像素边缘检测算法,如文献[8]用空间矩来检测边缘,可以得到较精确的亚像素边缘但计算量较大,文献[9-10]提出利用Zernike 矩来进行边缘检测,但由于人工选择阈值,效率不高且极易误判,文献[11]采用梯度质心法进行圆标记亚像素边缘定位,需确定边缘的梯度方向和边缘区域求出高精度边缘点。传统的梯度质心法在确定圆标记边缘梯度方向时根据像素级边缘点的横纵分量的比值,易受噪声影响,进而影响中心定位精度。
针对上述边缘梯度方向确定中遇到的问题,本文运用径向截面扫描法[12],以圆标记点径向表示边缘梯度方向;同时对传统大津法进行改进,根据粗拟合圆心和半径划定大津法计算区域,得到准确的边缘区域,进而高精度地实现圆标记点中心定位。
圆标记中心定位算法步骤[13]:像素级边缘定位、亚像素级边缘定位、中心定位。像素级边缘定位算法对噪声较为敏感,但进行降噪处理会使得边缘信息部分丢失,如图1 所示,在降噪后边缘梯度峰值下降且偏移。因此本文对定位算法流程进行改进,运用粗定位坐标直接在原始图像上的边缘区域内进行亚像素边缘搜索,有效地避免了平滑降噪处理造成的边缘梯度信息的损失,具体流程如图2 所示。
图1 边缘径向截面梯度幅值曲线Fig.1 Edge radial section gradient amplitude curve
图2 改进的分步圆心定位算法流程Fig.2 Center of the circle algorithm flow chart
本文运用Canny 算法进行像素级边缘的粗定位,Canny 算法[14]是基于边缘检测最优准则的一种像素级边缘检测算法,双阈值的设置可有效地滤除噪声和减少边缘误判。
利用得到的像素级粗定边缘拟合出椭圆方程,对于平面椭圆的一般方程有:
运用最小二乘法拟合可得到参数B、C、D、E、F,即可得到粗定中心(x0,y0):
利用梯度进行亚像素边缘提取的一个重要的前提是要确定边缘梯度方向。本文采用径向截面扫描确定边缘梯度。如图3 所示,各径向截面上的梯度呈类高斯分布,如图4 所示,在圆周上等间隔地拟合得到对应边缘点的径向截面,在径向截面上提取亚像素边缘点作为圆周点做最小二乘拟合,即可求得精确的标记点中心[12]。每一边缘像素点对应径向的直线方程由粗定圆心与粗定边缘点拟合得到:
式中:(x0,y0)为粗定圆心坐标;(xre,yre)为粗定边缘点坐标。
图3 标记点边缘梯度幅值径向截面示意图Fig.3 Schematic diagram of radial section of gradient amplitude of marking point edge
图4 径向截面扫描法原理图Fig.4 Schematic diagram of radial section scanning method
在标记点径向上以粗定边缘点为中心在两侧运用双线插值法,以0.1 像元为步长插值得到径向梯度分布。如图3 所示,边缘梯度区域内的梯度幅值大于其他区域,因此可以通过阈值过滤来确定边缘区域并排除噪声干扰。
本文基于大津法进行边缘阈值确定。大津法[15]的判定准则为边缘区域和背景区域的类间方差,取得最大类间方差时T 为最佳阈值。设N 个像素点的图像中,梯度幅值为i 的像素点个数为ni。则梯度幅值i 出现的概率为Pi=ni/N。阈值t 将图像划分为边缘与非边缘两类,出现的概率分别为与均值分别为平均梯度幅值为,则可以得到两类的类间方差:
运用大津法计算标记点边缘阈值时,非标记点区域像素数量变化会使得阈值不稳定,由于曝光不均匀等问题,每个标记点成像质量不尽相同。因此本文对传统大津法进行改进,如图5 所示,通过每个标记点的粗拟合椭圆得出长轴R,在以粗定中心(x0,y0)为中心,以4R 为边长的正方形区域内进行大津法阈值确定,得到每个标记点稳定准确的梯度阈值。
图5 改进的区域大津法作用的区域Fig.5 Improved area of Otsu algorithm
将径向上的梯度幅值经过阈值过滤后得到许多连续的片段,取包含粗定边缘的连续区域E 得到径向边缘区域, 利用区域内梯度值作为补充信息,采用梯度质心法可以确定亚像素级边缘[11]。以梯度幅值为权值求质心可得亚像素边缘坐标,有:
式中:(xe,ye) 为亚像素边缘点;Gxi和Gyi分别为点(xi,yi)在x 方向和y 方向的梯度幅值。
2.1.1 仿真标记点生成
本文采用基于高斯金字塔分解的方法来生成仿真圆标记点图像,高斯金字塔分解是对图像进行的一系列低通抽样滤波。如图6 所示采样过程,设处理前原图像为W0,将W0代入递推公式(7)中得到图像W1,该运算相当于对图像先进行5×5 的高斯滤波后再进行间隔抽样, 如此迭代获得图像集合{W0,W1,W2,…}称为高斯金字塔。第k 阶图像W0的每个像素点都有递推公式:
式中:ω(m,n)为高斯生成核;wk(i,j)为Wk上像素点。
图6 高斯金字塔采样过程Fig.6 Gaussian pyramid sampling process
生成仿真标记点具体流程如下:
(1)生成一张高分辨率的圆形标记点图片W0,标记点直径为D;
(2)采用Canny 算法得到边缘坐标,拟合得到标记点中心(x0,y0),定位精度为0.1 像元[11];
(3)运用高斯金字塔分解得到Wn,图像尺寸缩小为W0的,Wn上的标记点(x0n,y0n)为
2.1.2 仿真实验结果及分析
按照2.1.1 节的流程,对6400×6400 像素图像处理得到200×200 像素图像,得到仿真标记点如图7 所示。此时用来作为标准中心点坐标的最大误差为0.0031 像元,在此实验中可以忽略。得到的中心定位结果如表1 所示。
图7 仿真圆标记图像Fig.7 Image of simulated circle marker
设x 方向的偏差为dx,y 方向的偏差为dy,则总偏差为计算可得本算法最大总偏差为0.012 像元, 且本算法在标记点直径较小的情况下仍能保持良好的定位精度。
表1 仿真圆标记定位偏差(像元)结果Tab.1 Simulate the result of the positioning deviation(pixel) of the circle mark
根据文献[5]中的方法,选取不同直径的3 个标记点,保持拍摄设备与标记点静止,连续拍摄50 幅图像,计算标记点中心定位坐标的标准差,拍摄过程中由于空气扰动,曝光时间等原因,等同于对标记点添加了不同的噪声,其标准差可有效地反应算法的抗噪能力和定位精度。结果如表2 所示。
设x 方向的标准差为δx,y 方向的标准差为δy,δx则总标准差为。经计算,本文算法最大总标准差为0.0198 像元,与仿真圆标记点仿真实验得出结果一致,定位精度优于0.02 像元。
表2 实际标记点拟合标准差(像元)结果Tab.2 Actual markers fit the standard deviation(pixel) results
本文提出了一种高精度提取视觉测量系统中圆标记点中心坐标的方法。该算法以过边缘点的圆标记径向作为该点的梯度方向,保证了边缘梯度方向的准确性;改进了传统的大津法,根据标记点的粗定圆心和半径划定了大津法的计算区域,解决了非标记点区域大小变化时大津法阈值不稳定的问题,得到高精度的标记点中心。经仿真实验和实际图像验证均可以达到0.02 像元的圆心定位精度,为视觉测量系统提供了的高精度的位置参数。