劉 嵩,葉玉堂,孫 強(qiáng),宋昀岑
(電子科技大學(xué) 光電信息學(xué)院,四川 成都 610054)
現(xiàn)代光電測控儀器經(jīng)常需要對工業(yè)相機(jī)進(jìn)行標(biāo)定[1],尤其是需要對物體三維信息和表面幾何形狀重建的機(jī)器視覺儀器。相機(jī)標(biāo)定是確定三維空間立體坐標(biāo)與相機(jī)CCD二維圖像坐標(biāo)系之間坐標(biāo)變換的過程,也是機(jī)器視覺領(lǐng)域里的基本問題[2],而相機(jī)標(biāo)定的精度在很大程度上取決于標(biāo)定模式特征點的圖像定位精度。在相機(jī)標(biāo)定算法中,基于棋盤格的相機(jī)標(biāo)定由于標(biāo)定模板制作簡單,并且標(biāo)定精度可以滿足要求,因此得到了廣泛的應(yīng)用。
在使用棋盤格進(jìn)行標(biāo)定的過程中,對棋盤格角點的檢測是至關(guān)重要的一步,現(xiàn)在也有很多角點檢測方法。但是,由于棋盤格背景復(fù)雜,為了提高在復(fù)雜背景環(huán)境下對棋盤格角點檢測的精度,采用參考文獻(xiàn)[3]中的算法思想,將單應(yīng)性矩陣應(yīng)用在棋盤格角點的檢測中,提高了角點的檢測精度。單應(yīng)性矩陣在視頻圖像分析、視覺測量和視覺伺服中都得到廣泛的應(yīng)用[4-5]。
在已知初始化角點坐標(biāo)的前提下,文中采用了一種簡單有效的角點檢測方法[3-4,6],該算法采用由粗到精的多層策略,綜合運用了內(nèi)插值法、Harris算子、Forstner算子、SVD方法。
1)設(shè)定角點所在的窗口大小為winx和winy,已知待檢測的一個角點的初始圖像坐標(biāo)為(ui,vi),這里一般初始坐標(biāo)不是整數(shù)。首先使用內(nèi)插值法將包含初始角點的矩形窗口圖像矩陣變換成以亞像素角點位置為中心的圖像矩陣。這里,采用雙線性插值對一個目標(biāo)像素設(shè)置坐標(biāo),通過反向變換得到浮點坐標(biāo)為(u+Δu,v+Δv),其中 u,v 均為非負(fù)整數(shù),Δu,Δv為[0,1)區(qū)間的浮點數(shù),則這個像素的灰度值為:

2)對得到的以角點浮點坐標(biāo)(ui,vi)為中心的窗口浮點圖像矩陣 S,根據(jù) Harris角點檢測算子原理,可以求得以(ui,vi)為中心進(jìn)行展開的自相關(guān)函數(shù)E(ui,vi)所對應(yīng)的 Hessian矩陣[7-8]。

3) 使用 Forstner算子對初始角(ui,vi)點進(jìn)行更新
Forstner算子[6,9]是攝影測量學(xué)中著名的點定位算子?;舅枷胧牵簩τ诮屈c,將窗口內(nèi)通過每個像素的邊緣直線(垂直于梯度方向)進(jìn)行加權(quán)平均化,得到角點定位坐標(biāo)。

其中,u′,v′表示更新后角點的定位坐標(biāo),a~f的定義如式(4)表達(dá)。

其中,ui,vi表示更新前的角點坐標(biāo)。
經(jīng)過上述方法檢測后得到的角點可能存在誤檢、多檢的情況,需要采用SVD方法去除奇異角點[3]。因為Hessian矩陣M包含窗口方向梯度信息,所以對矩陣M進(jìn)行奇異值分解:

其中Sλ為相應(yīng)特征值組成的對角矩陣,U、V為特征向量組成的酉矩陣。若M只是包含獨立角點或者邊緣,則ΣSu2、SuSv、ΣSv2的值,要么相差很大,要么相差很小,在這兩種情況下進(jìn)行奇異值分解后,Sλ的兩個特征值λ1,λ2相差很大,當(dāng)滿足|λ1/λ2|≥θ時,則該角點為誤檢或多檢。這里取閾值 θ=50[3,6],通過該方法可以有效的去除非角點。
為了達(dá)到更高的角點檢測精度,這里使用迭代方法。
算法1
Step1: 初始化待測角點坐標(biāo)(ui,vi),處理窗口大小 winx,winy,得到此窗口圖像矩陣Si。設(shè)迭代距離誤差為EPS,迭代次數(shù)為N,并令更新后的角點和上一次角點的二范數(shù)距離dist=EPS+1,執(zhí)行 Step2。
Step2:如果dist大于EPS并且此時迭代次數(shù)n小于N,對Si進(jìn)行雙線性插值,得到以(ui,vi)為中心的浮點窗口矩陣S,否則跳轉(zhuǎn)到 Step5。
Step3:計算(ui,vi)對應(yīng)的 Hessian 矩陣 M。
Step4:根據(jù)式(3)計算更新后的角點坐標(biāo) ui,vi。 如果 M的特征值滿足|λ1/λ2|≥θ,則該點為歧義角點,跳轉(zhuǎn)到 Step2,令n=n+1并更新dist的值。
Step5:輸出最終的角點(u′,v′)。
記標(biāo)定板上標(biāo)定點的圖像齊次坐標(biāo)為 Xf=(u,v,1),對應(yīng)的齊次世界坐標(biāo)為 Xw=(xw,yw,1)(zw=0)。 尋找單應(yīng)性矩陣就是找到圖像2D平面上點Xf和2D標(biāo)定板上標(biāo)定點的世界坐標(biāo)Xw的對應(yīng)關(guān)系。這種變換關(guān)系[10]可以表示為:

