張茹++薛凱++李瑋暉++晏楠根++熊育婷
摘要:人臉識(shí)別是人工智能科學(xué)的重要問題,局部二值模式(LBP)算法是已知的比較精準(zhǔn)的用于人臉識(shí)別的圖像特征提煉算法。在對(duì)orgLBP(初始LBP),revLBP(旋轉(zhuǎn)適應(yīng)性LBP),uniLBP(均勻LBP),unirevLBP(旋轉(zhuǎn)適應(yīng)性均勻LBP)等幾種LBP算法研究的基礎(chǔ)上,通過大量實(shí)驗(yàn)比對(duì)和研究,設(shè)計(jì)了基于分塊技術(shù)的改進(jìn)LBP算法,有效提高了算法的魯棒性。
關(guān)鍵詞:人工智能;計(jì)算機(jī)視覺;信息安全;LBP
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)11-0173-04
1 引言
人工智能(Artificial Intelligence)是近年來計(jì)算機(jī)領(lǐng)域研究的新興問題,它是讓計(jì)算機(jī)通過已編寫的程序來模擬人類行為的一門科學(xué)。該領(lǐng)域的研究包括機(jī)器人、語言識(shí)別、圖像識(shí)別、自然語言處理和專家系統(tǒng)等。人工智能的應(yīng)用,可以提高現(xiàn)代復(fù)雜單一工業(yè)的工作效率以及工作水平。計(jì)算機(jī)視覺是人工智能的一個(gè)很重要、應(yīng)用廣泛的領(lǐng)域。
計(jì)算機(jī)視覺是一種給予機(jī)器視覺的學(xué)科,更進(jìn)一步說,就是機(jī)器或者計(jì)算機(jī)通過攝像頭或者現(xiàn)有的圖像獲取信息,并對(duì)外界做出相應(yīng)分析的一門學(xué)科。其應(yīng)用領(lǐng)域非常廣泛,包括監(jiān)控錄像中的人員自動(dòng)辨別,道路交通限速違章拍照中的車輛車牌的自動(dòng)識(shí)別,保密部門的生物特征識(shí)別門禁系統(tǒng)等。特別是隨著移動(dòng)網(wǎng)絡(luò)平臺(tái)商品交易的日益流行,一個(gè)可靠的臉部識(shí)別功能可以進(jìn)一步提高移動(dòng)APP支付平臺(tái)交易支付的安全性。
人臉特征提取是人臉識(shí)別的關(guān)鍵問題之一。近年來,研究者將局部二值模式(LBP)的方法引入到人臉特征提取中[[1-3]],取得了很大的成功。但是LBP算子本身并不完善,特別是在訓(xùn)練樣本的維度高達(dá)幾千甚至上萬維的時(shí)候,其性能會(huì)急劇下降。針對(duì)此問題,本文采用分塊技術(shù),將分塊后的LBP直方圖串聯(lián)起來形成一個(gè)高維的直方圖特征矢量,接著利用經(jīng)典的主成分分析(PCA)方法降維,最后利用相似度計(jì)算方法進(jìn)行相似度對(duì)比。該方法針對(duì)不同的圖像進(jìn)行不同的分塊,使得維數(shù)的約簡更加方便,實(shí)驗(yàn)結(jié)果表明有效提高了特征提取的準(zhǔn)確性。
2 LBP算法與LBP算法分塊的實(shí)現(xiàn)
2.1 初始LBP算法
圖像是由基本的像素點(diǎn)構(gòu)成的,每一個(gè)像素點(diǎn)就會(huì)有一個(gè)對(duì)應(yīng)的色值,彩色圖像就會(huì)有三個(gè)對(duì)應(yīng)紅、綠、藍(lán)的色值。如圖(1)所示,取一個(gè)3X3的像素點(diǎn)陣,以中間的一個(gè)像素點(diǎn)作為閾值參考,剩下8個(gè)像素點(diǎn)進(jìn)行比較,按照公式(1)(2)的算法,可以得出一個(gè)8bit的二進(jìn)制數(shù)列G(其中g(shù)x為第x位像素色值,gc為中心點(diǎn)像素色值)[[4]]。
[G={s(g0-gc),s(g1-gc),.............s(g7-gc)}] (1)
[][][when:s(x)=1,x≥00.x?<0] (2)
將數(shù)列G進(jìn)行十進(jìn)制轉(zhuǎn)換得到一個(gè)0~255區(qū)間的數(shù)字,這個(gè)數(shù)字就是一個(gè)LBP數(shù)值,如下圖[[5]]:
中間像素點(diǎn)的色值為6,以左上方點(diǎn)為起始點(diǎn)開始的色值分別為 6,5,2,1,7,8,9,7,將此數(shù)列與色差6進(jìn)行比對(duì),帶入公式(1),(2)得到數(shù)列 {1,0,0,0,1,1,1,1},將數(shù)列進(jìn)行二進(jìn)制轉(zhuǎn)換得241,這就是此3x3方格的LBP值。
一張圖片中有很多的3x3像素點(diǎn)陣,每一個(gè)點(diǎn)陣代表一個(gè)LBP值,將這些LBP值統(tǒng)計(jì)起來得到一個(gè)維度為0~255的直方圖,這個(gè)直方圖就是我們用來圖像識(shí)別的模式依據(jù),即LBP矩陣(LBPMat)。
2. 2 適應(yīng)旋轉(zhuǎn)性LBP算法
在現(xiàn)實(shí)生活中,用初始LBP算法進(jìn)行比對(duì)時(shí),由于圖片的角度問題會(huì)造成誤判和錯(cuò)判,于是就提出了適應(yīng)旋轉(zhuǎn)性的LBP算法。
在2.1中,二進(jìn)制數(shù)列的起始位置是以左上起始,那么,可以考慮從8個(gè)像素點(diǎn)的任意一個(gè)起始點(diǎn)開始進(jìn)行二進(jìn)制序數(shù)列的排列,一個(gè)3X3的像素點(diǎn)陣就可以得到8個(gè)二進(jìn)制數(shù)列,按照既定好的規(guī)則選擇一個(gè)二進(jìn)制數(shù)列,這個(gè)二進(jìn)制數(shù)列就作為該3X3像素點(diǎn)陣計(jì)算LBP的依據(jù),例如下圖:
2. 3 均勻LBP算法
為了提高運(yùn)算的效率,在提取圖片特征值的過程時(shí),往往紋理平滑的像素陣要占少數(shù),而有決定性因素的紋理分明的像素陣要占大多數(shù)部分,可以用這些多數(shù)的紋理分明的二進(jìn)制數(shù)列的LBP值來進(jìn)行比對(duì)圖片,提高運(yùn)算效率。
一個(gè)二進(jìn)制數(shù)列中,其中0,1交替出現(xiàn)3次以內(nèi),就可以認(rèn)為是一個(gè)uniform,3次及3次以上,就可以認(rèn)為不是一個(gè)uniform,如下圖,屬于uniform的二進(jìn)制排列順序有58種,再算上所有的不屬于uniform的排列順序,全部為59種[[6]]。
統(tǒng)計(jì)出這59種二進(jìn)制串出現(xiàn)的頻率,得到一個(gè)59維度的LBP矩陣,很大一方面提高比對(duì)的效率。
2.4 LBP比對(duì)過程
通過以上的LBP算法對(duì)圖像的分析之后,即可獲得LBP矩陣。兩張圖片的相似度比對(duì),即為兩張圖片的LBP矩陣的對(duì)比?;诖耍疚奶岢鲆环N比較算法,將兩張圖片的矩陣通過統(tǒng)計(jì)學(xué)中的矩陣相似公式(3)計(jì)算相似度,從而定量的計(jì)算兩張圖片的相似程度。(其中dis是兩矩陣之間定量的差值,LBPMat1與LBPMat2分別為兩個(gè)相互比較的矩陣)
[dis=(|gx-gy|)2x=0,1,...255,y=0,1,...255,gx∈LBPMat1,gy∈LBPMat2,] (3)
得到距離dis后,本文確定兩個(gè)界值,dis等于0為相似度100%,dis等于LBP矩陣?yán)風(fēng)BP數(shù)值的個(gè)數(shù)(num)為相似度0%,則可以根據(jù)公式(4)計(jì)算出相似度(reg)的值。
[reg=1-dignum×100%] (4)
確定了相似度reg后,則可以根據(jù)實(shí)際情況制定閾值。如果reg值高于閾值時(shí),則兩個(gè)矩陣有相似性,反之,沒有相似性。
在確定閾值時(shí),不同的應(yīng)用場合要求也是不同的。需要很強(qiáng)的容錯(cuò)率的人臉支付系統(tǒng)則需要制定很高的閾值,而容錯(cuò)率相對(duì)較低的圖片相似度搜索引擎則需要制定較低的閾值。
通過reg與閾值的差值對(duì)矩陣進(jìn)行定量的分析后,就可以定性地判斷出兩張圖像是否有相似性。
2.5 LBP算法的分塊實(shí)現(xiàn)
為了能夠優(yōu)化和改善LBP算法在維數(shù)大就比對(duì)率和運(yùn)算率很低的缺點(diǎn),本文提出對(duì)圖片進(jìn)行分塊處理。具體過程如下圖4:
圖4 分塊處理的算法演示圖
虛線為圖片的分塊的線,將圖片平分成虛線的幾塊。將每一塊看做單另的圖片,進(jìn)行LBP算法處理。實(shí)例圖5。
圖5 分塊處理后統(tǒng)計(jì)LBP矩陣的算法演示圖
圖5是一個(gè)3X3分塊處理的舉例,9個(gè)小塊,每一個(gè)小塊可以由LBP算法處理成一個(gè)LBP矩陣,然后將每個(gè)矩陣疊加成一個(gè)LBP矩陣,這個(gè)最后的LBP矩陣將作為整個(gè)圖片的LBP矩陣,可以用公式(3)進(jìn)行相似度比較。
分塊時(shí)還解決了一個(gè)算法細(xì)節(jié),分完塊的小塊之后,橫縱的像素點(diǎn)個(gè)數(shù)可能不是3的倍數(shù)(因?yàn)長BP的算法還是要3X3的九宮格來處理)。解決的方法是進(jìn)行像素的擴(kuò)充,當(dāng)分塊前檢測到像素點(diǎn)個(gè)數(shù)不是3X分塊行數(shù)的倍數(shù)的情況,就會(huì)將前幾排像素復(fù)制粘貼擴(kuò)充到圖片的后面。再進(jìn)行圖片分塊,解決了像素分塊除不盡的問題,圖6舉例。
3 實(shí)驗(yàn)驗(yàn)證與結(jié)論
3.1實(shí)驗(yàn)策略
擬定一個(gè)人臉圖片比對(duì)樣本,分別是20個(gè)人在117種不同光照,不同表情的條件下的人臉圖片,總共是2340張圖片,圖片的大小為120X142。如下圖所示。
要進(jìn)行測試的方法是用2340張圖片與這60張圖片進(jìn)行模式匹配,也就是說2340中的每一張圖片都要比較60遍,那么總次數(shù)就是2340×60=140400遍,很好地達(dá)到了實(shí)驗(yàn)次數(shù)。并且在比對(duì)之后用程序判斷是否是同一個(gè)人,來進(jìn)行準(zhǔn)確度的測試。在測試結(jié)束后進(jìn)行準(zhǔn)確度和速度的統(tǒng)計(jì),并且進(jìn)行分析。
3.2 實(shí)驗(yàn)結(jié)果
3.2.1 準(zhǔn)確度
圖(9)是利用0×0到10×10分塊對(duì)LBP的四種不同的算法每個(gè)算法進(jìn)行分塊處理后的準(zhǔn)確性的一個(gè)統(tǒng)計(jì)表,橫坐標(biāo)代表的是將圖片分成大塊的塊數(shù),從1×1到10×10,縱坐標(biāo)是準(zhǔn)確度,圖例為初始LBP算法 (orgLBP),旋轉(zhuǎn)適應(yīng)性LBP (revLBP),均勻LBP( uniLBP), 旋轉(zhuǎn)適應(yīng)性均勻LBP( unirevLBP),從這張表中可以看到以下幾點(diǎn)。
第一點(diǎn)從橫坐標(biāo)來看,也就是從分塊技術(shù)提高準(zhǔn)確度來看,每一個(gè)算法都是曲線的變化率從分塊數(shù)1×1到10×10變化的越來越平緩的,并且曲線無限接近于100%的準(zhǔn)確度。但是,每個(gè)算法在10X10分塊處理的準(zhǔn)確度要比在1X1分塊的準(zhǔn)確度高40%。也就說明,采用分塊技術(shù)之后,圖片的識(shí)別率有了提高。并且從10×10再往上走,就是再進(jìn)行更多的分塊,準(zhǔn)確性的提升開始變得微乎其微的。
第二點(diǎn)從縱坐標(biāo)來看,也就是從同樣的分塊級(jí)別下,算法的選擇來看,很明顯的上面兩根線和下面兩根線在10×10分塊之前差別特別大,從圖例可以看出,下面兩條線是包含了旋轉(zhuǎn)不變性的LBP算法的準(zhǔn)確性,上面的兩條線是不包容旋轉(zhuǎn)不變性的LBP算法的準(zhǔn)確性。說明了在同樣的分塊級(jí)別下,不包容旋轉(zhuǎn)不變性的LBP算法的準(zhǔn)確性更高。
第三點(diǎn)可以看出的是orgLBP的準(zhǔn)確率變換曲線與UniLBP曲線變換趨勢差不多一致,帶了旋轉(zhuǎn)不變性的兩個(gè)LBP算法的準(zhǔn)確度的變換趨勢相一致。
表1是之前那個(gè)折線圖的數(shù)據(jù)形式,經(jīng)市場調(diào)查,現(xiàn)在的人臉識(shí)別能做到95%就算合格,那么可以看出從10×10分塊起幾種算法全部可以達(dá)到95%的識(shí)別率。
3.2.2 運(yùn)行效率
這里的縱坐標(biāo)的時(shí)間是以毫秒做單位,之前也說過了,實(shí)驗(yàn)總共的比對(duì)次數(shù)大概是2340*60=140400次,并且這個(gè)時(shí)間統(tǒng)計(jì)也包括了將60張擬定數(shù)據(jù)庫圖片存入內(nèi)存的時(shí)間,所以平均時(shí)間大概在1700/140400=0.012l108毫秒。根據(jù)表3橫坐標(biāo)顯示,10×10分塊以內(nèi),四個(gè)算法所用的時(shí)間是相差無幾的,到了更細(xì)的分塊處理后,算法運(yùn)行的時(shí)間會(huì)越來越長。
4 結(jié)論
本文提出了一種基于分塊技術(shù)的改進(jìn)的LBP算法和一種高效的計(jì)算矩陣相似度的方法。根據(jù)不同的客戶需求定制不同的分塊等級(jí),來提高圖片的辨識(shí)率。所提出的算法在高維度的實(shí)際實(shí)驗(yàn)中,在10X10分塊的處理下,4種改進(jìn)后的LBP算法的準(zhǔn)確度都達(dá)到95%。實(shí)驗(yàn)數(shù)據(jù)表明,該改進(jìn)方法可以有效地提高人臉識(shí)別率。
參考文獻(xiàn):
[1] Timo Ojala,Matti Pietikainen,David Harwood[J].Pattern Recognition Society. 1996(29):51-59.
[2] 王憲,張彥,慕鑫,張方生.基于改進(jìn)的LBP人臉識(shí)別算法[J].光電工程,2012(7).
[3] 房德峰.淺談改進(jìn)的LBP算法[J].現(xiàn)代企業(yè)教育,2013(16).
[4] M. PIETIK?INEN, T. OJALA, Z. XU.ROTATION-INVARIANT TEXTURE CLASSIFICATION USING FEATURE DISTRIBUTIONS.
[5] M?enp?? Topi, Pietik?inen Matti, Ojala Timo.Texture Classification by Multi-Predicate Local Binary Pattern Operators.
[6]Timo Ojala, Matti Pietika?inen,Senior Member, IEEE, Topi Ma?enpa?a.EEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE,2002(8).