1. 程式人生 > >圖像物體檢測識別中的LBP特征

圖像物體檢測識別中的LBP特征

方法 順時針 原創文章 精度問題 advance bio 轉換 尺寸 pos

版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.net/xinzhangyanxiang/article/details/37317863

圖像物體檢測識別中的LBP特征

1????????引言

之前講了人臉識別中的Haar特征,本文則關註人臉檢測中的LBP特征。說是對於人臉檢測的,事實上對於其它物體也能檢測,僅僅需改動訓練數據集就可以。

所以本文的題目是物體檢測識別,比方能夠檢測是否汽車是否有車牌號等。

在opencv實現的haar特征的人臉識別算法中,LBP特征也被支持。

haar特征的博文鏈接:http://blog.csdn.net/stdcoutzyx/article/details/34842233。

2????????LBP的歷史

1996年,Ojala老大爺搞出了LBP特征,也即參考文獻1。當時好像並未引發什麽波瀾。到了2002年的時候,老大爺又對LBP的特性進行了總結。產生了參考文獻2。這篇文獻眼下為止引用數目4600+。足見其分量之重了。

到了2004年的時候,Ahonen將LBP特征首次用於人臉檢測。即參考文獻3。因為該特征的簡單易算性,盡管其整體效果不如Haar特征,但速度則快於Haar。所以也得到了廣泛的使用。

2007年的時候,中科院的一幫大神將Haar特征計算的積分圖方法引入進來,產生了多尺度的LBP特征。也即參考文獻4。使得LBP在人臉識別的檢測率上又提高了不少。

LBP特征與多尺度LBP以及LBP在人臉識別中的應用就是本文的主要內容。

3????????LBP特征

言歸正傳。什麽是LBP特征呢?LBP,是Local Binary Pattern(局部二值模式)的縮寫。其定義例如以下:

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

下圖反應了某個像素的詳細的LBP特征值的計算過程。須要註意的是,LBP值是依照順時針方向組成的二進制數。

技術分享圖片

用公式來定義的話。例如以下所看到的:

技術分享圖片

當中技術分享圖片代表3x3鄰域的中心元素。它的像素值為ic,ip代表鄰域內其它像素的值。

s(x)是符號函數,定義例如以下:

技術分享圖片

4????????LBP特征的圓形化改進

原始論文[1]中定義了基礎LBP後,還定義了一種改進方法,即圓形化LBP。

主要的?LBP算子的最大缺陷在於它僅僅覆蓋了一個固定半徑範圍內的小區域,這顯然不能滿足不同尺寸和頻率紋理的須要。

為了適應不同尺度的紋理特征。並達到灰度和旋轉不變性的要求。Ojala等對?LBP?算子進行了改進,將?3×3鄰域擴展到隨意鄰域。並用圓形鄰域取代了正方形鄰域。改進後的?LBP?算子同意在半徑為?R?的圓形鄰域內有隨意多個像素點。從而得到了諸如半徑為R的圓形區域內含有P個採樣點的LBP算子。

比方下圖定了一個5x5的鄰域:

技術分享圖片

上圖內有八個黑色的採樣點,每一個採樣點的值能夠通過下式計算:

技術分享圖片

當中技術分享圖片為鄰域中心點。技術分享圖片為某個採樣點。

通過上式能夠計算隨意個採樣點的坐標,可是計算得到的坐標未必全然是整數,所以能夠通過雙線性插值來得到該採樣點的像素值:

技術分享圖片

下圖列舉了幾種不同半徑不同採樣點的LBP算子例子。

技術分享圖片

5????????LBP特征的再轉化

經過LBP算子的計算後。圖像上相應於每一個像素都會有一個LBP特征值。假設LBP特征計算時採樣點是8個的話,那麽LBP特征值的範圍也是0~255。也能夠表示成一張圖像。稱之為LBP圖譜。例如以下圖所看到的:

技術分享圖片

上圖中,上面一行是原圖,以下一行是LBP圖譜。能夠看到LBP特征的一個優勢,就是LBP對光照有非常好的魯棒性。

可是,在實際應用中,並不使用LBP圖譜做特征。那使用什麽哩?

對於八採樣點的LBP算子來說,特征值範圍為0~255,對每一個特征值進行統計,比方得到特征值為1的LBP值有多少個、特征值為245的LBP值有多少個等等。這樣就形成了一個直方圖,該直方圖有256個bin,即256個分量,也能夠把該直方圖當做一個長度為256的向量。

假設直接使用該向量的話。那麽對八採樣點的LBP算子來說,一張圖片至多會形成一個256長度的一個向量,這樣位置信息就所有丟失了,會造成非常大的精度問題。

所以在實際中還會再有一個技巧,就是先把圖像分成若幹個區域。對每一個區域進行統計得到直方圖向量,再將這些向量整合起來形成一個大的向量。下圖就將一張人臉圖像分成了7x7的子區域。

技術分享圖片

6????????LBP特征的使用

本文介紹兩個LBP特征的使用。其一是圖像類似度計算,其二是人臉檢測。

6.1???圖像類似度計算

每一個圖像都能夠使用一個LBP特征向量來表示。圖像的類似度就能夠使用向量的類似度來計算。

