這是第一篇博客,想把之前寫的一些東西整理成技術博客,陸續的搬運過來吧。介紹一下一直在做的Stereo match 的基本原理:
![]() |
![]() |
圖1.1 cones_left.jpg | 圖1.2 cones_left.jpg |
為了模擬人眼對立體場景的捕捉和對不同景物遠近的識別能力,立體匹配算法要求采用兩個攝像頭代替人眼,通過獲取兩幅非常接近的圖片以獲取景深(視差:Disparity),從而計算出不同景物與攝像頭的距離,得到景深圖。
![]() |
![]() |
圖2:不同攝像頭中同一個像素對應的位置 | 圖3:相似三角形原理 |
具體計算方法為:
當采取兩個同一水平線上的攝像頭進行拍攝的時候,同一物體將在兩個攝像機內被拍攝到,在兩個攝像機內部,這個物體相對於攝像機中心點位置有不同的坐標,如上圖2所示。Xleft是該物體在左攝像機內相對位置,Xright是該物體在右攝像機內相對位置。兩個攝像機相距S,焦距為f,物體P距離攝像機z,z也就是景深。當我們將兩幅圖像重疊在一起的時候,左攝像機上P的投影和右攝像機上P的投影位置有一個距離|Xleft|+|Xright|,這個距離稱為Disparity,根據相似三角形圖3可以得到z=sf/d. 也就是只要計算得到了d的值,就可以計算得到深度圖。而在計算d的值的過程中需要對兩幅圖像進行匹配,尋找到物體P在兩幅圖像中的相對位置。在對圖像進行匹配的過程中,需要用到cost computation,即通過尋找同一水平線上兩幅圖像上的點的最小誤差來確定這兩個點是否是同一個物體所成的像。由於一個點所能提供的信息太少,因此往往需要擴大對比的范圍。