本发明涉及计算机视觉应用领域,具体涉及3d测量以及目标的精确姿态估计技术,特别涉及一种基于圆阵列平面标靶的高精度相机标定和目标姿态估计方法。
背景技术
相机标定技术可广泛应用于3d建模等计算机视觉领域。精确的相机标定在应用过程中至关重要,目前,文献中提到的标定方法有直接线性标定方法(dlt),径向一致约束法(rac),平面标靶标定法等等,其中最常用的是张正友的平面标靶标定法,其原理是利用平面标靶上的特征点和其多幅不同投影图像的特征点相对应来计算相机内参和各标靶的姿态。但无论采用哪种方法,应用的关键是标定标靶投影图像上对应的特征点估计要足够精确,这也是多年来面临的一个问题。最常用的平面标靶有两种:基于圆阵列和基于棋盘的。基于圆阵列是将投影椭圆的中心坐标作为特征点,但实际上,投影圆的圆心并不一定是椭圆的中心,在不同的投影角度有一定误差,从而降低了标定精度。棋盘标靶将角点作为特征点,但投影图像上角点易受噪声和光照条件干扰,造成了估计误差。相对于棋盘标靶,圆阵列标靶常在实际应用场合采用,比如常见的基于视觉的3d汽车四轮定位设备,标靶采用反光膜制作,这时棋盘标靶就不太适合,角点会被光照侵蚀,而椭圆的中心就比较稳定。
技术实现要素:
鉴于相机标定和目标姿态估计应用中普遍采用椭圆中心会引起精度降低的问题,本发明基于圆阵列标靶提出一种高精度基准标靶圆心投影坐标的估计方法,并给出相应的标定步骤和算法,以达到提高算法精度和计算速度的目的。
本发明的目标是通过以下技术方案实现的。
一种高精度相机标定和目标姿态估计方法,所述方法为基于圆阵列平面标靶的方法,其特征在于,包括以下步骤:
(1)拍摄m幅(m>2)不同姿态的标靶图像,从多幅标靶图像中提取投影椭圆中心坐标,得到相机的初始参数;
(2)固定相机内参,对基准标靶上每个圆进行采样,利用最新估计的相机参数投影到图像空间,拟合椭圆得到投影椭圆的中心,利用其和实拍标靶图像椭圆中心位移量,对基准标靶圆心投影重新估计,如果位移量满足指定精度或者超过迭代次数,则进入步骤(5);
(3)固定相机内参,利用标靶圆心在各实拍标靶图像投影的最新估计,重新计算标靶姿态参数;
(4)固定相机内参,利用最新估计的标靶姿态参数,返回步骤(2)继续迭代;
(5)利用基准标靶圆心坐标的最新投影估计,计算得到改进精度的相机内参和标靶的姿态参数,利用最新估计的相机内参和标靶的姿态参数,按照步骤(2)重新对采样圆进行投影,并计算拟合椭圆的中心坐标和标靶成像椭圆中心坐标的位移量,如果位移量满足精度指定或者超过迭代次数,算法结束,否则返回步骤(2)继续迭代。
如上所述的一种高精度相机标定和目标姿态估计方法,所述步骤(1)中,拍摄m幅(m>2)不同姿态的标靶图像,得到标靶图像上对应的椭圆中心坐标:
其中a是相机内参矩阵,
如上所述的一种高精度相机标定和目标姿态估计方法,对所述重投影误差优化求解,得到相机内参和对应的一组标靶姿态参数的初始估计。
如上所述的一种高精度相机标定和目标姿态估计方法,在迭代运算中,始终保持标靶图像上对应的椭圆中心不变,通过迭代,逐步得到标靶圆心在实拍标靶图像上对应坐标的精确估计。
如上所述的一种高精度相机标定和目标姿态估计方法,设置外循环迭代次数初值ne=0,内循环迭代次数初值ni=0,在后续的迭代过程中,标靶圆心在实拍标靶图像上对应坐标的估计表示为
如上所述的一种高精度相机标定和目标姿态估计方法,所述步骤(2)中,设圆阵列基准标靶上圆的半径为r,间距为d,圆心坐标为:(cxi,cyi,0),i=0,1,...,n-1,其中n是标靶特征点个数,对基准标靶上圆的外轮廓采样得到下列采样坐标:
其中np是圆外轮廓采样点数;
然后按照相机模型将每个圆的采样点投影到图像空间并拟合椭圆,得到其中心坐标
如果下式满足事先设定的精度ε,或者超过迭代次数tni,即:
则直接进入步骤(5);否则继续。
如上所述的一种高精度相机标定和目标姿态估计方法,按照计算的位移量标靶圆心在实拍标靶图像投影坐标估计为:
如上所述的一种高精度相机标定和目标姿态估计方法,所述步骤(5)中,根据步骤(2)得到的最新圆心投影坐标最新估计,重新计算相机内参和各标靶姿态参数,然后按照步骤(2)的采样公式对基准标靶圆的外轮廓采样,按照最新估计的标靶外参重投影到图像空间,得到最新的拟合椭圆中心坐标:
如果下式满足给定精度ε,或者超过迭代次数tne,即:
则算法结束;否则返回步骤(2)继续。
本发明的有益效果在于:
本发明基于圆阵列平面标靶的高精度相机标定和目标姿态估计方法,利用初始估计的相机内参和外参,将基准标靶上圆的采样点投影到图像空间,并拟合椭圆,通过拟合的椭圆中心和原始标靶图像的椭圆中心比较,通过迭代策略,逐渐逼近基准标靶圆心在图像上的对应坐标,从而获得高精度相机内参,另外,在相机内参标定好的情况下,本发明也能应用于基于圆阵列标靶的姿态精确估计的应用,如测量平台的标定,汽车四轮定位标靶姿态的精确估计等等,计算速度快,目标精度高。
附图说明
通过阅读下文优选实施方式的详细描述,本申请的方案和优点对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。在附图中:
图1为圆阵列基准标靶。
图2为图1的圆阵列基准标靶旋转平移后投影成像为的椭圆阵列。
图3为基准标靶圆心投影偏离实际圆心情况的示意图。
图4为本发明的拟合椭圆原理示意图。
具体实施方式
下面将结合本发明所基于的原理以及附图更详细地描述本公开的示例性实施方式。
首先介绍相机模型示例,给定平面标靶的特征点集合:(xi,yi,0),i=1,2,...,n,其在相机投影空间的像素坐标为:(ui,vi),i=1,2,...,n.按照相机模型,两者有以下关系:
其中:a是相机内参矩阵,r和t是标靶的投影姿态参数,即旋转和平移。
由于相机镜头有畸变,实际成像点为:
其中:(k1,k2,k3),(p1,p2)分别为相机径向和切向畸变系数。
标定过程为只要给定多幅不同姿态特征点的精确估计,就可利用式(1)和式(2)算出相机的内参和畸变系数,也可采用更复杂的畸变模型,但不影响本发明的方法。
根据本发明的原理,本发明利用了下列经研究和观察得到的基本事实:
(1)圆阵列基准标靶(如图1所示)经过旋转平移后,圆阵列投影成像为椭圆阵列(如图2所示)。
(2)基准标靶圆心投影由于旋转平移并非成像椭圆的中心,旋转角度越大,偏离实际圆心的真实投影越大,如图3所示。
(3)如果利用标靶圆心的实际投影坐标(非实际成像椭圆中心)标定相机,那么得到的相机内参和外参将是精确的;也就是说,利用精确估计的参数,对基准标靶上的圆进行采样投影并拟合得到的椭圆将和实际成像标靶上的椭圆重合;进一步,实际成像椭圆和采样投影椭圆的中心坐标也将重合。
(4)如果标定算法利用实际成像椭圆中心(非实际圆心投影坐标)标定相机,估计的相机内参和标靶姿态将有一定误差。
(5)传统算法由于采用实际成像椭圆中心来估计相机内参和外参,那么将造成基准标靶上圆的重投影误差,也就是说,如果对基准标靶上的圆进行采样投影,得到的拟合椭圆和实拍标靶图像上的椭圆不重合(除了成像椭圆中心与标靶圆心投影重合外,如图4所示);自然地两个椭圆的中心也不重合;因此,如果移动采样投影拟合椭圆的中心位置与实拍图像椭圆中心重合,那么基准标靶上圆心投影坐标(就是实拍标靶椭圆中心,即标定算法的对应点)移动后所在位置就是所要的实拍标靶圆心成像坐标的一个精确估计。
在实际标定时,标定靶的尺寸以及其上圆的半径和圆心距离都是已知的。另外,拍摄的不同姿态的标靶图像上成像椭圆的中心也是已知不变的。本专利正是依据这一已知条件,对标定板上的圆的外轮廓采样,并利用得到的初步的标定参数,重投影到图像空间,拟合椭圆。根据上述基本事实(5),将拟合椭圆和实拍标靶图像上的椭圆中心进行比较,通过位移就可得到标靶圆心在实拍标靶图像上的圆心坐标的精确估计。
设圆阵列基准标靶上圆的半径为r,间距为d,圆心坐标为:(cxi,cyi,0),i=0,1,...,n-1,其中n是标靶特征点个数。对基准标靶上圆的外轮廓采样可得到下列采样坐标:
其中np是圆外轮廓采样点数,原则上至少6个点,但实际应用为了保证投影椭圆的拟合精度,应该取足够多的点。
本发明利用初始估计的相机内参和外参,将上述基准标靶上圆的采样点投影到图像空间,并拟合椭圆,通过拟合的椭圆中心和原始标靶图像的椭圆中心比较,通过迭代策略,逐渐逼近基准标靶圆心在图像上的对应坐标(参考图4),从而获得高精度相机内参。另外,在相机内参标定好的情况下,本发明也能应用于基于圆阵列标靶的姿态精确估计的应用,如测量平台的标定,汽车四轮定位标靶姿态的精确估计等等。
本发明方法具体实现过程如下:
(1)拍摄m幅(m>2)不同姿态的标靶图像,得到标靶图像上对应的椭圆中心坐标:
其中a是相机内参矩阵,
通过优化式(4)我们可得到相机内参和对应的一组标靶姿态参数(外参)的初始估计。在后面的迭代运算中,始终保持标靶图像上对应的椭圆中心不变,以其为基准,根据上述基本事实(5)并参考图4,通过迭代,逐步得到标靶圆心在实拍标靶图像上对应坐标的精确估计。
算法分为内循环和外循环。设置外循环迭代次数初值ne=0,内循环迭代次数初值ni=0。在后续的迭代过程中,标靶圆心在实拍标靶图像上对应坐标的估计表示为
(2)固定相机内参,首先利用最新估计的标靶姿态参数(旋转和位移),按照公式(3)对基准标靶采样,然后按照公式(1)和(2)将每个圆的采样点投影到图像空间并拟合椭圆,得到其中心坐标
如果下式满足事先设定的精度ε,或者超过迭代次数tni,直接进入步骤(5),否则继续,即:
按照式(5)计算的位移量,根据上述基本事实(4),并参考图4,标靶圆心在实拍标靶图像投影坐标估计为:
(3)固定相机内参,利用公式(8)得到的标靶圆心在各实拍标靶图像投
影坐标的最新估计,重新计算标靶姿态参数(旋转和位移)。
(4)固定相机内参,利用最新估计的标靶姿态参数(旋转和位移),返回步骤(2)继续迭代。
(5)根据步骤(2)公式(8)得到的最新圆心投影坐标最新估计,重新计算相机内参和各标靶姿态参数(外参)。然后按照式(3)对基准标靶圆的外轮廓采样,按照最新估计的标靶外参重投影到图像空间,得到最新的拟合椭圆中心坐标:
如果满足给定精度ε,或者超过迭代次数tne,即:
算法结束;否则返回步骤(2)继续。
上述算法中内循环(步骤(2)到步骤(4))是在保持相机内参不变的情况下,利用标靶成像姿态参数,对基准标靶圆采样重投影,利用重投影拟合椭圆中心和实拍图像椭圆中心之间的位移,通过更新基准标靶圆心的投影坐标,获得标靶圆心在实拍标靶图像的上坐标的更精确估计(参考上述基本事实(5)和图4);在此迭代过程中,除了得到圆心投影的重新估计,同标靶的姿态参数也相应的被重新估计。外循环(步骤(2)到步骤(5))是利用内循环对标靶圆心坐标在标靶图像上的重新估计,对相机内外参做一次重新估计。这样不断地迭代下去,真实圆心投影坐标以及相机的内外参会逐渐向真实值逼近。
本发明对实际数据进行了模拟实验和验证。验证数据的相机内参矩阵和畸变系数取为:
k1=-0.26623601,k2=-0.039595041,k3=0.23992825
p1=0.0017947849,p2=-0.00029420533
用13组不同姿态参数(旋转和平移),对基准标靶上的圆按照式(3)进行采样,将其重投影到图像空间来模拟实际情况。这里示例性地给出第一组姿态参数的标准值和后续的估计来说明在相机内参得到精确估计的同时,姿态参数同时也相应地精确重估。
第一组用于模拟实验的姿态参数(旋转向量和位移向量)为:
r[0]=(0.16,0.27,0.01)
t[0]=(-60.32,-86.13,317.96)
算法设置采样点数np=48(参见公式(3)),精度阈值ε=0.0001,迭代阈值tne=tni=4。
传统算法采用椭圆中心作为基准标靶圆心的对应点,标定结果为:
k1=-0.26709964572,k2=-0.03746996356,k3=0.24288376750
p1=0.00178195951,p2=-0.00029517555
r[0]=(0.15991231667,0.26983502569,0.00998413812)
t[0]=(-60.29871566865,-86.11788447656,318.05238695159)
本发明方法第3次迭代结果为:
k1=-0.26623664643,k2=-0.03959603644,k3=0.23993729380
p1=0.00179478099,p2=-0.00029420555
r[0]=(0.16000013417,0.26999993785,0.01000000236)
t[0]=(-60.32003171578,-86.13002344298,317.9600477656)
本发明方法第4次迭代结果为:
k1=-0.26623633113,k2=-0.03959291609,k3=0.23992528943
p1=0.00179478049,p2=-0.00029421640
r[0]=(0.1599999968,0.27000004332,0.01000000885)
t[0]=(-60.31999946724,-86.13001187132,317.95999259094)
上述实验结果表明,本发明算法精度远远高于传统算法。传统算法对于内参矩阵和畸变系数的估计精度分别为0.1和0.01左右,姿态位移参数精度为0.1mm左右,本发明算法精度分别可达到0.0001和0.00001左右,姿态参数精度可达0.00001左右。
上述计算过程外循环由于要对相机内外参数重新计算,相对较慢,而内循环是在相机内参固定的情况下,只对圆心投影和姿态参数进行估计,因而较快。较传统算法而言,本发明算法根据精度要求一般要慢4~5倍左右。由于相机内参只标定一次,这个计算时间用户可以忽略不计。
值得说明的是,在相机内参标定好的情况下,内循环的算法也可应用在一些实际场合,比如测量平台的的姿态估计,四轮定位仪车轮标靶的姿态估计。由于实际应用大多只用一块标靶,计算速度很快,一般3次迭代就能达到精度要求,实时应用没有问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。