PNP问题学习

PNP(Perspective)问题:

求解3D到2D点对的运动问题。
求解方法:

  1. P3P
  2. EPnP(Efficient PnP)直接线性变换
  3. UPnP
  4. 光束平差法(Bundle Adjustment,BA)

直接线性变换

直接线性变换用于求解相机内参
齐次做标
归一化平面坐标

  1. 直接线性变化
    (1):假设空间上某个点的齐次做标为 P = ( X , Y , Z , 1 ) T P=(X,Y,Z,1)^T P=(X,Y,Z,1)T,其投影在图像 I 1 I_1 I1上的点为: x 1 = ( u 1 , v 1 , 1 ) T x_1=(u_1,v_1,1)^T x1=(u1,v1,1)T
    (2):相机的位姿时未知的,定义增广矩阵为 [ R ∣ t ] 3 × 4 [R|t]_{3×4} [Rt]3×4包含了旋转与平移信息。展开为:
    s [ u 1 v 1 1 ] = [ t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 t 11 t 12 ] [ X Y Z 1 ] s\left[\begin{matrix}u_1\\v_1\\1\end{matrix}\right]= \left[\begin{matrix}t_1&t_2&t_3&t_4\\ t_5&t_6&t_7&t_8\\ t_9&t_{10}&t_{11}&t_{12}\end{matrix}\right]\left[\begin{matrix}X\\Y\\Z\\1\end{matrix}\right] su1v11=t1t5t9t2t6t10t3t7t11t4t8t12XYZ1
    (3):得到 u 1 , v 1 u_1,v_1 u1,v1为:
    u 1 = t 1 X + t 2 Y + t 3 Z + t 4 t 9 X + t 10 Y + t 11 Z + t 12 , v 1 = t 5 X + t 6 Y + t 7 Z + t 8 t 9 X + t 10 Y + t 11 Z + t 12 u_1=\frac{t_1X+t_2Y+t_3Z+t_4}{t_9X+t_{10}Y+t_{11}Z+t_{12}},v_1=\frac{t_5X+t_6Y+t_7Z+t_8}{t_9X+t_{10}Y+t_{11}Z+t_{12}} u1=t9X+t10Y+t11Z+t12t1X+t2Y+t3Z+t4,v1=t9X+t10Y+t11Z+t12t5X+t6Y+t7Z+t8
    (4):令 T 1 = ( t 1 , t 2 , t 3 , t 4 ) T , T 2 = ( t 5 , t 6 , t 7 , t 8 ) T , T 3 = ( t 9 , t 10 , t 11 , t 12 ) T T_1=(t_1,t_2,t_3,t_4)^T,T_2=(t_5,t_6,t_7,t_8)^T,T_3=(t_9,t_{10},t_{11},t_{12})^T T1=(t1,t2,t3,t4)T,T2=(t5,t6,t7,t8)T,T3=(t9,t10,t11,t12)T 得到:
    T 1 T P − T 3 T P u 1 = 0 T 2 T P − T 3 T P v 1 = 0 T_1^TP-T_3^TPu_1=0\\ T_2^TP-T_3^TPv_1=0 T1TPT3TPu1=0T2TPT3TPv1=0
    (5):假设有N个特征点,则可以列出下列方程,求解即可:
    P n = ( X n , Y n , Z n , 1 ) T , n ∈ ( 1 , 2 , . . , n ) P_n=(X_n,Y_n,Z_n,1)^T,n\in(1,2,..,n) Pn=(Xn,Yn,Zn,1)T,n(1,2,..,n)
    [ P 1 T 0 − u 1 P 1 T 0 P 1 T − v 1 P 1 T . . . . . . . . . P N T 0 − u N P N T 0 P N T − v N P N T ] [ T 1 T 2 T 3 ] = 0 \left[\begin{matrix}P_1^T&0&-u_1P_1^T\\ 0&P_1^T&-v_1P_1^T\\ ...&...&...\\ P_N^T&0&-u_NP_N^T\\ 0&P_N^T&-v_NP^T_N\end{matrix}\right]\left[\begin{matrix}T_1\\T_2\\T_3\end{matrix}\right]=0 P1T0...PNT00P1T...0PNTu1P1Tv1P1T...uNPNTvNPNTT1T2T3=0

  2. 直接线性变换用于求解相机内参
    (1):像素坐标系与三维空间坐标具有如下关系
    f : 焦 距 ; u 0 , v 0 : 相 机 中 心 点 的 偏 差 ; 1 / d x , 1 / d y : 每 个 像 素 对 应 的 实 际 距 离 f:焦距;\\u_0,v_0:相机中心点的偏差;\\1/dx,1/dy:每个像素对应的实际距离 f:;u0,v0:;1/dx,1/dy:
    Z C [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ R t 0 T 1 ] [ X Y Z 1 ] = [ I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I 12 ] [ X Y Z 1 ] Z_C\left[\begin{matrix}u\\v\\1\end{matrix}\right]= \left[\begin{matrix}\frac{1}{dx}&0&u_0\\ 0&\frac{1}{dy}&v_0\\ 0&0&1\end{matrix}\right]\left[\begin{matrix}f&0&0&0\\ 0&f&0&0\\ 0&0&1&0\end{matrix}\right]\left[\begin{matrix}R&t\\0^T&1\end{matrix}\right] \left[\begin{matrix}X\\Y\\Z\\1\end{matrix}\right]=\left[\begin{matrix} I_1&I_2&I_3&I_4\\ I_5&I_6&I_7&I_8\\ I_9&I_{10}&I_{11}&I_{12}\end{matrix}\right]\left[\begin{matrix}X\\Y\\Z\\1\end{matrix}\right] ZCuv1=dx1000dy10u0v01f000f0001000[R0Tt1]XYZ1=I1I5I9I2I6I10I3I7I11I4I8I12XYZ1
    (2):使用DLT求解:
    { u = ( I 1 X + I 2 Y + I 3 Z + I 4 ) / Z C v = ( I 5 X + I 6 Y + I 7 Z + I 8 ) / Z C Z C = I 9 X + I 10 Y + I 11 Z + I 12 = { u = ( I 1 X + I 2 Y + I 3 Z + I 4 ) / Z C I 9 X + I 10 Y + I 11 Z + I 12 v = ( I 5 X + I 6 Y + I 7 Z + I 8 ) I 9 X + I 10 Y + I 11 Z + I 12 \begin{cases} u=(I_1X+I_2Y+I_3Z+I_4)/Z_C\\ v=(I_5X+I_6Y+I_7Z+I_8)/Z_C\\ Z_C=I_9X+I_{10}Y+I_{11}Z+I_{12} \end{cases}=\begin{cases} u=\frac{(I_1X+I_2Y+I_3Z+I_4)/Z_C}{I_9X+I_{10}Y+I_{11}Z+I_{12}}\\ v=\frac{(I_5X+I_6Y+I_7Z+I_8)}{I_9X+I_{10}Y+I_{11}Z+I_{12}}\\ \end{cases} u=(I1X+I2Y+I3Z+I4)/ZCv=(I5X+I6Y+I7Z+I8)/ZCZC=I9X+I10Y+I11Z+I12={u=I9X+I10Y+I11Z+I12(I1X+I2Y+I3Z+I4)/ZCv=I9X+I10Y+I11Z+I12(I5X+I6Y+I7Z+I8)
    (3):得到:
    { I 1 = f r 11 d x + u 0 r 31 I 2 = f r 12 d x + u 0 r 32 I 3 = f r 13 d x + u 0 r 33 I 4 = f t 1 d x + u 0 t 3 I 5 = f r 21 d x + v 0 r 31 I 6 = f r 22 d x + v 0 r 32 I 7 = f r 23 d x + v 0 r 33 I 8 = f t 2 d x + v 0 t 3 I 9 = r 31 I 10 = r 31 I 11 = r 33 I 12 = t 3 \begin{cases} I_1=\frac{fr_{11}}{dx}+u_0r_{31}\\ I_2=\frac{fr_{12}}{dx}+u_0r_{32}\\ I_3=\frac{fr_{13}}{dx}+u_0r_{33}\\ I_4=\frac{ft_1}{dx}+u_0t_3\\ I_5=\frac{fr_{21}}{dx}+v_0r_{31}\\ I_6=\frac{fr_{22}}{dx}+v_0r_{32}\\ I_7=\frac{fr_{23}}{dx}+v_0r_{33}\\ I_8=\frac{ft_2}{dx}+v_0t_3\\ I_9=r_{31}\\I_{10}=r_{31}\\I_{11}=r_{33}\\I_{12}=t_3 \end{cases} I1=dxfr11+u0r31I2=dxfr12+u0r32I3=dxfr13+u0r33I4=dxft1+u0t3I5=dxfr21+v0r31I6=dxfr22+v0r32I7=dxfr23+v0r33I8=dxft2+v0t3I9=r31I10=r31I11=r33I12=t3
    (4):进行变换的到下列方程主:
    [ X Y Z 1 0 0 0 0 − X u − Y u − Z u 0 0 0 0 X Y Z 1 − X v − Y v − Z v . . . ] [ I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I 12 ] = [ u v ]    ⟺    B L = C \left[\begin{matrix}X&Y&Z&1&0&0&0&0&-Xu&-Yu&-Zu\\ 0&0&0&0&X&Y&Z&1&-X_v&-Yv&-Zv\\...\end{matrix}\right]\left[\begin{matrix} I_1\\I_2\\I_3\\I_4\\I_5\\I_6\\I_7\\I_8\\I_9\\I_{10}\\I_{11}\\I_{12}\end{matrix}\right]=\left[\begin{matrix} u\\v\end{matrix}\right]\iff BL=C X0...Y0Z0100X0Y0Z01XuXvYuYvZuZvI1I2I3I4I5I6I7I8I9I10I11I12=[uv]BL=C
    矩阵解为: L = ( B T B ) − 1 ( B T C ) L=(B^TB)^{-1}(B^TC) L=(BTB)1(BTC)
    (4):内参数计算
    { u 0 = I 1 I 9 + I 2 I 10 + I 3 I 11 v 0 = I 5 I 9 + I 6 I 10 + I 7 I 11 f u = I 2 2 + I 2 2 + I 3 2 − u 0 2 f v = I 5 2 + I 6 2 + I 7 2 − v 0 2 \begin{cases} u_0=I_1I_9+I_2I_{10}+I_3I_{11}\\ v_0=I_5I_9+I_6I_{10}+I_7I_{11}\\ f_u=\sqrt{I_2^2+I_2^2+I_3^2-u_0^2}\\ f_v=\sqrt{I^2_5+I^2_6+I_7^2-v_0^2} \end{cases} u0=I1I9+I2I10+I3I11v0=I5I9+I6I10+I7I11fu=I22+I22+I32u02 fv=I52+I62+I72v02

P3P

3个匹配点即可求解
在这里插入图片描述

  1. 如上图式存在如下关系:
    ∠ a O b = ∠ A O B ; ∠ a O c = ∠ A O C ; ∠ c O b = ∠ C O B \angle aOb=\angle AOB;\angle aOc=\angle AOC;\angle cOb=\angle COB aOb=AOB;aOc=AOC;cOb=COB

  2. 利用余弦定理有:
    O A 2 + O B 2 − 2 O A ∗ O B ∗ c o s < a , b > = A B 2 O B 2 + O C 2 − 2 O B ∗ O C ∗ c o s < b , c > = B C 2 O A 2 + O C 2 − 2 O A ∗ O C ∗ c o s < a , c > = A C 2 OA^2+OB^2-2OA*OB*cos<a,b>=AB^2\\ OB^2+OC^2-2OB*OC*cos<b,c>=BC^2\\ OA^2+OC^2-2OA*OC*cos<a,c>=AC^2 OA2+OB22OAOBcos<a,b>=AB2OB2+OC22OBOCcos<b,c>=BC2OA2+OC22OAOCcos<a,c>=AC2

  3. 对2中所有式子除以 O C 2 OC^2 OC2,并记 x = O A / O C , y = O B / O C x=OA/OC,y=OB/OC x=OA/OC,y=OB/OC,得:
    x 2 + y 2 − 2 x y c o s < a , b > = A B 2 / O C 2 y 2 + 1 − 2 y c o s < b , c > = B C 2 / O C 2 x 2 + 1 − 2 x c o s < a , c > = A C 2 / O C 2 x^2+y^2-2xycos<a,b>=AB^2/OC^2\\ y^2+1-2ycos<b,c>=BC^2/OC^2\\ x^2+1-2xcos<a,c>=AC^2/OC^2 x2+y22xycos<a,b>=AB2/OC2y2+12ycos<b,c>=BC2/OC2x2+12xcos<a,c>=AC2/OC2

  4. 再令 v = A B 2 / O C 2 , u v = B C 2 / O C 2 , w v = A C 2 / O C 2 v=AB^2/OC^2,uv=BC^2/OC^2,wv=AC^2/OC^2 v=AB2/OC2,uv=BC2/OC2,wv=AC2/OC2
    x 2 + y 2 − 2 x y c o s < a , b > − v = 0 y 2 + 1 − 2 y c o s < b , c > − u v = 0 x 2 + 1 − 2 x c o s < a , c > − w v = 0 x^2+y^2-2xycos<a,b>-v=0\\ y^2+1-2ycos<b,c>-uv=0\\ x^2+1-2xcos<a,c>-wv=0 x2+y22xycos<a,b>v=0y2+12ycos<b,c>uv=0x2+12xcos<a,c>wv=0

  5. 得到方程如下:
    ( 1 − u ) y 2 − u x 2 − c o s < b , c > y + 2 u x y c o s < a , b > + 1 = 0 ( 1 − w ) x 2 − w y 2 − c o s < a , c > x + 2 w x y c o s < a , b > + 1 = 0 (1-u)y^2-ux^2-cos<b,c>y+2uxycos<a,b>+1=0\\ (1-w)x^2-wy^2-cos<a,c>x+2wxycos<a,b>+1=0 (1u)y2ux2cos<b,c>y+2uxycos<a,b>+1=0(1w)x2wy2cos<a,c>x+2wxycos<a,b>+1=0
    由于2D点的图像位置已知,可以得到3个余弦值 c o s < a , b > , c o s < b , c > , c o s < a , c > , cos<a,b>,cos<b,c>,cos<a,c>, cos<a,b>,cos<b,c>,cos<a,c>,
    已知世界坐标系的3个坐标值可以得到 u = B C 2 A B 2 , w = A C 2 A B 2 u=\frac{BC^2}{AB^2},w=\frac{AC^2}{AB^2} u=AB2BC2,w=AB2AC2
    可以得到一个2元2次方程,需要使用吴消元法。

  6. 求解步骤:
    问题:输入的是上一帧中的3D点,和这些3D点在当前帧中的投影得到的2D点,求得的是当前帧相对于上一帧的位姿变换
    转载
    (1):已知:像素坐标系下的参数如下 a ( a u , a v ) , b ( b u , b v ) , c ( c u , c v ) a(a_u,a_v),b(b_u,b_v),c(c_u,c_v) a(au,av),b(bu,bv),c(cu,cv),实际坐标 A ( A x , A y , A z ) , B ( B x , B y , B z ) , C ( C x , C y , C z ) A(A_x,A_y,A_z),B(B_x,B_y,B_z),C(C_x,C_y,C_z) A(Ax,Ay,Az),B(Bx,By,Bz),C(Cx,Cy,Cz)
    (2):计算3个余弦值 c o s < a , b > , c o s < b , c > , c o s < a , c > , cos<a,b>,cos<b,c>,cos<a,c>, cos<a,b>,cos<b,c>,cos<a,c>,:
    首先将像素坐标转换到相机坐标系即(以点a为例):
    a x = a u − c x f x , a y = a v − c y f y , a z = 1 a_x=\frac{a_u-cx}{f_x},a_y=\frac{a_v-c_y}{f_y},a_z=1 ax=fxaucx,ay=fyavcy,az=1
    单位化: N a = a x 2 + a y 2 + a z 2 N_a=\sqrt{a^2_x+a^2_y+a^2_z} Na=ax2+ay2+az2
    a x ′ = a x N a , a y ′ = a y N a , a z ′ = a z N a a'_x=\frac{a_x}{N_a},a'_y=\frac{a_y}{N_a},a'_z=\frac{a_z}{N_a} ax=Naax,ay=Naay,az=Naaz
    得到余弦值:
    c o s < a ′ , b ′ > = a x ′ b x ′ + a y ′ b y ′ + c x ′ c y ′ c o s < a ′ , c ′ > = a x ′ c x ′ + a y ′ c y ′ + b x ′ b y ′ c o s < b ′ , c ′ > = b x ′ c x ′ + b y ′ c y ′ + a x ′ a y ′ cos<a',b'>=a'_xb'_x+a'_yb'_y+c'_xc'_y\\ cos<a',c'>=a'_xc'_x+a'_yc'_y+b'_xb'_y\\ cos<b',c'>=b'_xc'_x+b'_yc'_y+a'_xa'_y cos<a,b>=axbx+ayby+cxcycos<a,c>=axcx+aycy+bxbycos<b,c>=bxcx+bycy+axay

    (3):计算AB,BC,BC的值(AB为例):
    A B = ( A x − B x ) 2 + ( A y − B y ) 2 + ( A z − B z ) 2 AB=\sqrt{(A_x-B_x)^2+(A_y-B_y)^2+(A_z-B_z)^2} AB=(AxBx)2+(AyBy)2+(AzBz)2
    (4):求解等效方程:
    { a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 = 0 b 1 y − b 0 = 0 \begin{cases} a_4x^4+a_3x^3+a_2x^2+a_1x+a_0=0\\ b_1y-b_0=0 \end{cases} {a4x4+a3x3+a2x2+a1x+a0=0b1yb0=0
    p = 2 c o s < a , c > ; q = 2 c o s < b , c > ; r = 2 c o s < a , b > p=2cos<a,c>;q=2cos<b,c>;r=2cos<a,b> p=2cos<a,c>;q=2cos<b,c>;r=2cos<a,b>在这里插入图片描述(5):得到x,y, ∣ A B ∣ |AB| AB的值求解,得到 P C , P B , P A PC,PB,PA PC,PB,PA
    x 2 + y 2 − 2 x y c o s < a , b > = A B 2 P C 2 , y = P B P C , x = P A P C x^2+y^2-2xycos<a,b>=\frac{AB^2}{PC^2},y=\frac{PB}{PC},x=\frac{PA}{PC} x2+y22xycos<a,b>=PC2AB2,y=PCPB,x=PCPA
    转化为向量:
    a : 单 位 向 量 ; ∣ ∣ P A ∣ ∣ : 模 值 ; A : 在 相 机 坐 标 系 下 坐 标 a:单位向量;||PA||:模值;A:在相机坐标系下坐标 a:;PA:;A:
    A = a → ∣ ∣ P A ∣ ∣ A=\overrightarrow{a}||PA|| A=a PA

(6)直接求变换前后的旋转矩阵
7. 缺点:
(1):对3对点要求严格,如果有点受到噪声影响,或存在误匹配,算法失效
(2):当对应点多余三个,则不能获得更多有效信息。

最小化重投影法求解PNP

把相机和三维点放在一起进行最小化(Bundle Adjustment)

  1. 像素与空间位置点对应关系如下:
    P : 空 间 点 P:空间点 P:
    u i : 像 素 坐 标 u_i:像素坐标 ui:
    K : 相 机 内 参 K:相机内参 K:
    T : 相 机 旋 转 平 移 的 李 群 表 示 T:相机旋转平移的李群表示 T:
    s i [ u i v i 1 ] = K T [ X i Y i Z i 1 ]    ⟺    s i u u = K T P i s_i\left[\begin{matrix}u_i\\v_i\\1\end{matrix}\right]= KT\left[\begin{matrix}X_i\\Y_i\\Z_i\\1\end{matrix}\right] \iff s_iu_u=KTP_i siuivi1=KTXiYiZi1siuu=KTPi

  2. 误差项求和构建最小二乘问题
    T ∗ = a r g m i n T 1 2 ∑ i = 1 n ∣ ∣ u i − 1 s i K T P i ∣ ∣ 2 ( ∣ ∣ 重 投 影 误 差 ∣ ∣ ) T*=argmin_T\frac{1}{2}\sum^n_{i=1}||u_i-\frac{1}{s_i}KTP_i||^2(||重投影误差||) T=argminT21i=1nuisi1KTPi2
    误差有2维,使用齐次做标时,误差为3维,最后一维一直为1,该维度误差一直为零,所以常使用非齐次做标。

  3. 求解一阶导数
    使用高斯牛顿法或者列文伯格-马夸尔特方法需要用到一阶导数
    P ′ = [ X i Y i Z i ] = T P [ 1 : 3 ] P'=\left[\begin{matrix}X_i\\Y_i\\Z_i\end{matrix}\right]=TP_{[1:3]} P=XiYiZi=TP[1:3]

  4. 得到:
    s u = K P ′    ⟺    [ s u s v s ] = [ f x 0 c x 0 f y c y 0 0 1 ] [ X ′ Y ′ Z ′ ] u = f x X ′ Z ′ + c x , v = f y Y ′ Z ′ + c y su=KP' \iff \left[\begin{matrix}su\\sv\\s\end{matrix}\right]= \left[\begin{matrix}f_x&0&c_x\\ 0&f_y&c_y\\ 0&0&1\end{matrix}\right]\left[\begin{matrix}X'\\Y'\\Z'\end{matrix}\right] \\ u=f_x\frac{X'}{Z'}+c_x,v=f_y\frac{Y'}{Z'}+c_y su=KPsusvs=fx000fy0cxcy1XYZu=fxZX+cx,v=fyZY+cy

  5. 扰动求导(像素关于相机位姿的导数):
    ⊕ : 李 代 数 上 的 左 乘 扰 动 \oplus:李代数上的左乘扰动 :
    ∂ e ∂ δ ξ = l i m δ ξ − > 0 e ( δ ξ ⊕ ξ ) − e ( ξ ) δ ξ = ∂ e ∂ P ′ ∂ P ′ ∂ δ ξ ( 像 素 关 于 相 机 位 姿 的 导 数 ) \frac{\partial e}{\partial \delta \xi}=lim_{\delta \xi->0}\frac{e(\delta \xi\oplus\xi)-e(\xi)}{\delta \xi}=\frac{\partial e}{\partial P'}\frac{\partial P'}{\partial \delta \xi}(像素关于相机位姿的导数) δξe=limδξ>0δξe(δξξ)e(ξ)=PeδξP(姿)
    (1):求解 ∂ e ∂ P ′ \frac{\partial e}{\partial P'} Pe:
    ∂ e ∂ P ′ = − [ ∂ u ∂ X ′ ∂ u ∂ Y ′ ∂ u ∂ Z ′ ∂ v ∂ X ′ ∂ v ∂ Y ′ ∂ v ∂ Z ′ ] = − [ f x Z ′ 0 − f x X ′ Z ′ 2 0 f y Z ′ − f y Y ′ Z ′ 2 ] \frac{\partial e}{\partial P'}=-\left[\begin{matrix}\frac{\partial u}{\partial X'}&\frac{\partial u}{\partial Y'}&\frac{\partial u}{\partial Z'}\\\frac{\partial v}{\partial X'}&\frac{\partial v}{\partial Y'}&\frac{\partial v}{\partial Z'} \end{matrix}\right]=-\left[\begin{matrix}\frac{f_x}{Z'}&0&-\frac{f_xX'}{Z'^2}\\0&\frac{f_y}{Z'}&-\frac{f_yY'}{Z'^2} \end{matrix}\right] Pe=[XuXvYuYvZuZv]=[Zfx00ZfyZ2fxXZ2fyY]
    (2):求解 ∂ P ′ ∂ δ ξ \frac{\partial P'}{\partial \delta \xi} δξP:
    ∂ P ∂ δ ξ = lim ⁡ δ ξ − > 0 e δ ξ × e ξ × p − e ξ × p δ ξ = lim ⁡ δ ξ − > 0 ( I + δ ξ × ) e ξ × p − e ξ × p δ ξ = lim ⁡ δ ξ − > 0 δ ξ × e ξ × p δ ξ = lim ⁡ δ ξ − > 0 [ δ ϕ × δ p 0 T 0 ] [ R p + t 1 ] δ ξ = lim ⁡ δ ξ − > 0 [ δ ϕ × ( R p + t ) + δ p 0 T ] [ δ p δ ϕ ] T = [ I − ( R p + t ) × 0 T 0 T ] = ( T P ) ⊙ \frac{\partial P}{\partial \delta \xi}=\lim_{\delta \xi->0}\frac{e^{\delta \xi ×}e^{\xi×}p-e^{\xi×}p}{\delta \xi}\\ =\lim_{\delta \xi->0}\frac{(I+\delta \xi×)e^{\xi×}p-e^{\xi×}p}{\delta \xi}\\ =\lim_{\delta \xi->0}\frac{\delta \xi×e^{\xi×}p}{\delta \xi}\\ =\lim_{\delta \xi->0}\frac{\left[\begin{matrix}\delta \phi×&\delta p\\ 0^T&0\end{matrix}\right]\left[\begin{matrix}Rp+t\\ 1\end{matrix}\right]}{\delta \xi}\\ =\lim_{\delta \xi->0}\frac{\left[\begin{matrix}\delta\phi×(Rp+t)+\delta p\\0^T \end{matrix}\right]}{\left[\begin{matrix}\delta p&\delta\phi\end{matrix}\right]^T}\\ =\left[\begin{matrix}I&-(Rp+t)×\\0^T&0^T\end{matrix}\right]\\ =(TP)^{\odot} δξP=δξ>0limδξeδξ×eξ×peξ×p=δξ>0limδξ(I+δξ×)eξ×peξ×p=δξ>0limδξδξ×eξ×p=δξ>0limδξ[δϕ×0Tδp0][Rp+t1]=δξ>0lim[δpδϕ]T[δϕ×(Rp+t)+δp0T]=[I0T(Rp+t)×0T]=(TP)
    ∂ P ∂ δ ξ = [ I − P ′ × ] \frac{\partial P}{\partial \delta \xi}=\left[\begin{matrix}I&-P'×\end{matrix}\right] δξP=[IP×]
    (3):得到 ∂ e ∂ δ ξ \frac{\partial e}{\partial \delta \xi} δξe
    ∂ e ∂ δ ξ = − [ f x Z ′ 0 − f x X ′ Z ′ 2 − f x X ′ Y ′ Z ′ 2 f x + f x X ′ 2 Z ′ 2 − f x Y ′ Z ′ 0 f y Z ′ − f y Y ′ Z ′ 2 − f y − f y Y ′ 2 Z ′ 2 f y X ′ Y ′ Z ′ 2 f y X ′ Z ′ ] \frac{\partial e}{\partial \delta \xi}=-\left[\begin{matrix} \frac{f_x}{Z'}&0&-\frac{f_xX'}{Z'^2}&-\frac{f_xX'Y'}{Z'^2}&f_x+\frac{f_xX'^2}{Z'^2}&-\frac{f_xY'}{Z'}\\ 0&\frac{f_y}{Z'}&-\frac{f_yY'}{Z'^2}&-f_y-\frac{f_yY'^2}{Z'^2}&\frac{f_yX'Y'}{Z'^2}&\frac{f_yX'}{Z'} \end{matrix}\right] δξe=[Zfx00ZfyZ2fxXZ2fyYZ2fxXYfyZ2fyY2fx+Z2fxX2Z2fyXYZfxYZfyX]

  6. 像素关于相机位置的导数
    ∂ e ∂ P = ∂ e ∂ P ′ ∂ P ′ ∂ P = − [ f x Z ′ 0 − f x X ′ Z ′ 2 0 f y Z ′ − f y Y ′ Z ′ 2 ] R \frac{\partial e}{\partial P}=\frac{\partial e}{\partial P'}\frac{\partial P'}{\partial P}\\ =-\left[\begin{matrix}\frac{f_x}{Z'}&0&-\frac{f_xX'}{Z'^2}\\0&\frac{f_y}{Z'}&-\frac{f_yY'}{Z'^2} \end{matrix}\right]R Pe=PePP=[Zfx00ZfyZ2fxXZ2fyY]R

EPNP

参考1
参考2
质心坐标求解
已知:
(1):n个世界坐标系中的3D参考点坐标
(2):n个3D点对应的、投影在图像上的2D参考点。
(3):摄像机内参K
问题:求解PNP。
解决:EPnP算法将世界坐标系中的3D坐标表示为一组虚拟的控制点的加权和,需要4个不共面的控制点,四个控制点在摄像头参考坐标系下的坐标是未知的,需要先计算4个控制点在相机坐标系下的坐标,再计算相机内参。

  1. 已知:
    右 上 角 标 : w : 表 示 世 界 坐 标 系 的 坐 标 , c : 相 机 坐 标 系 下 的 坐 标 右上角标:w:表示世界坐标系的坐标,c:相机坐标系下的坐标 w:,c
    P i w , ( i = 1 , 2 , . . . , n ) : 3 D 参 考 点 在 世 界 坐 标 系 中 的 非 齐 次 坐 标 P^w_i,(i=1,2,...,n):3D参考点在世界坐标系中的非齐次坐标 Piw,(i=1,2,...,n):3D
    P i c , ( i = 1 , 2 , . . . , n ) : 摄 像 头 参 考 坐 标 系 中 的 非 齐 次 坐 标 P^c_i,(i=1,2,...,n):摄像头参考坐标系中的非齐次坐标 Pic,(i=1,2,...,n):
    c j w , ( j = 1 , 2 , 3 , 4 ) : 4 个 控 制 点 在 世 界 坐 标 系 中 的 非 齐 次 坐 标 , 4 个 点 不 共 面 c_j^w,(j=1,2,3,4):4个控制点在世界坐标系中的非齐次坐标,4个点不共面 cjw,(j=1,2,3,4):4,4
    c j c , ( j = 1 , 2 , 3 , 4 ) : 4 个 控 制 点 在 摄 像 头 参 考 坐 标 系 中 的 非 齐 次 坐 标 c_j^c,(j=1,2,3,4):4个控制点在摄像头参考坐标系中的非齐次坐标 cjc,(j=1,2,3,4):4
    α i j : 齐 次 质 心 坐 标 , 唯 一 确 定 \alpha_{ij}:齐次质心坐标,唯一确定 αij:,
    在世界坐标系下存在如下关系:
    P i w = ∑ j = 1 4 α i j c j w , ( ∑ j = 1 4 α i j = 1 ) P_i^w=\sum_{j=1}^4\alpha_{ij}c^w_j,(\sum^4_{j=1} \alpha_{ij}=1) Piw=j=14αijcjw,(j=14αij=1)
    在相机坐标系下存在如下关系:
    P i c = ∑ j = 1 4 α i j c j c P_i^c=\sum_{j=1}^4\alpha_{ij}c_j^c Pic=j=14αijcjc
    P i c = ∑ j = 1 4 α i j c j c P_i^c=\sum_{j=1}^4\alpha_{ij}c_j^c Pic=j=14αijcjc证明:
    [ R t ] : 相 机 外 参 \left[\begin{matrix}R&t\end{matrix}\right]:相机外参 [Rt]:
    c j c = [ R t ] [ c j c 1 ] P i c = [ R t ] [ P i w 1 ] = [ R t ] [ ∑ j = 1 4 α i j c j w 1 ] c^c_j=\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}c^c_j\\1\end{matrix}\right]\\ P^c_i=\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}P_i^w\\1\end{matrix}\right]=\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}\sum_{j=1}^4\alpha_{ij}c_j^w\\1\end{matrix}\right] cjc=[Rt][cjc1]Pic=[Rt][Piw1]=[Rt][j=14αijcjw1]
    得到:
    P i c = [ R t ] [ ∑ j = 1 4 α i j c j w 1 ] = [ R t ] [ ∑ j = 1 4 α i j c j w ∑ j = 1 4 α i j ] = ∑ j = 1 4 α i j [ R t ] [ c j w 1 ] = ∑ j = 1 4 α i j c j c P_i^c=\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}\sum_{j=1}^4\alpha_{ij}c_j^w\\1\end{matrix}\right]=\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}\sum_{j=1}^4\alpha_{ij}c_j^w\\\sum^4_{j=1} \alpha_{ij}\end{matrix}\right]=\sum_{j=1}^4\alpha_{ij}\left[\begin{matrix}R&t\end{matrix}\right]\left[\begin{matrix}c^w_j\\1\end{matrix}\right]=\sum_{j=1}^4\alpha_{ij}c_j^c Pic=[Rt][j=14αijcjw1]=[Rt][j=14αijcjwj=14αij]=j=14αij[Rt][cjw1]=j=14αijcjc

  2. 如何选取控制点:
    (1):第一个控制点:所有3D点的质心位置
    c 1 w = 1 n ∑ i = 1 n P i w c_1^w=\frac{1}{n}\sum^n_{i=1}P^w_i c1w=n1i=1nPiw
    (2):其余控制点按如下方法计算矩阵:
    A = [ ( p 1 w ) T − ( c 1 w ) T . . . ( p n w ) T − ( c 1 w ) T ] A=\left[\begin{matrix} (p_1^w)^T-(c_1^w)^T\\ ...\\ (p_n^w)^T-(c_1^w)^T\\\end{matrix}\right] A=(p1w)T(c1w)T...(pnw)T(c1w)T
    计算 A T A 的 3 个 特 征 值 : λ 1 , λ 2 , λ 3 A^TA的3个特征值:\lambda_1,\lambda_2,\lambda_3 ATA3λ1,λ2,λ3,对应的特征向量为 v 1 , v 2 , v 3 v_1,v_2,v_3 v1,v2,v3那么剩余3个控制点为: { c 2 w = c 1 w + λ 1 n v 1 c 3 w = c 1 w + λ 2 n v 2 c 4 w = c 1 w + λ 3 n v 3 \begin{cases} c_2^w=c_1^w+\sqrt{\frac{\lambda_1}{n}v_1}\\ c_3^w=c_1^w+\sqrt{\frac{\lambda_2}{n}v_2}\\ c_4^w=c_1^w+\sqrt{\frac{\lambda_3}{n}v_3}\\ \end{cases} c2w=c1w+nλ1v1 c3w=c1w+nλ2v2 c4w=c1w+nλ3v3

  3. 求控制点在相机坐标系下的坐标
    (1) :已知相机投影模型为:
    w i [ u i v i 1 ] = K P i c = K ∑ j = 1 4 α i j c j c = [ f x 0 c x 0 f y c y 0 0 1 ] ∑ j = 1 4 α i j [ x j c y j c z j c ] w_i\left[\begin{matrix}u_i\\v_i\\1\end{matrix}\right]=KP_i^c=K\sum_{j=1}^4\alpha_{ij}c^c_j\\ =\left[\begin{matrix}f_x&0&c_x\\ 0&f_y&c_y\\ 0&0&1\end{matrix}\right]\sum_{j=1}^4\alpha_{ij}\left[\begin{matrix}x^c_j\\y^c_j\\z^c_j\end{matrix}\right] wiuivi1=KPic=Kj=14αijcjc=fx000fy0cxcy1j=14αijxjcyjczjc
    (2):化简得到:
    f x , f y , c x , c y : 相 机 内 参 已 知 f_x,f_y,c_x,c_y:相机内参已知 fx,fy,cx,cy:
    u i , v i : 2 D 点 坐 标 已 知 u_i,v_i:2D点坐标已知 ui,vi:2D
    { ∑ j = 1 4 ( α i j f x x j c + α i j ( c x − u i ) z j c ) = 0 ∑ j = 1 4 ( α i j f y y j c + α i j ( c y − v i ) z j c ) = 0 \begin{cases} \sum^4_{j=1}(\alpha_{ij}f_xx^c_j+\alpha_{ij}(c_x-u_i)z_j^c)=0\\ \sum_{j=1}^4(\alpha_{ij}f_yy_j^c+\alpha_{ij}(c_y-v_i)z_j^c)=0\\ \end{cases} {j=14(αijfxxjc+αij(cxui)zjc)=0j=14(αijfyyjc+αij(cyvi)zjc)=0
    4个控制变量下的坐标 x j c 、 y j c 、 z i c x_j^c、y_j^c、z_i^c xjcyjczic未知,共12个位置参数
    (3):4个控制变量下的坐标 x j c 、 y j c 、 z i c x_j^c、y_j^c、z_i^c xjcyjczic未知,共12个位置参数,一个点确定2个方程,共n个点建一个线性方程如下:
    M 2 n × 12 M_{2n×12} M2n×12
    x : 12 未 知 参 数 x:12未知参数 x:12
    M x = 0 Mx=0 Mx=0
    (4):解得X
    x = ∑ i = 1 N β i v i x=\sum_{i=1}^N\beta_iv_i x=i=1Nβivi
    v i v_i vi为M的右奇异向量,即 M T M 的 特 征 值 为 0 对 应 的 特 征 向 量 M^TM的特征值为0对应的特征向量 MTM0
    (5):已经解得了 v i v_i vi,需要求解 β i \beta_i βi, β i \beta_i βi与N(特征向量为0的解得个数)相关,N分别取1、2、3、4的情况下考虑。
    N=1:
    x = β v x=\beta v x=βv,此时控制点在世界坐标系下和相机坐标系下的距离是相等的:
    ∣ ∣ c i c − c j c ∣ ∣ 2 = ∣ ∣ c i w − c j w ∣ ∣ 2 ||c_i^c-c^c_j||^2=||c_i^w-c_j^w||^2 ciccjc2=ciwcjw2
    引入一个约束:
    v [ i ] : v^{[i]}: v[i]:第i个控制点所占据的3个元素组成的向量。
    ∣ ∣ β v [ i ] − β v [ j ] ∣ ∣ 2 = ∣ ∣ c i w − c j w ∣ ∣ 2 ||\beta v^{[i]}-\beta v^{[j]}||^2=||c_i^w-c_j^w||^2 βv[i]βv[j]2=ciwcjw2
    得到 β \beta β的一个封闭解:
    β = ∑ { i , j } ∈ [ 1 : 4 ] ∣ ∣ v [ i ] − v [ j ] ∣ ∣ ∗ ∣ ∣ c i w − v j w ∣ ∣ ∑ { i , j } ∈ [ 1 : 4 ] ∣ ∣ v [ i ] − v [ j ] ∣ ∣ 2 \beta=\frac{\sum_{\{i,j\}\in[1:4]}||v^{[i]}-v^{[j]}||*||c^w_i-v^w_j||}{\sum_{\{i,j\}\in[1:4]}||v^{[i]}-v^{[j]}||^2} β={i,j}[1:4]v[i]v[j]2{i,j}[1:4]v[i]v[j]ciwvjw
    N=2:
    x = β 1 v 1 + β 2 v 2 x=\beta_1v_1+\beta_2v_2 x=β1v1+β2v2
    引入约束:
    ∣ ∣ ( β 1 v 1 [ i ] + β 2 v 2 [ i ] ) − ( β 1 v 1 [ j ] + β 2 v 2 [ j ] ) ∣ ∣ = ∣ ∣ c i w − c j w ∣ ∣ 2    ⟺    ∣ ∣ β 1 ( v 1 [ i ] − v 1 [ j ] ) + β 2 ( v 2 [ i ] − v 2 [ j ] ) ∣ ∣ 2 = ∣ ∣ c i w − c j w ∣ ∣ 2 ||(\beta_1v_1^{[i]}+\beta_2v_2^{[i]})-(\beta_1v_1^{[j]}+\beta_2v_2^{[j]})||=||c_i^w-c_j^w||^2\\ \iff ||\beta_1(v_1^{[i]}-v_1^{[j]})+\beta_2(v_2^{[i]}-v_2^{[j]})||^2=||c_i^w-c_j^w||^2 (β1v1[i]+β2v2[i])(β1v1[j]+β2v2[j])=ciwcjw2β1(v1[i]v1[j])+β2(v2[i]v2[j])2=ciwcjw2
    令: S 1 = v 1 [ i ] − v 1 [ j ] ; S 2 = v 2 [ i ] − v 2 [ j ] ; c = ∣ ∣ c i w − c j w ∣ ∣ 2 S_1=v_1^{[i]}-v_1^{[j]};S_2=v_2^{[i]}-v_2^{[j]};c=||c_i^w-c_j^w||^2 S1=v1[i]v1[j];S2=v2[i]v2[j];c=ciwcjw2
    得到: β 1 2 S 1 T S 1 + 2 β 1 β 2 S 1 T S 2 + β 2 2 S 2 T S 2 = c \beta_1^2S_1^TS_1+2\beta_1\beta_2S_1^TS_2+\beta_2^2S_2^TS_2=c β12S1TS1+2β1β2S1TS2+β22S2TS2=c
    再令: β = [ β 11 β 12 β 22 ] T = [ β 1 2 β 1 β 2 β 2 2 ] T \beta=\left[\begin{matrix}\beta_{11}&\beta_{12}&\beta_{22}\end{matrix}\right]^T=\left[\begin{matrix}\beta_{1}^2&\beta_{1}\beta_{2}&\beta_{2}^2\end{matrix}\right]^T β=[β11β12β22]T=[β12β1β2β22]T
    4个控制点可以构造出6个线性方程,组成:
    p : 由 参 数 c 构 成 p:由参数c构成 p:c
    L 6 × 3 β = p 6 × 1 L_{6×3}\beta=p_{6×1} L6×3β=p6×1
    求解方程有两个解,再加上一个条件,控制点在摄像机的前端,即 c j c c^c_j cjc的z分量要大于0,从而 β 1 , β 2 \beta_1,\beta_2 β1,β2唯一确定。
    N=3:
    与N=2时的解法相同,这里的 β = [ β 11 , β 12 , β 13 , β 22 , β 23 , β 33 ] T \beta=\left[\begin{matrix}\beta_{11},\beta_{12},\beta_{13},\beta_{22},\beta_{23},\beta_{33}\end{matrix}\right]^T β=[β11,β12,β13,β22,β23,β33]T
    N=4:
    未知数的个数多于方程的个数了,
    β = [ β 11 , β 12 , β 13 , β 14 , β 22 , β 23 , β 24 , β 33 , β 34 , β 44 ] T \beta=\left[\begin{matrix}\beta_{11},\beta_{12},\beta_{13},\beta_{14},\beta_{22},\beta_{23},\beta_{24},\beta_{33},\beta_{34},\beta_{44}\end{matrix}\right]^T β=[β11,β12,β13,β14,β22,β23,β24,β33,β34,β44]T
    加入新的优化,减少未知量:
    β a b = β a β b , β b c = β a b β a c β a a \beta_{ab}=\beta_a\beta_b,\beta bc=\frac{\beta_{ab}\beta_{ac}}{\beta_{aa}} βab=βaβb,βbc=βaaβabβac

  4. 使用高斯牛顿法求解最优化问题。
    (1):优化目标:
    E r r o r i , j ( β ) = ∑ ( i , j ) s . t . i < j ∣ ∣ c i c − c j c ∣ ∣ 2 − ∣ ∣ c i w − c j w ∣ ∣ 2 Error_{i,j}(\beta)=\sum_{(i,j)s.t.i<j}||c_i^c-c^c_j||^2-||c_i^w-c_j^w||^2 Errori,j(β)=(i,j)s.t.i<jciccjc2ciwcjw2
    (2):令 c c = ∣ ∣ c i c − c j c ∣ ∣ 2 , c w = ∣ ∣ c i w − c j w ∣ ∣ 2 cc=||c_i^c-c^c_j||^2,cw=||c_i^w-c^w_j||^2 cc=ciccjc2,cw=ciwcjw2
    c c = ∣ ∣ ( β 1 v 1 [ i ] + β 2 v 2 [ i ] + β 3 v 3 [ i ] + β 4 v 4 [ i ] ) − ( β 1 v 1 [ j ] + β 2 v 2 [ j ] + β 3 v 3 [ j ] + β 4 v 4 [ j ] ) ∣ ∣ 2 = ∣ ∣ β 1 ( v 1 [ i ] − v 1 [ j ] ) + β 2 ( v 2 [ i ] − v 2 [ j ] ) + β 3 ( v 3 [ i ] − v 3 [ j ] ) + β 4 ( v 4 [ i ] − v 4 [ j ] ) ∣ ∣ cc=||(\beta_1v_1^{[i]}+\beta_2v_2^{[i]}+\beta_3v_3^{[i]}+\beta_4v_4^{[i]})-(\beta_1v_1^{[j]}+\beta_2v_2^{[j]}+\beta_3v_3^{[j]}+\beta_4v_4^{[j]})||^2\\ =||\beta_1(v_1^{[i]}-v_1^{[j]})+\beta_2(v_2^{[i]}-v_2^{[j]})+\beta_3(v_3^{[i]}-v_3^{[j]})+\beta_4(v_4^{[i]}-v_4^{[j]})|| cc=(β1v1[i]+β2v2[i]+β3v3[i]+β4v4[i])(β1v1[j]+β2v2[j]+β3v3[j]+β4v4[j])2=β1(v1[i]v1[j])+β2(v2[i]v2[j])+β3(v3[i]v3[j])+β4(v4[i]v4[j])
    (3):再令 S 1 = v 1 [ i ] − v 1 [ j ] ; S 2 = v 2 [ i ] − v 2 [ j ] ; S 3 = v 3 [ i ] − v 3 [ j ] ; S 4 = v 4 [ i ] − v 1 [ j ] ; S_1=v_1^{[i]}-v_1^{[j]};S_2=v_2^{[i]}-v_2^{[j]};S_3=v_3^{[i]}-v_3^{[j]};S_4=v_4^{[i]}-v_1^{[j]}; S1=v1[i]v1[j];S2=v2[i]v2[j];S3=v3[i]v3[j];S4=v4[i]v1[j];:
    c c = β 1 2 S 1 T S 1 + 2 β 1 β 2 S 1 T S 2 + 2 β 1 β 3 S 1 T S 3 + 2 β 1 β 4 S 1 T S 4 + β 2 2 S 2 T S 2 + 2 β 2 β 2 S 2 T S 3 + 2 β 2 β 4 S 2 T S 4 + β 3 2 S 3 T S 3 + 22 β 3 β 4 S 3 T S 4 + β 4 2 S 4 T S 4 cc=\beta_1^2S_1^TS_1+2\beta_1\beta_2S_1^TS_2+2\beta_1\beta_3S_1^TS_3+2\beta_1\beta_4S_1^TS_4\\+\beta_2^2S_2^TS_2+2\beta_2\beta_2S_2^TS_3+2\beta_2\beta_4S_2^TS_4\\ +\beta_3^2S_3^TS_3+22\beta_3\beta_4S_3^TS_4\\ +\beta_4^2S_4^TS_4 cc=β12S1TS1+2β1β2S1TS2+2β1β3S1TS3+2β1β4S1TS4+β22S2TS2+2β2β2S2TS3+2β2β4S2TS4+β32S3TS3+22β3β4S3TS4+β42S4TS4
    (4):求解 J i j J_{ij} Jij
    J i j = ∂ [ E r r o r i , j ( β ) ] ∂ β = [ 2 β 1 S 1 T S 1 + 2 β 2 S 1 T S 2 + 2 β 3 S 1 T S 3 + 2 β 1 S 1 T S 4 2 β 2 S 2 T S 1 + 2 β 2 S 2 T S 2 + 2 β 3 S 2 T S 3 + 2 β 1 S 2 T S 4 2 β 3 S 3 T S 1 + 2 β 2 S 3 T S 2 + 2 β 3 S 3 T S 3 + 2 β 1 S 3 T S 4 2 β 4 S 4 T S 1 + 2 β 2 S 4 T S 2 + 2 β 3 S 4 T S 3 + 2 β 1 S 4 T S 4 ] J_{ij}=\frac{\partial[Error_{i,j}(\beta)]}{\partial \beta}\\ =\left[\begin{matrix} 2\beta_1S_1^TS_1+2\beta_2S_1^TS_2+2\beta_3S_1^TS_3+2\beta_1S_1^TS_4\\ 2\beta_2S_2^TS_1+2\beta_2S_2^TS_2+2\beta_3S_2^TS_3+2\beta_1S_2^TS_4\\ 2\beta_3S_3^TS_1+2\beta_2S_3^TS_2+2\beta_3S_3^TS_3+2\beta_1S_3^TS_4\\ 2\beta_4S_4^TS_1+2\beta_2S_4^TS_2+2\beta_3S_4^TS_3+2\beta_1S_4^TS_4\\ \end{matrix}\right] Jij=β[Errori,j(β)]=2β1S1TS1+2β2S1TS2+2β3S1TS3+2β1S1TS42β2S2TS1+2β2S2TS2+2β3S2TS3+2β1S2TS42β3S3TS1+2β2S3TS2+2β3S3TS3+2β1S3TS42β4S4TS1+2β2S4TS2+2β3S4TS3+2β1S4TS4
    (5)得到雅可比矩阵:
    J = [ J 1 , 2 J 1 , 3 J 1 , 4 J 2 , 3 J 2 , 4 J 3 , 4 ] J=\left[\begin{matrix}J_{1,2}\\J_{1,3}\\J_{1,4}\\J_{2,3}\\J_{2,4}\\J_{3,4}\end{matrix}\right] J=J1,2J1,3J1,4J2,3J2,4J3,4
    (6)残差 r r r为:
    r = [ E r r o r 1 , 2 ( β ) E r r o r 1 , 3 ( β ) E r r o r 1 , 4 ( β ) E r r o r 2 , 3 ( β ) E r r o r 2 , 4 ( β ) E r r o r 3 , 4 ( β ) ] r=\left[\begin{matrix}Error_{1,2}(\beta)\\Error_{1,3}(\beta)\\Error_{1,4}(\beta) \\Error_{2,3}(\beta)\\Error_{2,4}(\beta)\\Error_{3,4}(\beta) \end{matrix}\right] r=Error1,2(β)Error1,3(β)Error1,4(β)Error2,3(β)Error2,4(β)Error3,4(β)
    (7)增量方程为:
    J T J δ β = − J T r J^TJ\delta\beta=-J^Tr JTJδβ=JTr
    (8)更新方程为:
    β = β + δ β \beta=\beta+\delta\beta β=β+δβ

  5. 求解·若[R|t]

  • ICP后边文章
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值