LBP方法

LBP(Local Binary Patterns,局部二值模式)是提取局部特徵作爲判別依據的。LBP方法顯著的優點是對光照不敏感,但是依然沒有解決姿態和表情的問題。不過相比於特徵臉方法,LBP的識別率已經有了很大的提升。在[1]的文章裏,有些人臉庫的識別率已經達到了98%+。


1、LBP特徵提取

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



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


其中代表3x3鄰域的中心元素,它的像素值爲ic,ip代表鄰域內其他像素的值。s(x)是符號函數,定義如下:



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模式最多隻包含兩次從10或從01的跳變。因此,Ojala將“等價模式”定義爲:當某個LBP所對應的循環二進制數從01或從10最多有兩次跳變時,該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特徵沒什麼區別,會造成計算量準確率等一系列問題。文獻[1]中,將一副人臉圖像分爲7x7的子區域(如下圖),並在子區域內根據LBP值統計其直方圖,以直方圖作爲其判別特徵。這樣做的好處是在一定範圍內避免圖像沒完全對準的情況,同時也對LBP特徵做了降維處理。


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

(1)直方圖交叉核方法


該方法的介紹在博文:Histogram intersection(直方圖交叉核,Pyramid Match Kernel)

(2)卡方統計方法


該方法的介紹在博文:卡方檢驗(Chi square statistic)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章