非结构化环境下的高精密靶球中心提取方法与流程

文档序号:12964695阅读:324来源:国知局
非结构化环境下的高精密靶球中心提取方法与流程

本发明属于双目视觉技术领域,涉及了一种在非结构化环境下的高精密靶球中心提取方法。



背景技术:

由于球体具有从任何视角观察其几何特征均不发生改变的优势,球体作为常用的靶标已广泛运用在机器视觉标定,特征识别等多个领域。为获得更好的标定精度,往往会构建封闭式环境和构建稳定光源系统,形成光照均匀的结构化环境,便于对高精密靶球轮廓中心点的提取。但是针对航天航空等工业测量领域,其工况复杂,视场背景难以控制,结构化环境难以构造。因此高精密靶球受随机光场影响,在非结构化环境下会出现球体表面灰度不均匀,轮廓提取困难的现象,导致出现对高精密靶球中心提取不准确的问题。目前很多学者都开展了相关研究。在处理计算机视觉领域中,提取轮廓中心点的方法中,常用的有灰度重心法、椭圆拟合法等,其中灰度重心法对一般轮廓区域内的灰度值有分布较均匀或者分布符合高斯分布等的要求,否则提取精度较低。椭圆拟合法则认为用于拟合椭圆的点均为准确点,在非结构化环境下的高精密球体中心提取过程中,容易产生不规则,圆度差的球体轮廓,直接使用椭圆拟合法拟合球体轮廓求取球体中心也会产生偏差过大的问题。经文献检索,闫蓓、王斌、李媛发表的题为“基于最小二乘法的椭圆拟合改进算法”的论文中,北京航天航空大学学报2008年第34卷第3期,文章编号为1001-5965(2008)03-0295-04,提出了一种采用随机思想针对包含误差较大样本点的椭圆,基于投票机制,剔除误差较大样本点后进行准确的椭圆拟合算法。该方法能够有效处理包含较大比例的误差点的样本空间,拟合出具有高精度的椭圆。但是该方法只对灰度均匀的人类瞳孔进行椭圆拟合,获得椭圆轮廓点集,而对于在非结构化环境下,表面灰度不均匀球体不能用椭圆拟合算法。



技术实现要素:

本发明要解决的技术难题是在非结构环境下,高精密靶球由于光照不均匀所产生的表面灰度不均、球体中心点难以提取的问题。由此,发明了基于椭圆拟合法的非结构环境下高精密靶球的有效拟合点集筛选并提取轮廓中心的方法。对通过摄像机拍摄到的高精密靶球图像进行滤波去噪处理之后,进行高精密靶球轮廓边界提取。之后基于球体几何特征进行轮廓边界点的筛选,选取用于拟合靶球轮廓的有效拟合点集合。由此获取图像中高精密靶球的精确中心点,对后续摄像机标定、图像处理等操作具有一定意义。

本发明采用的技术方案是一种非结构化环境下的高精密靶球中心提取方法,其特征是,该方法基于中值滤波与删除小面积的噪点对拍摄所得的图像进行去噪并二值化处理等预处理,从而获取高精密靶球在图像中的轮廓点集;采用快速排序算法,对该轮廓点集进行针对y坐标的排序,获取表面灰度不均匀的高精密靶球轮廓上的可用于椭圆拟合的有效拟合点集;采用椭圆拟合算法,算得图像中表面灰度不均匀的高精密靶球的轮廓中心所在的坐标值;方法具体步骤如下:

第一步基于中值滤波对图像进行去噪的预处理

由于由摄像机所拍摄的原始图像src包含噪声影响,为了提高后续轮廓提取与特征点集合获取的稳定性与鲁棒性,首先对原始图像src进行感兴趣球体区域选取,设定为src的感兴趣区域srcroi。然后对srcroi进行中值滤波,获得滤除噪声后的图像为meddst;

根据图像特征,设定二值化阈值thr,meddst图像中meddst(x,y)>thr的像素点的灰度值均赋值为255,其中meddst(x,y)表示meddst图像中坐标为(x,y)的像素点灰度值,meddst(x,y)<=thr的像素点的灰度值则均赋值为0,获得二值化图像thrdst;

