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