一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于消隐点的圆阵靶标中心像点定位方法与流程

2021-11-05 20:39:00 来源:中国专利 TAG:


1.本发明涉及摄影测量中像点定位的技术领域,尤其涉及一种基于消隐点的圆阵靶标中心像点定位方法。


背景技术:

2.在计算机视觉领域中,圆形靶标作为常见的摄像机标定模板,具有形状特征明显,稳定性好等优点。在标定过程中,通常需要多个角度拍摄标定板,而靶标平面与摄像机平面并不完全平行,在成像时圆形靶标通常变为椭圆,而椭圆的几何中心并非圆心真实投影,因此圆的真实投影中心的精确定位至关重要。
3.圆阵靶标通常应用于摄像机标定、三维测量以及多传感器校准等领域,圆阵靶标中心像点的定位影响最终结果的精确性。针对此问题,许多学者提出不同的方法,陈天飞提出基于射影变换的圆阵靶标中心像点计算方法,首先对边缘进行亚像素定位,再通过迭代计算射影变换矩阵,将退化的椭圆映射成较为规则的圆,进而通过ransan圆拟合迭代计算求出中心像点,具有较强的实用性。徐鹏利用透视不变性的原理,通过搜索算法求出3个中心不共线的椭圆的公切线,切点连线交点即可得到中心像点坐标,计算过程简洁高效,但计算量大。邢德奎设定同心圆目标并提取其亚像素边缘点,再利用交比不变性求取畸变系数,进而对其透视投影变换过程中的圆心进行偏差补偿,最后获取圆心的准确投影点,该方法比较巧妙,但是仅适合提取同心圆的圆心投影。卢晓东将椭圆拟合中心作为初值进行标定,根据标定结果建立虚拟靶标,通过迭代计算虚拟靶标圆心和其投影中心,解决椭圆中心的偏差问题,提高了标定精度,但多次的迭代无疑增加算法的复杂性。李占利等人以光心为顶点、理想的投影轮廓为准线构造椭圆锥,并在椭圆锥内构建并确定与空间圆平行的圆平面,通过计算平行圆的圆心来确定空间圆的真实像点坐标,但该方法需要提前标定相机的内参以及畸变系数。
4.综上所述,现有像点定位方法虽然能确定圆的真实像点的坐标,但是精确度低,计算复杂度高,不能解决透视投影把空间圆映射为像平面上的椭圆,而空间圆的中心像点往往并不是投影椭圆的几何中心的问题。


技术实现要素:

