唐雪松,黃文成
(西華大學(xué)計算機與軟件工程學(xué)院,成都610093)
數(shù)字圖像處理中,圖像特征匹配是計算機視覺中一個關(guān)鍵問題,在三維重建、目標(biāo)識別、目標(biāo)跟蹤等應(yīng)用中有這重要意義。角點作為圖像中信息含量較高的特征點,在圖像匹配中被廣泛使用。現(xiàn)有角點檢查算法大致可分為兩類:基于圖像灰度信息的角點檢測算法、基于圖像邊緣的角點檢測算法。
基于灰度信息的角點檢測主要通過定義一個CRF函數(shù)判斷像素點是否是角點。最著名的算法有:Moravec[1]、Harris[2]、SUSAN[3]、FAST[4]等。這 類 算 法 的CRF 函數(shù)通過圖像灰度、灰度一階導(dǎo)數(shù)、二階導(dǎo)數(shù)來獲取,對圖像細節(jié)和噪聲比較敏感。基于邊緣輪廓的方法主要是通過分析圖像邊緣形狀來檢測角點。CSS[5]在大尺度下檢測角點,并用從大到小的尺度來提高角點定位精度。該算法獲得良好的角點檢測效果,存在的問題在于如何選擇合適的高斯尺度以及角點的閾值。在CSS 基礎(chǔ)上,He 和Yung[6]提出了一種使用自適應(yīng)曲率閾值和動態(tài)支撐區(qū)域的檢測器。Mohannad 和Lu 提出了利用弦到點的距離累加算法CPDA[7],CPDA 具有較高的可重復(fù)性和較低的定位誤差,之后又提出了CP?DA 的快速算法[8]。但CPDA 有一個缺點是估計拐角的曲率值與角度可能不成正比。JRyu[9]在基于Harris 算法檢測角點的基礎(chǔ)上對角點進行分類,將角點劃分為簡單角和高級角。Shui 和Zhang[10]等人在檢測角點同時,根據(jù)角點的歸一化各向異性方向倒數(shù)對角點進行分類,將角點分為簡單角,Y 型角和星型角。Gao[11]引入了邊緣方向描述,對角點邊緣方向進行二進制編碼,填充了角點信息,但未包含角內(nèi)信息。
現(xiàn)有的角點檢測算法大多數(shù)都只關(guān)注角點位置,而忽略角鄰域局部信息,因此,針對角點分類是勢在必行的。文獻[9-11]雖對角點進行分類,但分類簡單,只有幾種角點類型,且同類型的角點差異角大,此外,并未包含角點鄰域信息。本文在此基礎(chǔ)上進行改進,根據(jù)邊緣方向?qū)屈c進行分區(qū),從而避免了文獻中同類型角差異較大的問題;在每個角的局部范圍中提取信息,根據(jù)邊緣方向標(biāo)記獲取角標(biāo)記,提取每個標(biāo)記角中像素點灰度,豐富角點描述,彌補文獻中約束不足。
Mokhtarian 和Suomela 提取出CSS 基于曲率尺度空間的角點檢測算法。該算法定義邊緣輪廓上曲率極大值點為角點。算法主要步驟如下:
(1)使用Canny 算子檢測圖像邊緣。
(2)計算不同尺度下邊緣曲線的曲率。
(3)在高尺度下選取局部曲率極值點作為候選點。
(4)逐漸減小尺度,在多個低尺度上跟蹤定位角點。
通常曲率極大值位于邊緣輪廓的交叉處,因此,CSS 算法提取的角點位于邊緣輪廓交點,具有良好的定位性,可為角點分類提供先前條件,因此,本文使用CSS 算法檢測角點。
基于邊緣的角點檢測首先是獲取圖像邊緣輪廓,Canny 邊緣檢測獲取圖像輪廓時,可用Sobel 算子與圖像做卷積,產(chǎn)生梯度水平分量Gx和垂直分量Gy,由此可獲得邊緣方向。如邊緣像素點p,水平分量Gx,垂直分量Gy,則p 點邊緣方向為:
為克服文獻[9-11]中角點分類過于簡單的問題,提取角點分區(qū)的概率。繞角點一圈是360 度,為更準(zhǔn)確地描述角點方向,將角點一圈均分為36 份,形成36 個分區(qū),每個分區(qū)為10 度,如圖1。為保持邊緣方向與分區(qū)的近似性,便于計算各個邊緣角的大小,以水平方向為分區(qū)起始方向,逆時針排序。
分區(qū)后,根據(jù)角點邊緣分布情況,對邊緣方向進行標(biāo)記,邊緣位于第幾個分區(qū),邊緣方向標(biāo)記數(shù)為幾(如圖2 中,第二分區(qū)中存在一條邊緣,邊緣標(biāo)記為2)。邊緣標(biāo)記不僅可以描述邊緣方向,還為計算邊緣角提供先前條件,以最小邊緣標(biāo)記數(shù)為起點,找到第二小的邊緣標(biāo)記數(shù),以此邊緣形成第一個標(biāo)記角,角標(biāo)記數(shù)為兩個邊緣標(biāo)記數(shù)差的絕對值(如第一標(biāo)記角的標(biāo)記數(shù)為12-2=10)。以第二小的邊緣標(biāo)記數(shù)為起點尋找第二個標(biāo)記角(如第二標(biāo)記角的標(biāo)記數(shù)為12),直到最大邊緣標(biāo)記數(shù)。當(dāng)邊緣標(biāo)記最大值為起點時,確定最后標(biāo)記角的標(biāo)記數(shù),此角可看成最小標(biāo)記邊緣與最大標(biāo)記邊緣逆時針形成的角的補角,因此最后標(biāo)記角的標(biāo)記數(shù)為[36-(最大標(biāo)記邊的標(biāo)記數(shù)-最小標(biāo)記邊的標(biāo)記數(shù))](如第四標(biāo)記角的標(biāo)記數(shù)5)。
圖2 邊緣、角點標(biāo)記圖
類似邊緣分區(qū),可對灰度進行分區(qū),將256 個灰度值分為64 個分區(qū),每個分區(qū)占4 個灰度值。為獲取角內(nèi)灰度,取角內(nèi)包含完整的每個分區(qū)中角點鄰域離角點最近的10 個像素點灰度分區(qū)數(shù),取邊緣所在分區(qū)角內(nèi)側(cè)方向角點鄰域離角點最佳的5 個像素灰度分區(qū)數(shù),所有像素灰度分區(qū)數(shù)的均值作為標(biāo)記角的灰度分區(qū)數(shù)值(如圖2 中,第一標(biāo)記角包含2~12 分區(qū),角內(nèi)灰度由3~11 分區(qū)各自提供10 個像素灰度,第2 和第12分區(qū)內(nèi)側(cè)各自提供5 個像素灰度,其灰度分區(qū)為包含分區(qū)總和的均值)。
經(jīng)過分區(qū)的分類,對角點有了清晰認(rèn)識,即可對角點進行語義描述。
圖3 角點語義描述圖
角點的語義描述包含角點附近邊緣信息,角度信息,角內(nèi)灰度信息,360 度全方位數(shù)字化描述角點,增強了角點約束,具有高度的定位性和區(qū)分性。
本文先使用CSS 算法提取角點,獲取角點后,對角點進行篩選,排除包含弱邊緣的角點,保留強邊緣的角點。圖4 中,圖(a)為CSS 算法提取的角點圖像,其他包含85 個角點,圖(b)為保留的強角點其中包含44 個角點。
圖(c)為兩幅圖在不同尺度下的強角點使用本文描述子的匹配圖,其中強角點匹配完全正確,實驗結(jié)果證明了本文方法的有效性與準(zhǔn)確性。
對角點進行分區(qū),更好地利用了圖像邊緣信息,克服了文獻[9-11]中同類型角有所差異卻不能識別的問題。引入角點局部信息包含角點邊緣信息、角自身信息、角內(nèi)信息,對角點有更加全面的認(rèn)識,并進行語義描述,把復(fù)雜的信息轉(zhuǎn)化為簡單的數(shù)字信息,強約束條件并簡化了表達方式,使得同類型的角點可以準(zhǔn)確快速地匹配。
圖4 角點與匹配