前言:特徵提取(feature extraction)是計算機視覺和影象處理中的乙個概念。它指的是使用計算機提取影象資訊,決定每個影象的點是否屬於乙個影象特徵。特徵提取的結果是把影象上的點分為不同的子集,這些子集往往屬於孤立的點、連續的曲線或者連續的區域。
案:理解特徵提取就是獲取依據需求,來獲取影象的獨有特徵值。或者,是將具有相同特質的影象分解的模組進行分類和歸類。
特徵是乙個「有趣」的部分,它是許多計算機影象分析演算法的起點。因此乙個演算法是否成功往往由它使用和定義的特徵決定。因此特徵提取最重要的乙個特性是「可重複性」:同一場景的不同影象所提取的特徵應該是相同的。
特徵提取是圖象處理中的乙個初級運算,也就是說它是對乙個影象進行的第乙個運算處理。它檢查每個畫素來確定該畫素是否代表乙個特徵。假如它是乙個更大的演算法的一部分,那麼這個演算法一般只檢查影象的特徵區域。作為特徵提取的乙個前提運算,輸入影象一般通過高斯模糊核在尺度空間中被平滑。此後通過區域性導數運算來計算影象的乙個或多個特徵。
有時,假如特徵提取需要許多的計算時間,而可以使用的時間有限制,乙個高層次演算法可以用來控制特徵提取階層,這樣僅影象的部分被用來尋找特徵。由於許多計算機影象演算法使用特徵提取作為其初級計算步驟,因此有大量特徵提取演算法被發展,其提取的特徵各種各樣,它們的計算複雜性和可重複性也非常不同。
邊緣是組成兩個影象區域之間邊界(或邊緣)的畫素。一般乙個邊緣的形狀可以是任意的,還可能包括交叉點。在實踐中邊緣一般被定義為影象中擁有大的梯度的點組成的子集。一些常用的演算法還會把梯度高的點聯絡起來來構成乙個更完善的邊緣的描寫。這些演算法也可能對邊緣提出一些限制。區域性地看邊緣是一維結構。
角是影象中點似的特徵,在區域性它有兩維結構。早期的演算法首先進行邊緣檢測,然後分析邊緣的走向來尋找邊緣突然轉向(角)。後來發展的演算法不再需要邊緣檢測這個步驟,而是可以直接在影象梯度中尋找高度曲率。後來發現這樣有時可以在影象中本來沒有角的地方發現具有同角一樣的特徵的區域。
與角不同的是區域描寫乙個影象中的乙個區域性的結構,但是區域也可能僅由乙個畫素組成,因此許多區域檢測也可以用來檢測角。乙個區域監測器檢測影象中乙個對於角監測器來說太平滑的區域。
區域檢測可以被想象為把一張影象縮小,然後在縮小的影象上進行角檢測。
長條形的物體被稱為脊。在實踐中脊可以被看作是代表對稱軸的一維曲線,此外區域性針對於每個脊畫素有乙個脊寬度。從灰梯度影象中提取脊要比提取邊緣、角和區域困難。在空中攝影中往往使用脊檢測來分辨道路,在醫學影象中它被用來分辨血管。
特徵被檢測後它可以從影象中被抽取出來。這個過程可能需要許多影象處理的計算機。其結果被稱為特徵描述或者特徵向量。
特徵提取和特徵選擇都是從原始特徵中找出最有效(同類樣本的不變性、不同樣本的鑑別性、對雜訊的魯棒性)的特徵
特徵提取:將原始特徵轉換為一組具有明顯物理意義(gabor、幾何特徵[角點、不變數]、紋理[lbp hog])或者統計意義或核的特徵
特徵選擇:從特徵集合中挑選一組最具統計意義的特徵,達到降維
兩者作用:
1 減少資料儲存和輸入資料頻寬;
2 減少冗餘;
3 低緯上分類性往往會提高;
4 能發現更有意義的潛在的變數,幫助對資料產生更深入的了解。
1. 統計樣本集中文件總數(n)。
2. 統計每個詞的正文件出現頻率(a)、負文件出現頻率(b)、正文件不出現頻率)、負文件不出現頻率。
3.計算每個詞的卡方值。
4.將每個詞按卡方值從大到小排序,選取前k個詞作為特徵,k即特徵維數。
1. 統計正負分類的文件數:n1、n2。
2. 統計每個詞的正文件出現頻率(a)、負文件出現頻率(b)、正文件不出現頻率)、負文件不出現頻率。
3. 計算資訊熵
4. 計算每個詞的資訊增益
5. 將每個詞按資訊增益值從大到小排序,選取前k個詞作為特徵,k即特徵維數。
根據對影象資訊處理的方法不同,特徵點檢測一般分為:
基於模板的方法主要是利用引數模型或模板來進行檢測特徵點的工作。因為需要構建各種不同的引數模型或模板,所以通常用於檢測具備特定型別的特徵點,計算速度一般較快。缺點是不適合用於形式比較複雜的模板。
基於邊緣的方法是把多邊形的頂點,或曲率變化較大的物體邊緣上的點作為特徵點。因為特徵點是物體邊緣的集合,因此一定程度上對邊緣的提取演算法要求很高,如果邊緣定位出現偏差,就會對檢測結果造成很大的影響。
基於灰度的方法是利用畫素點灰度的區域性變化來進行探測,特徵點是建立在某種演算法上,在該演算法上灰度變化最大的畫素點。可以利用微分運算來求取畫素點周圍灰度的導數,以此求出特徵點的位置,該方法的缺點是雜訊比較大。
基於空間變換的方法利用空間變換獲取特性比較容易辨識的特徵點,然後在變換空間中進行極值點的檢測。通常空間分為尺度空間、頻率空間、小波空間等。尺度空間是指在曲率尺度空間或在dog尺度空間,將搜尋到的絕對值最小或最大的點作為特徵點。頻率空間是將計算得到的區域性相位或特定相位最大值當做特徵點。小波變換是利用小波係數或模的區域性極大值,利用最佳尺度進行極值點檢測。
reference:
2 特徵點提取演算法列表
3 orb(fast+brief)特徵提取與實現——特徵點提取演算法分析
4 【opencv】特徵點檢測方法--gftt,sift,fast,surf
特徵點提取opencv
opencv中提供了harris角點檢測的介面,即cv cornerharris 缺陷 角點是畫素級別的,速度較慢 dst cv2.cornerharris gray,2,3,0.04 img 資料型別為 float32 的輸入影象 blocksize 角點檢測中要考慮的領域大小 ksize sob...
Sift特徵提取演算法
2004 年d.lowe 提出了乙個新的演算法 尺度不變特徵變換 sift 這個演算法可以幫助我們提取影象中的關鍵點並計算它們的描述符。sift演算法的特點就是,對於區域性特徵對旋轉 縮放 亮度變化保持不變。sift 演算法主要內容如下 1 尺度空間的極值檢測 2 特徵點定位 3 特徵方向賦值 4 ...
OpenCV2 3 1特徵點提取
今天做特徵點匹配實驗,從網上找來了surf特徵點檢測程式,除錯也調通了,但是執行之後就是沒有結果出來,還會出現執行之後程式崩潰的問題,後來試了好多遍,發現是由於lib檔案有問題,雖然在屬性裡已經新增了,但是仍然鏈結不上。解決方法是在程式開始新增lib檔案,如下所示。include opencv2 o...