01??為什么要進行相機標定
隨著機器視覺的迅猛發(fā)展,我們已經(jīng)不滿足于使用攝像機進行監(jiān)控、抓拍這種較為簡單的功能。更多的用戶青睞于它在非接觸三維尺寸測量上的應(yīng)用。 我們所謂的三維測量是廣義的三維測量,它不僅包括三維物體的重構(gòu)與測量,還包括在三維空間中識別任意二維平面上的尺寸以及位置。 這種技術(shù)目前已被應(yīng)用在高精度的工業(yè)模具以及裝配測量中,其中任意二維平面上的尺寸檢測技術(shù)應(yīng)用得更為廣泛。

圖一 如圖1當被測平面和像平面平行且成像模型為理想的小孔成像模型,我們設(shè)焦距為
、工作距離為
,則被測物
和它的像
關(guān)系可簡單的表示為:

但是在實際應(yīng)用中并非如此,我們無法嚴格控制像平面和被測平面的位置,所用的鏡頭也不是嚴格的小孔模型。如果直接使用【1】式計算將會產(chǎn)生極大的誤差。因此,為了獲取更高的測量精度,我們需要通過標定來實現(xiàn)坐標平面的轉(zhuǎn)換以及圖像的校正。

02??什么是相機標定
在實際應(yīng)用中,被測平面的不確定性以及鏡頭的畸變使我們已經(jīng)無法簡單的使用【1】式計算出實際距離,但是我們可以將目前能夠獲得的數(shù)據(jù)進行轉(zhuǎn)換,使這些數(shù)據(jù)符合【1】式的使用條件。 也就是將任意坐標平面通過旋轉(zhuǎn)和平移映射到理想坐標平面上,對有畸變的圖像進行校正,讓它成為符合小孔成像模型的像平面。 有了這種方法,我們只要確定轉(zhuǎn)換算法、校正算法以及【1】式中的參數(shù)就可以實現(xiàn)三維空間中任意平面上尺寸與位置的測量。我們將這種確定參數(shù)的過程稱之為標定。
03??相機單目標定
相機標定的方法根據(jù)攝像機的數(shù)目可分為單目標定、雙目標定以及多目標定。其中單目相機標定是雙目標定的基礎(chǔ),而多目相機的標定則是雙目相機的擴展。因此,我們今天首先來為大家介紹單目標定。 在平面測量中影響我們拍攝圖像形變的因素有兩個:鏡頭和相機姿態(tài)。根據(jù)這兩個因素我們將攝像機的參數(shù)分為兩組,相機內(nèi)參和相機外參。
3.1 相機內(nèi)參

內(nèi)參一般包括鏡頭的焦距
、鏡頭畸變參數(shù)
、光軸中心坐標
以及像元尺寸
,當攝像機和鏡頭確定時,這些參數(shù)唯一確定。下面我們來詳細介紹一下各參數(shù)的數(shù)學(xué)模型。 1) 焦距 根據(jù)鏡頭類型不同焦距的計算可分為針孔模型和遠心模型。如圖3我們假設(shè)世界坐標系有任一點
,在攝像機靶面所成的像為
,根據(jù)不同的光路模型它們之間有如下的對應(yīng)關(guān)系 a) 針孔模型

b) 遠心模型 由于遠心鏡頭特殊的光路設(shè)計使得像的大小與拍攝距離無關(guān),因此表達式比針孔模型更為簡單。

2) 鏡頭畸變 受到鏡頭的制作和安裝精度的影響,我們所獲得圖像會產(chǎn)生非線性失真。我們稱這種失真為鏡頭畸變。鏡頭畸變產(chǎn)生的誤差使得理想針孔模型已不再適用。因此我們需要先將所得圖像進行校正,再應(yīng)用理想的針孔模型。假設(shè)我們所獲取的原始圖像坐標
、校正后的結(jié)果
,其畸變模型坐標關(guān)系為:

a) 徑向畸變