向量的類似度計算方法有非常多。比方余弦、距離等。在文獻3中。這種基於直方圖向量的類似度計算方法給出了三種,例如以下圖所看到的。

技術分享圖片

上圖中公式僅僅是針對一個直方圖的。使用中還會將圖像分為多個區域分別計算直方圖。所以在實際使用中,還可對不同區域進行加權。

技術分享圖片

6.2???特定人臉檢測

在上述計算圖像類似度的公式中。須要對每一個分量計算一個值(差值、最小值等),然後將這些值累加。我們還能夠這樣考慮,不將每一個分量計算出的值累加。而是形成一個新的向量。臨時稱之為差異向量。

這樣就能夠針對特定人臉進行檢測了。

詳細訓練方法是這樣:

a)????????首先準備訓練集,正例是同一個人的人臉的兩張圖像的差異向量。負例是不同人的人臉的兩張圖像的差異向量。

b)???????然後。使用如Adaboost、SVM、樸素貝葉斯等分類方法對訓練集進行訓練,得到分類模型。

在測試時,假設有一張圖像A,如今須要推斷圖像B與圖像A中的人臉是否是同一個人。那麽首先計算出兩張圖像的差異向量,然後使用訓練得到的分類模型對其進行分類。假設分類為正,則是同一個人。當然。前提假設是圖像A與圖像B都是人臉圖像。

7????????LBP特征降維

一個LBP算子能夠產生不同的二進制模式,對於半徑為R的圓形區域內含有P個採樣點的LBP算子將會產生2^P種模式。非常顯然,隨著鄰域集內採樣點數的添加,二進制模式的種類是急劇添加的。比如:5×5鄰域內20個採樣點,有2^20=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種。這使得特征向量的維數更少,而且能夠降低高頻噪聲帶來的影響。

由上可見。等價模式降維的理論基礎是至多包括兩次跳變的模式的數目占所有模式的大多數。實驗也表明,普通情況下。基礎LBP特征中,至多包括兩次跳變的模式的數目占了所有模式數目的90%。

8????????多尺度LBP

本節主要是參考文獻4的成果。

基本LBP是計算的單個像素與其相鄰像素的差值信息。它捕捉的是微觀特征。可是不能捕捉宏觀上的特征。文獻4在此方面進行了改進。它提出能夠將LBP算子等比例放大,計算區域與區域之間的差值信息。例如以下圖所看到的:

技術分享圖片

上圖就是放大3倍後的LBP算子。這時,中心元素變為了0區域9個像素的像素和,該區域的LBP特征值就變為0區域和其它區域的像素和之間的計算了。在此須要註意的是。此時的LBP特征針對的是一個區域而不是一個像素了。在計算像素和之差的時候。能夠使用Haar特征時提到的積分圖方法進行加速計算。

多尺度模式下。等價模式類降維的理論基礎不復存在。

那麽,它是怎樣降維的呢?

論文中提到的方法是直接採用統計的方法對不同尺度的LBP算子的模式進行統計,選取占比例較高的模式。而不是利用跳變規則。

9????????總結

LBP特征與Haar特征盡管計算方法差異非常大。但它們都有一個共同的目標。那就是對圖像的信息進行表示,從而使圖像的所存儲的信息能更充分的被算法所利用。

圖像中像素與LBP特征、Haar特征之間的關系比較類似於文本分析中字與詞之間的關系。文本分析中,假設想要獲得語義理解的話。那應該須要處理句子、短語、詞語等,單單分析字是遠遠不夠的。

圖像處理中,要想得到豐富的圖像包括的信息,單單分析像素也是不夠的。

本文與Haar特征的那篇博文都使用到了Adaboost分類器。但其使用的目的卻全然不一樣,Haar特征中使用Adaboost是對有臉和無臉的圖像進行分類,而本文是對是不是同一個人的臉進行分類。從這就能夠感覺的到,非常多機器學習問題事實上本質上都能夠化為分類問題,當然。還有一大類是回歸問題。

個人覺得本篇博文對LBP的討論已經夠全面了。有想深入學習的同學請閱讀參考文獻,歡迎來信討論。

轉載請註明:http://blog.csdn.net/stdcoutzyx/article/details/37317863

參考文獻

[1]. Ojala, T., Pietik¨ainen, M., Harwood, D.: A comparative study of texture measures with classification based on feature distributions. Pattern Recognition 29 (1996)51–59.
[2]. Ojala T, Pietikainen M, Maenpaa T. Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2002, 24(7): 971-987.?
[3]. Ahonen T, Hadid A, Pietik?inen M. Face recognition with local binary patterns[M]//Computer vision-eccv 2004. Springer Berlin Heidelberg, 2004: 469-481.?
[4]. Liao S, Zhu X, Lei Z, et al. Learning multi-scale block local binary patterns for face recognition[M]//Advances in Biometrics. Springer Berlin Heidelberg, 2007: 828-837.?

[5]. http://blog.csdn.net/smartempire/article/details/23249517

[6]. http://blog.csdn.net/zouxy09/article/details/7929531

圖像物體檢測識別中的LBP特征