2022年6月19日 星期日

利用雙視角重建三維世界

本文為 Multiple View Geometry 第十章 3D Reconstruction of Cameras and Structure 的筆記,介紹了利用雙視角重建三維世界深度的方法(例如 stratified reconstruction)與其限制。 

雙視角重建的步驟與限制

常見的方法是先算出 fundamental 矩陣、再算出兩個視角各自的相機矩陣、再利用 triangulation(請參考前文) 來算出每個點的深度。但是在沒有其他的訊息之下,雙視角重建只能算出相對位置,無法算出絕對的位置或角度。此外對於每個點的 scale(尺度)也是未知的,也就是說當相機很近拍很小的物體,與相機很遠拍很大的物體將會得到相同的結果。

用專業的術語重新將上述的限制再說一次:當相機的 intrinsics 已知時(也稱為 calibrated),此場景為 up to similarity transform(也就是三維旋轉、位移、以及一個 scale 的變換);而若連 intrinsics 都未知的情況下,利用 fundamental matrix 重建三維空間將只能 up to projective transform,也就是說可能的解有很多個,只要他們的投影特性相同那就會是三維重建的解。

利用一些圖片上的一些額外資訊我們仍然有可能在不知道相機矩陣下重建至 metric reconstruction(也就是已知相機 intrinsics 的情形),此方法稱為 stratified reconstruction。

Stratified Reconstruction 簡介

假設 metric reconstruction 的相機矩陣為 \(\bar{P}_i\),而用一開始 fundamental 矩陣算出來的相機矩陣為 \(P_i\),stratified reconstruction 做的事情就是計算 homography 矩陣 H,而這幾個變數的關係式為 \(\bar{P}_i = P_i H^{-1}\)。

因此此演算法的步驟為先將 projective reconstruction(也就是\(\bar{P}_i\))找到一個 \(H_p\) 轉化成 affine reconstruction、再乘上一個 \(H_a\) 變成 metric reconstruction。

Affine Reconstruction

經由 affine reconstruction 後所有在真實世界中的平行線在重建後的結構也會平行,因此我們要先由平行線找出消失點,由消失點算出 plane at infinity \(\pi_{\infty}\),而此 homography 矩陣為: \[ H_p= \begin{bmatrix} I | \mathbf{0}\\ \pi_{\infty}^T \end{bmatrix} \]

Metric Reconstruction

計算 metric reconstruction 必須先求出 image of the absolute conic \(\omega\),求出後利用 affine reconstruction 後的相機矩陣 P 的前三行與前三列 M 與 \(\omega\) 得到 \(AA^T=(M^T \omega M)^{-1}\),而此對應的 homography 矩陣為: \[ H_a= \begin{bmatrix} A^{-1} & 0\\ 0 & 1 \end{bmatrix} \]

計算消失點與 image of the absolute conic 可以參考前文的介紹:投影幾何、Absolute Conic、與圖片的消失點、消失線

Direct metric reconstruction

如果我們知道五個點的三維空間中的位置(Euclidean positions),則可以直接計算 homography 矩陣,不需要計算消失點與 image of the absolute conic。此 homography 為 \(4 \times 4\),有十五個自由度,而一個點能提供三個式子,因此總共需要五個點。當然這五個點不能共線或共面,否則會 degenerate。算出來的 homography 矩陣的反矩陣即為 projective reconstruction 的相機矩陣與 metric reconstruction 的相機矩陣的關係式 \(\bar{P}_i = P_i H^{-1}\)。

沒有留言:

張貼留言