徑向畸變主要由透鏡制作過程中表面曲率引起,它會使圖像發(fā)生桶形畸變和枕形畸變(如圖4)。其數(shù)學(xué)模型如下:

其中,如果對精度要求不是很高我們可以令將上式簡化為如下表達式:

b) 離心畸變 離心變量又稱偏心變量,它的誤差來源于透鏡的安裝精度,這主要是因為所有鏡片的光學(xué)中心并不能嚴格的保證在同一條直線上。這種誤差除了在引入徑向畸變同時還會引入切向畸變。由于之前我們已經(jīng)進行了徑向畸變的校正,因此我們在此基礎(chǔ)上只需加入切向畸變校正即可。其數(shù)學(xué)模型如下:

c) 薄棱鏡畸變 影響薄棱鏡畸變的主要因素的是透鏡以及攝像機靶面的平行度,鏡片與攝像機靶面夾角越大畸變就越嚴重。其數(shù)學(xué)表達式如下:

d) 畸變校正 在實際的應(yīng)用中,大多數(shù)工業(yè)攝像機的廠商可以通過攝像機接口螺紋的機械精度來保證鏡頭透鏡與靶面的平行性,而且這種畸變產(chǎn)生的誤差較小,因此在一般的圖像標定中不作考慮。至此,我們已經(jīng)基本掌握了大多數(shù)情況下畸變產(chǎn)生的原因以及數(shù)學(xué)模型。結(jié)合【5】、【7】兩式我們可以推導(dǎo)出鏡頭畸變校正模型:

3.2 相機外參
相機外參是指攝像機坐標系與世界坐標系的轉(zhuǎn)換參數(shù)它主要由旋轉(zhuǎn)矩陣R和平移矩陣T組成。對于任意三維坐標系,我們都可以通過這兩個矩陣將其轉(zhuǎn)換到攝像機坐標系中。其數(shù)學(xué)模型為?【10】 1) 旋轉(zhuǎn)矩陣

如圖5所示,我們通過沿坐標軸
分別旋轉(zhuǎn)
來實現(xiàn)坐標系的轉(zhuǎn)換。因此,旋轉(zhuǎn)矩陣R可分解為

三個矩陣相乘的形式。我們以
軸為例,假設(shè)
與
軸夾角為
,且到原點距離為
,通過旋轉(zhuǎn)矩陣
坐標系沿
軸旋轉(zhuǎn)
后得到點
,我們可得方程組:

?

由三角函數(shù)展開得:

?

由
與
軸夾角為
得:

?

將【15】式帶入【13】式、【16】式帶入【14】式得:

?

因此

以此類推求得
和
將它們與
相乘得:

2) 平移矩陣

通過旋轉(zhuǎn)矩陣運算后,世界坐標系的三個坐標軸會與攝像機坐標系對應(yīng)的坐標軸相平行。此時我們已經(jīng)離我們的目標又近了一步。如圖7所示我們現(xiàn)在只要沿各坐標軸做平移運算即可,由此得:
3) 參數(shù)求解 根據(jù)【2】、【9】、【20】、【21】這幾個數(shù)學(xué)模型,我們可以得知,若想確定一個攝像機與被測平面的相對位置,則需要確定包括內(nèi)參、外參在內(nèi)的14個參數(shù)?,其中是已知的。因此,我們至少需要9個坐標點,構(gòu)成9個方程才可以解出剩余的9個未知數(shù)。在通常情況下,點的分布以覆蓋大部分視場為準,獲得的數(shù)據(jù)點越多,統(tǒng)計的參數(shù)就越準確。我們一般采用最小二乘法或者線性規(guī)劃等統(tǒng)計算法來求解相應(yīng)參數(shù)。下面我們以HALCON為例演示一個標定的全過程。 HALCON是德國MVTEC Software GmbH公司開發(fā)的一套完善的機器視覺算法軟件包。它除了擁有亞像素精度的算法以及高效的處理性能外,在三維重構(gòu)方面它也有卓越的表現(xiàn)。它的開發(fā)環(huán)境中自帶相機標定工具,可以輕松的完成相機標定工作。同時,您還可以使用HALCON生成可打印的標定板文件。下面我們就來介紹一下相機標定的整個流程。 a) 生成標定板 i.?創(chuàng)建標定板 使用HALCON開發(fā)環(huán)境HDevelop創(chuàng)建標定板 在選擇尺寸選擇時推薦大家使用邊長為視野1/3左右的標定板 ? ? ? ? ? ??? ?

