ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

空间六点标定法 ——湖南Zeta

2021-06-12 10:58:45  阅读:234  来源: 互联网

标签:11 ... begin 12 end 标定 pmatrix Zeta 六点


文章目录

空间六点标定法

具体小孔成像原理推理过程参见如下另一篇文章
小孔成像原理和多张照片的张氏标定

相机小孔成像公式

设相机小孔成像原理为
z a ( u v 1 ) = K ( R t ) ( x y z 1 ) , z_a\begin{gathered} \begin{pmatrix} u \\ v\\1\end{pmatrix}=K\begin{pmatrix} R &t\end{pmatrix}\begin{pmatrix}x\\y\\z\\1\end{pmatrix} \end{gathered}, za​⎝⎛​uv1​⎠⎞​=K(R​t​)⎝⎜⎜⎛​xyz1​⎠⎟⎟⎞​​,
这里
K = ( α γ u 0 0 β v 0 0 0 1 ) , R = ( l 1 m 1 n 1 l 2 m 2 n 2 l 3 m 3 n 3 ) , t = ( x 0 ′ y 0 ′ z 0 ′ ) 。 K=\begin{pmatrix} \alpha&\gamma&u_0 \\ 0&\beta&v_0\\0&0&1\end{pmatrix},R=\begin{pmatrix} l_1&m_1&n_1\\l_2&m_2&n_2\\l_3&m_3&n_3\end{pmatrix},t=\begin{pmatrix}x'_0\\y'_0\\z'_0\end{pmatrix}。 K=⎝⎛​α00​γβ0​u0​v0​1​⎠⎞​,R=⎝⎛​l1​l2​l3​​m1​m2​m3​​n1​n2​n3​​⎠⎞​,t=⎝⎛​x0′​y0′​z0′​​⎠⎞​。
其中 t = ( x 0 ′ y 0 ′ z 0 ′ ) = − R ( x 0 y 0 z 0 ) 。 t=\begin{pmatrix}x'_0\\y'_0\\z'_0\end{pmatrix}=-R\begin{pmatrix}x_0\\y_0\\z_0\end{pmatrix}。 t=⎝⎛​x0′​y0′​z0′​​⎠⎞​=−R⎝⎛​x0​y0​z0​​⎠⎞​。
这里 ( x 0 , y 0 , z 0 ) T (x_0,y_0,z_0)^T (x0​,y0​,z0​)T为小孔的世界坐标, z a z_a za​为物点到小孔坐标系“水平”平面的距离,该“水平”平面有时可称为相机平面。

P矩阵的处理

