特徵提取

特徵提取

特徵提取是計算機視覺和圖像處理中的一個概念。它指的是使用計算機提取圖像信息,決定每個圖像的點是否屬於一個圖像特徵。特徵提取的結果是把圖像上的點分為不同的子集,這些子集往往屬於孤立的點、連續的曲線或者連續的區域。在機器學習、模式識別和圖像處理中,特徵提取從初始的一組測量數據開始,並建立旨在提供信息和非冗餘的派生值(特徵),從而促進後續的學習和泛化步驟,並且在某些情況下帶來更好的可解釋性。特徵提取與降維有關。特徵的好壞對泛化能力有至關重要的影響。

定義


對某一模式的組測量值進行變換,以突出該模式具有代表性特徵的一種方法。通過影像分析和變換,以提取所需特徵的方法。
特徵提取是指使用計算機提取圖像中屬於特徵性的信息的方法及過程。

基本概念


應用類型

至今為止特徵沒有萬能和精確的定義。特徵的精確定義往往由問題或者應用類型決定。特徵是一個數字圖像中“有趣”的部分,它是許多計算機圖像分析演演算法的起點。因此一個演演算法是否成功往往由它使用和定義的特徵決定。因此特徵提取最重要的一個特性是“可重複性”:同一場景的不同圖像所提取的特徵應該是相同的。

初級運算

特徵提取是圖象處理中的一個初級運算,也就是說它是對一個圖像進行的第一個運算處理。它檢查每個像素來確定該像素是否代表一個特徵。假如它是一個更大的演演算法的一部分,那麼這個演演算法一般只檢查圖像的特徵區域。作為特徵提取的一個前提運算,輸入圖像一般通過高斯模糊核在尺度空間中被平滑。此後通過局部導數運算來計算圖像的一個或多個特徵。

尋找特徵

有時,假如特徵提取需要許多的計算時間,而可以使用的時間有限制,一個高層次演演算法可以用來控制特徵提取階層,這樣僅圖像的部分被用來尋找特徵。
由於許多計算機圖像演演算法使用特徵提取作為其初級計算步驟,因此有大量特徵提取演演算法被發展,其提取的特徵各種各樣,它們的計算複雜性和可重複性也非常不同。

特徵類型


邊緣
邊緣是組成兩個圖像區域之間邊界(或邊緣)的像素。一般一個邊緣的形狀可以是任意的,還可能包括交叉點。在實踐中邊緣一般被定義為圖像中擁有大的梯度的點組成的子集。一些常用的演演算法還會把梯度高的點聯繫起來來構成一個更完善的邊緣的描寫。這些演演算法也可能對邊緣提出一些限制。
局部地看邊緣是一維結構。
角是圖像中點似的特徵,在局部它有兩維結構。早期的演演算法首先進行邊緣檢測,然後分析邊緣的走向來尋找邊緣突然轉向(角)。後來發展的演演算法不再需要邊緣檢測這個步驟,而是可以直接在圖像梯度中尋找高度曲率。後來發現這樣有時可以在圖像中本來沒有角的地方發現具有同角一樣的特徵的區域。
區域
與角不同的是區域描寫一個圖像中的一個區域性的結構,但是區域也可能僅由一個像素組成,因此許多區域檢測也可以用來檢測角。一個區域監測器檢測圖像中一個對於角監測器來說太平滑的區域。
區域檢測可以被想象為把一張圖像縮小,然後在縮小的圖像上進行角檢測。
長條形的物體被稱為脊。在實踐中脊可以被看作是代表對稱軸的一維曲線,此外局部針對於每個脊像素有一個脊寬度。從灰梯度圖像中提取脊要比提取邊緣、角和區域困難。在空中攝影中往往使用脊檢測來分辨道路,在醫學圖像中它被用來分辨血管。

從圖像中抽取


特徵被檢測后它可以從圖像中被抽取出來。這個過程可能需要許多圖像處理的計算機。其結果被稱為特徵描述或者特徵向量
特徵提取和特徵選擇都是從原始特徵中找出最有效(同類樣本的不變性、不同樣本的鑒別性、對雜訊的魯棒性)的特徵
特徵提取:將原始特徵轉換為一組具有明顯物理意義(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即特徵維數。

處理文字信息


很多機器學習問題涉及自然語言處理(NLP),必然要處理文字信息。文字必須轉換成可以量化的特徵向量。下面我們就來介紹最常用的文字表示方法:詞庫模型(Bag-of-words model)。
詞庫模型是文字模型化的最常用方法。對於一個文檔(document),忽略其詞序和語法,句法,將其僅僅看做是一個詞集合,或者說是詞的一個組合,文檔中每個詞的出現都是獨立的,不依賴於其他詞是否出現,或者說當這篇文章的作者在任意一個位置選擇一個辭彙都不受前面句子的影響而獨立選擇的。詞庫模型可以看成是獨熱編碼的一種擴展,它為每個單詞設值一個特徵值。詞庫模型依據是用類似單詞的文章意思也差不多。詞庫模型可以通過有限的編碼信息實現有效的文檔分類和檢索。

檢測方法


根據對圖像信息處理的方法不同,特徵點檢測一般分為:
基於模板的方法
基於模板的方法主要是利用參數模型或模板來進行檢測特徵點的工作。因為需要構建各種不同的參數模型或模板,所以通常用於檢測具備特定類型的特徵點,計算速度一般較快。缺點是不適合用於形式比較複雜的模板。
基於邊緣的方法
基於邊緣的方法是把多邊形的頂點,或曲率變化較大的物體邊緣上的點作為特徵點。因為特徵點是物體邊緣的集合,因此一定程度上對邊緣的提取演演算法要求很高,如果邊緣定位出現偏差,就會對檢測結果造成很大的影響。
基於灰度的方法
基於灰度的方法是利用像素點灰度的局部變化來進行探測,特徵點是建立在某種演演算法上,在該演演算法上灰度變化最大的像素點。可以利用微分運算來求取像素點周圍灰度的導數,以此求出特徵點的位置,該方法的缺點是雜訊比較大。
基於空間變換的方法
基於空間變換的方法利用空間變換獲取特性比較容易辨識的特徵點,然後在變換空間中進行極值點的檢測。通常空間分為尺度空間、頻率空間、小波空間等。尺度空間是指在曲率尺度空間或在DOG尺度空間,將搜索到的絕對值最小或最大的點作為特徵點。頻率空間是將計算得到的局部相位或特定相位最大值當做特徵點。小波變換是利用小波係數或模的局部極大值,利用最佳尺度進行極值點檢測。