ii. 打印標定板 通過GSView等高精度打印軟件打印標定板。 b) 相機參數(shù)設(shè)置 輸入所使用的攝像機以及鏡頭的相關(guān)參數(shù)

? c) 拍攝標定板圖像 我們采用平移和傾斜的方式使得拍攝圖像中的標定板盡量覆蓋整個視場。 一般情況我們需要保存15幅不同位置的圖像,具體位置如下:

d) 標定圖像載入 通過HALCON我們可以實時拍攝圖像也可以讀取我們事先拍攝好的圖像進行標定。如果標定板識別成功,圖像上將繪制出標定板坐標系。

e) 標定 標定后我們會獲得相機內(nèi)參和外參。我們還可以將它們保存起來用于坐標轉(zhuǎn)換或圖像校正。?

? f) 驗證標定結(jié)果 在HALCON中不僅有相機標定工具還有測量工具,下面我們使用HDevelop自帶的一維測量助手來驗證一下我們的標定結(jié)果。 首先我們要加載我們剛才標定的數(shù)據(jù)。

成功加載標定數(shù)據(jù)后我們就可以使用我們隨機拍攝的一張圖像進行測量。

通過以上幾步操作,現(xiàn)在我們就已經(jīng)得到了像素點的實際距離。

復(fù)雜的標定工作在HALCON的幫助下就輕松的完成了。不僅如此,以上的所有步驟都可以導(dǎo)出為代碼,我們可以將這些代碼集成到我們自己的程序中。 備注:若采用高精度的標定板將會得到更高精度的標定結(jié)果。 04??應(yīng)用 單目相機標定技術(shù)適用于被測表面曲率較小且需要獲取實際數(shù)據(jù)的應(yīng)用場合,比如食品、機械制造以及半導(dǎo)體等。理論上,在檢測過程中所有的被測物尺寸的判斷都可以使用像素尺寸來完成。雖然像素尺寸和實際尺寸對于計算機來說幾乎是一樣的,一般只用于比較大小,但是對于我們來說實際尺寸更加直觀。

圖15(左圖);圖16(右圖) 圖15為速凍魚柳檢測系統(tǒng)的圖像處理示例。由于實際應(yīng)用中不同批次的魚柳寬度不同,因此,最好的辦法是使用標定后獲取的實際數(shù)據(jù)來進行計算。這種判定方法使得系統(tǒng)參數(shù)更加直觀,設(shè)置更加方便。圖16為工件尺寸檢測系統(tǒng),通過標定,我們不僅可以獲取實際數(shù)據(jù),而且可以將它們直接和CAD中數(shù)據(jù)進行比較,提高檢測效率。
05??結(jié)語
在機器視覺產(chǎn)業(yè)的蓬勃發(fā)展的今天,相機標定已經(jīng)逐步應(yīng)用到醫(yī)療、食品、磨具生產(chǎn)、半導(dǎo)體生產(chǎn)等諸多檢測系統(tǒng)中。隨著像HALCON這樣的算法庫用戶群的不斷擴大,相機標定在作為我們研究課題的同時,也會不斷的走進工業(yè)應(yīng)用中。它將為我們提供更完善,更精準的二維以及三維空間的解決方案,成為提高工業(yè)生產(chǎn)效率和產(chǎn)品質(zhì)量的推動力。 ? ?
編輯:黃飛
?
電子發(fā)燒友App






























評論