1. 程式人生 > >影象處理中,SIFT,FAST,MSER,STAR等特徵提取演算法的比較與分析(利用openCV實現)

影象處理中,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依次遞增。閾值的遞增類似於分水嶺演算法中的水面的上升,隨著水面的上升,有一些較矮的丘陵會被淹沒,如果從天空往下看,則大地分為陸地和水域兩個部分,這類似於二值影象。在得到的所有二值影象中,影象中的某些連通區域變化很小,甚至沒有變化,則該區域就被稱為最大穩定極值區域。這類似於當水面持續上升的時候,有些被水淹沒的地方的面積沒有變化。

利用此演算法,同樣對蘋果和鞋子兩個物體進行檢測,結果如下

通過對比試驗發現,蘋果的特徵區域依舊非常少。可見該演算法依舊不適合於蘋果的特徵提取。

分析原因可以發現,蘋果的表面的灰度為比較光滑的過渡,當閾值不斷增大時,陸地和水面的邊界也在平緩的變化,所以很難得到一個最大穩定的極值區域。

STAR

利用STAR特徵提取演算法,實驗結果如下:

由實驗結果可以看出,該方法依舊無法提取出蘋果的特徵點。

5.總結分析

由上面的幾個試驗可知,以這些方法,都無法對蘋果進行有效的特徵提取。原因基本上都是因為蘋果表面顏色過渡比較光滑,其表面大多數點和周圍的點顏色差別太小,不宜作為特徵點。

通過這幾個實驗還可以發現,無論是哪種特徵點提取的方法,提取的特徵點都位於蘋果的上邊部分和蘋果的右邊部分,即不同的特徵提取演算法提取的特徵點的位置還是極為相似的,由此也可以看出不同的特徵提取演算法雖然方法不同,但是也存在著一定的相似性。

本人剛剛開始從事物體識別和特徵提取的研究不久,還算是個初學者,為了提高自己,也為了和大家多多的交流並互相學習,將最近的一些實驗釋出出來,歡迎各位批評指正。也非常歡迎和我交流。

2015年3月9日   西安交通大學