令 P = K ( R t ) P=K\begin{pmatrix} R &t\end{pmatrix} P=K(R​t​),则 P = ( α l 1 + γ l 2 + u 0 l 3 α m 1 + γ m 2 + u 0 m 3 α n 1 + γ n 2 + u 0 n 3 α x 0 ′ + γ y 0 ′ + u 0 z 0 ′ β l 2 + v 0 l 3 β m 2 + v 0 m 3 β n 2 + v 0 n 3 β y 0 ′ + v 0 z 0 ′ l 3 m 3 n 3 z 0 ′ ) , P=\begin{pmatrix}\alpha l_1+\gamma l_2+u_0l_3&\alpha m_1+\gamma m_2+u_0m_3& \alpha n_1+\gamma n_2+u_0n_3&\alpha x'_0+\gamma y'_0+u_0z'_0\\ \beta l_2+v_0l_3& \beta m_2+v_0m_3& \beta n_2+v_0n_3&\beta y'_0+v_0z'_0\\l_3&m_3&n_3&z'_0\end{pmatrix}, P=⎝⎛​αl1​+γl2​+u0​l3​βl2​+v0​l3​l3​​αm1​+γm2​+u0​m3​βm2​+v0​m3​m3​​αn1​+γn2​+u0​n3​βn2​+v0​n3​n3​​αx0′​+γy0′​+u0​z0′​βy0′​+v0​z0′​z0′​​⎠⎞​,
为方便讨论,记
P = ( p 1 p 2 p 3 p 10 p 4 p 5 p 6 p 11 p 7 p 8 p 9 p 12 ) , P=\begin{pmatrix}p_1&p_2&p_3&p_{10}\\p_4&p_5&p_6&p_{11}\\p_7&p_8&p_9&p_{12}\end{pmatrix}, P=⎝⎛​p1​p4​p7​​p2​p5​p8​​p3​p6​p9​​p10​p11​p12​​⎠⎞​,则 z a = l 3 x + m 3 y + n 3 z + z 0 ′ = p 7 x + p 8 y + p 9 z + p 12 , z_a=l_3x+m_3y+n_3z+z'_0=p_7x+p_8y+p_9z+p_{12}, za​=l3​x+m3​y+n3​z+z0′​=p7​x+p8​y+p9​z+p12​,
已知空间6点的世界坐标 ( x i , y i , z i ) T , i = 1 , 2... , 6 (x_i,y_i,z_i)^T,i=1,2...,6 (xi​,yi​,zi​)T,i=1,2...,6以及对应的像素坐标 ( u i , v i ) T , i = 1 , 2... , 6 (u_i,v_i)^T,i=1,2...,6 (ui​,vi​)T,i=1,2...,6,可以根据成像公式,有
( p 7 x i + p 8 y i + p 9 z i + p 12 ) ( u i v i ) = ( p 1 x i + p 2 y i + p 3 z i + p 10 ) p 4 x i + p 5 y i + p 6 z i + p 11 ) , \begin{gathered} (p_7x_i+p_8y_i+p_9z_i+p_{12})\begin{pmatrix} u_i \\ v_i\end{pmatrix}=\begin{pmatrix} p_1x_i+p_2y_i+p_3z_i+p_{10})\\ p_4x_i+p_5y_i+p_6z_i+p_{11}\end{pmatrix}\end{gathered}, (p7​xi​+p8​yi​+p9​zi​+p12​)(ui​vi​​)=(p1​xi​+p2​yi​+p3​zi​+p10​)p4​xi​+p5​yi​+p6​zi​+p11​​)​,
也就是每点可以建立两个如上方程,6点可以建立12个如上方程构成方程组。

线性齐次方程组的求解

因 P 12 = z 0 ′ P_{12}=z'_0 P12​=z0′​,可以根据 z 0 ′ z'_0 z0′​表示世界坐标系原点在小孔坐标系坐标的第三个分量,即世界坐标系原点到相机平面距离,可以恰当建立世界坐标系,使得 z 0 ′ ≠ 0 z'_0\neq 0 z0′​​=0,12个如上方程构成方程组中,可以令 P 12 = 1 P_{12}=1 P12​=1将齐次问题变为非齐次问题,求得一组解 P 0 P_0 P0​,与真实解相差一个常系数 λ \lambda λ,可以利用 ( p 7 , p 8 , p 9 ) T = ( l 3 , m 3 , n 3 ) T (p_7,p_8,p_9)^T=(l_3,m_3,n_3)^T (p7​,p8​,p9​)T=(l3​,m3​,n3​)T为单位向量确定 λ \lambda λ值,从而求出 P P P。当然这里的6各点若全来自一个平面的化,会导致奇异性,使得非齐次线性方程组的解空间的维数 ≥ 1 \geq1 ≥1,从而无法求得正确的 P P P值,所以尽量让空间点具有空间性,而不能使所有点接近于一个平面。再有更多的点可以用最小二乘方法得到的广义逆公式求出,比如令 P 12 = 1 P_{12}=1 P12​=1后将齐次问题变为了非齐次问题: M ( p 1 ′ p 2 ′ . . . p 11 ′ ) = b M\begin{pmatrix}p'_1\\p'_2\\...\\p'_{11}\end{pmatrix}=b M⎝⎜⎜⎛​p1′​p2′​...p11′​​⎠⎟⎟⎞​=b,则最小二乘解为
( p 1 ′ p 2 ′ . . . p 11 ′ ) = ( M ′ M ) − 1 M ′ b \begin{pmatrix}p'_1\\p'_2\\...\\p'_{11}\end{pmatrix}=(M'M)^{-1}M'b ⎝⎜⎜⎛​p1′​p2′​...p11′​​⎠⎟⎟⎞​=(M′M)−1M′b。因 ( p 1 ′ , p 2 ′ , . . . , p 11 ′ ) T (p'_1,p'_2,...,p'_{11})^T (p1′​,p2′​,...,p11′​)T与真实 ( p 1 , p 2 , . . . , p 11 ) T (p_1,p_2,...,p_{11})^T (p1​,p2​,...,p11​)T相差一个常系数 λ \lambda λ,然后利用 ( p 7 , p 8 , p 9 ) T = ( l 3 , m 3 , n 3 ) T (p_7,p_8,p_9)^T=(l_3,m_3,n_3)^T (p7​,p8​,p9​)T=(l3​,m3​,n3​)T为单位向量确定 λ \lambda λ值

