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