(三)對極幾何

2021-10-14 01:58:17 字數 2012 閱讀 8977

對極約束理解:

1. 對於有重疊紋理的兩幀影象,通過特徵點匹配可以找到一些匹配對,這是對極幾何約束的基礎;

2. 匹配對是由同一空間點在不同畫素平面投影得到的不同畫素座標,以參考幀為基礎,假設空間點為 $p_$,參考幀投影畫素為 $p_$, 當前幀投影畫素為 $p_$。由於空間點 $p_$ 深度值不確定,因此其可能在參考幀光心 $o_$ 和投影畫素 $p_$ 射線上的任意乙個位置。而射線上的 $p_$ 與當前幀的光心 $o_$ 的連線在當前幀畫素平面的交點即為投影畫素 $p_$,因此很顯然,$p_, o_, o_, p_, p_$ 五點共面。具體可以參考

對極幾何、對極約束、單應性變換這篇文章。

3. 對極約束的本質是投影畫素點歸一化平面上的點 $p_^$ 在空間點 $p_$ 在參考幀影象中投影的極線上,而該極線可以通過本質矩陣和參考幀畫素歸一化平面上的點 $p_^ $的乘積來計算:$l = e * p_^$。而點 $p_^$ 在該極線上意味著 $(p_^)^t * l = 0$。

4. 為什麼要用歸一化平面上的點?主要是要利用位姿變換將兩個匹配畫素關聯起來,並且去除相機內參的依賴,否則我們就需要求解基本矩陣,而不是本質矩陣了。又由於不知空間點的深度值,因為只能採用歸一化平面(實際上用哪個平面都不影響,因為深度值未知,任意取,最後再除掉深度即可。不過為了簡單點,一般都採用歸一化平面)。得到歸一化平面上的點,實際上可以說我們已經知道匹配點在各自相機座標系下對應的空間點,儘管深度資訊不夠準確,但是已經可以使用位姿變換來描述二者之間的關係了。假設參考幀和當前幀匹配點對應的深度值為 $d_, d_$,則相對變換可以描述為:

$$d_ * p_^ = d_ * r * p_^ + t$$

5. 如何求解上述問題呢?我們利用叉乘的性質,假設有三個點 $a, b$,令 $c = a \times b$,則有 $a^ * c = 0$ 和 $b^ * c = 0$。此外,還有 $c \times c = 0$。回到上面的問題,對於公式:

$$d_ * p_^ = d_ * r * p_^ + t$$

先同時叉乘位移 $t$,得到:

$$d_ * t \times p_^ = d_ * t \times r * p_^ + 0$$

再同時乘上 $(p_^)$,得到:

$$0 = d_ * (p_^)^ * t \times r * p_^$$

令 $e = t \times r$,則上式可以簡化成:

$$d_ * (p_^)^ * e * p_^ = 0$$

由於上式是乙個齊次方程,尺度對其影響不大,不論左右兩邊乘上任何常數值,結果都沒有變化,因此我們可以進一步簡化成:

$$(p_^)^ * e * p_^ = 0$$

ok,到這裡,我們已經完全把對極幾何約束描述完成了。接下來就是解方程的問題了。我們說到,尺度因子對上述齊次方程影響不大,那麼對應的 $e$ 矩陣也可以簡化乙個自由度,即所有引數同時除掉最後一維,使得最後一維變成 $1$。通過將上述約束關係展開,可以得到乙個八元一次方程,為了求解這八個引數,我們需要有8個方程,因此需要有8組匹配點,所以這也是該方法叫八點法的原因。

6. 利用八點法求解,我們構建了乙個方程:

$$h*e = 0$$

其中,$e$ 為乙個9維的向量,$h$ 是乙個$8\times 9$ 的矩陣。利用svd對矩陣 $h$ 進行分解,得到 $v$ 矩陣中最後一列的向量(對應奇異值最小的向量),即為上述方程的最優解。

7. 之後繼續對本質矩陣 $e$ 進行svd分解(注意,我們需要對其進行reshape為 $3\times 3$ 的矩陣),計算出旋轉矩陣和位移向量組成的四組解。再三角化所有匹配對進行選擇最優模型。

參考文獻

1. 使用cv::findfundamentalmat要注意的幾點

2. 對極幾何、對極約束、單應性變換

3. opencv中cv::recoverpose()函式詳細介紹和用法,以及求解出的r,t的座標相對關係

4. 相機位姿求解問題?

5. slam之特徵匹配(一)————ransac-------opencv中findfundamentalmat函式使用的模型

三對老虎過河問題

abc三隻母老虎,孩子分別為abc三隻小老虎,已知abca都會划船,bc不會。每次過河船上最多坐兩隻老虎,可兩大或兩小或一大一小一起過。但一大一小老虎在一起時,如果不是母子關係,那麼小老虎會被吃掉,請設計乙個合理的過河方案。ab過,abcc ab a回,aabcc b ac過,abc abc a回,...

三維重建 對極幾何與基礎矩陣

基本概率 對極幾何是structure from motion問題中,在兩個相機位置產生的兩幅影象的之間存在的一種特殊幾何關係,是sfm問題中2d 2d求解兩幀間相機姿態的基本模型。基本模型 其中c0 c1為兩個相機中心,p為空間中一點,p在c0 c1對應像平面上的投影分別為x0 x1。c0 c1連...

Linux curses 總結三(對鍵盤的操作)

cbreak cooked 預處理模式 curses程式的控制模式函式 curses程式的鍵盤操作函式 小栗子curses程式的鍵盤操作是對底層的簡單封裝介面 cooked 標準輸入模式,處理的是一行資料,每次遇到 r 換行符 才會把輸入到快取的資料傳遞給程式,這種情況下鍵盤輸入特殊字元可以被處理 ...