已知 P P P求内外参数

利用分块矩阵令 ( q 1 q 2 q 3 ) = ( α l 1 + γ l 2 + u 0 l 3 α m 1 + γ m 2 + u 0 m 3 α n 1 + γ n 2 + u 0 n 3 β l 2 + v 0 l 3 β m 2 + v 0 m 3 β n 2 + v 0 n 3 l 3 m 3 n 3 ) , \begin{pmatrix}q_1\\q_2\\q_3 \end{pmatrix}=\begin{pmatrix}\alpha l_1+\gamma l_2+u_0l_3&\alpha m_1+\gamma m_2+u_0m_3& \alpha n_1+\gamma n_2+u_0n_3\\ \beta l_2+v_0l_3& \beta m_2+v_0m_3& \beta n_2+v_0n_3\\l_3&m_3&n_3\end{pmatrix}, ⎝⎛​q1​q2​q3​​⎠⎞​=⎝⎛​αl1​+γl2​+u0​l3​βl2​+v0​l3​l3​​αm1​+γm2​+u0​m3​βm2​+v0​m3​m3​​αn1​+γn2​+u0​n3​βn2​+v0​n3​n3​​⎠⎞​,
则由于 ( l i , m i , n i ) T (l_i,m_i,n_i)^T (li​,mi​,ni​)T为单位向量且相互垂直,利用内积有 u 0 = q 1 T q 3 , v 0 = q 2 T q 3 u_0=q_1^Tq_3,v_0=q_2^Tq_3 u0​=q1T​q3​,v0​=q2T​q3​,再因为 q 2 2 = β 2 + v 0 2 q_2^2=\beta^2+v_0^2 q22​=β2+v02​,求得 β \beta β,而 q 1 T q 2 = β γ + u 0 v 0 q_1^Tq_2=\beta \gamma+u_0v_0 q1T​q2​=βγ+u0​v0​,从而求得 γ \gamma γ,最后由 q 1 2 = α 2 + γ 2 + u 0 2 q_1^2=\alpha^2+\gamma^2+u_0^2 q12​=α2+γ2+u02​求得 α \alpha α,由此求得所有内参数。
因 ( q 1 q 2 q 3 ) = K R \begin{pmatrix}q_1\\q_2\\q_3 \end{pmatrix}=KR ⎝⎛​q1​q2​q3​​⎠⎞​=KR,所以 R = K − 1 ( q 1 q 2 q 3 ) R=K^{-1}\begin{pmatrix}q_1\\q_2\\q_3 \end{pmatrix} R=K−1⎝⎛​q1​q2​q3​​⎠⎞​。而 ( p 10 p 11 p 12 ) = K t \begin{pmatrix}p_{10}\\p_{11}\\p_{12} \end{pmatrix}=Kt ⎝⎛​p10​p11​p12​​⎠⎞​=Kt,所以 t = K − 1 ( p 10 p 11 p 12 ) t=K^{-1}\begin{pmatrix}p_{10}\\p_{11}\\p_{12} \end{pmatrix} t=K−1⎝⎛​p10​p11​p12​​⎠⎞​。

标签:11,...,begin,12,end,标定,pmatrix,Zeta,六点
来源: https://blog.csdn.net/heeweii/article/details/117838803

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有