蔣延杰,謝蓉蓉,李云紅,何亞瑞,陳錦妮
(1.北京市組織機(jī)構(gòu)代碼管理中心,北京 100010;2.西安工程大學(xué)電子信息學(xué)院,陜西西安 710048)
角點(diǎn)包含圖像重要的結(jié)構(gòu)信息,其應(yīng)用遍及圖像匹配[1]、目標(biāo)識別與追蹤[2]、3D 目標(biāo)重建[3]等眾多領(lǐng)域。為提高角點(diǎn)檢測精度,降低計(jì)算復(fù)雜度,角點(diǎn)檢測算法被研究者不斷提出。角點(diǎn)檢測算法根據(jù)實(shí)現(xiàn)方法的不同可分為三類[4-8]:基于角點(diǎn)模型的方法、基于灰度強(qiáng)度的方法和基于邊緣輪廓的方法。
Wang[9]等人提出了基于迭代閾值的自適應(yīng)Harris角點(diǎn)檢測算法,解決了在提取角點(diǎn)時必須給出合適閾值的問題,但對噪聲圖像角點(diǎn)的提取不準(zhǔn)確。高華[10]提出了一種基于Log-Gabor 梯度方向一致性的角點(diǎn)檢測算法,用來提高角點(diǎn)檢測器的檢測性能,但其魯棒性有待提高。使用各向異性高斯方向?qū)?shù)濾波器,可以提高噪聲魯棒性和定位準(zhǔn)確性[11]。Cho[12]等人提出了一種基于非角度測量的角點(diǎn)檢測方法,消除了位于平坦區(qū)域的像素并刪除了任意方向沿邊緣的像素,但計(jì)算復(fù)雜度高。
相比較,該文所提算法以點(diǎn)到弦之間的歐氏距離為基礎(chǔ),不用計(jì)算任何導(dǎo)數(shù),對于局部變化也具有魯棒性。
基于圖像邊緣的角點(diǎn)檢測器基本使用曲率技術(shù)對角點(diǎn)進(jìn)行檢測,基于曲率尺度空間(CSS)的角點(diǎn)檢測算法[13]存在兩個主要問題。首先,由于曲率的定義是曲線上角度的瞬時變化率,因此對局部變化和噪聲非常敏感,進(jìn)而會產(chǎn)生誤檢。其次,對于高斯平滑尺度的選擇,針對這類角點(diǎn)檢測算法的不足,該文提出一種新的角點(diǎn)檢測算法。圖1 是該文算法的流程圖。
圖1 算法流程圖
首先使用Canny[14]邊緣檢測器提取圖像的邊緣輪廓。邊緣像素被定義為兩側(cè)的梯度大小都小于像素本身梯度大小的像素。Canny 邊緣檢測算法主要包括以下四步:1)使用高斯濾波器對原始圖象進(jìn)行平滑處理;2)使用一階偏導(dǎo)的有限差分對圖像梯度的幅值和方向進(jìn)行計(jì)算;3)對梯度幅值進(jìn)行非極大值抑制;4)使用雙閾值算法對邊緣進(jìn)行檢測和連接。
該文采用的角點(diǎn)檢測算法中將Canny 邊緣檢測器的閾值設(shè)定為[0.2,0.35]。當(dāng)從原始圖像中提取邊緣線時,所提取的邊緣線之間可能有小的間隙,而這些間隙中可能存在角點(diǎn)。因此,在角點(diǎn)檢測前填充輪廓線間的間隙是非常重要的,可以避免真實(shí)角點(diǎn)的丟失。圖2 是‘Lenal’圖像的邊緣映射圖。
圖2 ‘Lenal’圖像的邊緣映射圖
從邊緣映射圖中提取出的每條邊緣線,通過連接邊緣線首端和尾端得到一段弦,找到邊緣線像素點(diǎn)與弦之間的最大歐氏距離[15]。如果距離大于最佳閾值,那么對應(yīng)于邊緣線上的點(diǎn)就被認(rèn)為是一個候選角點(diǎn)。由于該文所提算法在平移和旋轉(zhuǎn),統(tǒng)一和非統(tǒng)一比例縮放的幾何變換中是不變的,因此,當(dāng)任何一個邊緣線發(fā)生幾何變換時,邊緣線上任意一個像素點(diǎn)與弦之間的距離不會發(fā)生改變。圖3 針對‘house’圖像進(jìn)行了偽角點(diǎn)的去除。
圖3 ‘house’圖像偽角點(diǎn)的去除
為了驗(yàn)證所提基于圖像邊緣角點(diǎn)檢測算法的有效性,將角點(diǎn)檢測器的平均可重復(fù)性和定位誤差作為研究性能指標(biāo)。通過對所提檢測算法與Harris、He&Yung 和CPDA 三種經(jīng)典檢測算法的比較進(jìn)行性能評價(jià)。為了進(jìn)行公平的比較,在實(shí)驗(yàn)過程中,所有的角點(diǎn)檢測器均使用相同的邊緣線提取和輪廓線選擇方法。
為了評估四種角點(diǎn)檢測算法的檢測性能,從標(biāo)準(zhǔn)數(shù)據(jù)集[16]中選取圖像。從數(shù)據(jù)集中選取的每幅圖像均經(jīng)過六種不同的轉(zhuǎn)換方式進(jìn)行變換。
1)旋轉(zhuǎn)變換:采用18 個不同角度進(jìn)行變換,每次以10°為步長,在[-90°,90°]范圍內(nèi)進(jìn)行旋轉(zhuǎn)變換;
2)統(tǒng)一縮放:尺度因子Sx=Sy,每次以0.1 的增量在[0.5,2.0]范圍內(nèi)進(jìn)行統(tǒng)一縮放;
3)非統(tǒng)一縮放:尺度因子Sx=1,Sy每次以0.1的增量在[0.5,2.0]范圍內(nèi)進(jìn)行非統(tǒng)一縮放;
4)剪切變換:剪切因子c在[-1,1]范圍以0.1 的增量調(diào)節(jié)進(jìn)行變換;
5)JPEG 質(zhì)量壓縮:質(zhì)量因子在[5,100]的范圍以5%增量調(diào)節(jié)進(jìn)行壓縮變換;
6)高斯噪聲:零均值高斯白噪聲標(biāo)準(zhǔn)差每次以1的增量在[1,15]范圍內(nèi)進(jìn)行增加。
原始測試圖像和轉(zhuǎn)換后的圖像之間在同一位置檢測到角點(diǎn)的平均數(shù)稱為平均可重復(fù)性,用Ravg表示。對于給定變換下的角點(diǎn)檢測器,每幅測試圖像的平均可重復(fù)性被定義為:
在式(1)中,No表示原始測試圖像中角點(diǎn)的數(shù)目,Nt表示轉(zhuǎn)換后圖像中角點(diǎn)的數(shù)目,Nr表示原始測試圖像和轉(zhuǎn)換后圖像之間重合的角點(diǎn)數(shù)目。
原始測試圖像中檢測到的角點(diǎn)和轉(zhuǎn)換后的圖像中檢測到的相對應(yīng)角點(diǎn)之間的平均距離稱為定位誤差,用Le表示。表示原始測試圖像與轉(zhuǎn)換后測試圖像所對應(yīng)的角點(diǎn)對。則定位誤差可表示為:
對標(biāo)準(zhǔn)數(shù)據(jù)集進(jìn)行旋轉(zhuǎn)、剪切、高斯噪聲、質(zhì)量壓縮、統(tǒng)一及非統(tǒng)一縮放六種數(shù)據(jù)變換,四種角點(diǎn)檢測算法的平均重復(fù)性和定位誤差等性能比較的實(shí)驗(yàn)結(jié)果如圖4所示。在旋轉(zhuǎn)變換下,He&Yung角點(diǎn)檢測算法的平均重復(fù)性最高。CPDA 角點(diǎn)檢測算法和所提算法的定位誤差比較低。在統(tǒng)一縮放和非統(tǒng)一縮放變換下,所提算法與CPDA 角點(diǎn)檢測算法相比,實(shí)驗(yàn)最終檢測結(jié)果相差不大,均獲得了較好的檢測結(jié)果;而He&Yung 角點(diǎn)檢測算法與Harris 角點(diǎn)檢測算法的檢測結(jié)果與前兩種相比略顯不足。但是在高斯噪聲條件下,所提算法在定位誤差和平均重復(fù)性上性能最好。
圖4 在六種不同變換下的平均重復(fù)性和定位誤差
之后,選用圖像處理中普遍使用的灰度圖像‘Block’,測試其分別在無噪聲和有噪聲情況下的檢測結(jié)果。圖5 是‘Block’圖像的四種角點(diǎn)檢測算法的檢測結(jié)果。觀察圖5 可以看出,該文所提算法相比于其他三種檢測算法的檢測結(jié)果相對較好。圖6 是帶噪聲的‘Block’圖像的四種角點(diǎn)檢測算法的檢測結(jié)果,添加了方差為10 的高斯白噪聲,可以看出所提算法同樣具有較好的檢測性能。
圖5 ‘Block’圖像的檢測結(jié)果
圖6 帶噪聲的‘Block’圖像檢測結(jié)果
該文提出了一種新的基于圖像邊緣輪廓的角點(diǎn)檢測算法,該角點(diǎn)檢測算法不需要通過曲率計(jì)算就能獲取候選角點(diǎn),該算法與CPDA 角點(diǎn)檢測方法完全不同,既不需要通過移動的弦長去累加曲線上弦點(diǎn)之間的每一段距離,也不必通過三個不同長度的弦長來計(jì)算曲線上每一點(diǎn)的歸一化曲率值。因此,在保持良好的平均可重復(fù)性和準(zhǔn)確性時也能加快檢測的速度。通過實(shí)驗(yàn)測試可以得出,該文所提角點(diǎn)檢測算法相比于其他三種經(jīng)典的檢測算法具有更好的檢測性能。