特征提取算法(1)——紋理特征提取算法LBP


模式識別中進行匹配識別或者分類器分類識別時,判斷的依據就是圖像特征。用提取的特征表示整幅圖像內容,根據特征匹配或者分類圖像目標。

常見的特征提取算法主要分為以下3類:

  • 基於顏色特征:如顏色直方圖、顏色集、顏色矩、顏色聚合向量等;
  • 基於紋理特征:如Tamura紋理特征、自回歸紋理模型、Gabor變換、小波變換、MPEG7邊緣直方圖等;
  • 基於形狀特征:如傅立葉形狀描述符、不變矩、小波輪廓描述符等;

LBP特征提取算法

LBP(Local Binary Patterns,局部二值模式)是提取局部特征作為判別依據的,一種有效的紋理描述算子,度量和提取圖像局部的紋理信息,它具有旋轉不變性和灰度不變性等顯著的優點,對光照具有不變性。用於紋理特征提取。而且,提取的特征是圖像的局部的紋理特征。有多種改進型,LBP結合BP神經網絡已經用於人臉識別等領域。

灰度不變性:指的是光照變化是否會對描述產生影響。以上面的8鄰域來說,光照變化很難改變中心像素點的灰度值與周圍8個像素的大小關系。因為光照是一種區域性質的變化,而不是單像素性質的變化。

1、LBP特征描述

LBP的基本思想是定義於像素的8鄰域中(3x3的窗口), 以中心像素的灰度值為閾值, 將周圍8 個像素的值與其比較, 如果周圍的像素值小於中心像素的灰度值, 該像素位置就被標記為0, 否則標記為1。這樣3x3的鄰域內的八個點經過比較能夠產生8位二進制數(通常轉換為十進制,即LBP碼,共256種),每個像素得到一個二進制組合, 即得到該窗口中心像素點的LBP值,並用這個值來反映該區域的紋理信息。

 

2、LBP的改進版本:

(1)圓形LBP算子

基本的 LBP算子的最大缺陷在於它只覆蓋了一個固定半徑范圍內的小區域,這顯然不能滿足不同尺寸和頻率紋理的需要。為了適應不同尺寸的紋理特征,達到灰度和旋轉不變性的要求。將 3×3鄰域擴展到任意鄰域,並用圓形鄰域代替了正方形鄰域,改進后的 LBP 算子允許在半徑為 R的圓形鄰域內有任意多個像素點。從而得到了諸如半徑為R的圓形區域內含有P個采樣點的LBP算子。

(2)LBP旋轉不變模式

從 LBP 的定義可以看出,LBP 算子是灰度不變的,但卻不是旋轉不變的。圖像的旋轉就會得到不同的LBP值。

Maenpaa等人又將 LBP算子進行了擴展,提出了具有旋轉不變性的 LBP 算子,即不斷旋轉圓形鄰域得到一系列初始定義的 LBP值,取其最小值作為該鄰域的 LBP 值。

下圖給出了求取旋轉不變的 LBP 的過程示意圖,圖中算子下方的數字表示該算子對應的 LBP值,圖中所示的 8 種 LBP模式,經過旋轉不變的處理,最終得到的具有旋轉不變性的 LBP值為 15。也就是說,圖中的 8種 LBP 模式對應的旋轉不變的 LBP模式都是 00001111。

(3)LBP等價模式

一個LBP算子可以產生不同的二進制模式,對於半徑為R的圓形區域內含有P個采樣點的LBP算子將會產生2p種模式。很顯然,隨着鄰域集內采樣點數的增加,二進制模式的種類是急劇增加的。例如:5×5鄰域內20個采樣點,有220=1,048,576種二進制模式。

如此多的二值模式無論對於紋理的提取還是對於紋理的識別、分類及信息的存取都是不利的。同時,過多的模式種類對於紋理的表達是不利的。例如,將LBP算子用於紋理分類或人臉識別時,常采用LBP模式的統計直方圖來表達圖像的信息,而較多的模式種類將使得數據量過大,且直方圖過於稀疏。因此,需要對原始的LBP模式進行降維,使得數據量減少的情況下能最好的代表圖像的信息。

