具体实施方式
本发明实施例提供了一种摄像机标定的方法及装置,该摄像机标定的方法及装置适用于多种场景,操作较简单,且有较高的精度。
本发明实施例提供的摄像机标定的方法实施例一流程如图1所示:
步骤101、拍摄参考模板及参考实物。
在摄像机第一次拍摄一个全新的环境时,首先在该环境中放置参考模板,并在该参考模板附近选择一个属于该环境的实物作为参考实物。
本步骤中使用的参考模板可以是制作精密的标定块,或其他已知数据的物体,其形状可以是棋盘格、或圆内结矩形等等。其中棋盘格的示意图如图2所示,圆内结矩形的示意图如图3所示
本步骤中选择的参考实物可以是环境中的任何一个物体,其与参考模板的距离满足可以同时被摄像机拍摄入画面即可,在有多种物体可供选择时,可优先选择具有几何图形特征的物体,例如:
1、类似矩形或具有矩形的物体,如:姓名牌、笔记本、记事本、地板砖、名牌中有矩形方口的字等。这些物体中姓名牌、笔记本、记事本、地板砖均为矩形,包含有直角、直线;而名牌中的字则具有矩形形状。
2、圆形或具有圆形的物体,如:圆口杯子、圆形的电话9个按键等。
3、直线形物体:如:记事本边缘的直线、笔、日光灯管、墙面相接的线等。
选择好参考实物后,摄像机从不同角度拍摄参考模板及参考实物。
步骤102、初次标定摄像机,并记录参考实物上的特征点的位置。
由于参考模板的数据是已知的,可以利用参考模板获得摄像机的内部参数及外部参数,标定摄像机,并记录参考实物上的特征点的位置。
步骤103、移走参考模板。
此时就可以移走参考模板,以利于进一步的拍摄工作。
步骤104、依据参考实物再次标定摄像机。
当由于某种原因摄像机改变了位置、或改变了拍摄角度,需要重新对摄像机进行标定时,就可以依据初次标定时选择的参考实物再次标定摄像机。
这是由于,在步骤102时,依据参考模板记录下了参考实物上的特征点的位置,参考模板的数据是已知的,依据参考模板做出的记录也是准确,此时对于摄像机来说,参考实物的数据已经是已知的,所以可以根据该参考实物再次标定摄像机,且由于初次标定时,依据的参考模板记录的该参考实物的数据是非常精密的,因此依据该参考实物对摄像机再次标定的精度也是较高的。
现以实例来详细描述本发明实施例提供的摄像机标定的方法。
本发明实施例提供的摄像机标定的方法实施例二采用棋盘格作为参考模板,流程如图4所示:
步骤401、拍摄作为参考模板的棋盘格及参考实物。
在摄像机第一次拍摄一个全新的环境时,首先在该环境中放置作为参考模板的棋盘格,并在棋盘格附近选择一个属于该环境的实物作为参考实物,尽量选择不会随便被移走的物体。
选择好参考实物后,摄像机从至少三个不同角度拍摄作为参考模板的棋盘格及参考实物。
步骤402、根据已知的棋盘格数据对摄像机进行标定。
棋盘格、参考实物与图像平面及摄像机坐标系的关系如图5所示:
图5中,坐标XCYCZC为摄像机坐标系,坐标XWYWZW为世界坐标系。
图像平面503上的图像点m(u,v)与棋盘格501上的空间物点M(X,Y,0)的成像几何关系可使用公式表述为:
sm=K[R t]M
由于作为参考模板的棋盘格501为精确定制的平面模板,其全部数据均为已知,例如每个格子的大小、格子的数目、格子的排列方式等等,因此棋盘格501上空间物点M(X,Y,0)的数据为已知数据,假定棋盘格501的平面在世界坐标系Z=0的平面上,在齐次坐标下将上式写成透视投影矩阵的形式,即可推得:
其中K为摄像机的内部参数矩阵, 为棋盘格501上的空间物点M(X,Y,0)的齐次坐标, 为棋盘格501上点投影到图像平面503上对应点m(u,v)的齐次坐标,R和t分别是摄像机坐标系相对于世界坐标系的旋转矩阵和平移向量。
其中λ是尺度因子。
根据旋转矩阵的性质,r1和r2单位正交,即 和‖r1‖=‖r2‖=1,拍摄获得的每幅图像可以获得以下两个对内参数矩阵的基本约束:
和
因摄像机有5个未知内部参数,故当所摄取的图像数≥3时,就可线性唯一求解出。
由 和 可得内部参数K,进而可求得摄像机外部参数旋转矩阵R和平移向量t,如下:
r1=λK-1h1,r2=λK-1h2,r3=r1×r2,t=λK-1h3
其中:λ=1/‖K-1h1‖=1/‖K-1h2‖
此时完成了对摄像机的标定。
步骤403、记录参考实物上的特征点的位置。
利用所获得的摄像机内部参数及外部参数确定棋盘格附近物体特征点位置信息,即特征点在三维空间、或世界坐标系下的坐标。
记录的过程实施例如下文所述:
通常,由两视投影几何,可得:
其中,mi、分别为空间点Mi在两个摄像机投影平面上的图像点;λ、λ′i分别为对应的两个摄像机的投影空间点到图像平面的尺度因子;P、P′分别为空间点投影到对应图像平面的摄像机投影矩阵;K为摄像机内参矩阵,[R,t]为摄像机外参矩阵,即旋转矩阵和平移向量。
在已知摄像机内部参数及外部参数的情况下,可由图像点反推出空间点坐标,即有:
其中,P
+=P
T(PP
T)
-1、(P′)
+==P′
T(P′P
T)
-1分别为P、P′的伪逆矩阵;P=K[I,0],P′=K[R,t];M
i、
分别为图像点m
i、
反投影到3D空间的空间点;"≈"表示式子中只相差一个尺度因子。
此时即记录下了参考实物上的特征点的位置。
步骤404、移走作为参考模板的棋盘格。
此时就可以移走作为参考模板的棋盘格,以利于进一步的拍摄工作。
步骤405、依据参考实物再次标定摄像机。
当由于某种原因摄像机改变了位置、或改变了拍摄角度,需要重新对摄像机进行标定时,就可以依据初次标定时选择的参考实物再次标定摄像机。
假定选择的参考实物是一个姓名牌,则此时将以步骤403中记录下的作为参考实物的姓名牌上的特征点的位置再次标定摄像机,相当于把已经被标定的姓名牌替代棋盘格,作为新的参考模板,重新标定摄像机。
首先,从至少三个不同角度拍摄该姓名牌,获取该姓名牌的图像;
接着使用哈夫(Hough)变换检测姓名牌的直线边,例如,写姓名那面的四条边、及支撑的三角边、及名字中的直线;
拟合各个边并建立坐标方程,求得各个顶点、对角线交点位置;
求得姓名牌中姓名的图像点的位置坐标以及对应的姓名牌在世界坐标系下的坐标;利用各个特征点的图像坐标以及对应的世界坐标系下的坐标及直线方程计算得到摄像机的内部参数及外部参数。
此时完成了对摄像机的再次标定,由上可知,使用本实施例对摄像机进行标定,只需要在摄像机第一次拍摄一个全新的环境时使用参考模板进行标定,在初次标定的同时记录下一个参考实物的信息,之后只要该参考实物还位于被拍摄的场景中,摄像机都可以使用该参考实物进行标定,不再需要每次改变摄像机的位置或拍摄角度,都重新拿出参考模板进行标定,操作更加方便,且适用多种场景;在无法得知摄像机的运动状态、或者摄像机的运动是无法控制的情况下也都可以应用;且由于初次标定是使用数据已知、加工精密的参考模板完成的,初次标定时记录的参考实物的数据也是比较准确的,依据该数据进行的标定也具有较高的精度。
本发明实施例提供的摄像机标定的方法实施例三采用圆内接矩形作为参考模板,流程如图6所示:
步骤601、拍摄作为参考模板的圆内接矩形及参考实物。
在摄像机第一次拍摄一个全新的环境时,首先在该环境中放置作为参考模板的圆内接矩形,并在圆内接矩形附近选择一个属于该环境的实物作为参考实物,尽量选择不会随便被移走的物体。
选择好参考实物后,摄像机从至少三个不同角度拍摄作为参考模板的圆内接矩形及参考实物。
步骤602、根据已知的圆内接矩形数据对摄像机进行标定。
圆内接矩形、图像平面、与摄像机坐标系的关系如图7所示:
图7中,701为摄像机坐标系,702为图像平面,703为作为参考模板的圆内接矩形,坐标XWYWZW为世界坐标系。
首先,摄像机标定模型。
令世界坐标系的原点位于圆内接矩形703中心,Z轴垂直于圆内接矩形所在平面,则该圆上点[XwYw0]T的对应齐次坐标表示为:
M=[XwYw0 1]T
并记圆与矩形的四个交点VMi为:
则圆的图像点(u,v)的对应的齐次坐标表示为:
m=[u v 1]T
图像点和世界坐标点间的透视投影变换为:
sm=PM
其中:
P=K[R T]=(pij)3×4
P是投影变换矩阵,λ是尺度因子;
K是摄像机内部参数矩阵;
R是摄像机外部参数的单位旋转矩阵;
T=(tx,ty,tz)T
T是摄像机外部参数的平移向量。
此时获得内部参数及外部参数,完成了对摄像机的初次标定。
步骤603、记录参考实物上的特征点的位置。
记录参考实物上的特征点的位置包括三步:获得摄像机闭合解、进行非线性优化、利用所获得的摄像机内部参数及外部参数确定参考模板附近物体特征点位置信息。
其中,获得摄像机闭合解包括:
由方程sm=PM,可推出
即:
其中:a1,b1,c1,d1,e1,f1依赖于摄像机内、外参数。
在世界坐标系下,圆上的点[Xw Yw 0 1]T的坐标满足坐标方程:
其中r为圆内接矩形703的圆的半径,为已知量,进一步可推出:
通过Hough变换检测出图像平面702中被投影矩形四条边,并线性拟合出四条边所在直线:
li=(li1 li2)T
其中,i=1,2,3,4;lij,j=1,2,不同时为0
四条边所在直线在图像平面702中的方程:
li1x+li2y=0(i=1,2,3,4)
和对角线所在直线lj=(lj1 lj2 )T(j=1,2)方程:
lj1x+lj2y=0(j=1,2)
可推出,图像平面702中被投影矩形在图像中四个顶点Vmi的坐标:
该四个顶点Vmi也在二次曲线上,即图像平面702中被投影圆的图像曲线上;
由投影不变特性,图像平面702中被投影矩形对角线的交点O’坐标,也就是被投影圆圆心O在投影平面702中的图像点的坐标;
圆的图像点(u,v)满足椭圆二次曲线方程,该方程可由被投影矩形的4个顶点及对角线交点这五个坐标确定,或通过二次曲线拟合法得出曲线系数:
au2+buv+cv2+du+ev+g=0
由高等代数二次型表示法,可得:mTQm=0,Q由参数a,b,c,d,e,g对称表示:
至此,我们建立了五个点对的关系,即空间中圆内接矩形703四个顶点与图像平面702对应四个点、空间中圆内接矩形703圆心与图像平面702中对应点,且均满足式m=[u v 1]T,其中四对顶点满足方程:
au2+buv+cv2+du+ev+g=0
结果如下:
进一步:
λC=PTQP
其中,λ为比例因子
由式λC=PTQP、(3)、(4)可得摄像机参数闭合解。
进行非线性优化包括:
把上述闭合解作为下列式子初始值,非线性优化摄像机参数,最小化函数为:
其中,g(Mc)为空间圆上的点Mc到图像平面702的投影;h(plMj)为圆的内接矩形四个边上的点plMj到图像平面702的投影。
利用所获得的摄像机内部参数及外部参数确定参考模板附近物体特征点位置信息包括:
假设选取的参照物为姓名牌,可在用Hough变换检测图像平面702中被投影矩形四条边时,同时也检测姓名牌所有的直线边,例如,写姓名那面的四条边、及支撑的三角边、及名字中的直线。若参考实物具有弧线边,此时也可检测弧线边。
接着使用同样的方法线性拟合各个直线边的坐标方程,并通过这些直线的交集可容易计算得到各个顶点坐标以及姓名牌正面名字上各个角点、端点坐标;
利用式sm=PM,并且由于g(Mc)为空间圆上的点Mc到图像平面702的投影;h(plMj)为圆的内接矩形四个边上的点plMj到图像平面702的投影,知道了图像点,且知道摄像机参数矩阵P,进而可计算得到姓名牌各个特征点在三维空间中的坐标,此时也就获取并记录了各个特征点之间的相对位置特征,如:矩形边两个端点所确定的直线边,点点之间距离、名字上的角点、端点到矩形边的距离。
步骤604、移走作为参考模板的圆内接矩形。
此时就可以移走作为参考模板的圆内接矩形,以利于进一步的拍摄工作。
步骤605、依据参考实物再次标定摄像机。
当由于某种原因摄像机改变了位置、或改变了拍摄角度,需要重新对摄像机进行标定时,就可以依据初次标定时选择的参考实物再次标定摄像机。
仍以选择的参考实物为姓名牌为例,则此时将以步骤603中记录下的作为参考实物的姓名牌上的特征点的位置再次标定摄像机,相当于把已经被标定的姓名牌替代棋盘格,作为新的参考模板,重新标定摄像机。
首先,从至少三个不同角度拍摄该姓名牌,获取该姓名牌的图像;
接着使用Hough变换检测姓名牌的直线边,例如,写姓名那面的四条边、及支撑的三角边、及名字中的直线;
拟合各个边并建立坐标方程,求得各个顶点、对角线交点位置;
进而求得姓名牌中姓名的图像点的位置坐标;
利用各个点的坐标及直线方程可计算得到摄像机各个参数,方法同步骤603描述的使用圆内接矩形摄像机标定获得摄像机闭合解;
进而使用步骤603描述的圆内接矩形摄像机标定获得非线性最优解方法,获取最终的摄像机各个参数。
此时完成了对摄像机的再次标定,由上可知,使用本实施例对摄像机进行标定,只需要在摄像机第一次拍摄一个全新的环境时使用参考模板进行标定,在初次标定的同时记录下一个参考实物的信息,之后只要该参考实物还位于被拍摄的场景中,摄像机都可以使用该参考实物进行标定,不再需要每次改变摄像机的位置或拍摄角度,都重新拿出参考模板进行标定,操作更加方便,且适用多种场景;在无法得知摄像机的运动状态、或者摄像机的运动是无法控制的情况下也都可以应用;且由于初次标定是使用数据已知、加工精密的参考模板完成的,初次标定时记录的参考实物的数据也是比较准确的,依据该数据进行的标定也具有较高的精度。
本发明实施例提供的摄像机标定的装置实施例结构如图8所示,包括:
初次标定单元810,用于根据参考模板获得摄像机的内部参数及外部参数,并记录处于拍摄环境中参考实物的数据;
重标定单元820,用于在需要对所述摄像机进行标定时,从至少三个角度获取所述参考实物的图像,利用所述记录下的所述参考实物的数据获得所述摄像机的内部参数及外部参数,完成对所述摄像机的标定。
所述初次标定单元810包括:
参数获取单元811,用于根据参考模板获得摄像机的内部参数及外部参数;
记录单元812,用于记录处于拍摄环境中参考实物的数据。
在所述参考模板为棋盘格时,所述记录单元812包括:
第一记录单元812a,用于利用所述根据参考模板获得摄像机的内部参数及外部参数,确定并记录处于拍摄环境中棋盘格附近参考实物特征点位置信息。
在所述参考模板为圆内接矩形时,所述记录单元包括:
第二记录单元812b,用于在为所述圆内接矩形检测直线时,检测所述参考实物上具有的直线、和/或弧线,记录所述参考实物上特征点的位置数据。
其中所述重标定单元820包括:
图像获取单元821,用于在需要对所述摄像机进行标定时,从至少三个角度获取所述参考实物的图像;
运算单元821,用于检测所述参考实物的特征信息,求得各个特征点、线的图象位置信息;求得各个特征点、线的图象位置坐标以及对应的参考实物在世界坐标系下的坐标;利用各个特征点的图像坐标以及对应的世界坐标系下的坐标及参数方程计算得到摄像机的内部参数及外部参数。
在所述参考实物为姓名牌时,所述运算单元821还包括:
姓名牌运算单元,用于检测姓名牌的直线边;拟合各个边并建立坐标方程,求得各个顶点、对角线交点位置;求得姓名牌中姓名的图像点的位置坐标以及对应的姓名牌在世界坐标系下的坐标;利用各个特征点的图像坐标以及对应的世界坐标系下的坐标及直线方程计算得到摄像机的内部参数及外部参数。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种摄像机标定的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。