介紹電腦視覺領域中的 3D 重建相關的理論與算法:包含如何估計相機的姿態、如何計算深度、如何重建,也會試著涵蓋一些近年崛起的深度學習的 3D 重建算法。本系列將會理論與實作並重,主要使用 Python 實作,並且以 3D 視覺化的方式展示實作的結果。
前面提過,經過計算得到的 E 並不會符合 Essential Matrix 的特性,因此我們需要對 E 做 SVD 分解,得到 ,並將 設為 ,其中 是 E...
當我們有錯誤的匹配點怎麼辦呢?要如何找到正確的八個點來計算 Essential Matrix 呢?這時候就需要用到 Random sample consensu...
綜合了前面知識(兩個相機之間的姿態估計),讓我們回到實作的部分,這次要把前面介紹的實作組合起來,打造一個簡單的視覺里程計(visual odometry)。 只...
在使用 RGB 圖片做相機姿態估計時,有一個重要的問題,那就是尺度缺失 (Scale Ambiguity),我們在前面為了簡化問題故意忽略不談,現在要來好好討論...
上回提到使用 RGB 圖像做相機姿態估計或 3D 重建時,由於失去了相機與圖片中物體的真實距離,導致有尺度缺失的問題,因此無法得知物體的真實大小。 為了解決這個...
RGB 圖片的產生是透過相機的感光元件將光線轉換成電子訊號,再經過一系列的處理(例如降噪等)後,最後轉換成我們看到的帶有三種顏色組合而成的圖片。那麼深度圖又是怎...
有了每個像素的深度值,我們就可以將這些深度值轉換成 3D 空間中的點,這個過程相當於把每個像素反向的投影到 3D 空間中,這樣我們就可以得到一個 3D 點雲(P...
前面介紹了如何使用RGB做姿態估計,以及利用 triangulation得到3D點雲。由於沒有深度訊息,相機姿態需要考慮的投影問題,並且得到的3D點雲再沒有經過...
這個算法使用的是兩張的深度圖,將他們轉換成 3D 點雲,然後估計兩個點雲之間的 3D 轉換(一個旋轉矩陣和位移向量),這樣就可以得到兩個相機的位移和旋轉。 類似...
使用前面深度圖轉換成 3D 點雲的函數,我們可以來實作迭代最近點算法(Iterative closest point, ICP),這個算法可以估計兩個點雲之間的...