寇冬晨, 韓 瑜, 顧 浩
(江蘇自動化研究所, 江蘇 連云港 222061)
近幾年來,攝像機標定技術(shù)廣泛應用于各個領域,如機器人焊接、三維測量、視覺導航等。攝像機標定技術(shù)通過大量采集實際物點在世界坐標系下與圖像坐標坐標系下相對應的坐標,創(chuàng)建了相機的數(shù)學模型,計算出模型參數(shù),從而建立了世界坐標系與圖像坐標系間的轉(zhuǎn)換關(guān)系。由此可見,標定過程中對于所使用的棋盤格角點識別的精確度將大大影響攝像機標定結(jié)果的準確性。Smith等人曾提出[1],圖像上即使是很小的像素誤差,也會使最終的標定參數(shù)產(chǎn)生非常大的誤差。因此,角點識別的精確度是攝像機標定的關(guān)鍵。
主流的角點檢測算法大致分為兩類:自動檢測算法和人工交互法。前者主要是利用了角點附近區(qū)域灰度變化較大這一特點,通過設計不同的角點檢測算子,如Harris檢測算子[2]、SUSAN[1]檢測算子等,根據(jù)最終的算子檢測結(jié)果來計算角點的位置。這一方法雖然在一定程度上解決了攝像機標定的自動化問題,但仍然存在偽角點剔除的問題,標定結(jié)果會因為偽角點的存在而受到很大的影響。后者則是通過人機之間的交互,如利用鍵盤或鼠標等外設輸入或點擊獲取角點的位置,這一方法過于依靠操作人員的經(jīng)驗,往往會存在一些人為取點上的誤差,且由于是依靠手動操作選取角點,當角點過多時,取點耗時將大大增加,從而大幅度降低了攝像機標定的效率。對于上述問題,國內(nèi)外多位學者都進行了針對性的研究。郝穎明等[3]巧妙地將角點檢測和角點排序結(jié)合起來,通過角點檢測算子與區(qū)域能量中心共同實現(xiàn)了角點的精確定位,該算法計算量較大,對于大畸變圖像很難有較好的角點提取效果。劉嵩等[4]提出了一種基于單應性矩陣的棋盤格角點檢測算法,該算法有較好的精確性和魯棒性,但其通用性不強。鑒于以上各種問題,本文以各種角點提取算法為基礎,提出了一種改進的基于Hessian矩陣的角點檢測算法。
在攝像機標定過程中用到的棋盤格通常是由一個個方形格組成的,這些方格依次呈黑白色錯落排列,角點即為黑白格子的相交點。圖1中n1和n2為圖像灰度函數(shù)r(x,y)的二階方向?qū)?shù)的最大值和最小值。
圖1 二階方向?qū)?shù)單位向量
圖2 差分模版
對于Hessian矩陣H,其特征值表達式如下:
(1)
在通常情況下,上文提及的閾值Th0為固定閾值[6],是由操作人員不斷重復試驗,不斷調(diào)整閾值Th,直到達到最好的角點識別結(jié)果后才得到的。這樣做不僅需要耗費大量時間,同時還過于依靠操作人員自身的經(jīng)驗,這就使得固定閾值的角點檢測法應用范圍小,不能靈活自動地調(diào)節(jié)以適應多噪聲環(huán)境,尤其是在日益智能化的機器視覺中,其不足之處愈發(fā)明顯[6-8]。本文提出了一種自適應閾值法,首先對形狀算子S取反,對于所有取反后形狀算子大于0且在領域內(nèi)最大的形狀算子依次排序,其結(jié)果為(S1,S2,…,Sn)。再對排序后的形狀算子做如下運算:
Diff=(S2-S1,S3-S2,…,Sn-Sn-1)
(2)
設所得的差值Diff的最大值對應的形狀算子為Sd,則所選的閾值Th0為Th0=ε·Sd,1<ε<2,舉例說明該自適應閾值法。圖3(a)為實驗所使用的棋盤格原始圖像,圖3(b)的橫縱坐標分別為差值Diff和像素點編號。如圖3(b)所示,Diff取最大值處的像素點編號為307050,而此點的形狀算子值為102.55。不妨設ε=2,當檢測到的角點數(shù)小于真實角點數(shù)時,ε=ε-0.05,如此不斷重復運算,直到檢測角點數(shù)與真實角點數(shù)相近為止。通過以上運算可得ε=1.05,則自適應閾值Th0=107.68。那么,對于所有的形狀算子來說,凡是在5×5的檢測窗口中取得最大值且大于107.68的形狀算子,其所對應的像素點即為棋盤格上的角點。利用這種方法,可以達到濾除絕大部分偽角點的效果,不僅較為完整地保留了所有棋盤格上的角點,同時最大限度地抑制了大部分干擾點,如圖4所示。
圖3 棋盤格原始圖像和形狀算子差值Diff
圖4 自適應閾值過濾結(jié)果比較
由上文可知,在進行自適應閾值過濾后,雖然剔除了大部分的偽角點,但仍有少部分的與真角點極為相似的偽角點存在,這些偽角點雖然數(shù)量較少,但其仍舊會影響后續(xù)的角點識別結(jié)果,造成世界坐標系與圖像坐標之間的轉(zhuǎn)換關(guān)系出現(xiàn)偏差,從而影響攝像機的標定結(jié)果。因此,這些偽角點也必須予以剔除。本文根據(jù)棋盤格角點的特性[9],采用了圓形對稱模版剔除偽角點,如圖5所示。
圖5 棋盤格角點和圓形對稱模版
由圖5可知,首先將圓形模版平均分為8個區(qū)域,并依照逆時針方向?qū)@8個區(qū)域進行編號。其次,對圓形模版中的各個扇區(qū)中的像素進行灰度值累加,并計算整個模版區(qū)域中的平均像素灰度值記為Im,各個扇區(qū)的灰度值記為Ii。最后根據(jù)棋盤格角點的鄰域?qū)ΨQ性[10],可推得當圓形模版中心與真角點重合時,圓形模版中心對稱的各個區(qū)域的灰度值應為相近值,即Ii≈Ii+4(i=1,2,3,4),(Ii-Im)與(Ii+4-Im)正負相同,可得:
Ti=(Ii-Im)·(Ii+4-Im)>T
(3)
實際操作中,由于圓形模版的中心位置不一定與角點重合[11],可能存在一定的偏差,這也就導致了8個扇區(qū)不再是嚴格地中心對稱,使得某些真實角點也會被當作偽角點遭到剔除。因此,需要對T進行處理,不妨取T=-η·Tm。Tm為Ti的平均值。初始時取η=1,不斷循環(huán)計算,當大部分偽角點被剔除后,如果檢測到的角點數(shù)小于真實角點數(shù),則η=η+1;如果檢測到的角點數(shù)大于等于真實角點數(shù),則η=η-0.1,如此循環(huán)判斷,直到檢測到的角點數(shù)與真實角點數(shù)相差不大為止。
本文采用中國大恒有限公司生產(chǎn)的DH-SV2000FC工業(yè)攝像機,該攝像機的最大分辨率為1628×1236,焦距為60mm,像素尺寸為4.2μm×4.2μm。所采用的棋盤格靶標尺寸為200mm×200mm,該棋盤格靶標包含60×60個黑白方塊,每個黑白方塊的尺寸為3mm×3mm。
考慮到目前市面上大多數(shù)的機器視覺所采用的標定方法都是張廣軍棋盤格標定法[12],該種標定方法較為成熟,精度較高,魯棒性好,且其在大多數(shù)情況下都有較好的角點識別結(jié)果。因此本文主要比較自適應閾值檢測法與張廣軍檢測法。如圖6所示,對于三張不同環(huán)境下(全景圖,復雜背景圖及無干擾圖)拍攝到的照片分別進行兩種不同的角點檢測方法,表1為二者的檢測結(jié)果對比。
表1 張廣軍算法與本文算法結(jié)果對比
圖6 張廣軍算法與本文算法結(jié)果對比
由以上數(shù)據(jù)可以看出張廣軍算法雖然不存在漏檢率,但其誤檢率要高于本文算法,原因就在于張廣軍算法中采用了固定閾值的經(jīng)驗檢測方法,這種方法過于死板,靈活性不足,不能夠勝任不同場景下的多種視覺標定工作。而本文則較好地完成了角點檢測,在3個典型實驗測試中,誤檢率為零,突出了其較為優(yōu)越的角點識別性能。
本文提出了一種改進的基于Hessian矩陣的自動角點檢測算法,相對于固定閾值這一傳統(tǒng)方法,自適應閾值法具有更高的準確度和靈活性,不再依賴于操作人員的經(jīng)驗,很好地避免了人為造成的標定偏差,提高了算法的適用性和穩(wěn)定性;同時本文還依據(jù)角點鄰域的中心對稱特性,采用圓形模版剔除剩余部分的偽角點,提高了算法對于真實角點的識別準確性。除此之外,本文通過實際實驗證明,在不同場景下(全景圖,復雜背景圖及無干擾圖)本文算法具有更高的角點識別準確率,既不受復雜背景環(huán)境下的偽角點干擾,又不會因廣角鏡頭產(chǎn)生的畸變而影響角點識別的準確率。所以本文算法對于攝像機標定具有較為重要的實際意義,對于展開后續(xù)的圖像測量、三位重構(gòu)等具有重要的指導作用。
參考文獻:
[1]SMITH S M, BRADY M. SUSAN—a new approach to level image processing[J]. International Journal of Computer Version,1997,23(1):45-78.
[2]HARRIS C, STEPHENS M. A combined corner and edge detector[C]∥Proceedings of the 4th Alvey Vision Conference. Sheffield: University of Sheffield Printing Office, 1988: 147-151.
[3]郝穎明,朱楓.攝像機在線標定中的棋盤格角點自動檢測方法[J].計算機工程,2007,17(9): 213-215
[4]劉嵩, 葉玉堂. 基于單應性矩陣的棋盤格角點檢測研究[J]. 電子設計工程, 2012, 3(6):114-115.
[5]譚曉波. 攝像機標定及相關(guān)技術(shù)研究[D]. 長沙:國防科學技術(shù)大學, 2004.
[6]YANG Xing-fang,HUANG Yu-mei,GAO Feng. A simple camera calibration method based on sub-pixel corner extraction of the chessboard image[C]∥IEEE International Conference,2010(3):688-692.
[7]Ren M, Yang W, Yang J. A New and Fast Contour-filling Algorithm[J]. Pattern Recognition, 2005, 38(12): 2564-2577.
[8]陳傳波,陸楓. 計算機圖形學基礎[M]. 北京:電子工業(yè)出版社, 2002: 127-128.
[9]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.
[10] Ma S D, A self-calibration technique for active vision systems. IEEE Transactions on Robotics & Automation, 1996, 12(1); 114-120.
[11] ZHANG Y J, Fast approach to checkerboard corner detection for calibration[J]. Optical Engineering, 2014, 53(11):112203.
[12] 張廣軍. 機器視覺[M].北京:科學出版社, 2005.