lbp(local binary pattern,
區域性二值模式
)是一種用來描述影象區域性紋理特徵的運算元;顯然,它的作用是進行特徵提取,而且,提取的特徵是影象的紋理特徵,並且,是區域性的紋理特徵;
原始的lbp運算元定義為在3*3的視窗內,以視窗中心畫素為閾值,將相鄰的8個畫素的灰度值與其進行比較,若周圍畫素值大於中心畫素值,則該畫素點的位置被標記為1,否則為0。這樣,3*3領域內的8個點可產生8
bit的無符號數,即得到該視窗的lbp值,並用這個值來反映該區域的紋理資訊。如下圖所示:
原始的lbp提出後,研究人員不斷對其提出了各種改進和優化,從而得到了諸如半徑為r的圓形區域內含有p個取樣點的lbp運算元
;lbp均勻模式;lbp旋轉不變模式;lbp等價模式等等,具體請參考t
. ojala
在ieee tpami上2023年發表的那篇文章「
multiresolution gray-scale and rotation invariant texture classification with local binary patterns
(1)基於lbp的人臉識別研究,黃非非,重慶大學碩士畢業**,2023年
(2)基於lbp的特徵提取研究,王玲,北京交通大學碩士畢業**,2023年
(3)基於區域性二值模式的人臉識別方法研究,周凱,中南大學碩士畢業**,2023年
顯而易見的是,上述提取的lbp運算元在每個畫素點都可以得到乙個lbp「編碼」,那麼,對一幅影象提取其原始的lbp運算元之後,得到的原始lbp特徵依然是「一幅」。不過,這裡我們已經將物體從(可以理解為物體在原始測量空間得到的測量特徵)轉換為二次特徵,也就是得到了我們通常說的「特徵」。不過,這個所謂的「特徵」並不能直接用於判別分析。因為,從上面的分析我們可以看出,這個「特徵」跟位置資訊是緊密相關的。直接對兩幅提取這種「特徵」,並進行判別分析的話,會因為「位置沒有對準」而產生很大的誤差。後來,研究人員發現,可以將一幅劃分為若干的子區域,對每個子區域內的每個畫素點都提取lbp特徵,然後,在每個子區域內建立lbp特徵的統計直方圖。如此一來,每個子區域,就可以用乙個統計直方圖來進行描述;整個就由若干個統計直方圖組成;例如:一幅100*100畫素大小的,劃分為10*10=100個子區域,每個子區域的大小為10*10畫素;在每個子區域內的每個畫素點,提取其lbp特徵,然後,建立統計直方圖;這樣,這幅就有10*10個子區域,也就有了10*10個統計直方圖,利用這10*10個統計直方圖,就可以描述這幅了。之後,我們利用各種相似性度量函式,就可以判斷兩幅影象之間的相似性了;
目前,lbp區域性紋理提取運算元,已經成功應用在指紋識別、字元識別、人臉識別、車牌識別等領域。
另一篇,介紹的也不錯,這裡放上:
lbp(local banary patter)是一種非常經典的用來描述影象區域性紋理特徵的運算元。
1,基本lbp
lbp方法自2023年提出,此後就作為乙個有效的紋理特徵,不斷的被人使用和改進。lbp非常簡單,也非常有效。
左邊的圖是從乙個上拿下來的3*3矩陣,矩陣上的值就是畫素值,現在我們要計算的中間那個點的lbp。除了它此外的8個點依次與中間點比較,比它(也就是15)大的記成1,比它小的記成0,然後我們就得到右面的。然後我們選定乙個起始點-這個選的是左上角第乙個點,然後按照順時針方向得到乙個二進位制串10011010,轉換為十進位制則為154。到此,我們得到了中間點的lbp值--154。對整個的所有點都這樣處理,也就是以它為中心與附近的8個點相比較,這樣就得到整個圖所有點的lbp值。那麼得到這麼個與源影象大小相等的lbp值矩陣有什麼用呢?通常我們統計它的直方圖,得到乙個直方圖矩陣向量,然後每乙個對應乙個直方圖向量,這個直方圖向量就是此的乙個特徵。我們由兩個影象的直方圖向量從而得到它們的相似度,從而來分類。
2, lbp均勻模式lbp (uniform lbp)
均勻模式就是乙個二進位制序列從0到1或是從1到0的變過不超過2次(這個二進位制序列首尾相連)。比如:10100000的變化次數為3次所以不是乙個uniform pattern。所有的8位二進位制數中共有58個uniform pattern.為什麼要提出這麼個uniform lbp呢,因為研究者發現他們計算出來的大部分值都在這58種之中,所以他們把值分為59類,58個uniform pattern為一類,其它的所有值為第59類。這樣直方圖從原來的256維變成59維。
3,旋轉不變模式lbp
旋轉不變模式lbp能夠在發生一定的傾斜時也能得到相同的結果。它的定義可以看下圖:
我們看到中心點的鄰居不再是它上下左右的8個點(補充一句,不一定非要是3*3的鄰域,這個自己定,但是鄰域大了意味著直方圖向量維度的增加),而是以它為圓心的乙個圈,規定了這個圓的半徑和點的個數,就可以求出各個點的座標,但是點的座標不一定是整數,如果是整數那麼這個點的畫素值就是對應點的值,如果不是整數,就用差值的方式得到。
其他基於lbp的演算法
1,mbp
將整個鄰域內的所有點的中值作為閾值進行比較,中值不是平局值哦,是所有的值按照從小到大排列,最中間的那個。話說這個mbp可以用matlab的乙個函式實現:medfilt2
2,利用鄰域內所有點的平局值作為閾值。
3,第三種不是在閾值上做改動,而是將大切分成小,然後再小上用lbp方法,然後把小些小的直方圖矩陣連線起來,成為大圖的特徵。為什麼這麼做呢?因為很明顯的lbp 直方圖會丟失區域性資訊,比如得到乙個值為100那麼不管你這個值是從**得到的--比如人臉,不管是眼睛處得到這個值還是鼻子處得到,應該不管,都放到lable=100這裡。
LBP原理介紹與人臉識別
lbp local binary pattern,區域性二值模式 是一種用來描述影象區域性紋理特徵的運算元 它具有旋轉不變性和灰度不變性等顯著的優點。它是首先由t.ojala,m.pietik inen,和d.harwood 在1994年提出,用於紋理特徵提取。而且,提取的特徵是影象的區域性的紋理特...
Spark RDD運算元介紹
spark學習筆記總結 spark可以用於批處理 互動式查詢 spark sql 實時流處理 spark streaming 機器學習 spark mllib 和圖計算 graphx spark是mapreduce的替代方案,而且相容hdfs hive,可融入hadoop的生態系統,以彌補mapre...
Spark RDD運算元介紹
spark學習筆記總結 spark可以用於批處理 互動式查詢 spark sql 實時流處理 spark streaming 機器學習 spark mllib 和圖計算 graphx spark是mapreduce的替代方案,而且相容hdfs hive,可融入hadoop的生態系統,以彌補mapre...