01??為什么要進(jìn)行相機(jī)標(biāo)定
隨著機(jī)器視覺的迅猛發(fā)展,我們已經(jīng)不滿足于使用攝像機(jī)進(jìn)行監(jiān)控、抓拍這種較為簡單的功能。更多的用戶青睞于它在非接觸三維尺寸測量上的應(yīng)用。 我們所謂的三維測量是廣義的三維測量,它不僅包括三維物體的重構(gòu)與測量,還包括在三維空間中識別任意二維平面上的尺寸以及位置。 這種技術(shù)目前已被應(yīng)用在高精度的工業(yè)模具以及裝配測量中,其中任意二維平面上的尺寸檢測技術(shù)應(yīng)用得更為廣泛。
圖一 如圖1當(dāng)被測平面和像平面平行且成像模型為理想的小孔成像模型,我們設(shè)焦距為、工作距離為,則被測物和它的像關(guān)系可簡單的表示為:
但是在實(shí)際應(yīng)用中并非如此,我們無法嚴(yán)格控制像平面和被測平面的位置,所用的鏡頭也不是嚴(yán)格的小孔模型。如果直接使用【1】式計(jì)算將會產(chǎn)生極大的誤差。因此,為了獲取更高的測量精度,我們需要通過標(biāo)定來實(shí)現(xiàn)坐標(biāo)平面的轉(zhuǎn)換以及圖像的校正。
02??什么是相機(jī)標(biāo)定
在實(shí)際應(yīng)用中,被測平面的不確定性以及鏡頭的畸變使我們已經(jīng)無法簡單的使用【1】式計(jì)算出實(shí)際距離,但是我們可以將目前能夠獲得的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使這些數(shù)據(jù)符合【1】式的使用條件。 也就是將任意坐標(biāo)平面通過旋轉(zhuǎn)和平移映射到理想坐標(biāo)平面上,對有畸變的圖像進(jìn)行校正,讓它成為符合小孔成像模型的像平面。 有了這種方法,我們只要確定轉(zhuǎn)換算法、校正算法以及【1】式中的參數(shù)就可以實(shí)現(xiàn)三維空間中任意平面上尺寸與位置的測量。我們將這種確定參數(shù)的過程稱之為標(biāo)定。
03??相機(jī)單目標(biāo)定
相機(jī)標(biāo)定的方法根據(jù)攝像機(jī)的數(shù)目可分為單目標(biāo)定、雙目標(biāo)定以及多目標(biāo)定。其中單目相機(jī)標(biāo)定是雙目標(biāo)定的基礎(chǔ),而多目相機(jī)的標(biāo)定則是雙目相機(jī)的擴(kuò)展。因此,我們今天首先來為大家介紹單目標(biāo)定。 在平面測量中影響我們拍攝圖像形變的因素有兩個(gè):鏡頭和相機(jī)姿態(tài)。根據(jù)這兩個(gè)因素我們將攝像機(jī)的參數(shù)分為兩組,相機(jī)內(nèi)參和相機(jī)外參。
3.1 相機(jī)內(nèi)參
內(nèi)參一般包括鏡頭的焦距、鏡頭畸變參數(shù)、光軸中心坐標(biāo)以及像元尺寸,當(dāng)攝像機(jī)和鏡頭確定時(shí),這些參數(shù)唯一確定。下面我們來詳細(xì)介紹一下各參數(shù)的數(shù)學(xué)模型。 1) 焦距 根據(jù)鏡頭類型不同焦距的計(jì)算可分為針孔模型和遠(yuǎn)心模型。如圖3我們假設(shè)世界坐標(biāo)系有任一點(diǎn),在攝像機(jī)靶面所成的像為,根據(jù)不同的光路模型它們之間有如下的對應(yīng)關(guān)系 a) 針孔模型
b) 遠(yuǎn)心模型 由于遠(yuǎn)心鏡頭特殊的光路設(shè)計(jì)使得像的大小與拍攝距離無關(guān),因此表達(dá)式比針孔模型更為簡單。
2) 鏡頭畸變 受到鏡頭的制作和安裝精度的影響,我們所獲得圖像會產(chǎn)生非線性失真。我們稱這種失真為鏡頭畸變。鏡頭畸變產(chǎn)生的誤差使得理想針孔模型已不再適用。因此我們需要先將所得圖像進(jìn)行校正,再應(yīng)用理想的針孔模型。假設(shè)我們所獲取的原始圖像坐標(biāo)、校正后的結(jié)果,其畸變模型坐標(biāo)關(guān)系為:
a) 徑向畸變
徑向畸變主要由透鏡制作過程中表面曲率引起,它會使圖像發(fā)生桶形畸變和枕形畸變(如圖4)。其數(shù)學(xué)模型如下:
其中,如果對精度要求不是很高我們可以令將上式簡化為如下表達(dá)式:
b) 離心畸變 離心變量又稱偏心變量,它的誤差來源于透鏡的安裝精度,這主要是因?yàn)樗戌R片的光學(xué)中心并不能嚴(yán)格的保證在同一條直線上。這種誤差除了在引入徑向畸變同時(shí)還會引入切向畸變。由于之前我們已經(jīng)進(jìn)行了徑向畸變的校正,因此我們在此基礎(chǔ)上只需加入切向畸變校正即可。其數(shù)學(xué)模型如下:
c) 薄棱鏡畸變 影響薄棱鏡畸變的主要因素的是透鏡以及攝像機(jī)靶面的平行度,鏡片與攝像機(jī)靶面夾角越大畸變就越嚴(yán)重。其數(shù)學(xué)表達(dá)式如下:
d) 畸變校正 在實(shí)際的應(yīng)用中,大多數(shù)工業(yè)攝像機(jī)的廠商可以通過攝像機(jī)接口螺紋的機(jī)械精度來保證鏡頭透鏡與靶面的平行性,而且這種畸變產(chǎn)生的誤差較小,因此在一般的圖像標(biāo)定中不作考慮。至此,我們已經(jīng)基本掌握了大多數(shù)情況下畸變產(chǎn)生的原因以及數(shù)學(xué)模型。結(jié)合【5】、【7】兩式我們可以推導(dǎo)出鏡頭畸變校正模型:
3.2 相機(jī)外參
相機(jī)外參是指攝像機(jī)坐標(biāo)系與世界坐標(biāo)系的轉(zhuǎn)換參數(shù)它主要由旋轉(zhuǎn)矩陣R和平移矩陣T組成。對于任意三維坐標(biāo)系,我們都可以通過這兩個(gè)矩陣將其轉(zhuǎn)換到攝像機(jī)坐標(biāo)系中。其數(shù)學(xué)模型為?【10】 1) 旋轉(zhuǎn)矩陣
如圖5所示,我們通過沿坐標(biāo)軸分別旋轉(zhuǎn)來實(shí)現(xiàn)坐標(biāo)系的轉(zhuǎn)換。因此,旋轉(zhuǎn)矩陣R可分解為
三個(gè)矩陣相乘的形式。我們以軸為例,假設(shè)與軸夾角為,且到原點(diǎn)距離為,通過旋轉(zhuǎn)矩陣坐標(biāo)系沿軸旋轉(zhuǎn)后得到點(diǎn),我們可得方程組:
?
由三角函數(shù)展開得:
?
由與軸夾角為得:
?
將【15】式帶入【13】式、【16】式帶入【14】式得:
?
因此
以此類推求得和將它們與相乘得:
2) 平移矩陣
通過旋轉(zhuǎn)矩陣運(yùn)算后,世界坐標(biāo)系的三個(gè)坐標(biāo)軸會與攝像機(jī)坐標(biāo)系對應(yīng)的坐標(biāo)軸相平行。此時(shí)我們已經(jīng)離我們的目標(biāo)又近了一步。如圖7所示我們現(xiàn)在只要沿各坐標(biāo)軸做平移運(yùn)算即可,由此得: 3) 參數(shù)求解 根據(jù)【2】、【9】、【20】、【21】這幾個(gè)數(shù)學(xué)模型,我們可以得知,若想確定一個(gè)攝像機(jī)與被測平面的相對位置,則需要確定包括內(nèi)參、外參在內(nèi)的14個(gè)參數(shù)?,其中是已知的。因此,我們至少需要9個(gè)坐標(biāo)點(diǎn),構(gòu)成9個(gè)方程才可以解出剩余的9個(gè)未知數(shù)。在通常情況下,點(diǎn)的分布以覆蓋大部分視場為準(zhǔn),獲得的數(shù)據(jù)點(diǎn)越多,統(tǒng)計(jì)的參數(shù)就越準(zhǔn)確。我們一般采用最小二乘法或者線性規(guī)劃等統(tǒng)計(jì)算法來求解相應(yīng)參數(shù)。下面我們以HALCON為例演示一個(gè)標(biāo)定的全過程。 HALCON是德國MVTEC Software GmbH公司開發(fā)的一套完善的機(jī)器視覺算法軟件包。它除了擁有亞像素精度的算法以及高效的處理性能外,在三維重構(gòu)方面它也有卓越的表現(xiàn)。它的開發(fā)環(huán)境中自帶相機(jī)標(biāo)定工具,可以輕松的完成相機(jī)標(biāo)定工作。同時(shí),您還可以使用HALCON生成可打印的標(biāo)定板文件。下面我們就來介紹一下相機(jī)標(biāo)定的整個(gè)流程。 a) 生成標(biāo)定板 i.?創(chuàng)建標(biāo)定板 使用HALCON開發(fā)環(huán)境HDevelop創(chuàng)建標(biāo)定板 在選擇尺寸選擇時(shí)推薦大家使用邊長為視野1/3左右的標(biāo)定板 ? ? ? ? ? ??? ?
ii. 打印標(biāo)定板 通過GSView等高精度打印軟件打印標(biāo)定板。 b) 相機(jī)參數(shù)設(shè)置 輸入所使用的攝像機(jī)以及鏡頭的相關(guān)參數(shù)
? c) 拍攝標(biāo)定板圖像 我們采用平移和傾斜的方式使得拍攝圖像中的標(biāo)定板盡量覆蓋整個(gè)視場。 一般情況我們需要保存15幅不同位置的圖像,具體位置如下:
d) 標(biāo)定圖像載入 通過HALCON我們可以實(shí)時(shí)拍攝圖像也可以讀取我們事先拍攝好的圖像進(jìn)行標(biāo)定。如果標(biāo)定板識別成功,圖像上將繪制出標(biāo)定板坐標(biāo)系。
e) 標(biāo)定 標(biāo)定后我們會獲得相機(jī)內(nèi)參和外參。我們還可以將它們保存起來用于坐標(biāo)轉(zhuǎn)換或圖像校正。?
? f) 驗(yàn)證標(biāo)定結(jié)果 在HALCON中不僅有相機(jī)標(biāo)定工具還有測量工具,下面我們使用HDevelop自帶的一維測量助手來驗(yàn)證一下我們的標(biāo)定結(jié)果。 首先我們要加載我們剛才標(biāo)定的數(shù)據(jù)。
成功加載標(biāo)定數(shù)據(jù)后我們就可以使用我們隨機(jī)拍攝的一張圖像進(jìn)行測量。
通過以上幾步操作,現(xiàn)在我們就已經(jīng)得到了像素點(diǎn)的實(shí)際距離。
復(fù)雜的標(biāo)定工作在HALCON的幫助下就輕松的完成了。不僅如此,以上的所有步驟都可以導(dǎo)出為代碼,我們可以將這些代碼集成到我們自己的程序中。 備注:若采用高精度的標(biāo)定板將會得到更高精度的標(biāo)定結(jié)果。 04??應(yīng)用 單目相機(jī)標(biāo)定技術(shù)適用于被測表面曲率較小且需要獲取實(shí)際數(shù)據(jù)的應(yīng)用場合,比如食品、機(jī)械制造以及半導(dǎo)體等。理論上,在檢測過程中所有的被測物尺寸的判斷都可以使用像素尺寸來完成。雖然像素尺寸和實(shí)際尺寸對于計(jì)算機(jī)來說幾乎是一樣的,一般只用于比較大小,但是對于我們來說實(shí)際尺寸更加直觀。
圖15(左圖);圖16(右圖) 圖15為速凍魚柳檢測系統(tǒng)的圖像處理示例。由于實(shí)際應(yīng)用中不同批次的魚柳寬度不同,因此,最好的辦法是使用標(biāo)定后獲取的實(shí)際數(shù)據(jù)來進(jìn)行計(jì)算。這種判定方法使得系統(tǒng)參數(shù)更加直觀,設(shè)置更加方便。圖16為工件尺寸檢測系統(tǒng),通過標(biāo)定,我們不僅可以獲取實(shí)際數(shù)據(jù),而且可以將它們直接和CAD中數(shù)據(jù)進(jìn)行比較,提高檢測效率。
05??結(jié)語
在機(jī)器視覺產(chǎn)業(yè)的蓬勃發(fā)展的今天,相機(jī)標(biāo)定已經(jīng)逐步應(yīng)用到醫(yī)療、食品、磨具生產(chǎn)、半導(dǎo)體生產(chǎn)等諸多檢測系統(tǒng)中。隨著像HALCON這樣的算法庫用戶群的不斷擴(kuò)大,相機(jī)標(biāo)定在作為我們研究課題的同時(shí),也會不斷的走進(jìn)工業(yè)應(yīng)用中。它將為我們提供更完善,更精準(zhǔn)的二維以及三維空間的解決方案,成為提高工業(yè)生產(chǎn)效率和產(chǎn)品質(zhì)量的推動(dòng)力。 ? ?
編輯:黃飛
?
評論
查看更多