Step1:模型 16个相机参数(内参、外参、畸变参数) | 您所在的位置:网站首页 › 畸变系数定义是什么 › Step1:模型 16个相机参数(内参、外参、畸变参数) |
16个相机参数
摘要:本文首先介绍了针孔相机模型,然后推导四个坐标轴变换的关系,引出R、T、K、D中包含相机的5个内参,6个外参,5个畸变参数。相机的标定是从空间点及其对应的像素点,获得相机的位置信息和内部参数信息的过程,16个相机参数的总结为此提供了模型基础。 一、针孔相机模型相机中有四个坐标系,分别为{world},{camera},{image},{pixel} {world}为世界坐标系,可以任意指定 x w x_w xw轴和 y w y_w yw轴{camera}为相机坐标系,原点位于小孔,z轴与光轴重合, x c x_c xc轴和 y c y_c yc轴平行投影面{image}为图像坐标系,原点位于光轴和投影面的交点, x p x_p xp轴和 y p y_p yp轴平行投影面{pixel}为像素坐标系,从小孔向投影面方向看,投影面的左上角为原点 O p O_p Op i _i i x _x x,uv轴和投影面两边重合
介绍如何从世界坐标轴,通过相机坐标轴和像面坐标轴,得到像素坐标轴的变换的过程,即 w o r l d : P w = ( x w , y w , z w ) T world:P_w=(x_w,y_w,z_w)^T world:Pw=(xw,yw,zw)T-----> c a m e r a : P c = ( x c , y c , z c ) T camera:P_c=(x_c,y_c,z_c)^T camera:Pc=(xc,yc,zc)T------> i m a g e : m = ( x p , y p , 1 ) T image:m=(x_p,y_p,1)^T image:m=(xp,yp,1)T-----> p i x e l : P i x = ( u , v , 1 ) T pixel:Pix=(u,v,1)^T pixel:Pix=(u,v,1)T 2.1 从{world}到{camera}设某点在{world}中的坐标为 P w = ( x w , y w , z w ) T Pw=(x_w,y_w,z_w)^T Pw=(xw,yw,zw)T,在{camera}中的坐标为 P c = ( x c , y c , z c ) T Pc=(x_c,y_c,z_c)^T Pc=(xc,yc,zc)T。则 P c = [ R T 0 1 ] P w P_c=\begin{bmatrix}R;T\\ 0;1\end{bmatrix}P_w Pc=[R0T1]Pw 其中,R为正交旋转矩阵, R = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] R=\begin{bmatrix} r_{11} ;r_{12};r_{13}\\r_{21} ;r_{22};r_{23}\\ r_{31} ;r_{32};r_{33}\end{bmatrix} R=⎣⎡r11r21r31r12r22r32r13r23r33⎦⎤ T为平移矩阵, T = [ t x t y t z ] T T=\begin{bmatrix}t_x;t_y;t_z\end{bmatrix}^T T=[txtytz]T 2.2 从{camera}到{image}设空间点 X c X_c Xc在{camera}下: P c = ( x c , y c , z c , 1 ) T P_c=(xc,yc,zc,1)^T Pc=(xc,yc,zc,1)T,其像点m在{image}的齐次坐标为 m = ( x p , y p , 1 ) T m=(x_p,y_p,1)^T m=(xp,yp,1)T。由图中相似三角形可得, { x p = f x c z c y p = f y c z c \left\{\begin{matrix} x_p=\frac{fx_c}{z_c} \\ \\ y_p=\frac{fy_c}{z_c}\end{matrix}\right. ⎩⎨⎧xp=zcfxcyp=zcfyc 写成矩阵表示为, z c m = [ f 0 0 0 0 f 0 0 0 0 1 0 ] P c z_cm=\begin{bmatrix} f; 0; 0; 0 \\ 0; f; 0; 0 \\ 0; 0; 1; 0 \end{bmatrix}P_c zcm=⎣⎡f000f0001000⎦⎤Pc 实际中,主点可能不在图像坐标系原点,若主点在图像坐标系中的坐标为 p = ( x 0 , y 0 , 1 ) T p=(x_0,y_0,1)^T p=(x0,y0,1)T 则 z c m = [ f x f y 1 ] = [ f 0 x 0 0 0 f y 0 0 0 0 1 0 ] P c z_cm=\begin{bmatrix}fx\\ fy\\ 1\end{bmatrix}=\begin{bmatrix} f; 0; x_0; 0 \\ 0; f; y_0; 0 \\ 0; 0; 1; 0 \end{bmatrix}P_c zcm=⎣⎡fxfy1⎦⎤=⎣⎡f000f0x0y01000⎦⎤Pc 2.3 从{image}到{pixel}假设一个像素的长和宽分别为dx,dy,设像素坐标 P i x = ( u , v , 1 ) T Pix=(u,v,1)^T Pix=(u,v,1)T,则 [ u v 1 ] = [ 1 / d x 0 0 0 1 / d y 0 0 0 1 ] [ x p y p 1 ] \begin{bmatrix}u\\v\\1\end{bmatrix}=\begin{bmatrix}1/d_x;0;0\\0;1/d_y;0\\0;0;1\end{bmatrix}\begin{bmatrix}x_p\\y_p\\1\end{bmatrix} ⎣⎡uv1⎦⎤=⎣⎡1/dx0001/dy0001⎦⎤⎣⎡xpyp1⎦⎤ 结合{camera}到{image}的变换,则{camera}到{pixel}的变换矩阵K为 K = [ 1 / d x 0 0 0 1 / d y 0 0 0 1 ] [ f 0 x 0 0 f y 0 0 0 1 ] = [ f x 0 u 0 0 f y v 0 0 0 1 ] K=\begin{bmatrix}1/d_x;0;0\\0;1/d_y;0\\0;0;1\end{bmatrix} \begin{bmatrix}f;0;x_0\\ 0; f; y_0 \\ 0; 0; 1\end{bmatrix} =\begin{bmatrix}f_x;0;u_0\\0;f_y;v_0\\0;0;1 \end{bmatrix} K=⎣⎡1/dx0001/dy0001⎦⎤⎣⎡f000f0x0y01⎦⎤=⎣⎡fx000fy0u0v01⎦⎤ 其中, f x = f / d x f_x=f/dx fx=f/dx, f y = f / d y f_y=f/dy fy=f/dy,称为相机在u轴和v轴方向上的尺度因子。 相机主点为 ( u 0 , v 0 ) T = ( x 0 / d x , y 0 / d y ) T (u_0,v_0)^T=(x_0/dx,y_0/dy)^T (u0,v0)T=(x0/dx,y0/dy)T 2.4 综合:从{world}到{pixel}四个坐标系的变换过程: w o r l d : P w = ( x w , y w , z w ) T world:P_w=(x_w,y_w,z_w)^T world:Pw=(xw,yw,zw)T-----> c a m e r a : P c = ( x c , y c , z c ) T camera:P_c=(x_c,y_c,z_c)^T camera:Pc=(xc,yc,zc)T-----> i m a g e : m = ( x p , y p , 1 ) T image:m=(x_p,y_p,1)^T image:m=(xp,yp,1)T-----> p i x e l : P i x = ( u , v , 1 ) T pixel:Pix=(u,v,1)^T pixel:Pix=(u,v,1)T, 矩阵表示为: z c [ u v 1 ] = K ⋅ [ R T 0 1 ] [ x w y w z w 1 ] z_c\begin{bmatrix}u\\ v\\ 1\end{bmatrix}=K·\begin{bmatrix} R;T \\0;1\end{bmatrix} \begin{bmatrix}x_w\\y_w\\z_w\\1\end{bmatrix} zc⎣⎡uv1⎦⎤=K⋅[R0T1]⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤ 2.5 畸变参数径向畸变(桶形畸变和枕形畸变)产生原因:光线在远离透镜中心的地方偏折更大。矫正公式:
x
c
o
r
r
e
c
t
e
d
=
x
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
x_{corrected}=x(1+k_1r^2+k_2r^4+k_3r^6)
xcorrected=x(1+k1r2+k2r4+k3r6)
y
c
o
r
r
e
c
t
e
d
=
y
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
y_{corrected}=y(1+k_1r^2+k_2r^4+k_3r^6)
ycorrected=y(1+k1r2+k2r4+k3r6) 切向畸变产生原因:透镜不完全平行于图像平面。矫正公式: x c o r r e c t e d = x + [ 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) ] x_{corrected}=x+[2p_1xy+p_2(r^2+2x^2)] xcorrected=x+[2p1xy+p2(r2+2x2)] y c o r r e c t e d = y + [ p 1 ( r 2 + 2 y 2 ) + 2 p 2 x y ] y_{corrected}=y+[p_1(r^2+2y^2)+2p_2xy] ycorrected=y+[p1(r2+2y2)+2p2xy] 由此得到相机的5个畸变参数: D ( k 1 , k 2 , k 3 , p 1 , p 2 ) D(k_1,k_2,k_3,p_1,p_2) D(k1,k2,k3,p1,p2) 2.6 小结综上,16个单目相机的参数: 10个内部参数(只与相机有关): 5个内部矩阵参数K: f f f, d x dx dx, d y dy dy, u 0 u_0 u0, v 0 v_0 v0 (也可视作4个参数 f x f_x fx, f y f_y fy, u 0 u_0 u0, v 0 v_0 v0)5个畸变参数D: k 1 , k 2 , k 3 , p 1 , p 2 k_1,k_2,k_3,p_1,p_2 k1,k2,k3,p1,p2 6个外部参数(取决于相机在{world}的位置): 3个旋转参数R3个平移参数T推导: 1.【旋转矩阵】https://www.cnblogs.com/caster99/p/4703033.html 旋转矩阵是一个完美的矩阵——正交矩阵。它的行列式为1,且每个列向量都是单位向量且相互正交,它的逆等于它的转置。 2.【平移矩阵】http://frankorz.com/2017/09/24/matrix-transformation-2/ 平移矩阵,比较平移旋转及旋转平移,说明先旋转后平移的好处 3.【反射矩阵推导】https://www.cnblogs.com/wantnon/p/5630915.html 4.【相机畸变详细推导 】https://blog.csdn.net/waeceo/article/details/51024396 5.【6个参数 旋转平移下坐标变换】https://blog.csdn.net/xuelabizp/article/details/50314633 参考: 1.https://blog.csdn.net/xuelabizp/article/details/50314633 2.https://blog.csdn.net/u010128736/article/details/52850444 3.https://www.cnblogs.com/Jessica-jie/p/6596450.html?tdsourcetag=s_pctim_aiomsg 4.https://blog.csdn.net/yangdashi888/article/details/51356385 5.https://blog.csdn.net/a083614/article/details/78579163 6.https://blog.csdn.net/lql0716/article/details/71973318?locationNum=8&fps=1) |
CopyRight 2018-2019 实验室设备网 版权所有 |