LBP演算法(人臉識別特徵提取)

2021-09-26 09:29:24 字數 2677 閱讀 4136

lbp(local binary patterns,區域性二值模式)是提取區域性特徵作為判別依據的。lbp方法顯著的優點是對光照不敏感,但是依然沒有解決姿態和表情的問題。不過相比於特徵臉方法,lbp的識別率已經有了很大的提公升。在[1]的文章裡,有些人臉庫的識別率已經達到了98%+。

1、lbp特徵提取

最初的lbp是定義在畫素3x3鄰域內的,以鄰域中心畫素為閾值,將相鄰的8個畫素的灰度值與其進行比較,若周圍畫素值大於中心畫素值,則該畫素點的位置被標記為1,否則為0。這樣,3x3鄰域內的8個點經比較可產生8位二進位制數(通常轉換為十進位制數即lbp碼,共256種),即得到該鄰域中心畫素點的lbp值,並用這個值來反映該區域的紋理資訊。如下圖所示:

用比較正式的公式來定義的話:

其中

lbp的改進版本

(1)圓形lbp運算元

基本的 lbp運算元的最大缺陷在於它只覆蓋了乙個固定半徑範圍內的小區域,這顯然不能滿足不同尺寸和頻率紋理的需要。為了適應不同尺度的紋理特徵,並達到灰度和旋轉不變性的要求,ojala等對 lbp 運算元進行了改進,將 3×3鄰域擴充套件到任意鄰域,並用圓形鄰域代替了正方形鄰域,改進後的 lbp 運算元允許在半徑為 r 的圓形鄰域內有任意多個畫素點。從而得到了諸如半徑為r的圓形區域內含有p個取樣點的lbp運算元。比如下圖定了乙個5x5的鄰域:

上圖內有八個黑色的取樣點,每個取樣點的值可以通過下式計算:

其中

(2)lbp等價模式

乙個lbp運算元可以產生不同的二進位制模式,對於半徑為r的圓形區域內含有p個取樣點的lbp運算元將會產生2^p種模式。很顯然,隨著鄰域集內取樣點數的增加,二進位制模式的種類是急劇增加的。例如: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所對應的二進位制就稱為乙個等價模式類。如00000000(0次跳變),00000111(只含一次從0到1的跳變),10001111(先由1跳到0,再由0跳到1,共兩次跳變)都是等價模式類。除等價模式類以外的模式都歸為另一類,稱為混合模式類,例如10010111(共四次跳變)。比如下圖給出了幾種等價模式的示意圖。

通過這樣的改進,二進位制模式的種類大大減少,而不會丟失任何資訊。模式數量由原來的2p種減少為 p ( p-1)+2種,其中p表示鄰域集內的取樣點數。對於3×3鄰域內8個取樣點來說,二進位制模式由原始的256種減少為58種,這使得特徵向量的維數更少,並且可以減少高頻雜訊帶來的影響。這幾段摘自[2]。

通過上述方法,每個畫素都會根據鄰域資訊得到乙個lbp值,如果以影象的形式顯示出來可以得到下圖,明顯lbp對光照有較強的魯棒性。

2、lbp特徵匹配

如果將以上得到的lbp值直接用於人臉識別,其實和不提取lbp特徵沒什麼區別,會造成計算量準確率等一系列問題。文獻中,將一副人臉影象分為7x7的子區域(如下圖),並在子區域內根據lbp值統計其直方圖,以直方圖作為其判別特徵。這樣做的好處是在一定範圍內避免影象沒完全對準的情況,同時也對lbp特徵做了降維處理。

對於得到的直方圖特徵,有多種方法可以判別其相似性,假設已知人臉直方圖為mi​,待匹配人臉直方圖為si,那麼可以通過:

(1)直方圖交叉核方法

該方法的介紹在博文:

(2)卡方統計方法

該方法的介紹在博文:

LBP特徵提取

基本原理 lbp的基本思想是以影象中某個畫素為中心,對相鄰畫素進行閾值比較。如果中心畫素的亮度大於等於它的相鄰畫素,把相鄰畫素標記為1,否則標記為0。我們可以用二進位制數字來表示lbp圖中的每個畫素的lbp編碼,比如下圖中的中心畫素,它的lbp編碼為 00010011,其十進位制值為19。用公式表示...

LBP特徵提取實現

捯飭了一兩天才搞好!在lbp.m下輸入下面 執行結果如圖 i imread rice.png using uniform patterns subplot 2,1,1 stem h1 h2 lbp i subplot 2,1,2 stem h2 sp 1 1 1 0 1 1 0 1 0 1 1 1 ...

LBP特徵提取演算法的提取與實現

lbp的基本思想是對影象的畫素和它周圍8個畫素進行比較,然後求和。如果中心畫素的亮度大於等於他的相鄰畫素,把他標記為1,否則標記為0。最終可以獲取2 8個可能的組合,稱為區域性二值模式或lbp碼。這樣做的原理 因為對於一張,相鄰畫素之 間的的值是有關係的。因此中心點和相鄰畫素比較後就能得到乙個二進位...