刚性仿射变换算法_一种视觉定位中的点集仿射变换算法的制作方法

本发明涉及相机标定

技术领域:

,具体涉及一种视觉定位中的点集仿射变换算法。

背景技术:

:随着工业自动化技术的推进,越来越多的产线工件组装、检测、测量等工作正在由机器人或自动化设备逐步替代,而这些技术的实现,大多离不开机器视觉。在工业机器视觉应用领域,常常需要建立两个坐标系之间的变换关系实现目标物的特征点定位,从而实现工件的引导组装等目的。2D视觉检测中,物体的图像坐标和世界坐标、图像坐标与图像坐标以及世界坐标和世界坐标之间的映射关系往往由旋转、平移、缩放、翻转、斜切矩阵的任意组合得到。在实际的工业应用中,通常会用到对应点集间的任意变换、刚性变换和相似变换,它们比较适用于解决实际的定位问题。在对目标工件的位置进行视觉定位中,对相机进行线性标定时,常规方法是采用模板匹配、blob分析、角点检测等方法对标定模板进行特征提取,于是便得到了两个坐标系下两组个数相等的对应点集坐标数据,通过建立点集的图像坐标和实际物理坐标之间的仿射变换关系矩阵,便可以得到检测点对应坐标系下的位姿信息。考虑两组点集可能的映射关系不同,就需要不同的变换方式,而不是统一方法,坐标系之间的变换方式的不同,求解变换矩阵解的算法也不同。技术实现要素:本发明要解决的技术问题是提供一种对不同映射关系的两组点集采用不同变换矩阵求解方法的视觉定位中的点集仿射变换算法。为解决上述问题,本发明的技术方案为:一种视觉定位中的点集仿射变换算法,对相机进行线性标定,包括以下步骤:步骤1:拍摄标定板照片,所述标定板具有特征点,所述特征点的位置坐标为已知项,得到点集物理坐标数据;步骤2:对标定板照片进行特征提取,得到点集图像坐标数据,所述点集图像坐标数据和点集物理坐标数据个数相等且一一对应;步骤3:明确两组点集的映射关系,根据两组点集坐标数据求解变换矩阵;对于不同的点集映射关系,采用不同的变换矩阵求解算法。进一步的,两组点集映射关系为任意仿射变换时,采用最小二乘法求解变换矩阵,包括以下步骤:步骤a:通过特征提取得到点集图像坐标数据(x′,y′),点集物理坐标数据为(x,y);步骤b:变换矩阵将点集物理坐标(x,y)变换为点集图像坐标(x′,y′),x=AX′+BY′+Cy=DX′+EY′+F所述A,B,C,D,E,F为坐标转换系数;步骤c:求解A,B,C,D,E,F,采用反向映射,由最小二乘法得:vec1=inv([XYI]′*[XYI])*[XYI]′*Uvec2=inv([XYI]′*[XYI])*[XYI]′*V其中vec1=[ABC],vec2=[DEF];X、Y、U、V、1分别是x,y,x′,y′,1构成的向量,表示如下:进一步的,所述步骤b中将点集物理坐标(x,y)变换为点集图像坐标(x′,y′)时,采用如下变换公式:进一步的,两组点集映射关系为刚性仿射变换时,采用奇异值分解和最小二乘法求解变换矩阵,包括以下步骤:步骤a:两个在二维空间中对应的点集合为P={p1,p2,...,pn}和Q={q1,q2,...,qn),所述点集合之间的刚体变换为旋转矩阵R和平移矩阵t,构建模型:步骤b:求取R和t。进一步的,所述t的求取过程如下:对两个点集合进行去中心化,得到新的点集合X和Y,表示为:此时,转移矩阵进一步的,所述R的求取过程如下:使tr(∑VTRU)达到最大值,I=VTRU逐步化简:V=RUR=VUT。进一步的,两组点集映射关系为相似仿射变换时,采用复数域内的最小二乘法求解变换矩阵,包括以下步骤:步骤a:变换矩阵表达式为:实数域的m阶多项式模型如下:其中j+k≤m,(X,Y)表示变换后的坐标,(x,y)表示变换前的坐标,m表示多项式模型最高阶数,ajk、bjk表示变换参数;步骤b:根据复数运算性质,实数域的模型可以更改为:其中为复数域参数,且有所述多项式的模型为一阶,m=1,由式(1)和式(2)便可以得到实数域的变换(a),实数域的变换共有6个未知参数,在复数域表示时,将实数域的6个参数简化为复数域3参数的一阶多项式模型:式中,为待求复参数,其中包含平移信息,包含了缩放和旋转信息,求取需要的相似变换矩阵;步骤c:所述的相似变换矩阵采用复数域最小二乘平差方法进行参数及中误差计算得到:平移向量:旋转角度:缩放比例:与现有技术相比,本发明具有如下有益效果:本发明公开的算法可以很好地解决在视觉定位中,针对两组点集的映射关系不同,采用不同的映射矩阵求解方式,从而提高了定位的精度,减少了定位的时间。具体实施方式为了对本发明的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。实施例1:一种视觉定位中的点集仿射变换算法,对相机进行线性标定,包括以下步骤:步骤1:拍摄标定板照片,所述标定板具有特征点,所述特征点的位置坐标为已知项,得到点集物理坐标数据;步骤2:对标定板照片进行特征提取,得到点集图像坐标数据,所述点集图像坐标数据和点集物理坐标数据个数相等且一一对应;步骤3:明确两组点集的映射关系,根据两组点集坐标数据求解变换矩阵;两组映射点集之间的关系矩阵,在几何中,通常表达为一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间,两组点集的个数必须是相等的。最小二乘法求解任意仿射变换矩阵:通过特征提取得到点集图像坐标数据(x′,y′),点集物理坐标数据为(x,y);一个对向量严移一般可用如下公式表示:等价于:仿射变换可以由以下基本变换复合而成:平移、缩放、旋转、错切,变换矩阵将点集物理坐标(x,y)变换为点集图像坐标(x′,y′),这些基本的变换如下公式表示:x=AX′+BY′+Cy=DX′+EY′+F求解A,B,C,D,E,F。为了防止出现空像素,一般采用反向映射,由最小二乘法得:vec1=inv([XYI]′*[XYI])*[XYI]′*Uvec2=inv([XYI]′*[XYI])*[XYI]′*V其中vec1=[ABC],vec2=[DEF];X、Y、U、V、I分别是x,y,x′,y′,1构成的向量,表示如下:进一步的,将点集物理坐标(x,y)变换为点集图像坐标(x′,y′)时,采用如下变换公式:实施例2:一种视觉定位中的点集仿射变换算法,对相机进行线性标定,包括以下步骤:步骤1:拍摄标定板照片,所述标定板具有特征点,所述特征点的位置坐标为已知项,得到点集物理坐标数据;步骤2:对标定板照片进行特征提取,得到点集图像坐标数据,所述点集图像坐标数据和点集物理坐标数据个数相等且一一对应;步骤3:明确两组点集的映射关系,根据两组点集坐标数据求解变换矩阵;两组映射点集之间的关系矩阵,在几何中,通常表达为一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间,两组点集的个数必须是相等的。奇异值分解法求解刚性变换矩阵:给定两个在二维空间中对应的点集合P={p1,p2,...,pn}和Q={q1,q2,...,qn),为了计算出它们之间的刚体变换,即R和t,其过程如下:构建上述问题的模型为:求取R和t。进一步的,对两个点集合进行去中心化,得到新的点集合X和Y,表示为:此时,转移矩阵进一步的,模型转化为:为了使得tr(∑VTRU)达到最大值,I=VTRU逐步化简:V=RUR=VUT。所以,t可以根据公式计算出来,由此可以得到两个点集之间的旋转矩阵R和平移矩阵t。实施例3:一种视觉定位中的点集仿射变换算法,对相机进行线性标定,包括以下步骤:步骤1:拍摄标定板照片,所述标定板具有特征点,所述特征点的位置坐标为已知项,得到点集物理坐标数据;步骤2:对标定板照片进行特征提取,得到点集图像坐标数据,所述点集图像坐标数据和点集物理坐标数据个数相等且一一对应;步骤3:明确两组点集的映射关系,根据两组点集坐标数据求解变换矩阵;两组映射点集之间的关系矩阵,在几何中,通常表达为一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间,两组点集的个数必须是相等的。复数域的最小二乘法求解相似变换矩阵:当两组点集的映射关系由旋转、平移和缩放组合而成,而没有斜切变换的情况下,采用了复数域的最小二乘法求取关系矩阵,从而实现精确定位,变换矩阵表达式为:相似变换矩阵的自由度比刚性变换多了一个缩放因子,而且X和Y方向的缩放因子是相同的。相似变换矩阵的表达式也是由实数域推演而来,通常实数域的m阶多项式模型如下:其中j+k≤m,(X,Y)表示变换后的坐标,(x,y)表示变换前的坐标,m表示多项式模型最高阶数,ajk、bjk表示变换参数。根据复数运算性质,实数域的模型可以更改为:其中为复数域参数,且有有复数域的模型和实数域的模型方程可以看出,复数模型的方程个数比实数域少了一半,参数的维数也少了一半,因此,复数域的模型表达比实数域更高效,在求解点集间的变换矩阵中,也会更高效。基于点集的仿射变换,多项式的模型是一阶的,那么m=1时,由式(1)和式(2)便可以得到实数域的变换(a),实数域的变换共有6个未知参数,在复数域表示时,可将实数域的6个参数简化为复数域3参数的一阶多项式模型:式中,为待求复参数,那么其中包含平移信息,包含了缩放和旋转信息,进而可以求取需要的相似变换矩阵。复数域一阶多项式平差与实数域一节多项式平差有相同的参数估值,两种方法有等价性,由此采用复数域最小二乘平差方法进行参数及中误差计算得到:平移向量:旋转角度:缩放比例:上述三个实施例具体实验结果:下表1是实际实验中,相机下视拍取圆点标定板的数据对应关系,试验中标定板放在大理石平台上,相机安装固定,与大理石平台平面平行,得到的像素坐标pointlx、pointly和对应的标定板坐标point2x、point2y,数据如下表所示:pointlxpointlypoint2xpoint2y716.5381567.9981221123.073581.0117621529.93594.10431021936.396607.01531422343.156620.01971822750.088633.26072223156.945646.3392623563.826659.08413023971.236672.1598342表1已知一特征点的像素位置x:4378.461481,y:685.33244,以及标定板上的坐标值X:38,Y:2,对于像素位置,分别利用表一的数据通过三个方法求得的矩阵进行变换,得到结果如下:坐标相似变换刚性变换任意变换X38.006638.007038.0096Y2.00062.000232.00659表2从上述表格看出,本发明三种求解方式得到的坐标数据精度极高,相似变换和刚性变换的求解方式得到的坐标精度均大于任意变换的求解精度。下表3分别是用10组、100组、1000组以及10000组点对,求解相似变换矩阵、任意变换矩阵以及刚性变换矩阵时运行1000次的平均时间统计,算法在windows10(IntelCorei7-8700KCPU3.7GHZ)系统性下,采用C++编译的release模型下运行测试,通过表格可以看出三种方法求解速度均极快,其中相似变换和刚性矩阵求解在速度上明显快于任意变换矩阵求解,对于相似变换和刚性矩阵来说,采用相应的算法求解速度更快。表3本行业的技术人员应该了解,本发明不受上述实施例的限制,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。当前第1页1&nbsp2&nbsp3&nbsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值