熊會(huì)元,宗志堅(jiān),余 志,陳承鶴
(中山大學(xué)工學(xué)院, 廣東 廣州 510275)
基于棋盤格的攝像機(jī)標(biāo)定中,角點(diǎn)提取的精度與物像坐標(biāo)的匹配是該算法的重要環(huán)節(jié)。現(xiàn)有角點(diǎn)提取方法可分為三類[1]:一是根據(jù)圖像邊緣特征,由邊緣夾角[2]或曲率[3]來判斷是否為角點(diǎn);二是利用圖像的灰度信息,如Susan算法[4];三是利用圖像的灰度變化率,如Harris算法[5]。Schmid等[6]認(rèn)為, Harris算法是目前最好的一種方法。該方法使用圖像的一階差分,計(jì)算每個(gè)像素的平均平方梯度矩陣,通過特征值分析得出角點(diǎn)的響應(yīng);不受攝像機(jī)姿態(tài)、光照、噪聲等影響,具有效率高和較強(qiáng)的穩(wěn)定性及魯棒性。 但該算法的不足是提取的精度只有像素級(jí),角點(diǎn)集包含外圈角點(diǎn)與格單元邊緣上的偽點(diǎn)(圖1所示綠色箭頭所指),且點(diǎn)集中角點(diǎn)排序混亂。這樣標(biāo)定時(shí),需手動(dòng)完成角點(diǎn)像與物坐標(biāo)匹配。
本文在Harris算法基礎(chǔ)上,利用棋盤格內(nèi)角點(diǎn)的對(duì)稱性,設(shè)計(jì)對(duì)稱算子,剔除外圈角點(diǎn)與偽角點(diǎn)。在此基礎(chǔ)上,應(yīng)用角點(diǎn)處灰度梯度算法,獲取棋盤格亞像素角點(diǎn)。最后,在角點(diǎn)集中應(yīng)用凸包算法分層識(shí)別并自動(dòng)定位角點(diǎn),實(shí)現(xiàn)角點(diǎn)物與像坐標(biāo)的自動(dòng)匹配,進(jìn)而可實(shí)現(xiàn)攝像機(jī)精確快速標(biāo)定。
圖1 Harris 提取角點(diǎn)圖
Harris提取的角點(diǎn)集中,外圈角點(diǎn)受邊界環(huán)境影響,角點(diǎn)提取的精度不高,不易作為標(biāo)定點(diǎn),因而應(yīng)從點(diǎn)集中剔除。從棋盤格布局中可以看出,棋盤格內(nèi)部角點(diǎn)具有以角點(diǎn)為中心,周圍的灰度分布具有對(duì)稱性特點(diǎn);而外圈角點(diǎn)與格單元邊緣上偽角點(diǎn)則不具備,據(jù)此原理定義如下式的對(duì)稱算子[7]:
(1)
其中,I(i,j)為角點(diǎn)(i,j)處的灰度值,w為以(i,j)為中心的窗口,可根據(jù)圖像中棋盤格單元大小設(shè)定,n為w中角點(diǎn)對(duì)稱對(duì)的數(shù)量。
可通過設(shè)定cs的域值來區(qū)分角點(diǎn)是否為內(nèi)部角點(diǎn),其中小于域值的角點(diǎn)則認(rèn)為是內(nèi)部角點(diǎn)。圖2為w取15×7,cs域值取65,對(duì)圖1中棋盤格進(jìn)行的識(shí)別結(jié)果圖。
為得到更高的角點(diǎn)精度,在Harris算法提取角點(diǎn)后,利用角點(diǎn)處灰度梯度獲得亞像素級(jí)角點(diǎn)精度。文獻(xiàn)[8]提到兩種算法,其中基于灰度梯度的算法精度更高,應(yīng)用較廣,其原理如下:
設(shè)Harris算法提取的角點(diǎn)為p,則p指向領(lǐng)域內(nèi)任意一點(diǎn)qi的向量都與qi的灰度梯度垂直。其表達(dá)式如下:
圖2 應(yīng)用對(duì)稱算子識(shí)別內(nèi)部角點(diǎn)圖
(2)
攝像機(jī)標(biāo)定的另一個(gè)環(huán)節(jié)是棋盤格角點(diǎn)的空間坐標(biāo)與圖像坐標(biāo)的匹配。文獻(xiàn)[9]應(yīng)用平行線共滅點(diǎn)的原理,先確定中心格四角點(diǎn),作直線求滅點(diǎn),后由滅點(diǎn)與角點(diǎn)的距離來排序,依次確定其他柵格線上角點(diǎn);文獻(xiàn)[10]提出由中心角點(diǎn)出發(fā),以圖像x與y方向的動(dòng)態(tài)增量dx與dy來預(yù)測和遞推其他角點(diǎn);上述算法受攝像機(jī)畸變影響較大,操作較復(fù)雜。由于棋盤格角點(diǎn)具有柵格排列與分層排列的特征,作者發(fā)現(xiàn)凸包算法能很好的識(shí)別與定位角點(diǎn)集中外層凸點(diǎn);在凸包中,應(yīng)用凸度識(shí)別并定位轉(zhuǎn)角點(diǎn),進(jìn)而可識(shí)別與定位整個(gè)棋盤格角點(diǎn)。
圖3 凸包概念圖
平面點(diǎn)集的凸包定義為對(duì)平面上一個(gè)點(diǎn)集S,或一個(gè)多邊形P,其凸包是指包含S或P的最小凸多邊形。如下圖中線段表示的多邊形就是點(diǎn)集S={p0,p1,...,p12}的凸包。
定義1 設(shè)P為逆時(shí)針排序的凸多邊形,其頂點(diǎn)的序列為{p0,p1,...pn-1},計(jì)T(P)為P的凸包,L(pi,pi+1)為頂點(diǎn)pi與pi+1的直線連接,TL(p0,pn-1)={L(p0,p1),…,L(pi-1,pi),…,L(pn-1,p0)}為凸包T(P)的直線集。
基于凸包的角點(diǎn)分層識(shí)別與自動(dòng)排序包括角點(diǎn)集凸包的識(shí)別、凸包中的四個(gè)轉(zhuǎn)角點(diǎn)識(shí)別與定位、同層角點(diǎn)的全識(shí)別與排序,以及角點(diǎn)全識(shí)別與排序等四個(gè)步驟。具體如下:
步驟一角點(diǎn)集凸包的識(shí)別
① 設(shè)Q0為m×n棋盤格角點(diǎn)的點(diǎn)集,取點(diǎn)p0(p0∈Q0且p0的x坐標(biāo)最小,如有多個(gè)相等的最小值,則取其中y坐標(biāo)最小的點(diǎn));
② 以p0為中心,計(jì)算pi(pi∈(Q0-p0),i=1,...,m×n-1)相對(duì)于p0的極角,并以逆時(shí)針方向?qū)O角排序,若極角相等,取離p0最遠(yuǎn)的點(diǎn),則可得點(diǎn)集P(P={p0,...,pi,...,pr},其中r≤m×n-1);
最后得到點(diǎn)集P={p0,...,pi,...,pk}(其中k≤r)所構(gòu)成的多邊形即為點(diǎn)集Q0的凸包T(P)。圖4為應(yīng)用本算法獲得圖2棋盤格點(diǎn)集的凸包圖,由9個(gè)頂點(diǎn)組成。
步驟二凸包中棋盤格轉(zhuǎn)角點(diǎn)識(shí)別與定位
② 求p0、p1、p2與p3的質(zhì)心pc(x,y);
,
(3)
圖4 棋盤格角點(diǎn)集凸包
步驟三同層角點(diǎn)的識(shí)別與排序
依次取凸包T′(P)直線集上直線L(pi,pi+1)(L(pi,pi+1)∈T′L(p0,pk);i=0,1,…,k),任取角點(diǎn)ql∈(Q0-P′)(l=0,1,...,m×n-1-k),求到直線L(pi,pi+1)的垂足fl與距離dl。設(shè)判斷點(diǎn)在直線上的距離域值為εd,若dl≤εd且fl在直線段L(pi,pi+1)的pi與pi+1點(diǎn)之間,則認(rèn)為點(diǎn)ql為直線L(pi,pi+1)上的點(diǎn),并將ql按|pi-ql|距離由近至遠(yuǎn)的次序插入點(diǎn)集P′,遍歷T′(P)上的直線集后可得以左上角點(diǎn)p0為起始點(diǎn),逆時(shí)針存儲(chǔ)的棋盤格同層角點(diǎn)的點(diǎn)序集P′(P′={p0,...,pi,ql,pi+1,...,pk})。
步驟四角點(diǎn)的全識(shí)別與排序
圖5 按凸包次序排序圖
圖6 行列次序排序圖
用Visual C++6.0編程實(shí)現(xiàn)了上述算法,用圖7示數(shù)控實(shí)驗(yàn)平臺(tái),采用Watec 902B攝像機(jī),f=25 mm鏡頭,拍攝15位置棋盤格圖像(見圖8),用本文算法完成角點(diǎn)精確提取與分層識(shí)別排序,用Zhang[11]完成標(biāo)定;為進(jìn)行對(duì)比實(shí)驗(yàn),同時(shí)應(yīng)用經(jīng)典的基于Matlab攝像機(jī)標(biāo)定程序[12],實(shí)現(xiàn)角點(diǎn)手動(dòng)提取與定位,并標(biāo)定,其標(biāo)定對(duì)比結(jié)果如表1。
圖7 實(shí)驗(yàn)圖
表1 對(duì)比實(shí)驗(yàn)結(jié)果表
圖8 拍攝15位置標(biāo)定圖像
由上述實(shí)驗(yàn)可以看出,兩種方法標(biāo)定結(jié)果焦距fx,fy,主點(diǎn)u0,v0以及畸變系數(shù)(k1,k2,p1,p2)十分接近,誤差較小。但本文方法可全自動(dòng)實(shí)現(xiàn),整個(gè)標(biāo)定時(shí)間僅為21.6 s,而文獻(xiàn)[12]需要手動(dòng)提取,所需時(shí)間需要298 s。
本文應(yīng)用Harris算子與基于角點(diǎn)處灰度梯度方法提取棋盤格角點(diǎn),角點(diǎn)精度達(dá)亞像素。采用對(duì)稱算子剔除棋盤格外圈角點(diǎn)與偽角點(diǎn),實(shí)現(xiàn)棋盤格內(nèi)角點(diǎn)的識(shí)別方法有效。提出的基于凸包的棋盤格角點(diǎn)的分層識(shí)別與自動(dòng)定位方法可快速自動(dòng)地實(shí)現(xiàn)物像坐標(biāo)的匹配,進(jìn)而實(shí)現(xiàn)攝像機(jī)自動(dòng)標(biāo)定。實(shí)驗(yàn)結(jié)果證明了方法的正確性與可靠性,適用于攝像機(jī)在線自標(biāo)定。
參考文獻(xiàn):
[1] 張兆偉,趙字明,胡福喬,等. 基于樣條小波的增強(qiáng)算法在角點(diǎn)提取中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2006,15:56-58.
ZHANG Z W,ZHAO Y M, HU F Q,et al .Corner extraction based on spline wavelet enhancement[J].Computer Engineering and Applications,2006, 15:56-58.
[2] HSIN T, HU W C. A rotationally invariant two-phase scheme for corner detection [J]. Pattern Recognition, 1996,28(5):819-829.
[3] MEDIONI G, YASUMOTO Y. Corner detection and curve representation using cubic B-spline[J]. Computer Vision Graphics Image Process, 1987, 39(3):267-278.
[4] SMITH S, BRANDY J M. SUSAN—a new approach to low level image processing[J]. Journal of Computer Vision,1997, 23(1): 45-78.
[5] HARRIS C, STEPHENS M.A combined corner and edge detector[C].Proceedings of the Fourth Alvey Vision Conference, Manchester, England, 1988: 147-151.
[6] SCHIMID C, MOHR R, BAUCKHAGE C. Evaluation of interest point detectors [J].International Journal of Computer Vision, 2000, 37(2): 151-172.
[7] 劉陽成,朱楓. 一種新的棋盤格圖像角點(diǎn)檢測算法[J].中國圖象圖形學(xué)報(bào),2006,11(5):656-660.
LIU Y C, ZHU F. A new algorithm for X-corner detection[J]. Journal of Image and Graphics,2006,11(5):656-660.
[8] 梁志敏,高洪明.?dāng)z像機(jī)標(biāo)定中亞像素級(jí)角點(diǎn)檢測算法[J].焊接學(xué)報(bào),2006,27(2):102-105.
LIANG Z M,GGO H M. Sub-pixels corner detection for cam era calibration[J]. Transactions of the China Welding Institution, 2006,27(2):102-105.
[9] 王忠石,徐心和. 棋盤格模版的自動(dòng)識(shí)別與定位[J].中國圖象圖形學(xué)報(bào),2007,12(4):618-622.
WANG Z S, XU X H. Auto-recognition and auto-location of the checkerboard pattern corner[J]. Journal of Image and Graphics,2007,12(4):618-622.
[10] 劉群根. 基于梯度與對(duì)稱度提取棋盤格角點(diǎn)及角點(diǎn)遞推定位[J]. 測控技術(shù),2008,27(1):7-9.
LIU Q G. Extracting checkerboard corners based on gradient& symmetry and locating with Iteration[J]. Measurement& Control Technology, 2008,27(1):7-9.
[11] ZHANG Z.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[12] BOUGUET J Y.Camera calibration toolbox for Matlab [EB/OL]. http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html.