5.针对现有像点定位方法精确度低,计算复杂度高的技术问题,本发明提出一种基于消隐点的圆阵靶标中心像点定位方法,基于透视不变性的性质,利用单应性矩阵计算出消隐点坐标,将消隐点与像平面上的椭圆联立解出公切点,通过公切点计算出靶标圆心的真实投影点;仿真和实际实验表明,在提高中心像点精度的同时还能够极大缩短程序的运行时间,提高了效率。
6.为了达到上述目的,本发明的技术方案是这样实现的:一种基于消隐点的圆阵靶标中心像点定位方法,其步骤如下:
7.步骤一:采集圆阵靶标的图像,对图像进行预处理,去除预处理后图像上的杂乱边
缘,得到具有感兴趣轮廓的图像;
8.步骤二:利用canny边缘检测算法对感兴趣轮廓的图像进行边缘检测,实现轮廓边缘的粗定位;利用亚像素边缘检测算法获取轮廓边缘的亚像素边缘点;通过最小二乘法对亚像素边缘点进行椭圆拟合,得到椭圆轮廓的方程以及椭圆的中心像点坐标;
9.步骤三:利用椭圆的中心像点坐标与圆阵靶标上圆的对应关系,计算单应性矩阵;
10.步骤四:利用步骤三得到的单应性矩阵计算出消隐点坐标,并将消隐点坐标与步骤二得到的椭圆轮廓的方程联立解出每个椭圆轮廓的两组公切点坐标;
11.步骤五:建立两组公切点之间的直线方程,联立两个方程求出每个圆的中心像点坐标。
12.优选地,所述圆阵靶标为矩形的标定板,标定板上的多个圆组成矩形阵,矩形阵包括至少3个标志圆,且标志圆的直径大于其他圆的直径,任意三个标志圆不能同时在一条直线上。
13.优选地,所述矩形阵为11
×
9的矩形阵,矩形阵中设有5个标志圆,且5个标志圆不在一条直线上。
14.优选地,所述预处理的方法为:先对图像进行二值化、中值滤波的操作,然后用canny边缘检测算法获取图像上靶标内所有物体轮廓的边缘信息;
15.优选地,所述去除杂乱边缘的方法为:依次利用椭圆本身的周长规则、面积规则、圆度信息对预处理后图像上的杂乱边缘进行清除,即
16.利用周长规则和面积规则将不满足条件的轮廓进行清除:
[0017][0018]
其中,c
min
代表了感兴趣轮廓的最小周长,c
max
代表了感兴趣轮廓的最大周长,s
min
是感兴趣轮廓面积的最小值,s
max
为感兴趣轮廓面积的最大值;
[0019]
利用圆度信息将不满足条件的轮廓进行清除:
[0020]
a=4π(s/c2);
[0021]
其中,s为所检测轮廓的面积信息,c为所检测轮廓的周长信息;设定一个阈值,当圆度a的值大于该阈值时,认为所检测轮廓符合要求;否者清除所检测轮廓。
[0022]
优选地,所述利用亚像素边缘检测算法获取轮廓边缘的亚像素边缘点的方法为:计算粗定位后图像上感兴趣区域内所有像素点灰度的一阶导数和二阶导数的值;若某像素点一阶导数的值小于该区域所有像素点一阶导数的平均值,则该像素点排除在候选点的范围之内;然后沿着x轴和y轴方向寻找出二阶导数下两侧异号的点即为候选点;令二阶导数的线性拟合函数等于零实现候选点的精确边缘定位;
[0023]
将提取的轮廓的亚像素边缘点利用最小二乘法进行椭圆拟合,获取椭圆的相关参数;将拟合的椭圆的中心像点坐标存放到容器imagecenter中,同时计算椭圆的轮廓面积的值存放到数组contoursarea中。
[0024]
优选地,所述步骤三的实现方法为:利用圆阵靶标上标志圆对椭圆拟合的中心像点坐标按照世界坐标系下圆的排列顺序进行对应,利用标志圆在世界坐标系上的三维坐标点和在图像坐标系上的二维坐标点计算单应性矩阵;对椭圆拟合的中心像点坐标进行排序,利用圆阵靶标上所有圆点的三维坐标点和图像坐标系上的二维坐标点的对应关系重新
计算单应性矩阵。
[0025]
优选地,所述利用圆阵靶标上标志圆对椭圆拟合的中心像点坐标按照世界坐标系下圆的排列顺序进行对应的方法为:将标定板上标志圆的圆心作为特征点,找出特征点对应的图像坐标系中的位置即容器imagecenter中椭圆的中心像点坐标,实现方法为:
[0026]
设定世界坐标系的原点w(0,0,0)位于圆阵靶标平面的左上角处,x轴、y轴方向任意两个圆的圆心之间的间距为1,对步骤二中所求的数组contoursarea中轮廓面积按照从大到小的顺序进行排序,同时对容器imagecenter中的顺序对应调整,保证轮廓面积的值和轮廓的中心像点坐标在各自的存储空间上的逻辑关系一一对应;
[0027]
将容器imagecenter中前n个元素取出来放到容器dstpoint中;n为标志圆的数量;
[0028]
根据圆阵靶标上标志圆的位置关系,计算任意两两标志圆之间的距离即计算容器dstpoint中任意两个中心像点之间的距离,一共有2n组,存入结构体数组structnum中,结构体数组structnum中的每一个元素包含了两个中心像点的坐标以及它们之间的距离;
[0029]
将结构体数组structnum按照每个元素中距离值的大小进行排序,并将结果重新赋给结构体数组structnum;
[0030]
根据圆阵靶标上标志圆之间的距离关系,可知特征点i和特征点ii之间的距离最长,特征点iii和特征点iv之间的距离最短;根据结构体数组structnum已经排好的位置关系,取出structnum[0]和structnum[2n

1]两个元素中包含的四个中心像点,对容器dstpoint进行遍历,并将取出的四个中心像点作为判断条件,确定出世界坐标系下特征点v所对应的像素坐标系下的中心像点的坐标;
[0031]
根据圆阵靶标上特征点iii和特征点iv分别到特征点v的距离长度不同,作为判断条件对距离长度最小的两个特征点进行确定;将特征点iii所对应的像素坐标作为判断点,对structnum[0]中的两个距离长度最大的两个特征点进行位置确定;循环计算得到容器dstpoint中的所有中心像点的坐标与世界坐标系中标志圆的特征点之间的对应关系;
[0032]
对距离长度最小的两个特征点进行确定的方法为:求取structnum[2n

1]中的两个中心像点分别到特征点v所对应的像素坐标之间的距离,分别确定其中较长的距离的点即为特征点iii所对应的像素坐标点,较短的即为特征点iv所对应的像素坐标点;
[0033]
对structnum[0]中的两个距离长度最大的两个特征点进行位置确定的方法为:将特征点iii所对应的像素坐标作为判断点,对structnum[0]中的两个中心像点分别求到判断点的距离,较长的点即为特征点ii所对应的像素坐标点,较短的点即为特征点i所对应的像素坐标点。
[0034]
优选地,所述圆阵靶标上所有圆的三维坐标点和图像坐标系上二维坐标点的对应关系的实现方法为:世界坐标系中,原点(0,0,0)的位置在圆阵靶标的左上角处,x轴方向范围从0到10,y轴方向范围从0到8,对容器imagecenter中的所有中心像点的位置进行确定:给定两层for循环,第一层是i的值从0到10变化,第二层是j的值从0到8变化;最内层每次循环组成一个特征点(i,j,0),并将通过标志圆得到的单应性矩阵和特征点(i,j,0)相乘得到该特征点在图像坐标系下的映射位置,并暂存放在变量tempcenter中;计算容器imagecenter中99个中心像点分别到tempcenter的距离,并将结果存到数组discenter中,对数组discenter进行一趟遍历即可确定出数组discenter中最小值的下标,该下标在容器imagecenter中所对应的点即为特征点(i,j,0)所对应的中心像点的坐标,将该中心像点坐
标存放到容器orderedimagecenter中,第一趟遍历完成;继续下一趟遍历,直至将所有中心像点的坐标确定完成。
[0035]
优选地,所述两组公切点坐标的计算方法为:利用单应性矩阵的性质,在世界坐标系中x轴和y轴方向的无穷远点为v1、v2,其坐标分别为[1 0 0]
t
和[0 1 0]
t
,无穷远点v1、v2在图像平面的投影点分别为消隐点p1、p2,则有:
[0036][0037]
获取公切点坐标只需将消隐点分别与椭圆轮廓的方程联立建立方程,方程的主要系数为:
[0038][0039]
其中,a、b、c、d、e、f为步骤二中利用最小二乘法获取的椭圆轮廓的方程ax2 bxy cy2 dx ey f=0的系数;g、h、i、j、k、l为消隐点坐标与椭圆方程建立的表达式约束的系数;(x
v
,y
v
)为消隐点的坐标;
[0040]
对方程系数建立数学模型即可解出单个消隐点所对应的一组公切点坐标,具体方法为:
[0041][0042]
其中,(x1,y1)和(x2,y2)是单个消隐点所对应一组公切点下的两个坐标。
[0043]
优选地,所述步骤五中计算中心像点坐标的方法为:
[0044]
设a

