1. 程式人生 > >由E求R,t的數學原理

由E求R,t的數學原理

我們知道E=t^R=t_x*R
一個向量a叉乘一個向量b可以表示為一個反對稱矩陣乘以向量b的形式這時由向量a表示的反對稱矩陣(skew symmetric matrix)如下:
叉乘矩陣t_x = [0 -a3 a2;
a3 0 -a1;
-a2 a1 0 ]
已知E,如何求R,t?(當然MATLAB stereo camera calibration工具箱都可以直接求出來,這裡我們看一下背後的原理)
本徵矩陣的性質:
  一個3x3的矩陣是本徵矩陣的充要條件是對它奇異值分解後,它有兩個相等的奇異值,並且第三個奇異值為0。
  把E,svd分解(MATLAB程式碼如下:)
在這裡插入圖片描述
其中RZ(π/2)表示繞Z軸旋轉90度得到的旋轉矩陣:
在這裡插入圖片描述


在這裡插入圖片描述
(這裡的∑即為svd分解得到的D)
從R,T的計算公式中可以看到R,T都有兩種情況,組合起來R,T有4種組合方式。由於一組R,T就決定了攝像機光心座標系C的位姿,所以選擇正確R、T的方式就是,把所有特徵點的深度計算出來,看深度值是不是都大於0,深度都大於0的那組R,T就是正確的。
在這裡插入圖片描述
但由於尺度scale的關係,不同的t,決定了以後計算點P的深度也是不同的,所以恢復的物體深度也是跟尺度scale有關的(詳情見https://blog.csdn.net/heyijia0327/article/details/50758944)