為了解決二進制模式過多的問題,提高統計性,Ojala提出了采用一種“等價模式”(Uniform Pattern)來對LBP算子的模式種類進行降維。Ojala等認為,在實際圖像中,絕大多數LBP模式最多只包含兩次從1到0或從0到1的跳變。因此,Ojala將“等價模式”定義為:當某個LBP所對應的循環二進制數從0到1或從1到0最多有兩次跳變時,該LBP所對應的二進制就稱為一個等價模式類,除了等價模式以外的模式都歸一一類,稱為混合模式類。計算跳變的方法:如10010111,首先第一二位10,由1—>0跳變一次;第二、三位00,沒有跳變;第三、四位01,由0—>1跳變一次,第四、五位10,由1—>0跳變一次;第五六位01,由0—>1跳變一次;第六七位11,沒有跳變;第七八位11,沒有跳變;第八位和第一位11,沒有跳變;故總共跳變4次。

通過這種改進,二進制模式的種類大大減少,而不會丟失任何信息,模式種類由原來的2^p減少為p*(p-1)+2種。對於3×3鄰域內8個采樣點來說,二進制模式由原始的256種減少為58種,這使得特征向量的維數更少,並且可以減少高頻噪聲帶來的影響。

1、0次跳變,只有兩種,即000..或者1111....

2、1次跳變,兩種可能,0—>1或者1—>0:

  (1)0開頭:0...01、0....011,一共有p-1種;

  (2)1開頭:1...10、1...100、1..1000、等等,一種有p-1種;

  綜合,一次跳變有2(p-1)種。

2、兩次跳變,0—>1—>0和1—>0—>1

  0—>1—>0:第一次跳變位置在第2、第3、........p-1位置時,對應的第二次跳變有p-2種、p-3種....1種的跳變位置,所以共有(p-1)(p-2)/2種模式;

  1—>0—>1:相應的也有(p-1)(p-2)/2種;

  綜合有(p-1)(p-2)種模式

綜上一共有2+2(p-1)+(p-1)(p-2)=p(p-1)+2種模式可能。

等價模式代表了圖像的邊緣、斑點、角點等關鍵模式,等價模式占了總模式中的絕大多數,所以極大的降低了特征維度。利用這些等價模式和混合模式類直方圖,能夠更好地提取圖像的本質特征。

3、LBP特征用於檢測的原理

顯而易見的是,上述提取的LBP算子在每個像素點都可以得到一個LBP“編碼”,那么,對一幅圖像(記錄的是每個像素點的灰度值)提取其原始的LBP算子之后,得到的原始LBP特征依然是“一幅圖片”(記錄的是每個像素點的LBP值)。

LBP的應用中,如紋理分類、人臉分析等,LBP特征提取結果還是大小相同的一幅圖像,一般都不將LBP圖譜作為特征向量用於分類識別,而是采用LBP特征譜的統計直方圖作為特征向量用於分類識別。

因為,從上面的分析我們可以看出,這個“特征”跟位置信息是緊密相關的。直接對兩幅圖片提取這種“特征”,並進行判別分析的話,會因為“位置沒有對准”而產生很大的誤差。后來,研究人員發現,可以將一幅圖片划分為若干的子區域,對每個子區域內的每個像素點都提取LBP特征,然后,在每個子區域內建立LBP特征的統計直方圖。如此一來,每個子區域,就可以用一個統計直方圖來進行描述;整個圖片就由若干個統計直方圖組成;

例如:一幅100*100像素大小的圖片,划分為10*10=100個子區域(可以通過多種方式來划分區域),每個子區域的大小為10*10像素;在每個子區域內的每個像素點,提取其LBP特征,然后,建立統計直方圖;這樣,這幅圖片就有10*10個子區域,也就有了10*10個統計直方圖,利用這10*10個統計直方圖,就可以描述這幅圖片了。之后,我們利用各種相似性度量函數,就可以判斷兩幅圖像之間的相似性了。

3、對LBP特征向量進行提取的步驟

(1)首先將檢測窗口划分為16×16的小區域(cell);

(2)對於每個cell中的一個像素,將相鄰的8個像素的灰度值與其進行比較,若周圍像素值大於中心像素值,則該像素點的位置被標記為1,否則為0。這樣,3*3鄰域內的8個點經比較可產生8位二進制數,即得到該窗口中心像素點的LBP值;

(3)然后計算每個cell的直方圖,即每個數字(假定是十進制數LBP值)出現的頻率;然后對該直方圖進行歸一化處理。

(4)最后將得到的每個cell的統計直方圖進行連接成為一個特征向量,也就是整幅圖的LBP紋理特征向量;

然后便可利用SVM或者其他機器學習算法進行分類了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM