LBP算子簡介

    本人博客地址:http://blog.csdn.net/wanrenwangxuejing

 LBP的全稱是Local Binary Pattern即局部二值模式,是局部信息提取中的一種方法。後來提升爲一種有效的紋理描述算子,度量和提取圖像局部的紋理信息,對光照具有不變性。LBP有很多變種,或說改進。目前LBP有很多應用,如人臉識別,表情識別等。局部信息有很多,比如HOG,SIFT等等。那麼我們爲什麼要提取局部特徵呢?原因很簡單,因爲一幅圖像的信息比較多,如灰度,邊緣等等,計算機很難處理這種複雜的信息,所以就需要對這些信息進行處理。

   LBP就是一種局部信息,它反應的內容是每個像素與周圍像素的關係。LBP的基本思想是對圖像的像素和它局部周圍像素進行對比後的結果進行求和。把這個像素作爲中心,對相鄰像素進行閾值比較。如果中心像素的亮度大於等於他的相鄰像素,把他標記爲1,否則標記爲0。你會用二進制數字來表示每個像素,比如11001111。因此,由於周圍相鄰8個像素,你最終可能獲取2^8個可能組合,被稱爲局部二值模式,有時被稱爲LBP碼。


 

    如上圖所示,中間像素的灰度值爲54,順時針取值,就得到了一個像素的LBP值,即11010011。那麼我們如何表示這個二進值數呢,很簡單,我們將它轉化爲十進制數即可,也就是211,即這一點的LBP值爲211。就這樣對整個圖像進行LBP運算,就可以得到這幅圖像的LBP特徵。但是得到這些特徵有什麼作用呢?提取圖像特徵的目標無非就是爲了進行分類,我們把一幅灰度圖像轉化爲了LBP特徵圖像,從理論上講並沒有實現降維,也無法進行分類。

    這時就引入了直方圖統計,我們將LBP特徵進行直方圖統計,也就是統計LBP特徵0~255各佔的比例,這樣就進行了數據的降維。之後就可以將一個向量輸入分類器中進行分類。可是由於只有256維特徵,所以分類的效果並不好。這時我們就引入了圖像分塊處理的方法,也就是說將圖像分成若干的圖像塊,如,在人臉識別中,把臉分爲7*7,5*5的區域,並對這49,25個小區域進行LBP處理,將每個小區域的直方圖進行串聯,就可以得到整個圖像的LBP直方圖。並對這個直方圖進行分類處理,這樣可以大大的增強分類的效果。但是分類數據維度也大大增加了,如果是7*7區域,數據維度爲7*7*256=12544維。

    可以看出數據的維度還是比較大,所以需要進一步進行降維,這裏就涉及了另外一個概念:Uniform LBP,即均勻模式LBP。這種降維感覺是用了電路中的方法,也就是將原來的256維灰度數據重新分類,統計其位移後的跳變次數,當跳變次數小於2次時就定義爲一個Uniform LBP,比如00000000左移一位還是00000000,沒有跳變,即跳變次數爲0;00001111左移一位爲00011110,跳變次數爲2;10100000左移一位爲01000001跳變次數爲3,它不是Uniform LBP。經過統計,Uniform LBP在整個的LBP特徵中佔85~90%,而Uniform LBP只有58個特徵。所以我們將分類特徵向量由256維降爲58維。在實際應用中,其實是59維,因爲加一維表示那些不是Uniform LBP的量。那麼7*7的人臉區域在進行降維之後,有7*7*59=2891維。由此對LBP特徵進行了降維。

    爲了更好的進行分類,還可在分類時在人臉區域中加相應的權值,比如眼睛和嘴的權值大,其它部分的權值小。之後再介紹下直方圖相似性檢測的內容。常用的方法有直方圖相交法和Chi-Square距離檢測。在這裏介紹下較爲簡單的直方圖相交法,原理很簡單,就是統計出直方圖每個Bin內相同的數目,一般還除以直方圖像素總數進行歸一化。在這裏Bin就是指一個區間,比如LBP有256維向量,則有256個Bin,統計其每個Bin內像素個數進行對比,Uniform LBP有59維,也就是有59個Bin,相似性檢測時則統計59個Bin中的像素個數。一般有多維特徵向量,就有多少個Bin。

轉載自:http://blog.sina.com.cn/s/blog_4bdbec750101ekuh.html

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