图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)
本文實驗為自己原創,轉載請注明出處。
本人為研究生,最近的研究方向是物體識別。所以就將常用的幾種特征提取方式做了一個簡要的實驗和分析。這些實驗都是借助于openCV在vs2010下完成的。基本上都是使用的openCV中內置的一些功能函數。
1. SIFT算法
尺度不變特征轉換(Scale-invariant feature transform或SIFT)算法是一種特征提取的方法。它在尺度空間中尋找極值點,并提取出其位置、尺度、旋轉不變量,并以此作為特征點并利用特征點的鄰域產生特征向量。
SIFT算法對于光線、噪聲、和微小視角改變的容忍度相當高,且對于部分遮擋的物體也有較高的識別相率。
2. 實驗過程
利用SIFT算法進行特征提取,然后進行物體識別,以下是實驗的相關結果。(紅色圓圈表示匹配成功的特征點,圓圈的大小代表匹配程度的多少,圓圈半徑越大,代表匹配程度越高,綠色的方框為識別出的物體。)
以上幾個實驗中,基本上可以正確的識別出罐子,玩偶,蜘蛛俠,鞋子和玩具車。但是,對于蘋果的識別實驗,則未能達到理想的要求。實驗結果如下。
由實驗結果可以看出,特征點的匹配大部分都是錯誤的,且未能正確識別出圖片中的蘋果。對蘋果使用SIFT算法進行特征提取,結果如下圖(紅色箭頭表示特征點,箭頭的起始位置為特征點位置,箭頭的方向為特征點最大梯度方向,箭頭的長度代表該特征點的權重)。
通過上圖還可以發現,蘋果的邊界特征點都僅僅有很小的權重(箭頭很短),于是嘗試設置一個閾值將這些特征點去除,則剩下的大部分都為準確的特征點。選取閾值為1.7,將權值小于1.7的特征點剔除,實驗結果如下:
從上圖可以發現,特征點的提取已經比較準確,且基本沒有邊界特征點帶來的干擾。但是,特征點的數量太少,這種解決方法,依舊無法完成蘋果的識別。
3.實驗結果分析
經過查閱SIFT算法作者的文章,發現文章中提出,SIFT算法適合于識別旋轉度達60度的平面形狀,或是旋轉度達到20度的三維物體。
經過查詢其他文章,發現很多人總結的經驗表明,SIFT算法對模糊的圖像和邊緣平滑的圖像,檢測出的特征點過少,對圓更是無能為力
4.嘗試其他解決方法
以下嘗試幾種openCV中常用的特征提取算法。
FAST
FAST特征點檢測是公認的比較快速的特征點檢測方法,只利用周圍像素比較的信息就可以得到特征點,簡單,有效。該方法多用于角點檢測。
FAST特征檢測算法來源于corner的定義,這個定義基于特征點周圍的圖像灰度值,檢測候選特征點周圍一圈的像素值,如果候選點周圍鄰域內有足夠多的像素點與該候選點的灰度值差別夠大,則認為該候選點為一個特征點。
以下是利用FAST算法對鞋子和蘋果進行特征提取(黑色圓圈為提取得到的特征點)。
由蘋果和鞋子的特征點提取對比試驗可以發現,該算法對于鞋子可以提取眾多特征點,但是對于蘋果僅僅能提取很少量的特征點,可見該方法依舊不適合用于蘋果特征點的提取。
分析原因可以發現,蘋果表面顏色和灰度是光滑過渡,所以該算法無法有效的提取特征點。
MSER
最大穩定極值區域(MSER-Maximally Stable Extremal Regions)可以用于圖像的斑點區域檢測。該算法最早是由Matas等人于2002年提出,它是基于分水嶺的概念。
MSER的基本原理是對一幅灰度圖像(灰度值為0~255)取閾值進行二值化處理,閾值從0到255依次遞增。閾值的遞增類似于分水嶺算法中的水面的上升,隨著水面的上升,有一些較矮的丘陵會被淹沒,如果從天空往下看,則大地分為陸地和水域兩個部分,這類似于二值圖像。在得到的所有二值圖像中,圖像中的某些連通區域變化很小,甚至沒有變化,則該區域就被稱為最大穩定極值區域。這類似于當水面持續上升的時候,有些被水淹沒的地方的面積沒有變化。
利用此算法,同樣對蘋果和鞋子兩個物體進行檢測,結果如下
通過對比試驗發現,蘋果的特征區域依舊非常少??梢娫撍惴ㄒ琅f不適合于蘋果的特征提取。
分析原因可以發現,蘋果的表面的灰度為比較光滑的過渡,當閾值不斷增大時,陸地和水面的邊界也在平緩的變化,所以很難得到一個最大穩定的極值區域。
STAR
利用STAR特征提取算法,實驗結果如下:
由實驗結果可以看出,該方法依舊無法提取出蘋果的特征點。
5.總結分析
由上面的幾個試驗可知,以這些方法,都無法對蘋果進行有效的特征提取。原因基本上都是因為蘋果表面顏色過渡比較光滑,其表面大多數點和周圍的點顏色差別太小,不宜作為特征點。
通過這幾個實驗還可以發現,無論是哪種特征點提取的方法,提取的特征點都位于蘋果的上邊部分和蘋果的右邊部分,即不同的特征提取算法提取的特征點的位置還是極為相似的,由此也可以看出不同的特征提取算法雖然方法不同,但是也存在著一定的相似性。
本人剛剛開始從事物體識別和特征提取的研究不久,還算是個初學者,為了提高自己,也為了和大家多多的交流并互相學習,將最近的一些實驗發布出來,歡迎各位批評指正。也非常歡迎和我交流。
我的聯系方式bianxingjingang139@126.com
2015年3月9日 ? 西安交通大學
總結
以上是生活随笔為你收集整理的图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [caffe]深度学习之CNN检测obj
- 下一篇: SIFT-FCACO算法的图像配准