并且,由于现场环境下图像具有复杂背景,在图像thrdst中,检索所有连通区域轮廓并分别进行面积统计,并根据连通区域的面积大小进行快速排序,选取面积最大的连通区域轮廓,即高精密靶球在图像thrdst中的轮廓,以单独留下高精密靶球轮廓点集,利用一个动态序列maxarea储存轮廓点集;

第二步基于快速排序算法进行有效拟合点集合的筛选

对所获得的轮廓点集合maxarea进行筛选,选取可用于椭圆拟合的有效拟合点集,具体步骤如下:

1)从轮廓点集序列maxarea的各个分区中选取出序号为n的首序号,首次操作时n=0,且整个序列为一个分区的点坐标maxarea[n],该点maxarea[n]作为基准点,纵坐标yn作为基准数y0;

2)向后检索maxarea[n+1],若maxarea[n+1]的纵坐标y大于基准数y0的,则maxarea[n+1]移动到基准点maxarea[n]的右边,基准点maxarea[n]向后移动一位,成为maxarea[n+1],而maxarea[n+1]变为maxarea[n];

3)继续向后检索maxarea[i],i=n+2,i=n+3...,…重复2)步骤;完成针对首个基准数y0的分区。此时y坐标值小于y0的坐标点均分配到了y0左边区域,y坐标值大于y0的坐标点均分配到了y0右边区域;

4)针对左边区域和右边区域分别重复进行1)、2)、3)步骤,直到各个分区只剩下一个点;

至此,完成了针对maxarea点序列y坐标值的从小到大的排序;取maxarea序列中序号为0第一边界特征点(x0,y0)为有效拟合点集的起始点,根据高精密靶球的特点,设定阈值h,将y0+h以下的所有点从maxarea中剔除,即以[y0,y0+h]区间内的所有点作为用于拟合椭圆的有效拟合点集,形成一个新的圆弧状点序列称为seq;

第三步靶球中心的计算

利用圆锥曲线方程将高精密靶球的轮廓表示为斜椭圆形式,如下式所示:

ax2+bxy+cy2+dx+ey+f=0(1)

其中,a,b,c,d,e,f为椭圆曲线的常量参数,x,y分别是椭圆曲线上一点的横坐标和纵坐标。

常量参数约束条件设为a+c=1。应用上述方程对边缘检测后的离散点进行最小二乘处理,得到方程中的各常量参数。也即求目标函数:

的最小值来确定各系数。其中,xi,yi分别是seq中存储的序号为i的有效拟合点的横纵坐标,n为seq存储点的总数。再由极值原理,使得(a,b,c,d,e,f)的值为最小,则有:

由此将seq中存储的有效拟合点的坐标分别带入公式(3)中,可得一个线性方程组,然后应用主元高斯消去法,结合约束条件,即求得了方程系数a,b,c,d,e,f的值,将该方程所表示的椭圆视为高精密靶球在图像中的完整轮廓;

其中椭圆轮廓中心(xc,yc)可由公式(4)求出:

该椭圆的中心点(xc,yc)即被认为图像中高精密靶球的轮廓中心。

本发明的有益效果是在非结构化环境下通过图像二值化后获得的不规则的高精密球体轮廓中,选取用于拟合椭圆的有效拟合点集合,再利用基于最小二乘法的椭圆拟合法的方法求取的高精密球体的中心点,提取精度高,对后续摄像机标定、图像处理等操作具有一定意义。尤其提高了利用高精密靶球的标定方法的精度,对视觉测量精度有所提升。

附图说明

图1为方法流程图。

图2为算法演示图。其中:h-阈值;1-第一边界特征点(x0,y0),2-直线23的左点,其坐标y2=y0+h;3-直线23的右点,其坐标y3=y0+h;4-经过预处理后由1,2,3点所构成的弧形,是经筛选获得的有效拟合点集,即获得的不规则高精密靶球轮廓。

图3中a)为去噪并且二值化预处理后所获得的图像,b)为检测出的图像轮廓集合。

图4中,a)为经过筛选后用于椭圆拟合的有效拟合点集合seq,不含下方直线,直线仅使轮廓形成连通区域便于检测,b)为最终拟合所得椭圆在原图像中的示意图。

具体实施方式

下面结合附图和技术方案详细说明本发明的具体实施方式。

实施例1,本发明的被测物为一组圆心距离为59.9506mm的高精密标准靶球。采用2台viewworks摄像机,获取原始的靶球图像,作为原始含噪图像src进行处理。本例在visualstudio2013平台,c/c++语言与opencv视觉库的环境下进行操作。

