matlab学习:人脸识别之LBP (Local Binary Pattern)
1.算法簡(jiǎn)介
LBP是一種簡(jiǎn)單,有效的紋理分類(lèi)的特征提取算法。LBP算子是由Ojala等人于1996年提出的,主要的論文是"Multiresolution gray-scale and rotation invariant texture classification with local binary patterns", pami, vol 24, no.7, July 2002。LBP就是"local binary pattern"的縮寫(xiě)。
關(guān)于論文的講解可參考鏈接 http://blog.sina.com.cn/s/blog_916b71bb0100w043.html
從紋理分析的角度來(lái)看,圖像上某個(gè)像素點(diǎn)的紋理特征,大多數(shù)情況下是指這個(gè)點(diǎn)和周?chē)袼攸c(diǎn)的關(guān)系,即這個(gè)點(diǎn)和它的鄰域內(nèi)點(diǎn)的關(guān)系。從哪個(gè)角度對(duì)這種關(guān)系提取特征,就形成了不同種類(lèi)的特征。有了特征,就能根據(jù)紋理進(jìn)行分類(lèi)。LBP構(gòu)造了一種衡量一個(gè)像素點(diǎn)和它周?chē)袼攸c(diǎn)的關(guān)系。
?
?
對(duì)圖像中的每個(gè)像素,通過(guò)計(jì)算以其為中心的3*3鄰域內(nèi)各像素和中心像素的大小關(guān)系,把像素的灰度值轉(zhuǎn)化為一個(gè)八位二進(jìn)制序列。具體計(jì)算過(guò)程如下圖所示,對(duì)于圖像的任意一點(diǎn)Ic,其LBP特征計(jì)算為,以Ic為中心,取與Ic相鄰的8各點(diǎn),按照順時(shí)針的方向記為?I0,I1,...,I7;以Ic點(diǎn)的像素值為閾值,如果 Ii 點(diǎn)的像素值小于Ic,則 Ii 被二值化為0,否則為1;將二值化得到的0、1序列看成一個(gè)8位二進(jìn)制數(shù),將該二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制就可得到Ic點(diǎn)處的LBP算子的值。
基本的LBP算子只局限在3*3的鄰域內(nèi),對(duì)于較大圖像大尺度的結(jié)構(gòu)不能很好的提取需要的紋理特征,因此研究者們對(duì)LBP算子進(jìn)行了擴(kuò)展。新的LBP算子LBP(P,R) 可以計(jì)算不同半徑鄰域大小和不同像素點(diǎn)數(shù)的特征值,其中P表示周?chē)袼攸c(diǎn)個(gè)數(shù),R表示鄰域半徑,同時(shí)把原來(lái)的方形鄰域擴(kuò)展到了圓形,下圖給出了四種擴(kuò)展后的LBP例子,其中,R可以是小數(shù),對(duì)于沒(méi)有落到整數(shù)位置的點(diǎn),根據(jù)軌道內(nèi)離其最近的兩個(gè)整數(shù)位置像素灰度值,利用雙線性差值的方法可以計(jì)算它的灰度值。
LBP(P,R)有2^p個(gè)值,也就是說(shuō)圖像共有2^p種二進(jìn)制模型,然而實(shí)際研究中發(fā)現(xiàn),所有模式表達(dá)信息的重要程度是不同的,統(tǒng)計(jì)研究表明,一幅圖像中少數(shù)模式特別集中,達(dá)到總模式的百分之九十左右的比例,Ojala等人定義這種模式為Uniform模式,如果一個(gè)二進(jìn)制序列看成一個(gè)圈時(shí),0-1以及1-0的變化出現(xiàn)的次數(shù)總和不超過(guò)兩次,那么這個(gè)序列就是Uniform模式?,比如,00000000、00011110、00100001、11111111,在使用LBP表達(dá)圖像紋理時(shí),通常只關(guān)心Uniform模式,而將所有其他的模式歸到同一類(lèi)中。
人臉圖像的各種LBP模式如下圖所示,由圖中可以看出,變化后的圖像和原圖像相比,能更清晰的體現(xiàn)各典型區(qū)域的紋理,同時(shí)又淡化了對(duì)于研究?jī)r(jià)值不大的平滑區(qū)域的特征,同時(shí)降低了特征的維數(shù)。比較而言,Uniform模式表現(xiàn)的更逼真,在人臉識(shí)別和表情識(shí)別應(yīng)用中,都是采用這種模式。
?
在表情識(shí)別中,最常用的是把LBP的統(tǒng)計(jì)柱狀圖作為表情圖像的特征向量。為了考慮特征的位置信息,把圖像分成若干個(gè)小區(qū)域,在每個(gè)小區(qū)域里進(jìn)行直方圖統(tǒng)計(jì),即統(tǒng)計(jì)該區(qū)域內(nèi)屬于某一模式的數(shù)量,最后再把所有區(qū)域的直方圖一次連接到一起作為特征向量接受下一級(jí)的處理。
LBP算子利用了周?chē)c(diǎn)與該點(diǎn)的關(guān)系對(duì)該點(diǎn)進(jìn)行量化。量化后可以更有效地消除光照對(duì)圖像的影響。只要光照的變化不足以改變兩個(gè)點(diǎn)像素值之間的大小關(guān)系,那么LBP算子的值不會(huì)發(fā)生變化,所以一定程度上,基于LBP的識(shí)別算法解決了光照變化的問(wèn)題,但是當(dāng)圖像光照變化不均勻時(shí),各像素間的大小關(guān)系被破壞,對(duì)應(yīng)的LBP模式也就發(fā)生了變化。
如果圖像旋轉(zhuǎn)了,那么紋理特征就旋轉(zhuǎn)了,這時(shí)得到的2進(jìn)制串也就旋轉(zhuǎn)了,LBP值會(huì)相應(yīng)變化。為了讓LBP具有旋轉(zhuǎn)不變性,將二進(jìn)制串進(jìn)行旋轉(zhuǎn)。假設(shè)一開(kāi)始得到的LBP特征為10010000,那么將這個(gè)二進(jìn)制特征,按照順時(shí)針?lè)较蛐D(zhuǎn),可以轉(zhuǎn)化為00001001的形式,這樣得到的LBP值是最小的。無(wú)論圖像怎么旋轉(zhuǎn),對(duì)點(diǎn)提取的二進(jìn)制特征的最小值是不變的,用最小值作為提取的LBP特征,這樣LBP就是旋轉(zhuǎn)不變的了。當(dāng)P=8時(shí),能產(chǎn)生的不同的二進(jìn)制特征數(shù)量是2^8個(gè),經(jīng)過(guò)上述表示,就變?yōu)?6個(gè)。(我以為應(yīng)當(dāng)是2^8/8=32個(gè))
?
總結(jié)
以上是生活随笔為你收集整理的matlab学习:人脸识别之LBP (Local Binary Pattern)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [TED] Kinect控制的四翼直升机
- 下一篇: 根据坐标如何在matlab中l连成曲线,