李正大,蔣燕
成都理工大學
提高Shi-Tomasi角點檢測精度的方法研究
李正大,蔣燕
成都理工大學
針對Shi-Tomasi角點檢測在檢測時出現的錯檢和漏檢問題,提出對圖像進行高斯等濾波和sobel邊緣檢測的預處理,以提高圖像在角點位置的矩陣特征值,進而提高其檢測精度。經過實驗測試,在預處理之后有效提高了精度。
角點檢測;高斯濾波;sobel;特征值
角點檢測是計算機視覺系統中用來獲得圖像特征的一種方法,廣泛應用于運動檢測、圖像匹配、視頻跟蹤、三維建模和目標識別等領域中,也稱為特征點檢測。角點通常被定義為兩條邊的交點,但是更嚴格的說,角點的局部鄰域應該具有兩個不同區域的不同方向的邊界。
Shi-Tomasi算法是Harris算法的改進,在Harris算法中,是根據協方差矩陣M的兩個特征值的組合來判斷是否為角點[2]。而在Shi-Tomasi算法中,是根據較小的特征值是否大于閾值來判斷是否為角點[3]。
協方差矩陣M如下表示:

在具體的角點檢測測試中,采用基于visual studio 2012+ OpenCV的實驗環境和包含60個角點的標準角點檢測圖,直接應用Shi-Tomasi算法對圖像進行角點檢測,在此條件下得到的角點檢測數為89個。
Shi-Tomasi算法是Harris算法的改進,此算法最原始的定義是將矩陣M的行列式與M的跡相減,在將差值同預先給給定的閾值進行比較。而Shi-Tomasi算法是把利用兩個特征值中的較小的一個與最小閾值進行比較,若大于則會得到一個強角點。
定義角點響應函數R為:

Harri角點檢測算法就是對角點響應函數R進行閾值處理:R>threshold,即提取R的局部極大值。而Shi-Tomasi角點檢測主要是利用橢圓形式中的λ1、λ2其中的最小值和閾值進行比較,以此來得到對角點的判斷。因此為了提高Shi-Tomasi檢測的精度應設法提高圖像中角點的一階導數的值。對于一階導數即梯度在數字圖像處理中定義為下式:

從一階導數的定義式可以得出,為了提高其在圖像角點處的數值。應盡量拉大圖像中邊緣與背景的灰度值的差,以此來得到較大的一階導數數值從而提高檢測精度。對于梯度的檢測,分別采用sobel算子來進行,以此達到對圖像邊緣的加強,再進行角點檢測[4]。對于梯度邊緣檢測精度,分別采用中值、均值、高斯濾波器對圖像進行預處理,去除圖像中的噪聲從而提高角點檢測的精度。
經過對比可以得出,sobel算子是先邊緣化在檢測角點最理想的算子,但是其依然比60個標準角點多出很多。造成上述情況主要是由于圖像噪聲影響邊緣檢測效果,從而間接影響了角點的檢測精度。對圖像分別用濾波器進行預處理后的效果如下圖:

圖1 不同濾波器預處理后效果圖

表1 檢測效果對比
經過對比得出中值濾波器處理之后是最理想的,比標準角點多出5個,比原圖檢測的89個提高了很多。
如上所述,先通過對原始圖像進行中值濾波處理,減少圖像的噪聲影響,然后在利用sobel算子進行邊緣檢測,得出梯度圖從而使圖像邊緣與背景的灰度差拉大,最后利用Shi-Tomasi算法進行角點檢測進,可以明顯提高其檢測的精度。但是在對圖像進行邊緣檢測時由于參數的不同會影響角點的識別,有可能不能識別有些正確的角點,所以在提高精度的同時也會誤刪一些正確的角度點,這也是預處理所存在的不足之處。
[1]Rafael C.Gonzalez,Richard E.Woods.數字圖像處理[M].第三版.阮秋琦等.北京:電子工業出版社,2011:450-466
[2]劉博超,趙建,孫強.基于邊緣改進的Harris角點檢測方法[J].液晶與顯示,2013,28(3):939-942
[3]毛星云,冷雪飛等.OpenCV3編程入門[M].北京:電子工業出版社,2015:154-261
[4]陳長偉.基于角點檢測與SIFT算法的快速匹配方法[J].計算機應用與軟件,2014,31(7):214-220
Aiming at the problem of error detection and missed detection in Shi-Tomasi corner detection,we propose a preprocess?ing of Gaussian and sobel edge detection to improve the image eigen?values of the image at the corner position,Its detection accuracy.Af?ter the experimental test,the pretreatment effectively improve the ac?curacy.
corner detection;Gaussian filtering;sobel;eigenvalue