蔣延杰,謝蓉蓉,李云紅,何亞瑞,陳錦妮
(1.北京市組織機構(gòu)代碼管理中心,北京 100010;2.西安工程大學(xué)電子信息學(xué)院,陜西西安 710048)
角點包含圖像重要的結(jié)構(gòu)信息,其應(yīng)用遍及圖像匹配[1]、目標識別與追蹤[2]、3D 目標重建[3]等眾多領(lǐng)域。為提高角點檢測精度,降低計算復(fù)雜度,角點檢測算法被研究者不斷提出。角點檢測算法根據(jù)實現(xiàn)方法的不同可分為三類[4-8]:基于角點模型的方法、基于灰度強度的方法和基于邊緣輪廓的方法。
Wang[9]等人提出了基于迭代閾值的自適應(yīng)Harris角點檢測算法,解決了在提取角點時必須給出合適閾值的問題,但對噪聲圖像角點的提取不準確。高華[10]提出了一種基于Log-Gabor 梯度方向一致性的角點檢測算法,用來提高角點檢測器的檢測性能,但其魯棒性有待提高。使用各向異性高斯方向?qū)?shù)濾波器,可以提高噪聲魯棒性和定位準確性[11]。Cho[12]等人提出了一種基于非角度測量的角點檢測方法,消除了位于平坦區(qū)域的像素并刪除了任意方向沿邊緣的像素,但計算復(fù)雜度高。
相比較,該文所提算法以點到弦之間的歐氏距離為基礎(chǔ),不用計算任何導(dǎo)數(shù),對于局部變化也具有魯棒性。
基于圖像邊緣的角點檢測器基本使用曲率技術(shù)對角點進行檢測,基于曲率尺度空間(CSS)的角點檢測算法[13]存在兩個主要問題。首先,由于曲率的定義是曲線上角度的瞬時變化率,因此對局部變化和噪聲非常敏感,進而會產(chǎn)生誤檢。其次,對于高斯平滑尺度的選擇,針對這類角點檢測算法的不足,該文提出一種新的角點檢測算法。圖1 是該文算法的流程圖。

圖1 算法流程圖
首先使用Canny[14]邊緣檢測器提取圖像的邊緣輪廓。邊緣像素被定義為兩側(cè)的梯度大小都小于像素本身梯度大小的像素。Canny 邊緣檢測算法主要包括以下四步:1)使用高斯濾波器對原始圖象進行平滑處理;2)使用一階偏導(dǎo)的有限差分對圖像梯度的幅值和方向進行計算;3)對梯度幅值進行非極大值抑制;4)使用雙閾值算法對邊緣進行檢測和連接。
該文采用的角點檢測算法中將Canny 邊緣檢測器的閾值設(shè)定為[0.2,0.35]。當從原始圖像中提取邊緣線時,所提取的邊緣線之間可能有小的間隙,而這些間隙中可能存在角點。因此,在角點檢測前填充輪廓線間的間隙是非常重要的,可以避免真實角點的丟失。圖2 是‘Lenal’圖像的邊緣映射圖。

圖2 ‘Lenal’圖像的邊緣映射圖
從邊緣映射圖中提取出的每條邊緣線,通過連接邊緣線首端和尾端得到一段弦,找到邊緣線像素點與弦之間的最大歐氏距離[15]。如果距離大于最佳閾值,那么對應(yīng)于邊緣線上的點就被認為是一個候選角點。由于該文所提算法在平移和旋轉(zhuǎn),統(tǒng)一和非統(tǒng)一比例縮放的幾何變換中是不變的,因此,當任何一個邊緣線發(fā)生幾何變換時,邊緣線上任意一個像素點與弦之間的距離不會發(fā)生改變。圖3 針對‘house’圖像進行了偽角點的去除。