然后按照附图1所示的流程图进行如下操作。

第一步,为了提高后续轮廓提取与特征点集获取的稳定性与鲁棒性,对图像src进行去噪处理。通过函数cvsmooth,其中输入方法参数设定为cv_median,对图像src进行中值滤波,获得结果图像meddst如附图2所示。然后设定二值化阈值thr=55,进行图像的二值化处理获得二值化图像thrdst。并由于现场环境下图像具有复杂背景,在阈值设置不准确时,会留下许多干扰轮廓,所以需要进行删除小面积噪点轮廓的处理,以单独留下高精密靶球的轮廓点集。利用函数cvfindcontours寻找到图像中的所有连通区域的轮廓序列,其所有连通区域的轮廓的动态序列为pcvseq,针对序列中各个轮廓面积的大小进行快速排序,输出一组存储着面积最大与次大的连通区域轮廓的动态序列数组maxarea[2],其中maxarea[0]为图像中连通区域面积最大的高精密靶球轮廓,maxarea[1]为图像中连通区域面积次大的高精密靶球轮廓。

第二步,基于快速排序算法进行有效拟合点的筛选。由于高精密靶球表面在非结构化环境下,表面灰度分布不均匀,造成了通过二值化图像thrdst获取的高精密靶球轮廓图像不规则和圆度低等问题,难以进行精确的椭圆拟合算取其轮廓中心。所以首先需要对所获得的轮廓点集maxarea[0]与maxarea[1]进行筛选,选取可用于椭圆拟合的有效轮廓点集,具体步骤如下:

1)从轮廓点集序列maxarea的各个分区中选取出首序号,序号为n,首次操作时n=0且整个序列为一个分区的点坐标maxarea[n](maxarea[n]表示轮廓点集中序号为n的轮廓点的纵坐标yn作为基准数y0,该点maxarea[n]作为基准点;

2)向后检索maxarea[n+1],若maxarea[n+1]的纵坐标y大于基准数y0的,则maxarea[n+1]移动到基准点maxarea[n]的右边,基准点maxarea[n]向后移动一位,成为maxarea[n+1],而maxarea[n+1]变为maxarea[n];

3)继续向后检索maxarea[i],i=n+2,i=n+3...,…重复2)步骤;完成针对首个基准数y0的分区。此时y坐标值小于y0的坐标点均分配到了y0左边区域,y坐标值大于y0的坐标点均分配到了y0右边区域;

4)针对左边区域和右边区域分别重复进行1)、2)、3)步骤,直到各个分区只剩下一个点;

以此,再取经排序后的maxarea[0]序号为0第一边界特征点(x0,y0)为有效拟合点集的起始点,基于本实施例中高精密靶球的轮廓特点,选定阈值h=80,利用函数cvseqremove,将y0+80以下的所有点从动态序列maxarea[0]中剔除,以[y1,y1+80]区间内的所有点作为用于拟合椭圆的有效点集,形成一个新动态序列seq0。

对于maxarea[1]也进行同maxarea[0]的同理操作,获得maxarea[1]的有效拟合点集,形成一个动态序列为seq1。

第三步,进行靶球中心的计算,由于利用圆锥曲线方程可以将seq0的斜椭圆表示为公式(1)。

为了避免式(1)的零解,并将解的任何整数倍都视为对同一椭圆的表述,对参数做一些限制,约束条件设为a+c=1。显然,直接应用上述方程对边缘检测后的离散点进行最小二乘处理,就可以得到方程中的各系数。也即,求目标函数(2)最小值来确定各系数,再由极值原理,使得(a,b,c,d,e,f)的值为最小,必有(3)式的关系。

由此可得一个线性方程组,然后应用求解线性方程组的算法(如全主元高斯消去法),结合约束条件,即求得了方程系数a,b,c,d,e,f的值,视为高精密靶球在图像中的完整轮廓;该椭圆的中心点即可被认为maxarea[0]的轮廓中心

同理获得另一个高精密靶球maxarea[1]的轮廓中心计算两者轮廓中心的距离,获取数据为59.94664652mm。通过与制造商给予的两球球心距离59.9506mm进行对比,认为本方法精度符合预期。由此认为本方法可以获取图像中高精密靶球的精确中心点,对后续摄像机标定、图像处理等操作具有一定意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1