本節主要介紹相機的標定方法,包括其內、外參數的求解,以及如何使用HALCON標定助手實現標定。
計算機視覺——相機標定(Camera Calibration)_攝像機標定-CSDN博客
1. 原理
本節介紹與相機標定相關的理論知識,不一定全,可以參考相關的專業書籍。
1.1 為什么要進行標定
實際使用的相機鏡頭都是光學透鏡,只有通過光心的光線才是沿直線傳播的,而大部分的光線在通過透鏡后會發生折射,從而改變了傳播的角度。越靠近透鏡的邊緣,改變的角度也就越大,這會造成相機所成的像產生距離上的拉伸以及形狀的改變,這個現象稱為相機畸變。
對相機進行標定操作其實就是通過一系列的計算校準后得到修正參數,通過這些參數修正后就可以得到與人眼看到的景象相同的圖像,也就是將三維景象轉換成去除畸變后的二維圖像。無論是在機器視覺還是在圖像測量應用中,相機標定都是非常關鍵的環節,其標定的精度及算法的穩定性直接影響結果的準確性。因此,做好相機標定是進行后續工作及實驗的前提。
進行攝像機標定的目的主要是兩方面:一是求出相機的參數(包括內參數、外參數),二是畸變參數。下面圍繞著這兩個方面展開介紹。
1.2 相機模型
1.2.1 四大坐標系
- 世界坐標系是一個全局坐標系,用于描述物體在真實世界中的位置。世界坐標系用 (X_w, Y_w, Z_w) 表示,獨立于相機,可以任意選擇原點和坐標軸的方向。
- 相機坐標系 (Camera Coordinate System)**以相機的光學中心為原點,Z ZZ軸指向相機的正前方,X XX軸和Y YY軸分別指向相機的右側和下方,用于描述物體在相機視角下的位置。通常,相機坐標系用 ( X c , Y c , Z c ) (X_c, Y_c, Z_c)(X?c,Yc,Z c ) 表示。
- 圖像坐標系 (Image Coordinate System)**是二維坐標系,用于描述物體在相機成像平面上的投影位置。通常,圖像坐標系用 ( x , y ) (x, y)(x,y)表示,圖像坐標系的原點通常位于成像平面的中心,x xx軸和y yy軸分別指向圖像的右側和下方。
- 像素坐標系 (Pixel Coordinate System)**是二維坐標系,用于描述物體在數字圖像中的像素位置。通常,像素坐標系用 ( u , v ) (u, v)(u,v) 表示,即列數和行數。像素坐標系的原點通常位于圖像的左上角,u uu軸和v vv軸分別指向圖像的右側和下方。
在機器視覺領域中,為了確定空間物體表面某點的三維幾何位置與其投影圖像(二維)中對應點之間的關系,必須建立相機成像的幾何模型,這些幾何模型參數就是相機的內外參數。
1. 3?相機畸變
常見的鏡頭畸變包括徑向畸變和切向畸變兩類。其中,大多數鏡頭都有徑向畸變,而切向畸變影響相對較小。
在正確的拍攝條件下,矩形體的像仍然是矩形。如果將矩形物體拍攝成四邊向外凸的桶形影像,則稱鏡頭具有負畸變或桶形畸變。相反,如果影像為四邊凹進,則稱鏡頭具有正畸變,或枕形畸變。
- 桶形畸變是由于視場邊緣的放大率比中心部分低引起的,即縮小光圈也不能矯正;
- 枕形畸變是由于視場邊緣部分的放大率比中心部分放大率高引起的,即傾斜角度大的光線的放大率比傾斜角度小的光線的放大率高。