基於Dragonboard 410c平臺的機器3D視覺——攝像機標定原理

        相信大家在DIY機器人的時候,都想讓自己的機器人像人一樣能夠識別周圍的環境進行自主運動,今天推出的系列blog將帶大家一起學習和了解機器3D視覺,向大家介紹3D視覺相關原理,並以Dragoboard410c開發板爲平臺進行簡單的3D視覺實驗,這裏我們將涉及到3D視覺中的攝像機標定、姿勢估計、對極集合和3D圖像中的深度地圖等內容。

    

       這篇blog主要向大家介紹攝像機標定涉及到的一些基礎概念和原理,這是我們進行3D視覺處理的基礎,在Dragonboard 410c上我們可以方便的用USB攝像頭進行圖像採集,但是通常我們買的USB攝像頭採集到的圖像會帶有一定的畸變,這些畸變將給後續我們進行3D視覺處理計算帶來誤差,爲了消除這些誤差,我們在進行3D視覺建模的過程中需要對我們使用的攝像機進行標定,獲取相機內外參數,然後再根據內外參數對計算進行糾正。

     攝像機採集到的圖像發生的畸變通常分爲徑向畸變和切向畸變兩種,如下圖2所示,我們用攝像頭對棋盤進行拍攝獲取圖像,用紅色直線將棋盤的兩個邊標註出來的時候,可以發現棋盤的邊界與紅線並不重合,這就是畸變帶來的成像影響,如果不進行處理,後續進行3D視覺計算,其將影響計算結果。

    

     

     通常徑向畸變我們可以通過下面的方程組來進行糾正:

    

    同樣,採用相似原理,我們通過下面的方程組來進行校正:

     

    根據上述分析,如果我們在使用攝像頭進行採集的時候,要對採集的圖像進行畸形校正,就必須找到五個造成畸變的係數如下:

    

    同時,校正的過程中我們並不是爲了校正圖像,更重要的是我們需要找到攝像機的內外參數,這些參數是我們後面進行3D計算的關鍵參數,覺得了3D計算的精度,包括攝像機的焦距(fx,fy),光學中心(cx,cy)等,在計算中我們用矩陣進行表示,通常稱爲相機矩陣,這些參數是相機的固有參數,一般情況下,如果不去調整硬件,是不會變化的,因此在進行3D視覺計算的過程中,我們這些參數在計算機標定的時候計算出來即可,其矩陣表示如下:

    

   以上就是整個攝像機標定的基本原理和相關概念,在機器3D視覺計算中,先要通過標定確定這些參數,通常的做法是通過一些包含了非常明顯的圖案樣本(棋盤),然後找到圖像中的比較特殊的拐點,然後得到這些特殊點在圖片中的位置和實際位置,通過真實位置和實際位置就可以採用上述數學方法來計算求解方程組中的相關參數,即我們在3D計算中所需要的畸變係數。

   以上就是整個攝像機標定的基本原理和概念,這裏只是簡單的介紹了單個攝像頭的標定,如果大家想要更精確的視覺3D建模或者想詳細瞭解攝像機標定的原理,可以參考http://blog.csdn.net/pinbodexiaozhu/article/details/43373247,下期blog將在此基礎上介紹如何用CV庫中的函數來實現攝像機圖像的標定編程。


    

     

       

發佈了66 篇原創文章 · 獲贊 11 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章