(x1,y1)、b

(x2,y2)是消隐点p1与椭圆方程联立所求取的一组公切点坐标。c

(x3,y3)、d

(x4,y4)为消隐点p2与椭圆方程联立所求出的一组公切点坐标,建立直线a

b

的一般式方程(y2‑
y1)x (x1‑
x2)y (x2y1‑
x1y2)=0;
[0045]
建立直线c

d

的一般式方程为:(y4‑
y3)x (x3‑
x4)y (x4y3‑
x3y4)=0;
[0046]
将两个一般式方程联立,两条直线的交点即为空间圆投影后真实的中心像点坐标,即求出中心像点坐标(x0,y0)为:
[0047][0048]
与现有技术相比,本发明的有益效果:传统方法利用圆之间公切线的投影性质,通过搜索算法找出投影椭圆边缘的公切线,切点连线的交点即为圆心像点;但是需要较长的搜索时间,并不具有较强的实用性。本发明利用基于透视不变性原理将消隐点与椭圆方程联立能够直接求取两组公切点坐标,通过公切点坐标求解出中心像点。仿真和实际实验表明:在提高中心像点精度的同时,还能够极大的减少程序的运行时间,提高效率,并且在实际应用中具有较高的使用价值。
附图说明
[0049]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0050]
图1为本发明的流程示意图。
[0051]
图2为本发明实际实验的靶标的图像。
[0052]
图3为图2的图像预处理后的效果图。
[0053]
图4为本发明仿真实验结果u轴方向误差的示意图。
[0054]
图5为本发明仿真实验结果v轴方向误差的示意图。
[0055]
图6为本发明实际实验结果的交比值示意图。
具体实施方式
[0056]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057]
如图1所示,一种基于消隐点的圆阵靶标中心像点精确定位方法,其构思是:首先,对输入的目标图像进行预处理,筛选出符合要求的轮廓并对符合要求的轮廓实现亚像素边缘的提取;其次,利用最小二乘法对所求取的边缘像素点进行椭圆拟合得到椭圆圆心坐标以及方程表达式,并将得到椭圆圆心按照世界坐标系靶标上圆的排列顺序进行排序,重新计算出单应性矩阵,并利用单应性矩阵计算得到消隐点;最后,将消隐点依次与每个椭圆方程联立解出该椭圆轮廓的两组公切点坐标,从而由这两组切点可以得到空间圆投影后其真实的中心像点坐标。实验结果标明:本发明在提高中心像点精度的同时,还能够极大的缩短程序的运行时间,提高效率,并具有较强的使用价值。本发明的具体步骤为:
[0058]
步骤一:采集圆阵靶标的图像,对图像进行预处理,去除预处理后图像上的杂乱边缘,得到具有感兴趣轮廓的图像。
[0059]
如图2所示,本发明采用的圆阵靶标为矩形的标定板,标定板上的多个圆点组成矩
形阵,圆点包括至少3个个标志圆,且标志圆的直径大于其他圆点的直径,3个标志圆不在一条直线上。在具体实验中,标定板上设有99个圆点,组成11
×
9的矩形阵,且其中有5个标志圆,5个标志圆的不在一条直线上。将标定板放置于ccd相机视野当中,确保能完整拍摄整个标定板图像,得到数字图像即是本发明要处理的数字图像。
[0060]
在求解中心像点之前,需要对输入的图像即所采集的图像进行预处理。预处理先对图像进行二值化即灰度化、中值滤波等操作,降低噪音对图像清晰度的影响,并用canny边缘检测算法获取图像上靶标内所有物体轮廓的边缘信息,图3给出了去除杂乱边缘之后的效果。
[0061]
去除预处理后图像上的杂乱边缘,得到具有感兴趣轮廓的图像的方法是:依次利用椭圆本身的周长规则、面积规则、圆度信息对预处理后图像上的杂乱边缘进行清除,即
[0062]
利用周长规则和面积规则将不满足条件的轮廓进行清除:
[0063][0064]
清除杂乱边缘时,做一个逻辑或判断,当某一轮廓的周长及面积符合小圆或大圆周长面积的范围时,则对其进行保留。在靶标平面中,圆的形状大小一致,其边缘周长和面积应满足上述不等式,其中,c
min
代表了感兴趣轮廓的最小周长,c
max
代表了感兴趣轮廓的最大周长,s
min
是感兴趣轮廓面积的最小值,s
max
为感兴趣轮廓面积的最大值。
[0065]
利用圆度信息将不满足条件的轮廓进行清除:
[0066]
a=4π(s/c2);
[0067]
其中,s为所检测轮廓的面积信息,c为所检测轮廓的周长信息,当圆度a等于1时,该轮廓代表是正圆,当圆度a等于0时,该轮廓代表的是多边形。因此,本发明设定一个阈值,当圆度a的值大于该阈值时,可以认为该检测轮廓符合要求。根据获取圆轮廓的周长和面积来给出合适的阈值,从而实现对杂乱边缘的清除。
[0068]
步骤二:利用canny边缘检测算法实现轮廓边缘的粗定位,利用亚像素边缘检测算法获取轮廓边缘的亚像素边缘点信息;再通过最小二乘法对轮廓进行椭圆拟合,得到椭圆轮廓的方程以及椭圆的中心像点坐标。
[0069]
在步骤一中对图像预处理和杂乱轮廓去除之后,图像上仅保留了感兴趣的轮廓,利用canny边缘检测算法实现轮廓边缘的粗定位。canny边缘检测算法进行粗定位能够快速并且较为准确实现轮廓边缘的定位。
[0070]
在canny算法对轮廓粗定位的基础之上,利用亚像素边缘检测算法提取轮廓的亚像素边缘点的方法为:
[0071]
计算图像上感兴趣区域内所有像素点灰度的一阶导数和二阶导数的值,若某像素点一阶导数的值小于该区域所有像素点一阶导数的平均值,则该像素点排除在考虑候选点的范围之内。然后沿着x轴y轴方向找出二阶导数下两侧异号的点即为候选点。令二阶导数的线性拟合函数等于零实现候选点的精确边缘定位。同理,利用该方法提取其他感兴趣轮廓的亚像素边缘点。
[0072]
将提取的轮廓的亚像素边缘点利用最小二乘法进行椭圆拟合,获取椭圆的相关参数;并将拟合的椭圆的中心像点坐标存放到imagecenter[99]容器中,同时计算该轮廓的轮廓面积的值存放到contoursarea[99]数组中。
[0073]
步骤三:利用椭圆的中心像点坐标与圆阵靶标上圆点的对应关系,计算单应性矩阵。
[0074]
利用圆阵靶标上标志圆对椭圆拟合的中心像点坐标按照世界坐标系下圆的排列顺序进行对应,利用标志圆在世界坐标系上的三维坐标点和在图像坐标系上的二维坐标点计算单应性矩阵;对椭圆拟合的中心像点坐标进行排序,利用所有圆点的三维坐标点和二维坐标点的对应关系重新计算单应性矩阵。
[0075]
如图2所示,在实际实验中使用的是11
×
9圆点标定板,其中标定板上的五个大圆为标志圆,圆心为特征点,找出这五个特征点在像素坐标系中的位置,从而可以计算出能够表达两个平面相对精准的映射关系。标定板是一个二维的平面,即定义了z轴为0,同时设定世界坐标系的原点w(0,0,0)位于靶标平面的左上角处,x轴、y轴方向任意两个圆心之间的间距设定为1。假设五个标志圆其世界坐标系下相对于原点的位置为w(2,4,0)、w(5,2,0)、w(8,4,0)、w(5,6,0)、w(6,6,0),对步骤二中所求的轮廓面积按照从大到小的顺序进行排序,排序的同时对imagecenter[99]中的顺序同时进行调整,保证轮廓面积值和轮廓中心像点在各自的存储空间上的逻辑关系一一对应。
[0076]
此时,contoursarea数组和imagecenter容器中前五个元素即为大圆的轮廓面积值和所对应的中心像点坐标。但此时像素坐标系下五个中心像点位置与世界坐标系下的五个标志圆的对应关系并不确定。此处将imagecenter容器中前五个取出来放到dstpoint[5]容器中,方便接下来的处理。
[0077]
根据靶标上标志圆放置的位置关系,首先,计算任意两两标志圆之间的距离,即计算dstpoint容器中任意两点之间的距离。一共有十组数据,将它们存入一个结构体数组structnum[10]当中,结构体数组中的每一个元素包含了两个中心像点的坐标以及它们之间的距离信息。
[0078]
将结构体数组structnum按照每个元素中距离值的大小进行排序,并将结果重新赋给结构体数组structnum。根据圆阵靶标上标志圆之间的距离关系,可知w(2,4,0)特征点和w(8,4,0)特征点之间的距离应是最长,同时,w(5,6,0)特征点和w(6,6,0)特征点之间的距离应是最短。因此,根据结构体数组structnum已经排好的位置关系,取出structnum[0]和structnum[9]两个元素中包含的四个坐标点,结构体数组中每一个结构体变量包含三个变量,两个point2f类型的坐标以及该两个坐标点之间的距离值。对容器dstpoint进行遍历,并将取出的四个中心像点作为判断条件,此时可以确定出世界坐标系下特征点w(5,2,0)所对应的像素坐标系下的中心像点的坐标。structnum[0]包含了五个标志圆的中心像点距离最长的两个点。structnum[9]包含了五个标志圆的中心像点距离最短的两个点,因此,对dstpoint[5]数组进行遍历,即可获取特征点w(5,2,0)所对应的中心像点坐标。
[0079]
继续对剩下四个特征点的位置进行确定。根据圆阵靶标上w(5,6,0)特征点和w(6,6,0)特征点分别到w(5,2,0)的距离长度不同,为此可以作为判断条件对距离长度最小两个特征点进行确定。求取structnum[9]中的两个中心像点分别到w(5,2,0)特征点所对应的像素坐标之间的距离,其中较长的距离的点即为w(5,6,0)特征点所对应的像素坐标点,较短的即为w(6,6,0)特征点所对应的像素坐标点。
[0080]
最后只需对structnum[0]中的两个距离长度最大的两个特征点进行位置确定即可。这里需要将w(5,6,0)特征点所对应的像素坐标作为判断点。对structnum[0]中的两个
标志点分别求到判断点的距离。较长的点即为w(8,4,0)特征点所对应的像素坐标点,较短的点即为w(2,4,0)特征点所对应的像素坐标点。
[0081]
至此,容器dstpoint中五个像素点和世界坐标系下五个标志圆之间的对应关系已经明确,利用这五组三维坐标点和二维坐标点的对应关系,计算出单应性矩阵。单应性矩阵的计算利用的是opencv里面的函数findhomography()。仅凭这五组对应关系求出的单应性矩阵只能表示两个平面之间相对精准的映射关系,故需要对其他剩下椭圆轮廓的中心像点坐标进行排序,利用所有三维坐标点和二维坐标点的对应关系重新计算出单应性矩阵。
[0082]
根据前面对靶标规格的设定,原点的位置在左上角处(0,0,0),x轴方向范围从0到10,y轴方向范围从0到8。对imagecenter容器中的所有中心像点的位置进行确定。给定两层for循环,第一层是i的值从0到10变化,第二层是j的值从0到8变化。最内层每次循环组成一个特征点(i,j,0),并将通过标志圆得到的单应性矩阵和该特征点相乘得到该特征点在像素坐标系下相对精准的映射位置,此处可暂用tempcenter变量来存放。此时,将imagecenter容器中99个点分别求到tempcenter的距离,并将结果存到discenter数组中,对discenter数组进行一趟遍历即可确定出discenter中最小值的下标,该下标在imagecenter容器中所对应的点即为靶标上特征点(i,j,0)所对应的中心像点坐标。将该中心像点坐标存放到orderedimagecenter容器中,此时,第一趟遍历已经完成。继续下一趟遍历,直至将所有中心像点的位置确定完成。此时orderedimagecenter容器中存放的是已经有序的中心像点坐标。利用这99组三维坐标点和二维坐标点的对应关系重新计算出单应性矩阵。tempcenter是(i,j,0)特征点的相对精确的中心像点坐标,而imagecenter[99]中存有该特征点精确的中心像点坐标。找出tempcenter与imagecenter[99]数组中最近的点即为该特征点所对应的最终中心像点坐标。该遍历方法可以快速确定出某一中心像点所对应的世界坐标系下特征点的位置,且思路清晰,易于实现。
[0083]
步骤四:利用步骤三得到的单应性矩阵计算出消隐点坐标,并将消隐点的坐标与步骤二得到的椭圆轮廓的方程联立解出每个轮廓的两组公切点坐标。
[0084]
世界坐标系下x轴、y轴方向的无穷远点在像素坐标系下的位置,即为消隐点的位置。
[0085]
利用单应性矩阵的性质,在三维的世界坐标系中x轴和y轴方向的无穷远点为v1、v2,其坐标分别为[0 1 0]
t
和[0 1 0]
t
,无穷远点在图像平面的投影即为消隐点,无穷原点和消隐点通过单应性矩阵h相关联。假设无穷远点v1、v2在图像平面的投影点分别为消隐点p1、p2,则有关系式:
[0086][0087]
最后,获取公切点坐标只需将消隐点与椭圆方程联立建立方程即可,方程的主要系数为:
[0088][0089]
其中,在步骤二中利用最小二乘法获取了椭圆轮廓的方程,a、b、c、d、e、f为ax2 bxy cy2 dx ey f=0的系数。(x
v
,y
v
)为消隐点的坐标。g、h、i、j、k、l为消隐点坐标与椭圆方程建立起表达式约束的系数。
[0090]
对方程系数建立数学模型即可解出单个消隐点所对应的一组公切点坐标,具体方法为:
[0091][0092]
其中,(x1,y1)和(x2,y2)是单个消隐点所对应一组公切点下的两个坐标。
[0093]
与传统搜索方法求取公切点坐标相比,基于消隐点的坐标求出两个公切点的坐标能够保证精度的前提下快速计算出每个椭圆轮廓的两组公切点坐标。
[0094]
步骤五:建立两组公切点之间的直线方程,联立两个方程求出每个圆的中心像点坐标。
[0095]
设a