由于式(6)包含齊次坐標(biāo),這樣三維向量Xf和HXw不相等,它們有相同的方向但模之間有不為零的比例因子。因此可將方程改寫為向量差乘的形式:

這樣,式(7)可以通過簡單的線性求解出H。
現(xiàn)記H的第j行為hjT,那么可以得到:

設(shè) Xf=(u,v,w)T,那么式(7)中的差乘可以寫成:


式(10)即為 Aih=0。其中 Ai是 3×9 的矩陣,h 是 1×9 矩陣并組成H。

hi為h的第i個元素。
Aih=0為h的線性方程,其中Ai是給定角點的二次型。盡管式(10)有3個方程,但是第3個方程可以通過第1個方程的ui倍和第2個方程的vi倍再乘以一個比例因子得到,因此只有2個方程線性相關(guān)。這樣每個角點可以得到關(guān)于H的2個方程,在求解時通常忽略第3個方程。
式(10)可以等價地寫成如下形式:

又可寫成Aih=0,其中 Ai為一個 2×9的矩陣。 式(12)對任意的齊次坐標(biāo) Xi=(ui,vi,wi)T都適用。 在這里我們?nèi)?wi=1,表示(ui,vi)為圖像上點的坐標(biāo)。
在Ai中,有些元素是1,有些元素的單位是像素,有些元素的單位是毫米,還有些元素的單位是像素和毫米的混合體。這樣使得Ai的數(shù)值條件很差,需要將圖像坐標(biāo)數(shù)據(jù)和世界坐標(biāo)數(shù)據(jù)進(jìn)行歸一化變換。
在使用直接線性變換之前必須對數(shù)據(jù)進(jìn)行歸一化變換,包括圖像坐標(biāo)和世界坐標(biāo)的平移和尺度縮放,進(jìn)行歸一化變換后再對結(jié)果進(jìn)行適當(dāng)?shù)男U湍艿玫皆鴺?biāo)系的單應(yīng)性矩陣。
數(shù)據(jù)歸一化可以提高結(jié)果的精度,還對任何尺度縮放和坐標(biāo)原點具有選擇不變性,通過歸一化可以為測量數(shù)據(jù)選擇有效的標(biāo)準(zhǔn)坐標(biāo)系,預(yù)先消除了坐標(biāo)變換的影響。因此,由于代數(shù)最小化在一個固定的標(biāo)準(zhǔn)坐標(biāo)系中進(jìn)行,因而使DLT算法實際上關(guān)于相似變換不變。

1)對點進(jìn)行平移使其形心位于原點;
3)對圖像坐標(biāo)和世界坐標(biāo)上的數(shù)據(jù)對立進(jìn)行上述變換。

算法2


由于采集到的棋盤格背景可能極為復(fù)雜,為了準(zhǔn)確可靠地檢測到棋盤格上的角點。參考Jean-Yves Bouguet提供的Camera Calibration Toolbox[3]中角點檢測的思想進(jìn)行棋盤格標(biāo)定板的角點檢測。首先導(dǎo)入包含棋盤格的待測圖像,然后輸入棋盤格世界坐標(biāo)兩個方向上的格子數(shù)目。
具體步驟如下:
1)將待測角點包含在由手動選擇的4個角點連成的4邊形內(nèi),并將這4個角點的初始圖像坐標(biāo)作為算法1的輸入,通過迭代得到4個更精確的角點圖像坐標(biāo)。
2)將迭代處理后的4個角點的圖像坐標(biāo)和其對應(yīng)的世界坐標(biāo)代入算法2得到單應(yīng)性矩陣H。
3)利用單應(yīng)性矩陣H對四邊形包含的角點的世界坐標(biāo)進(jìn)行反變換,得到所有角點的初始化圖像坐標(biāo)。
4)將上一步得到的角點圖像坐標(biāo)代入算法1,最終得到所有角點的圖像坐標(biāo)。
文中采用Matlab GUI進(jìn)行界面編程,相機(jī)選用德國Basler公司的scA-1400-gm相機(jī),相機(jī)分辨率為1 392×1 040,CCD尺寸為2/3″。鏡頭選用日本VS Technology公司的SVM3520鏡頭。棋盤格標(biāo)定板中一個格子的邊長設(shè)計為4 mm。

