熱線電話:0755-23712116
郵箱:contact@shuangyi-tech.com
地址:深圳市寶安區沙井街道后亭茅洲山工業園工業大廈全至科技創新園科創大廈2層2A
相機標定的理解及原理
一、什么是相機標定?
相機標定,是一個估計相機模型參數的過程:一組描述圖像捕獲過程內部幾何形狀的參數。精確的相機校準對于各種應用都是必不可少的,例如多相機的圖像相互關聯,消除由于鏡頭不完美引起的幾何畸變,或精確測量真實世界的幾何特性(位置、距離、面積、直線度等)。
二、為什么要相機標定?
本質上是根據標定后得到的相機參數建立相機成像幾何模型,由獲得的圖像重構出三維場景。具體來說:當我們用相機獲取照片時,從圖像里得到一些空間信息(比如距離,尺寸等),是要利用二維圖像得到三維信息。拍照的時候把空間物體信息通過相機變成了二維圖像,這個過程本來是不可逆的。但如果我們可以找到一個相機的數學模型,就可以從二維圖像和數學模型反推得到原來的三維信息。
三、相機標定的方法有哪些
相機標定方法有:傳統相機標定法、主動視覺相機標定方法、相機自標定法。
傳統相機標定法需要使用尺寸已知的標定物,通過建立標定物上坐標已知的點與其圖像點之間的對應,利用一定的算法獲得相機模型的內外參數。根據標定物的不同可分為三維標定物和平面型標定物。三維標定物可由單幅圖像進行標定,標定精度較高,但高精密三維標定物的加工和維護較困難。平面型標定物比三維標定物制作簡單,精度易保證,但標定時必須采用兩幅或兩幅以上的圖像。傳統相機標定法在標定過程中始終需要標定物,且標定物的制作精度會影響標定結果。同時有些場合不適合放置標定物也限制了傳統相機標定法的應用。
基于主動視覺的相機標定法是指已知相機的某些運動信息對相機進行標定。該方法不需要標定物,但需要控制相機做某些特殊運動,利用這種運動的特殊性可以計算出相機內部參數。基于主動視覺的相機標定法的優點是算法簡單,往往能夠獲得線性解,故魯棒性較高,缺點是系統的成本高、實驗設備昂貴、實驗條件要求高,而且不適合于運動參數未知或無法控制的場合。
自標定算法中主要是利用相機運動的約束。相機的運動約束條件太強,因此使得其在實際中并不實用。利用場景約束主要是利用場景中的一些平行或者正交的信息。其中空間平行線在相機圖像平面上的交點被稱為消失點,它是射影幾何中一個非常重要的特征,所以很多學者研究了基于消失點的相機自標定方法。自標定方法靈活性強,可對相機進行在線定標。但由于它是基于絕對二次曲線或曲面的方法,其算法魯棒性差。
四、世界平面檢測與校正
與觀察和檢查平面(平坦)表面或放置在此類表面(例如傳送帶)上的物體有關的視覺系統可以利用Adaptive Vision Studio的圖像到世界平面轉換機制,該機制可以:
從原始圖像上的位置計算現實世界的坐標。例如,這對于與外部設備(例如工業機器人)的互操作性至關重要。假設在圖像上檢測到對象,并且需要將其位置傳輸到機器人。檢測到的對象位置以圖像坐標給出,但是機器人在現實世界中使用不同的坐標系進行操作,需要一個由世界平面定義的通用坐標系。
將圖像校正到世界平面上。當使用原始圖像進行圖像分析不可行時(由于高度的鏡頭和/或透視失真),這是必需的。對校正圖像執行的分析結果也可以轉換為由世界平面坐標系定義的真實坐標。另一個用例是將所有工業相機的圖像校正到公共世界平面上的多工業相機系統校正,從而在這些校正后的圖像之間提供簡單且定義明確的關系,從而可以輕松疊加或拼接。
下圖顯示了圖像坐標系。圖像坐標以像素表示,原點(0,0)對應于圖像的左上角。X軸從圖像的左邊緣開始,并向右邊緣。Y軸從圖像的頂部開始向圖像的底部開始。所有圖像像素都具有非負坐標。
圖像坐標中的方向和像素位置
這個世界平面是一個特殊的平面,在真實的三維世界中定義。它可以任意放置在相機上,有一個定義的原點和XY軸。
下面的圖像顯示了世界平面。第一幅圖像呈現原始圖像,這是由一個尚未安裝在感興趣物體上方的相機拍攝的。第二個圖像顯示的是世界平面,它已與物體所在的表面對齊。這允許從原始圖像上的像素位置計算世界坐標,或者進行圖像校正,如下一幅圖像所示。
不完全定位的相機捕獲的感興趣對象
世界平面坐標系疊加在原始圖像上
圖像到世界平面坐標的計算
圖像校正,在世界坐標下,將從點(0,0)到(5,5)的區域裁剪
五、如何實現相機標定
使用針孔相機模型
濾波器通過有效地最小化RMS重投影誤差(圖像上觀察到的網格點之間的平均平方距離的平方根),從一組平面校準網格中估計工業相機的固有參數-焦距,主點位置和畸變系數,使用估計的參數(即網格姿態和相機參數)將關聯的網格坐標投影到圖像平面上。
如果至少一個校準網格不垂直于相機的光軸,則可以通過濾鏡計算焦距?;蛘?,可以通過inFocalLength將焦距設置為固定值。inFocalLength以像素為單位測量,可以通過傳感器和鏡頭參數計算得出:
其中f_pix焦距測量為像素,f_鏡頭焦距測量為毫米,pp-傳感器像素間距測量為每像素毫米,d-工業相機結合或/和圖像縮小因子。
InFocalLength也可以從視角獲得,對于水平情況,適用以下公式:
其中f_pix焦距以像素為單位,w-圖像寬度,α-水平視角
支持一些失真模型類型。最簡單的部門支持大多數用例,即使校準數據稀疏也具有可預測的行為。高階模型可能更準確,但是它們需要更大的高質量校準點數據集,通常需要在低于0.1 pix的整個圖像量級上實現高水平的位置精度。當然,這只是經驗法則,因為每個鏡頭都不同,并且有例外。
失真模型類型與OpenCV兼容,并使用標準化圖像坐標用方程表示:
其中,x’和y’不失真,x”和y”是失真的歸一化圖像坐標。
相機模型可直接用于獲取未失真的圖像(該圖像將由具有相同基本參數的相機拍攝,但不存在鏡頭失真),但是在大多數情況下,相機校準只是某些條件的先決條件其他操作。例如,當使用照相機檢查平面(或放置在該表面上的物體)時,需要照相機模型來執行世界平面校準
一組用于基本校準的柵格圖像
使用OUT ReprojectionErrorSegments用于識別圖像點及其網格坐標的不良關聯。
InImageGrids-兩分交換