出處:
WIKI &
http://blog.finalevil.com/2008/12/01-local-binary-patternlbp-histogram.html [內有程式碼]
Local binary patterns [LBP]
是用於電腦視覺的一種特徵分類器,LBP是Texture Spectrum model proposed in 1990的特殊例子,最開始被描述是在1994。在那之後才開始變成是非常強的紋理特徵分類器;而在某些資料集中,
若配合上Histogram of oriented gradients (HOG) classifier,其效果更佳!!
LBP特徵又被稱為Uniform LBP,因為它沒有Weight的概念,又或者可以說它的Weight都是1。以下簡單說明Uniform LBP的算法:
LBP是一種用來描述區域紋理變化的特徵計算方式。
其計算速度非常的快,相當適合使用在真實的即時系統之中。
而缺點則是在平滑影像上的效果差強人意(例如:天空或飾海洋),
因為平滑影像的灰階值太過相近。
最近幾年,LBP演算法在人臉辨識的領域也相當受到關注
以下用3X3大小的區塊說明LBP histogram的計算方式。
第一步我們要先將周圍的灰階與中心點相減之後做二值化(Threholding)。
像這樣:
55-43=+12>0 則二值化後,其值=1
35-43=-08<0 則二值化後,其值=0
28-43=-15<0 則二值化後,其值=0
52-43=+09>0 則二值化後,其值=1
所以我們可以得這樣的結果。
接下來,我們要依照2的次方排列相關位置的權重。由左到右,由上到下分別是 2的0次方=1、2的1次方=2、2的2次方=4、2的3次方=8,以此類推。因此會形成下面的權重方塊。
將權重方塊和我們在第一步得到的結果相乘以後再相加,像這樣:
1X1+0X2+1X4+1X8+0X16+0X32+1X64+1X128=205
就是這3X3區塊的LBP值。
對整張圖片做迭代(iterative)就可以統計出這張圖片的LBP histogram。
也就是一張圖有三個區塊,算出的LBP值分別是205 20 205,
那LBP histogram就是一個256大小的陣列lbpArray。
其中205的位置lbpArray[20]=1、lbpArray[205]=2,其他部分都是0的稀疏矩陣。
以上方法是計算整張圖片的LBP直方圖(Uniform LBP )。
留言