圖1 角點檢測結(jié)果Fig.1 Corner detection results
操作界面如圖1所示,根據(jù)半自動角點檢測步驟,選定棋盤格角點外接矩形中兩個方向的格子數(shù)分別為6和5,將算法1中迭代次數(shù)N設(shè)定為100,誤差EPS[3]為0.005。圖1為采集到的棋盤格圖像角點的檢測結(jié)果。可以看出,檢測結(jié)果非常接近實際角點位置。

圖2 檢測的角點局部放大圖Fig.2 Partial enlargement figure of detected corners
圖2為9號和29號角點局部放大圖,其中圓圈內(nèi)十字交點位置為根據(jù)4個單應(yīng)性矩陣定位的初始角點位置,非圓圈內(nèi)十字交點位置為經(jīng)過算法1迭代優(yōu)化后的最終角點位置。可以看出,優(yōu)化后的結(jié)果更接近實際角點的位置。

圖3 單應(yīng)性矩陣反變換和迭代優(yōu)化后的角點變化Fig.3 Homography inverse transform and corner changes after iterative optimization
將外接四邊形包含的角點經(jīng)過單應(yīng)性矩陣逆變換后得到的坐標(biāo)信息和經(jīng)過算法1迭代優(yōu)化后的角點坐標(biāo)進(jìn)行對比,得到的位置變化如圖3所示??梢钥闯?,42個角點經(jīng)過優(yōu)化后的坐標(biāo)與優(yōu)化前的坐標(biāo)變化不超過一個像素,說明通過單應(yīng)性矩陣映射得到的角點位置非常接近實際角點位置,對棋盤格標(biāo)定板的角點位置檢測精度較高。
文中使用半自動角點檢測方法,手動框選角點范圍,應(yīng)用單應(yīng)性矩陣映射的方法將所有角點的初始位置進(jìn)行定位,再利用算法1對角點位置進(jìn)行迭代優(yōu)化,最終得到優(yōu)化后的角點位置。實驗表明,將單應(yīng)性矩陣應(yīng)用在棋盤格角點檢測中,對棋盤格標(biāo)定板上的角點位置得到比較好的檢測效果,檢測精度較高,滿足實際應(yīng)用的需求。
[1]YANG Xing-fang,HUANG Yu-mei,GAO Feng.A simple camera calibration method based on sub-pixelcorner extraction of the chessboard image[C]//IEEE International Conference,2010(3):688-692.
[2]鄒鳳嬌,蘇顯渝,李美菊.基于共面點的攝像機(jī)線性標(biāo)定法[J].光電工程,2005(14):70-74.
ZOU Feng-jiao,SU Xian-yu,LiMei-ju.Camera linear calibration method with a coplanar target[J].Opto-Electronic Engineering,2005(14):70-74.
[3]Jean-Yves Bouguet.Camera Calibration Toolbox for Matlab[EB/OL].(2010-07-09) [2011-12-20].http://www.vision.caltech.edu/bouguetj/calib_doc/
[4]孫鳳梅,胡占義.平面單應(yīng)性矩陣對攝像機(jī)內(nèi)外參數(shù)約束的一些性質(zhì)[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2007,19(5):647-650.
SUN Feng-mei,HU Zhan-yi.Some properties about the constraints on the camera’s intrinsic parameters from a homography[J].Journal of Computer-Aided Design&Computer Graphics,2007,19(5):647-650.
[5]Arrospide J,Salgado L,Nieto M,Vehicle detection and tracking using homography-based plane rectification and particle filtering[R].San Diego:Intelligent Vehicles Symposium(IV),2010:150-155.
[6]黃宣達(dá).攝像機(jī)標(biāo)定中亞像素級角點檢測算法[J].計算機(jī)與數(shù)字工程,2008,36(4):137-139.
HUANG Xuan-da.Sub-pixel corner detection algorithm in camera calibration[J].Computer&Digital Engineering,2008,36(4):137-139.
[7]Harris C,Stephens M.A combined corner and edge detector[C]//Manchester:Pro Fourth Alvey Vision Conference,1988.
[8]張廣軍.視覺測量[M].北京:科學(xué)出版社,2008.
[9]Forsrner W A.Feature extraction in digital photogrammetry[J].The Photogrammetric Record,1993,82(14):595-611.
[10]Hartley R,Zisserman A.計算機(jī)視覺中的多視圖幾何[M].韋穗,楊尚駿,章權(quán)兵,等譯.安徽:安徽大學(xué)出版社,2002.