程希希,張艷玲,田軍委
(西安工業(yè)大學(xué) a.電子信息工程學(xué)院; b.機電工程學(xué)院,西安 710021)
角點檢測[1]是計算機視覺領(lǐng)域中用于提取圖像特征的一種重要方法。目前角點仍未有嚴格的數(shù)學(xué)定義,一般可認為是某屬性上表現(xiàn)突出的點,如二維圖像亮度變化強度大的點、多條邊緣曲線交匯點或曲線曲率局部極大值點。針對不同的應(yīng)用場景,也可以對“角點”自行定義,如定義為 “特征點”或“興趣點”等。角點能夠有效保留圖像重要特征,剔除冗余信息,提升信息處理速度。這使得角點檢測在3D視覺重建、運動目標識別和圖像匹配[2]上都得到了很好的應(yīng)用。
棋盤標定板由于制作簡單而被廣泛用于標定研究中。角點類型主要有4種,分別是L型[3]、T型、Y型和X型。在已發(fā)表的文獻中,自動棋盤格角點檢測主要分為兩類,其中一類是基于灰度強度[4]分布,用角點附近的灰度來判斷它是否為棋盤格角點。最初的角點檢測算法如Harris[5]和SUSAN算法[6],不能從檢測的角點中精確區(qū)分棋盤格角點,其后針對這一問題,大量的改進算法被提出。文獻[7]改進了SUSAN算法,以小鄰域環(huán)形模板灰度的跳變次數(shù)為依據(jù)來判斷角點類型。文獻[8]則是利用了角點的灰度對稱性以及交替性來提取角點。文獻[9]結(jié)合了文獻[7]中的小鄰域環(huán)形模板和文獻[8]中的灰度對稱性特點來定位角點。文獻[10]利用X角點的方向特性進行亞像素檢測定位。文獻[11]根據(jù)角點周圍圖像出現(xiàn)強烈的鞍形,通過直線擬合邊緣定位鞍點從而獲取角點位置。文獻[12]利用棋盤紋理和幾何特征從Harris候選角點中提取角點。文獻[13]提出了基于生長的角點檢測算法,該算法會繞開圖像遮蓋的干擾,以生長出最大的棋盤。另一類算法則是利用邊緣或線來進行角點檢測。文獻[14]在邊緣輪廓的基礎(chǔ)上,構(gòu)建多尺度相關(guān)矩陣并以不同尺度下的歸一化特征值乘積檢測角點,文獻[15]也采用了相關(guān)矩陣。文獻[16]利用邊緣像素及其左右支撐區(qū)域的微分模式之間的相似性來構(gòu)建角點測度以度量角點。但基于邊緣輪廓的角點檢測如文獻[16]對棋盤格角點的檢測仍存在很大的局限,因此,本文在文獻[13]的基礎(chǔ)上改進該算法以獲得更高精度的角點檢測結(jié)果,并與文獻[12]的算法進行對比實驗。
本文根據(jù)棋盤格角點的構(gòu)成類型將其分為兩種主要類型,即矩形黑白塊和三角黑白塊環(huán)接而成的角點。構(gòu)建這兩種類型的角點模型,并根據(jù)卷積原理得到與角點相似度最大的點。通過閾值處理[17]過濾因噪聲影響以及復(fù)雜環(huán)境的干擾而出現(xiàn)的大量非角點,運用非極大值抑制的方法剔除角點附近的偽角點,并利用角點的梯度特性對角點進行亞像素定位。
不同于基于梯度或邊緣的方法,基于模板匹配的角點檢測方法是直接針對于像素的灰度值[18](像素強度)的。這種方法的一般操作過程是先建立一個模板mask,通過模板來操作或比較圖像局部的像素,從而判斷其是否為角點。本文方法即基于該思想進行角點檢測。
本文方法的信號處理流程如圖1所示,主要由角點原型模板的創(chuàng)建、閾值處理、基于方向梯度統(tǒng)計的亞像素定位3個部分組成。
圖1 基于模板匹配的角點檢測流程
根據(jù)角點的不同特征,本文利用棋盤角點位于局部灰度區(qū)域交界點處的特點,且灰度區(qū)域呈現(xiàn)明顯的對稱性來檢測棋盤內(nèi)圈角點以及剔除棋盤外圈角點。
筆者對X角點直觀分析發(fā)現(xiàn)圖像在進行測度變換后主要呈現(xiàn)兩種不同的模型[13],一種角點與坐標軸平行,另一種角點與坐標軸的夾角為45°,如圖2所示。
圖2 兩種角點原型
根據(jù)角點模型定義的上述兩種角點原型,對于由透視變換引起的較大范圍變形的角點檢測而言滿足要求。本文將構(gòu)建的角點子圖像遍歷棋盤格圖像,得到各像素點的響應(yīng)值。將響應(yīng)值的大小作為角點相似度的依據(jù),對響應(yīng)值進行進一步的處理逐步確定角點位置,最終實現(xiàn)角點檢測。
每種角點原型均由4個濾波核組成,以順時針方向?qū)⒛0宸譃閧A,D,B,C}4個部分。濾波核用于后面與圖像進行卷積操作,本文的重點就是運用這兩種角點原型計算出每個像素與角點的角點相似度,而像素處的角點相似度C是由所有原型以及fippings組合的最大值來定義的。
(1)
(2)
(3)
(4)
(5)
圖3 兩種flippings
本文方法選定3個模板尺度以滿足圖像中不同于棋盤尺度的需求,模板角度分別與坐標軸平行和與坐標軸呈現(xiàn)45°夾角。具體模板示例如圖4所示。
圖4 模板示例圖
根據(jù)圖像卷積原理,當(dāng)卷積核選擇與圖像中越相似的部分卷積后,得到的響應(yīng)值越高,反之越低。當(dāng)圖像受到光照和畸變,4個卷積核的任何一個響應(yīng)值較小時,角點相似度C變小,由此可以有效區(qū)分偽角點和角點。
通過原圖像與角點原型卷積已初步獲取角點位置。由于圖像含有大量的噪聲,仍有大量的偽角點被檢測出來。因此,需要對該方法進行進一步的優(yōu)化。此處將采用閾值處理,具體如下:
(6)
其中,g為選定閾值。擬角點與偽角點之間的差值較大,通過大量實驗經(jīng)驗可知,將g的值設(shè)定為角點相似度C的一半,即當(dāng)g=0.5×C時偽角點的剔除效果較好。
通過閾值化后可得到較為清晰的角點相似度圖。然而閾值化的結(jié)果只能夠去除偏值較大的非角點(角點附近仍有大量C值接近的點),如圖5所示。
圖5 閾值化前后的角點圖
為了后續(xù)的亞像素定位,需要進一步逼近角點精確的位置以便利后續(xù)的角點方向精細化。在此方法中,首先利用非極大值抑制來獲得最終的角點位置。由于經(jīng)過非極大值抑制后的角點位置為像素級的,因此后面的工作主要是對角點位置以及邊緣方形進行方向精細化處理。
通過上述處理檢測到的棋盤角點為非亞像素角點,但是在進行攝像機標定時必須將角點位置精確到亞像素級。對棋盤角點圖像分析可知,X角是相鄰黑白區(qū)域塊交界的臨界點,黑白區(qū)域塊的灰度差異較大。角點的方向分析將角點的定位問題轉(zhuǎn)化為方向交點的問題,且能夠較為準確地將角點定位到亞像素精度。
在理想情況下,像素點q是角點p局部鄰域上的一點,fq為像素點q的圖像梯度向量。
1)當(dāng)像素點q位于平坦區(qū)域時,有:
(7)
2)當(dāng)像素點q位于邊界上時,同樣有:
(8)
這是因為,當(dāng)像素點位于平坦區(qū)域時,像素的變化為0,梯度向量即為0。而當(dāng)像素點位于邊界上時,像素點梯度向量方向與(q-p)方向相互垂直,因此,可以利用像素點的方向信息對角點進行亞像素定位以及方向的精細化。
以上為理想狀態(tài),但實際情況中,由于噪聲、曝光、畸變等影響,會造成梯度方向不理想,邊緣不夠銳利。結(jié)合實際情況,本文中角點p位置要求在角點候選集p′的鄰域N(p′)內(nèi)滿足下式:
(9)
其中,N表示一個11×11的領(lǐng)域且相鄰像素是由梯度大小自動加權(quán)的。對式(9)右側(cè)中p′進行求導(dǎo)并令其等于0,得到解析解:
(10)
本文通過尋求對應(yīng)梯度方向向量上的最小誤差來實現(xiàn)改進邊緣方向向量e1和e2的準確性:
(11)
(12)
其中,Mi為臨近像素的集合,并與模式i的梯度mi=[cos(ai)sin(ai)]T相對齊。進行亞像素定位后的角點圖如圖6所示。
圖6 亞像素定位后的角點圖
為了驗證本文算法的精度和實時性,使用Matlab軟件分別與Harris角點檢測算法、SUSAN角點檢測算法以及文獻[12]算法進行對比實驗,結(jié)果如圖7所示。
圖7 4種算法檢測出的角點圖對比
由圖7可以看出,不同角點檢測算法都能識別角點,但是本文提出的算法在誤檢率上有著明顯的優(yōu)勢。為了進一步對比4種算法在角點檢測正確率以及實時性方面的不同,現(xiàn)取3張棋盤圖進行檢測,棋盤規(guī)格分別為9×6、8×6、8×8,格子尺寸為29 mm×29 mm,如圖8所示。
圖8 測試棋盤格
分別用SUSAN角點檢測算法、Harris角點檢測算法、文獻[12]算法以及本文算法對圖8進行角點檢測。角點檢測個數(shù)對比,角點檢測正確率對比以及角點檢測時間對比分別如表1~表3所示。
表1 角點檢測個數(shù)對比
表2 角點檢測正確率對比
表3 角點檢測時間對比
由以上對比可以直觀地判斷出本文算法能夠有效檢測出角點,而常規(guī)角點檢測算法存在誤檢、重檢問題。這是因為高斯卷積的圓角效應(yīng)[11],使用Harris角點檢測算法會在理想角點附近檢測出多余的偽角點[19]。而對于SUSAN角點檢測算法,它是基于圖像的灰度信息提出的低層次[20]圖像處理算法,由于該算法無需邊緣檢測,也無需梯度計算,因此具有較高的效率和較強的抗干擾能力。但是SUSAN算法不能有效區(qū)分棋盤內(nèi)角點和邊緣點,導(dǎo)致偽角點的數(shù)量大增。文獻[12]的角點檢測算法結(jié)合棋盤格的灰度分布和邊緣信息來消除假角,其性能要優(yōu)于傳統(tǒng)的角點檢測算法,但當(dāng)棋盤背景較為復(fù)雜時或角點附近的區(qū)域塊較大時,將造成誤檢。另外其得到的角點信息為像素級,不能夠用于高要求的攝像機標定等工作。因此,本文算法對比上述的角點檢測算法都表現(xiàn)出較大的優(yōu)勢。
實驗1光源對角點檢測的影響
光源對圖像的質(zhì)量有著極大的影響,不適合的光源將大幅降低圖像的質(zhì)量。例如,陰影會使邊緣模糊造成誤檢,不均勻的光照造成閾值選擇困難。選擇一組圖片,棋盤規(guī)格為7×6。在采集照片時,盡可能使得標定板充盈到整個平面,保持每一組圖像在采集過程中間距不變,變化的只是光源強度。采集20組圖像進行實驗,光照值分別為274 Lux和68 Lux,隨機抽取一組實驗結(jié)果進行展示,如圖9所示??梢钥闯?光線強度不同的情況下,本文算法仍能準確定位角點。
圖9 光源對角點檢測的影響
實驗2畸變圖像(魚眼圖像)角點檢測
傳統(tǒng)的棋盤格角點檢測方法難以準確提取魚眼圖像邊緣處的角點,造成相機標定精度低,為此,本文進行下魚眼鏡頭大畸變成像的棋盤格角點檢測。同樣采集20幅圖像進行實驗,隨機抽取一組實驗結(jié)果進行展示,如圖10所示。實驗結(jié)果表明,對于魚眼棋盤圖像,棋盤格雖然受到鏡頭的畸變,但是不同尺度的模版能彌補角點對角線棋盤格尺度不對稱現(xiàn)象,從而正確識別角點。
圖10 魚眼圖像及檢測結(jié)果
魚眼畸變圖采用的棋盤規(guī)格為6×9,而檢測結(jié)果漏檢0個角點,誤檢0個角點。以上是由于攝像頭畸變造成的圖像畸變,現(xiàn)選取非鏡頭畸變造成的圖像畸變,而是由黑白交替的正方形以及不同大小的菱形構(gòu)成的圖像。選取20幅此類型的棋盤圖進行實驗,隨機選取一組顯示結(jié)果,如圖11所示。由圖中檢測結(jié)果可知,本文算法對于非魚眼鏡頭的畸變棋盤圖像仍然有效。
圖11 畸變圖像的角點檢測
由以上對比圖可以直觀地判斷出本文算法能夠有效檢測出角點,當(dāng)棋盤圖像受到不同光照,魚眼鏡頭下的枕、桶形畸變以及不規(guī)則畸變圖像的影響時,角點的構(gòu)成方式并沒有改變。不同尺度和角度的模板保障了每一個角點都能夠被檢測出,而改進的梯度方向統(tǒng)計策略以及非極大值抑制能有效排除冗余信息,達到最終的亞像素角點定位目標。本文算法在不同適應(yīng)性實驗中均表現(xiàn)出較大的優(yōu)勢。
本文提出一種基于模板匹配的快速角點檢測方法。通過創(chuàng)建兩種角點原型濾波核并與圖像進行卷積,得到角點相似度,以此剔除響應(yīng)值較小的偽角點。在此基礎(chǔ)上,進行非極大值抑制,利用角點的方向特性提取角點并實現(xiàn)亞像素定位。實驗結(jié)果表明,相較于傳統(tǒng)的角點檢測方法,該方法能夠得到更好的檢測結(jié)果,在畸變影響下也能夠準確檢測出角點。由于本文方法對過曝光的圖像存在一定的漏檢率,因此下一步將改進該算法,使其在棋盤圖像處于不同光照環(huán)境時都能夠準確提取角點。