转自https://blog.csdn.net/xuelabizp/article/details/50314633
1.针 孔 摄 像 机 模型
-
在介绍摄像机标定参数之前,需要先简单说一下针孔 摄 像 机的原理。投影平面到小孔的距离为焦距f,物体到小孔的距离为Z,其中物体和投影是倒立相似的关系,下图为针 孔 摄像机的投影示意图:
![](http://markdown.moverzp.com/15-12-14/28936627.jpg)
-
如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把投影平面平移到其关于小孔对称的位置,这样投影坐标和物体坐标符号就相同了,示意图如下:
![](http://markdown.moverzp.com/15-12-14/46622829.jpg)
-
根据三角形相似的原理,可以列出如下等式:
fZ=l投影l物体Zf=l物体l投影
2.摄像机中的坐标系
-
摄像机中的坐标系有4个,均为右手坐标系,分别记为{world},{camera},{picture},{pixel},下图所示列出了{camera},{picture}和{pixel}坐标系:
![](http://markdown.moverzp.com/15-12-14/76701281.jpg)
-
{world},{camera},{picture}和{pixel}坐标系的坐标用下标来区分,分别是W,c,p,pix
-
{world},{camera},{picture}坐标系单位为长度,一般为mm;{pixel}坐标系单位为像素,一般为pix
-
{world}坐标系为世界坐标系,可以任意指定,其他坐标系都有明确的定义
-
{camera}坐标系为摄像机坐标系,原点在小孔的位置,z轴与光轴重合,Xc轴和Yc轴分别和投影面两边平行
-
{picture}坐标系为图像坐标系,光轴和投影面的交点为原点,Xp轴和Yp轴分别和投影面两边平行
-
{pixel}坐标系为像素坐标系,从小孔向投影面方向看,投影面的左上角为原点Opix,Xpix轴和Ypix轴和投影面两边重合
3.各个坐标系的坐标转换
3.1{world}到{camera}
设某点在{world}坐标系中的坐标为 PW=[xW,yW,zW,]T PW=[xW,yW,zW,]T,该点在{camera}坐标系中的坐标为Pc=[xc,yc,zc,]TPc=[xc,yc,zc,]T,则有
Pc=[R0T1]PW(1)Pc=[R0T1]PW(1)
其中R是正交旋转矩阵:
R=⎡⎣⎢⎢⎢r11r21r31r12r22r32r13r23r33⎤⎦⎥⎥⎥(2)R=⎣⎡r11r21r31r12r22r32r13r23r33⎦⎤(2)
T是平移矩阵:
T=[txtytz]T(3)T=[txtytz]T(3)
确定R需要3个参数,确定T需要3个参数,共需6个参数,这6个参数称为摄像机的外部参数。
3.2{camera}到{picture}
根据三角形相似原理,可得
⎧⎩⎨⎪⎪xp=fxczcyp=fyczc(4)⎩⎪⎨⎪⎧xp=fzcxcyp=fzcyc(4)
写成矩阵形式
zc⎡⎣⎢⎢⎢xpyp1⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢f000f0001000⎤⎦⎥⎥⎥⋅⎡⎣⎢⎢⎢⎢xcyczc1⎤⎦⎥⎥⎥⎥(5)zc⎣⎡xpyp1⎦⎤=⎣⎡f000f0001000⎦⎤⋅⎣⎢⎢⎡xcyczc1⎦⎥⎥⎤(5)
3.3{picture}到{pixel}
sxsx表示Xpix方向上单位mm的像素数,单位是pix/mm
sysy表示Ypix方向上单位mm的像素数,单位是pix/mm
x0,y0x0,y0表示投影平面中心在{pixel}中的坐标,则有
{xpix=x0+xp⋅sxypix=y0+yp⋅sy(6){xpix=x0+xp⋅sxypix=y0+yp⋅sy(6)
写成矩阵形式
⎡⎣⎢⎢⎢xpixypix1⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢sx000sy0x0y01⎤⎦⎥⎥⎥⋅⎡⎣⎢⎢⎢xpyp1⎤⎦⎥⎥⎥(7)⎣⎡xpixypix1⎦⎤=⎣⎡sx000sy0x0y01⎦⎤⋅⎣⎡xpyp1⎦⎤(7)
3.4{world}到{pixel}
记
{fx=f⋅sxfy=f⋅sy(8){fx=f⋅sxfy=f⋅sy(8)
分别表示焦距f在Xpix和Ypix方向上的等效焦距,单位是pix,结合(1)(5)(7)(8)式可得
zc⎡⎣⎢⎢⎢xpixypix1⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢fx000fy0x0y01000⎤⎦⎥⎥⎥⋅[R0T1]⎡⎣⎢⎢⎢⎢xWyWzW1⎤⎦⎥⎥⎥⎥(9)zc⎣⎡xpixypix1⎦⎤=⎣⎡fx000fy0x0y01000⎦⎤⋅[R0T1]⎣⎢⎢⎡xWyWzW1⎦⎥⎥⎤(9)
3.5小结
单目摄像机需要标定参数就是fx,fy,x0,y0fx,fy,x0,y0这4个参数
- fx,fy,x0,y0fx,fy,x0,y0叫做摄像机的内部参数,因为这些参数只和摄像机有关系,和具体的摄像场景,和世界坐标系没有关系
- RR和TT内部一共有6个独立的参数,叫做外部参数。外部参数是描述世界坐标系和摄相机坐标系的参数,所以只要世界坐标系和摄相机坐标系的相对位姿发生了变化,RR和TT就会改变,甚至可以说,每一张图片的RR和TT都不一样
- 单目摄像机标定就是已知像素坐标系下的坐标PpixPpix和世界坐标系下的坐标PWPW,列方程组求解内部参数
4.摄像机透镜畸变
由于针孔可以透过的光线太少,成像会不清楚,所以往往都会加上凸透镜汇聚更多的光线。但是加上凸透镜以后,会导致成像畸变,所以还需要校正透镜畸变。透镜的畸变主要分为两类,一类是径向畸变,一类是切向畸变
4.1径向畸变
径向畸变会产生“鱼眼”现象。成像中心处径向畸变为0,径向畸变随着与成像中心距离增大而增大,在图像边缘处达到最大径向畸变。常常用偶次幂的泰勒公式描述径向畸变
{xcerrected=x(1+k1r2+k2r4+k3r6)ycerrected=y(1+k1r2+k2r4+k3r6)(10){xcerrected=x(1+k1r2+k2r4+k3r6)ycerrected=y(1+k1r2+k2r4+k3r6)(10)
4.2切向畸变
切向畸变由透镜和成像平面不平行引起。常用如下公式描述
{xcerrectedycerrected=x+[2p1y+p2(r2+2x2)]=y+[p1(r2+2y2)+2p2x](11){xcerrectedycerrected=x+[2p1y+p2(r2+2x2)]=y+[p1(r2+2y2)+2p2x](11)
4.3小结
单目摄像机透镜畸变校正需要确定的就是k1,k2,k3,p1,p2k1,k2,k3,p1,p2这5个参数,如果“鱼眼”现象不明显的话,常常使用k1,k2k1,k2来校正径向畸变
5.总结