(x1,y1)、b

(x2,y2)是消隐点p1所求取的一组公切点坐标,c

(x3,y3)、d

(x4,y4)为消隐点p2所求出的一组公切点坐标,那么建立直线a

b

的一般式方程:
[0096]
(y2‑
y1)x (x1‑
x2)y (x2y1‑
x1y2)=0;
[0097]
同理,直线c

d

的一般式方程为:
[0098]
(y4‑
y3)x (x3‑
x4)y (x4y3‑
x3y4)=0;
[0099]
将两个一般式方程进行联立,两条直线的交点即为空间圆投影后真实的中心像点坐标,即可求出中心像点坐标(x0,y0),具体解法为:
[0100][0101]
这样求出的每个圆的中心像点坐标有思路简洁且精度能保证。
[0102]
按照本发明的方法,进行了仿真和实际实验来验证。仿真实验中,设定相应的相机内外参数矩阵,并且在投影图像中圆的边缘点添加标准差为0.1的高斯白噪声。然后利用本文提出的方法计算靶标中的每个圆的中心像点。图2为实际实验的靶标。图3为对靶标图像进行预处理,筛选出感兴趣轮廓后的效果。为了方便比较,分别用以下方法计算中心像点坐
标,方法一为最小二乘椭圆拟合计算圆心,方法二为参考文献[1]
‑‑‑
[文献:徐鹏,汪建业,王燕儒.摄像机标定中靶标圆心像点坐标的精确计算[j].红外与激光工程,2011,40(07):1342

1346.]中利用椭圆外公切线计算圆心的方法,方法三利用本发明所提方法。图4为仿真实验中三种方法所求取的中心像点坐标与理想中心像点之间的u轴方向误差,相应的图5为v轴方向误差,可以看到本发明所求取的中心像点与理想中心像点之间误差相对更小一些。同时,利用qtcreator编译器来实现程序的代码编写。表1给出了三种方法程序运行时间。
[0103]
表1运行时间(单位:秒)
[0104] 方法一方法二本发明时间79.624648.1471.133
[0105]
实际实验中理想圆心的坐标位置未知,故需要利用射影空间中共线点的交比来进行本发明方法的有效性验证。图6展示了用三种方法所求取的中心像点坐标,计算出交比的值;并与靶标上理想交比的值进行了对比,结果表明本发明所求取中心像点的交比值更接近于理想交比值,从而验证本发明的有效性。仿真和实际实验结果表明:本发明在提高所求中心像点精度的同时,还能够极大的缩短程序的运行时间,具有更强的实际使用价值。
[0106]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献