摄像机模型之射影摄像机
1.摄像机构造
一般射影摄像机可以按P=[M∣p4]P=[M|p_4]P=[M∣p4]其中MMM是3X3 矩阵,如果MMM
是非奇异的,那么它是有限摄像机;反之则不然。
摄像机中心
摄像机中心CCC是PPP的一维右零空间,即PC=0PC=0PC=0
-
有限摄像机(M 非奇异)C=(−M−1p41)C=\begin{pmatrix} -M^{-1}p_4\\ 1 \end{pmatrix}C=(−M−1p41)
-
无穷远摄像机(M 奇异)C=(d1)C=\begin{pmatrix} \mathbf{d}\\ 1 \end{pmatrix}C=(d1)
其中,d\mathbf{d}d是MMM的3 维矢量, 即Md=0M\mathbf{d}=0Md=0
列点
对于i=1,...,3i= 1,...,3i=1,...,3列矢量pip_ipi分别对应于X,Y,ZX , Y , ZX,Y,Z轴在图像上的消影点。列p4p_4p4是坐标原点的图像。
主平面
摄像机的主平面是PPP的最后一行P3P^3P3。
轴平面
平面P1P^1P1和P2P^2P2(PPP的第一和第二行)表示空间中过摄像机中心的平面,分别对应于映射到图像上直线x=0x= 0x=0和y=0y = 0y=0的点。
主点
图像点x0=Mm3x_0 = Mm^3x0=Mm3是摄像机的主点,其中m3Tm^{3T}m3T是$M $的第三行。
主射线
摄像机的主射线(主轴)是过摄像机中心CCC而方向矢量为m3Tm^{3T}m3T的射线。主轴矢量v=det(M)m3v = det(M) m^3v=det(M)m3指向摄像机的前方。
2.射影摄像机对点的作用
正向投影
在无穷远平面上的点D=(dT,0)TD=(d^T,0)^TD=(dT,0)T表示消影点。.这些点映射到:
x=PD=[M∣p4]D=Mdx=PD=[M|p_4]D=Mdx=PD=[M∣p4]D=Md
点到射线的反向投影
给定图像中的一个点xxx我们来确定是空间的哪些点被映射到该点。
这些点将组成过摄像机中心的一条空间射线。
X(λ)=P+x+λCX(\lambda )=P^+x+\lambda CX(λ)=P+x+λC
其中P+P^+P+是PPP的伪逆。P+=PT(PPT)−1P^+=P^T(PP^T)^{-1}P+=PT(PPT)−1并且PP+=IPP^+=IPP+=I。
一个图像点xxx反向投影的射线交无穷远平面于点D=((M−1x)T,0)TD=((M^{-1}x)^T,0)^TD=((M−1x)T,0)T。将射线写成其与摄像机中心的两点的连接:
X(μ)=μ(M−1x0)+(−M−1p41)=(M−1(μx−p4)1)X(\mu )=\mu \begin{pmatrix}
M^{-1}x\\
0
\end{pmatrix}+\begin{pmatrix}
-M^{-1}p_4\\
1
\end{pmatrix}=\begin{pmatrix}
M^{-1}(\mu x-p_4)\\
1
\end{pmatrix}X(μ)=μ(M−1x0)+(−M−1p41)=(M−1(μx−p4)1)
点的深度
结论1 令X=(X,Y,Z,T)T\mathbf{X }= (X , Y ,Z,T)^TX=(X,Y,Z,T)T是一个3D3D3D点而P=[M∣p4]P = [M | p_4]P=[M∣p4]是一个有限摄像机的摄像机矩阵, 假定P(X,Y,Z,T)T=W(x,y,1)TP(X, Y , Z , T)^T=W( x,y,1) ^TP(X,Y,Z,T)T=W(x,y,1)T那么:
depth(X;P)=sign(detM)wT∥m3∥depth(\mathbf{X};P)=\frac{sign(detM)w}{T\left \| m^3 \right \|}depth(X;P)=T∥m3∥sign(detM)w
是在摄像机主平面前方的点XXX的深度。
摄像机矩阵的分解
求摄像机中心
中心C=(X,Y,Z,T)TC= (X ,Y,Z,T)^TC=(X,Y,Z,T)T,其中:
X=det([p2,p3,p4])X=det([p_2,p_3,p_4])X=det([p2,p3,p4])
Y=−det([p1,p3,p4])Y=-det([p_1,p_3,p_4])Y=−det([p1,p3,p4])
Z=det([p1,p2,p4])Z=det([p_1,p_2,p_4])Z=det([p1,p2,p4])
T=−det([p1,p2,p3])T=-det([p_1,p_2,p_3])T=−det([p1,p2,p3])
求摄像机定向和内部参数
P=[M∣−MC~]=K[R∣−RC~]P=[M|-M\tilde{C}]=K[R|-R\tilde{C}]P=[M∣−MC~]=K[R∣−RC~]
其中:
K=(αxsx00αyy0001)K=\begin{pmatrix}
\alpha _x & s & x_0\\
0 &\alpha _y & y_0\\
0&0 & 1
\end{pmatrix}K=⎝⎛αx00sαy0x0y01⎠⎞
- αx\alpha _xαx是xxx-坐标方向的比例因子
- αy\alpha _yαy是yyy-坐标方向的比例因子
- sss是扭曲参数
- (x0,y0)T(x_0,y_0)^T(x0,y0)T是主点的坐标
- 像素长度比αx/αy\alpha _x/\alpha _yαx/αy