景軍鋒,孫久銳,章為川,白萌萌
(西安工程大學 電子信息學院,陜西 西安 710048)
圖像特征檢測是計算機視覺和圖像處理的重要任務。在特征檢測中,角點是最具代表性的特征之一。有許多應用依賴于角點檢測,包括運動跟蹤[1]、目標識別[2]和圖像配準[3]。角點可以定義為邊緣輪廓上輪廓方向變化劇烈的點,也可以定義為一個曲率較大的點[4]。通常,大多數(shù)角點檢測器可以分為3類[5]:基于灰度強度[6-12],基于模型[13]和基于輪廓[14-29]的方法。
本文主要研究基于輪廓的角點檢測算法,現(xiàn)有的基于輪廓的角點檢測算法通常先用邊緣檢測器從輸入圖像中提取平面曲線,然后沿著曲線像素搜索局部曲率極大值點[15]。1992年,RATTARANGSI等基于曲率尺度空間提出了一種多尺度算法,提升了在檢測復雜圖像和多尺寸圖像上的性能[16]。1998年,MOKHTARIAN等改進了這一算法,該算法把圖像邊緣點的曲率絕對值極大值點定義為角點,并且在小尺度追蹤角點提高定位能力[17]。2001年,HAN等使用弦到點的累加距離(chord-to-point distance accumulation,CPDA)計算邊緣點的離散曲率[18]。其后,AWRANGJEB等在此基礎上提出了CPDA角點檢測算法,指出采用傳統(tǒng)曲率計算方式會導致檢測器對噪聲和局部變化敏感[19]。ZHANG等提出了利用不同尺度乘積的多尺度算法來進行角點跟蹤,減少了虛假角點的產(chǎn)生[20]。YUNG等提出基于全局和局部曲率特性的角點檢測算法,即He&Yung算法,使用動態(tài)支撐區(qū)域計算自適應閾值去除錯誤角點,提高了檢測準確性[21]。為了提高角點檢測器對仿射變換的魯棒性, AWRANGJEB等利用仿射長度參數(shù)化曲線進而求得曲率,提出了仿射彈性曲率尺度空間角點檢測器,該檢測器對仿射變換具有良好的魯棒性[22]。文獻[5]提出了利用各向異性高斯方向導數(shù)(anisotropic directional derivative,ANDD)對角點進行檢測。文獻[23]利用Gabor濾波器平滑邊緣像素來檢測角點。文獻[24]在一個連續(xù)的空間內用切爾雪夫多項式擬合來計算邊緣像素的曲率,從而達到檢測角點的目的。文獻[25]提出了基于各向異性高斯核的邊緣檢測器。文獻[26]提出了使用多尺度多方向結構張量的角點檢測器。文獻[30]提出了一種改進的剪切波變換,具有靈活的方向數(shù)和合理的支持,可以從圖像中提取準確的多尺度和多方向的結構信息。文獻[31]指出了現(xiàn)有離散曲率計算技術主要存在2個缺陷:①現(xiàn)有的曲率計算無法準確區(qū)分邊緣和角點;②對局部變化和噪聲敏感。同時,它提出了一個新的離散曲率計算解析式,但它并沒有考慮到不同尺度空間的角點情況。
為了解決上述問題,本文提出了一種多尺度離散曲率解析表達式的角點檢測算法。采用新的曲率度量方法,減少了曲率計算過程的量化誤差,對于噪聲和細小形變具有魯棒性。多尺度技術的使用減少了定位誤差,提高了在不同尺度下的檢測性能。通過使用2幅常用的帶有標準角點數(shù)據(jù)的測試圖像(積木圖和實驗室圖)來評估角點檢測器的檢測準確性和定位精度,并將提出的算法與3種經(jīng)典角點檢測器(ANDD[5]、CPDA[19]、He&Yung[21])進行性能比較。實驗表明提出的算法具有更好的角點檢測性能。
首先,令Γ表示用弧長u參數(shù)化的規(guī)則平面曲線,得
Γ(u)=[x(u),y(u)]
(1)
式中:x(u)和y(u)為坐標函數(shù)。曲線Γ(u)的曲率K(u)定義為
(2)
曲線上任意一點Pi的一階導數(shù)和二階導數(shù)分別為
(3)
傳統(tǒng)的曲率計算方法不能準確區(qū)分角點和邊緣,如圖1所示,圖1(a)為角點模型,圖1(b)為曲線的局部形變。
(a) 角點模型 (b)曲線的局部形變圖1 角點模型和曲線局部形變Fig.1 Corner model and curve local deformation
(a) He & Yung (b) CPDA
(a) He & Yung (b) CPDA
(a) 標準角點數(shù)據(jù)實驗室圖 (b) 標準角點數(shù)據(jù)積木圖圖3 標準角點數(shù)據(jù)的實驗室圖和積木圖Fig.3 Laboratory and block images of standard corner data
本文采用文獻[31]提出的離散曲率計算方式,曲線上點Pi的一階和二階導數(shù)定義為
(4)
(5)
根據(jù)文獻[31],當相鄰距離d較小時,通過曲率計算進行角點檢測具有良好的角點定位和鄰角分辨能力,但對噪聲敏感。當相鄰距離d較大時,此時進行曲率計算,曲線局部變化和噪音具有較好的魯棒性,但會降低角點的分辨率。為了同時獲得更好的角點檢測精度、角點鄰角分辨能力和噪聲魯棒性,采用一種新的曲率度量方法,可表示為
(6)
式中:d1=2,d2=3。本文采用式(6)所用的曲率度量方法,避免了原有曲率計算只采用緊相鄰點(d=1)的計算方法,具有良好的噪聲魯棒性和角點檢測精度。
在角點檢測過程中,為了減輕量化誤差的影響,采用曲率尺度空間技術[17]進行角點檢測。
Γ(u,σ)為曲線Γ(u)在尺度空間的表達式為
Γ(u,σ)=(X(u,σ),Y(u,σ))
(7)
本文采用的曲率尺度空間多尺度離散曲率表達式為
(8)
為了去除量化噪聲和小細節(jié),文獻[31]提出的角點檢測算法僅采用了較小尺度的高斯濾波器對每條曲線進行平滑處理,在角點檢測過程中沒有使用多尺度技術。然而,在這一步驟中很難選擇合適的高斯平滑尺度。當高斯平滑尺度較大時,它會丟失真實的角點;當高斯平滑尺度較小時,它不能有效克服曲線局部變化和噪聲的影響,會檢測到假角點。并且在該算法應用于不同的圖像時,這種影響更加明顯。因此,本文采用了基于多尺度離散曲率解析表達式的角點檢測方法,流程圖如圖2所示。
圖2 本文的角點檢測算法流程Fig.2 The algorithm flow of corner detection in this paper
具體步驟如下:
1) 將Canny邊緣檢測器[32]應用于輸入圖像,得到一個二值化邊緣圖;
2) 從邊緣圖中提取邊緣輪廓,沿著輪廓填充縫隙,檢測并標記T型角點;
3) 在3個不同的平滑尺度下,用高斯函數(shù)對每條平面曲線進行平滑處理;
4) 按照式(8)計算經(jīng)平滑后每個輪廓上點的曲率,并將絕對曲率的局部極大值的點作為各尺度的候選角點;
5) 將候選角點的曲率值與曲率閾值Th比較,大于曲率閾值Th的點定義為真實角點;
6) 將3個尺度下均可檢測到的候選角點作為最終真實角點。
本文算法的仿真實驗所使用的平臺為i7-3520M處理器,主頻2.90 GHz,內存8 GiB,64位Windows操作系統(tǒng)以及Matlab2018a。
利用在圖像處理中廣泛使用的積木圖和實驗室圖2幅圖像對角點檢測器進行基于標準角點數(shù)據(jù)的性能評估[31],然后與其他3種角點檢測器(ANDD[5]、CPDA[19]、He&Yung[21])進行正確角點數(shù)目、丟失角點數(shù)目、錯誤的角點數(shù)目和定位誤差的比較。
實驗所采用的標準角點數(shù)據(jù)實驗室圖有249個標準角點,積木圖有59個標準角點,如圖3所示。
(9)
實驗結果見圖4和圖5,其中,圖4為角點檢測器在實驗室圖上的檢測結果,圖5為角點檢測器在積木圖上的檢測結果。
在圖4和圖5中,對角點檢測器檢測到的角點用正方形標出。從圖4和圖5可以看出,CPDA算法檢測到的角點個數(shù)最少,原因在于CPDA算法在角點檢測過程中使用了較大的曲率閾值,這樣可以有效減少由于細小形變或噪聲導致的錯誤角點,但漏檢了許多真實的角點,導致CPDA檢測到的總的角點數(shù)目在對比的角點檢測器中是最少的,犧牲了整體的角點檢測性能。與CPDA算法相比,提出的算法檢測到更多的真實角點,角點檢測器的整體性能更好,檢測到的真實角點明顯優(yōu)于He&Yung算法。
根據(jù)3.1的評價準則,計算角點檢測器在測試圖像積木圖和實驗室圖的正確、丟失和錯誤角點的數(shù)量以及平均定位誤差。表1為角點檢測器在實驗室圖上的評價結果,表2為角點檢測器在積木圖上的評價結果。
表1 實驗室圖的評價結果Tab.1 Evaluation results for the laboratory image
表2 積木圖的評價結果Tab.2 Evaluation results for the block image
根據(jù)表1和表2的數(shù)據(jù),在原始實驗室圖中,本文提出的算法的定位誤差最低,因為提出的算法在較大尺度檢測到角點后,接著在較小尺度追蹤定位角點,并使用較小尺度下的位置信息作為角點位置信息。本文算法檢測到的正確角點數(shù)次于He&Yung和ANDD算法,錯誤的角點數(shù)目僅高于CPDA算法。CPDA算法在2個測試圖檢測到的錯誤角點均為0,原因在于CPDA算法在角點檢測過程中使用了較大的曲率閾值,這樣避免了錯誤角點,但漏檢了許多真實的角點,CPDA檢測到的總的角點數(shù)目是最少的,犧牲了整體檢測性能。本文提出的算法檢測到的正確角點數(shù)目遠多于CPDA算法,而且在丟失的角點數(shù)目上,本文提出的算法遠小于CPDA算法,可以認為此算法優(yōu)于CPDA算法。根據(jù)表1和表2,本文提出的算法檢測到的正確角點的數(shù)目略低于He&Yung算法,錯誤的角點數(shù)目遠小于He&Yung算法,定位誤差小于He&Yung算法,原因在于He&Yung算法只使用了單一尺度檢測角點,而本文在較大尺度檢測到角點后,在較小尺度追蹤定位角點,本文算法的整體角點檢測性能更好。提出的算法檢測到的正確角點數(shù)目小于ANDD算法,錯誤的角點數(shù)目和定位誤差也均小于ANDD算法,且在所有算法中ANDD算法的定位誤差最高。這是因為ANDD算法以犧牲定位精度來獲得更多的角點檢測,這也是其錯誤角點較多的原因,影響其實際性能。因此本文算法綜合性能比ANDD算法更好。綜合以上分析,本文提出的算法的表現(xiàn)優(yōu)于其他3種角點檢測算法,具有良好的角點檢測性能。
圖像的特征檢測在計算機視覺和圖像處理領域是很重要的課題,角點是圖像的重要特征,因此對其研究具有重要意義。曲率計算技術在許多基于輪廓的角點探測器中得到了應用,曲率計算技術的核心在于曲率的計算,本文采用了新的曲率計算技術,該方法具有較高的準確檢測角點的能力。在此基礎上,提出了一種多尺度離散曲率計算解析表達式來計算曲率并檢測角點。本文使用具有標準角點信息的積木圖和實驗室圖,通過統(tǒng)計檢測到的正確角點數(shù)、丟失角點數(shù)、錯誤的角點數(shù)和定位誤差來評估角點檢測器的性能,并與其他3種經(jīng)典角點檢測器比較性能。實驗結果表明,提出的角點檢測器具有良好的檢測性能。但是本算法利用了多尺度技術,在提升角點檢測性能的同時增加了計算復雜度。特征點的匹配是一個很重要的應用,因此在下一步的研究中將對提出的角點檢測器繼續(xù)優(yōu)化,后續(xù)將應用到圖像配準中。