CV演算法:立體照片(Stereo)

weixin_34258838發表於2018-06-15

參考資料:
Lecture 08: Introduction to Stereo
Lecture 09: Stereo Algorithms

  • 立體視覺

通過多個攝像頭同時拍出來的照片算出深度

  • 投影(眼鏡/攝像頭是怎麼拍照的)

6220409-9ce423ba663bf61e.png
  • 為什麼需要多個攝像頭(眼睛)

6220409-2f7e2d3593220fd9.png

6220409-efd07ac4bae81a32.png

6220409-4b898b97f741c7f2.png
  • 視差

不同深度的點顯示起來不同,近的點顯示起來比較大


6220409-6eeee5dd1c41c7d7.png

6220409-b76ae23a2f228ea5.png
  • 簡單的深度視覺系統

兩個攝像頭只是在x軸方向有了偏差


6220409-39f99894cb1d6c88.png

計算得到點(X,Y,Z)在左攝像頭的照片的座標


6220409-e57c698edabf8d52.png

trick:攝像頭右移後拍照得到點座標,相當於左攝像頭對點左移後的拍照得到的座標,後面只要計算點(X-Tx, Y, Z)在左攝像頭照片的座標即可。
6220409-a9db03e0c58fa1b5.png

6220409-717854b89e36a506.png

現在我們得到左右攝像頭各自的影象,可以計算同一個點在兩幅圖片中的差距,然後可以得到深度資訊。


6220409-946f19f96fe68993.png

顯示中的點在圖片中移動距離越大,說明該點越近。
6220409-1b17f8c3e488e402.png

6220409-1f12ce786ae55c98.png
  • 例子

6220409-c0b302745b030e9e.png
  • 演算法

確定左右圖對應點(用前面介紹過的SSD或者NCC),然後計算x座標的差距,深度跟這個距離成反比。


6220409-ca315455ab9c5b43.png

idea:SSD或者NCC實際上可以在左圖確定的點後加上一定範圍查詢就可以,不同查詢整幅圖片。ppt說的比較理想,因為兩個攝像頭是平行的,所以兩個對應的點理論上應該是在同一條直線上的。


6220409-96763e41657b2433.png

6220409-d14ea9491a4cecc4.png

6220409-86aaa31b58cdb838.png
  • 實際計算結果

  1. 由於鏡頭左右的原因,邊緣有些點是沒有匹配的。
  2. 還是鏡頭的原因,遮擋了一些。


    6220409-9a8212c0a3c88e23.png

    6220409-44867e47bd99cda0.png

計算的時候,塊太大平滑,但是細節不好。


6220409-72220f0b0bc285aa.png
  • 強制同一條線的點對應的也是另外一條線

幻燈片後面主要是針對更好地對對齊和遮擋進行優化,可能讀論文更加明白一些,看不明白,暫時先這樣吧。

相關文章