技術(shù)支持
來源:光虎
世界平面測量與校正
與觀察和檢查平面(平坦)表面或放置在此類表面(例如傳送帶)上的物體有關(guān)的視覺系統(tǒng)可以利用Adaptive Vision Studio的圖像到世界平面轉(zhuǎn)換機制,該機制可以:
從原始圖像上的位置計算現(xiàn)實世界的坐標。例如,這對于與外部設(shè)備(例如工業(yè)機器人)的互操作性至關(guān)重要。假設(shè)在圖像上檢測到對象,并且需要將其位置傳輸?shù)綑C器人。檢測到的對象位置以圖像坐標給出,但是機器人在現(xiàn)實世界中使用不同的坐標系進行操作,需要一個由世界平面定義的通用坐標系。
將圖像校正到世界平面上。當(dāng)使用原始圖像進行圖像分析不可行時(由于高度的鏡頭和/或透視失真),這是必需的。對校正圖像執(zhí)行的分析結(jié)果也可以轉(zhuǎn)換為由世界平面坐標系定義的真實坐標。另一個用例是將所有攝像機的圖像校正到公共世界平面上的多攝像機系統(tǒng)校正,從而在這些校正后的圖像之間提供簡單且定義明確的關(guān)系,從而可以輕松疊加或拼接。
下圖顯示了圖像坐標系。圖像坐標以像素表示,原點(0,0)對應(yīng)于圖像的左上角。X軸從圖像的左邊緣開始,并向右邊緣。Y軸從圖像的頂部開始向圖像的底部開始。所有圖像像素都具有非負坐標。
圖像坐標中的方向和像素位置
這個世界平面是一個特殊的平面,在真實的三維世界中定義。它可以任意放置在相機上,有一個定義的原點和XY軸。
下面的圖像顯示了世界平面。第一幅圖像呈現(xiàn)原始圖像,這是由一個尚未安裝在感興趣物體上方的相機拍攝的。第二個圖像顯示的是世界平面,它已與物體所在的表面對齊。這允許從原始圖像上的像素位置計算世界坐標,或者進行圖像校正,如下一幅圖像所示。
不完全定位的相機捕獲的感興趣對象
世界平面坐標系疊加在原始圖像上
圖像到世界平面坐標的計算
圖像校正,在世界坐標下,將從點(0,0)到(5,5)的區(qū)域裁剪
如何實現(xiàn)相機標定?
使用針孔相機模型
濾波器通過有效地最小化RMS重投影誤差(圖像上觀察到的網(wǎng)格點之間的平均平方距離的平方根),從一組平面校準網(wǎng)格中估計攝像機的固有參數(shù)-焦距,主點位置和畸變系數(shù),使用估計的參數(shù)(即網(wǎng)格姿態(tài)和相機參數(shù))將關(guān)聯(lián)的網(wǎng)格坐標投影到圖像平面上。
如果至少一個校準網(wǎng)格不垂直于相機的光軸,則可以通過濾鏡計算焦距?;蛘撸梢酝ㄟ^inFocalLength將焦距設(shè)置為固定值。inFocalLength以像素為單位測量,可以通過傳感器和鏡頭參數(shù)計算得出:
其中f_pix焦距測量為像素,f_鏡頭焦距測量為毫米,pp-傳感器像素間距測量為每像素毫米,d-攝像機結(jié)合或/和圖像縮小因子。
InFocalLength也可以從視角獲得,對于水平情況,適用以下公式:
其中f_pix焦距以像素為單位,w-圖像寬度,α-水平視角
支持一些失真模型類型。最簡單的部門支持大多數(shù)用例,即使校準數(shù)據(jù)稀疏也具有可預(yù)測的行為。高階模型可能更準確,但是它們需要更大的高質(zhì)量校準點數(shù)據(jù)集,通常需要在低于0.1 pix的整個圖像量級上實現(xiàn)高水平的位置精度。當(dāng)然,這只是經(jīng)驗法則,因為每個鏡頭都不同,并且有例外。
失真模型類型與OpenCV兼容,并使用標準化圖像坐標用方程表示:
多項式失真模型
其中,x’和y’不失真,x”和y”是失真的歸一化圖像坐標。
相機模型可直接用于獲取未失真的圖像(該圖像將由具有相同基本參數(shù)的相機拍攝,但不存在鏡頭失真),但是在大多數(shù)情況下,相機校準只是某些條件的先決條件其他操作。例如,當(dāng)使用照相機檢查平面(或放置在該表面上的物體)時,需要照相機模型來執(zhí)行世界平面校準
一組用于基本校準的柵格圖像
使用OUT ReprojectionErrorSegments用于識別圖像點及其網(wǎng)格坐標的不良關(guān)聯(lián)。
InImageGrids-兩分交換
校準網(wǎng)格的提取
相機校準和圖像到世界平面的轉(zhuǎn)換計算均使用具有網(wǎng)格索引的圖像點陣列形式的提取的校準網(wǎng)格,即帶注釋的點。
網(wǎng)格的實際坐標是2D,因為平面網(wǎng)格上任何點的相對坐標都是0。
Adaptive Vision Studio為幾種標準網(wǎng)格格式提供了提取過濾器(例如DetectCalibrationGrid_Chessboard和DetectCalibrationGrid Circles)。
獲得高精度結(jié)果的最重要因素是提取的校準點的精度和準確性。校準網(wǎng)格應(yīng)盡可能平坦且堅硬(紙板不是合適的支撐材料,厚玻璃是完美的選擇)。拍攝校準圖像時,請注意適當(dāng)?shù)臈l件:通過適當(dāng)?shù)南鄼C和柵格安裝座最大程度地減少運動模糊,防止來自校準表面的反射(最好使用漫射照明)。使用自定義校準網(wǎng)格時,請確保點提取器可以達到亞像素精度。驗證真實網(wǎng)格坐標的測量結(jié)果是否準確。另外,使用棋盤格校準格時,請確保整個校準格在圖像中可見。否則,將不會檢測到它,因為檢測算法需要在棋盤周圍有幾個像素寬的空白區(qū)域。請注意列數(shù)和行數(shù),因為提供誤導(dǎo)性數(shù)據(jù)可能會使算法無法正常工作或根本無法工作。
使用圓點標定板的圖片示例:
使用棋盤標定版的圖片示例,只需要拍攝標定板的圖片,并通過ImageObjectsToWorldPlane:Points過濾器模塊,輸入棋盤格的尺寸以及棋盤格所對應(yīng)的像素,即可實現(xiàn)相機標定以及畸變校正。
再輸入棋盤格每個方形格的實際尺寸,即可實現(xiàn)世界坐標轉(zhuǎn)換圖像坐標。
【來源:光虎視覺內(nèi)部培訓(xùn)資料】