圖3 ‘house’圖像偽角點的去除
為了驗證所提基于圖像邊緣角點檢測算法的有效性,將角點檢測器的平均可重復(fù)性和定位誤差作為研究性能指標。通過對所提檢測算法與Harris、He&Yung 和CPDA 三種經(jīng)典檢測算法的比較進行性能評價。為了進行公平的比較,在實驗過程中,所有的角點檢測器均使用相同的邊緣線提取和輪廓線選擇方法。
為了評估四種角點檢測算法的檢測性能,從標準數(shù)據(jù)集[16]中選取圖像。從數(shù)據(jù)集中選取的每幅圖像均經(jīng)過六種不同的轉(zhuǎn)換方式進行變換。
1)旋轉(zhuǎn)變換:采用18 個不同角度進行變換,每次以10°為步長,在[-90°,90°]范圍內(nèi)進行旋轉(zhuǎn)變換;
2)統(tǒng)一縮放:尺度因子Sx=Sy,每次以0.1 的增量在[0.5,2.0]范圍內(nèi)進行統(tǒng)一縮放;
3)非統(tǒng)一縮放:尺度因子Sx=1,Sy每次以0.1的增量在[0.5,2.0]范圍內(nèi)進行非統(tǒng)一縮放;
4)剪切變換:剪切因子c在[-1,1]范圍以0.1 的增量調(diào)節(jié)進行變換;
5)JPEG 質(zhì)量壓縮:質(zhì)量因子在[5,100]的范圍以5%增量調(diào)節(jié)進行壓縮變換;
6)高斯噪聲:零均值高斯白噪聲標準差每次以1的增量在[1,15]范圍內(nèi)進行增加。
原始測試圖像和轉(zhuǎn)換后的圖像之間在同一位置檢測到角點的平均數(shù)稱為平均可重復(fù)性,用Ravg表示。對于給定變換下的角點檢測器,每幅測試圖像的平均可重復(fù)性被定義為:

在式(1)中,No表示原始測試圖像中角點的數(shù)目,Nt表示轉(zhuǎn)換后圖像中角點的數(shù)目,Nr表示原始測試圖像和轉(zhuǎn)換后圖像之間重合的角點數(shù)目。
原始測試圖像中檢測到的角點和轉(zhuǎn)換后的圖像中檢測到的相對應(yīng)角點之間的平均距離稱為定位誤差,用Le表示。表示原始測試圖像與轉(zhuǎn)換后測試圖像所對應(yīng)的角點對。則定位誤差可表示為:

對標準數(shù)據(jù)集進行旋轉(zhuǎn)、剪切、高斯噪聲、質(zhì)量壓縮、統(tǒng)一及非統(tǒng)一縮放六種數(shù)據(jù)變換,四種角點檢測算法的平均重復(fù)性和定位誤差等性能比較的實驗結(jié)果如圖4所示。在旋轉(zhuǎn)變換下,He&Yung角點檢測算法的平均重復(fù)性最高。CPDA 角點檢測算法和所提算法的定位誤差比較低。在統(tǒng)一縮放和非統(tǒng)一縮放變換下,所提算法與CPDA 角點檢測算法相比,實驗最終檢測結(jié)果相差不大,均獲得了較好的檢測結(jié)果;而He&Yung 角點檢測算法與Harris 角點檢測算法的檢測結(jié)果與前兩種相比略顯不足。但是在高斯噪聲條件下,所提算法在定位誤差和平均重復(fù)性上性能最好。

圖4 在六種不同變換下的平均重復(fù)性和定位誤差
之后,選用圖像處理中普遍使用的灰度圖像‘Block’,測試其分別在無噪聲和有噪聲情況下的檢測結(jié)果。圖5 是‘Block’圖像的四種角點檢測算法的檢測結(jié)果。觀察圖5 可以看出,該文所提算法相比于其他三種檢測算法的檢測結(jié)果相對較好。圖6 是帶噪聲的‘Block’圖像的四種角點檢測算法的檢測結(jié)果,添加了方差為10 的高斯白噪聲,可以看出所提算法同樣具有較好的檢測性能。

圖5 ‘Block’圖像的檢測結(jié)果

圖6 帶噪聲的‘Block’圖像檢測結(jié)果
該文提出了一種新的基于圖像邊緣輪廓的角點檢測算法,該角點檢測算法不需要通過曲率計算就能獲取候選角點,該算法與CPDA 角點檢測方法完全不同,既不需要通過移動的弦長去累加曲線上弦點之間的每一段距離,也不必通過三個不同長度的弦長來計算曲線上每一點的歸一化曲率值。因此,在保持良好的平均可重復(fù)性和準確性時也能加快檢測的速度。通過實驗測試可以得出,該文所提角點檢測算法相比于其他三種經(jīng)典的檢測算法具有更好的檢測性能。