Step1:模型 16个相机参数(内参、外参、畸变参数) 您所在的位置:网站首页 畸变系数定义是什么 Step1:模型 16个相机参数(内参、外参、畸变参数)

Step1:模型 16个相机参数(内参、外参、畸变参数)

2024-01-25 09:46| 来源: 网络整理| 查看: 265

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轴和投影面两边重合

针孔相机的基本模型 图片说明:{camera}:O c _c c​-x c _c c​y c _c c​z c _c c​,相机中心点Oc,焦距f。{picture}:O-xy,像平面π。主轴:从 O c O_c Oc​出发,垂直于像平面的射线 。主点:主轴与像平面的交点p。

二、四个坐标轴的变换关系

介绍如何从世界坐标轴,通过相机坐标轴和像面坐标轴,得到像素坐标轴的变换的过程,即 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​=[R0​T1​]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=⎣⎡​r11​r21​r31​​r12​r22​r32​​r13​r23​r33​​⎦⎤​ T为平移矩阵, T = [ t x t y t z ] T T=\begin{bmatrix}t_x;t_y;t_z\end{bmatrix}^T T=[tx​​ty​​tz​​]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​=zc​fxc​​yp​=zc​fyc​​​ 写成矩阵表示为, 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 zc​m=⎣⎡​f00​0f0​001​000​⎦⎤​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 zc​m=⎣⎡​fxfy1​⎦⎤​=⎣⎡​f00​0f0​x0​y0​1​000​⎦⎤​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/dx​00​01/dy​0​001​⎦⎤​⎣⎡​xp​yp​1​⎦⎤​ 结合{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/dx​00​01/dy​0​001​⎦⎤​⎣⎡​f00​0f0​x0​y0​1​⎦⎤​=⎣⎡​fx​00​0fy​0​u0​v0​1​⎦⎤​ 其中, 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⋅[R0​T1​]⎣⎢⎢⎡​xw​yw​zw​1​⎦⎥⎥⎤​

2.5 畸变参数

在这里插入图片描述

2.5.1 径向畸变

径向畸变(桶形畸变和枕形畸变)产生原因:光线在远离透镜中心的地方偏折更大。矫正公式: 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+k1​r2+k2​r4+k3​r6) 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+k1​r2+k2​r4+k3​r6)径向畸变

2.5.2 切向畸变

切向畸变产生原因:透镜不完全平行于图像平面。矫正公式: 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+[2p1​xy+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)+2p2​xy] 由此得到相机的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 实验室设备网 版权所有