鄧塏鏞 趙慧元 田剛 張鎣
【摘? 要】人臉識別技術(shù)是一種根據(jù)人臉的特征信息進行身份判定的技術(shù),此技術(shù)經(jīng)過幾十年的發(fā)展,由弱人工智能向強人工智能轉(zhuǎn)化,論文提出了一種Python語言利用LBPH算法提取人臉特征、實現(xiàn)人臉識別的方法。
【Abstract】Face recognition technology is a kind of identification technology based on face feature information. After decades of development, this technology has been transformed from weak artificial intelligence to strong artificial intelligence. This paper proposes a method of extracting face features and realizing face recognition by using LBPH algorithm in Python language.
【關(guān)鍵詞】人臉識別;特征提取;LBPH
1 引言
根據(jù)《“十三五”國家科技創(chuàng)新規(guī)劃》,人工智能被作為其中一項新一代信息技術(shù),被列入規(guī)劃之中。而人臉識別技術(shù)則是人工智能最典型的應用,在國內(nèi)外已有一定的研究和應用基礎(chǔ),尤其在公共管理、安全防盜、電商交易、身份核查、資產(chǎn)保護等方面,與其他生物識別技術(shù)相比,其準確性、穩(wěn)定性和普遍性都有相當?shù)膬?yōu)勢,為政府企業(yè)和民眾都帶來了高效和便利[1]。
人臉識別技術(shù),屬于生物識別技術(shù)的一種,利用攝像頭或者攝像機等圖像采集儀器采集人的臉部形成視頻流,此技術(shù)從視頻流中采集一幀幀圖片,把圖中的每一個像素點轉(zhuǎn)化成數(shù)據(jù)后,從數(shù)據(jù)中測量出五官的大小和距離,這些數(shù)值轉(zhuǎn)化成數(shù)碼,也就是每個人獨一無二的臉部識別碼,并存儲到數(shù)據(jù)庫中。此后,每當有人臉被掃描時也能自動計算其臉部識別碼,一旦與數(shù)據(jù)庫所存儲的有吻合,則會識別出其身份。
2 國內(nèi)外研究現(xiàn)狀分析
目前人臉識別的算法主要有以下三種。
方法一:基于PCA(主成分分析原理)的Eigenface(特征臉)算法。通過PCA降維的方法對一系列人臉求得每個人的顯著特征臉向量,經(jīng)過多次訓練建立特征臉子空間,此后一旦輸入一個被有檢測的人臉數(shù)據(jù),系統(tǒng)會將數(shù)據(jù)投影到特征臉子空間中進行比較,如有與之相似的特征臉向量,則識別出其身份。優(yōu)點是大大壓縮數(shù)據(jù),消除冗余,消除噪音,投影方差達到最大。缺點是主成分的特征維度肯定比原始圖像的模糊,不排除非主成分也含有重要的樣本差異信息,特征信息在一定程度上有所丟失[2]。
方法二:基于LDA(線性判斷分析原理)的Fisher Face方法。通過求對象之間的最大類間方差和最小類內(nèi)方差,形成離散矩陣并求出特征值和特征向量后,再進行LDA降維,經(jīng)過反復訓練后形成特征臉子空間[3]。把被測人臉映射到子空間中進行對比,從而判斷身份。優(yōu)點是利用高維數(shù)據(jù)可提高識別的準確性。缺點是計算量大,影響效率。
方法三:基于局部特征提取的LBPH(局部二進制編碼直方圖)方法,通過LBPH算法提取灰度值圖像的特征,然后數(shù)據(jù)庫中已訓練好的人臉LBPH特征進行比對,且分類識別,從而識別出被測對象。優(yōu)點在于計算量降低,運行速度快,且基本不受光線和圖像旋轉(zhuǎn)的影響。
3 研究方法、目標、內(nèi)容和關(guān)鍵問題
根據(jù)以上分析,方法一和方法二都以浮點數(shù)運算為主,符合數(shù)據(jù)統(tǒng)計與處理的原理,LBPH方法是從提取局部紋理特征入手,更符合圖像處理的原理,以整數(shù)計算為主,運算速度快且兼顧到識別的準確率,因此,本研究采用方法三,基于局部特征提取的LBPH方法。
研究目標是識別出視頻單個或多個對象的身份。
研究內(nèi)容包含靜態(tài)人臉識別、動態(tài)人臉識別、多對象識別、無關(guān)對象識別等方面。
由于人臉的特點有很多共同性特征,如果在視頻中出現(xiàn)訓練集中沒有對象時,系統(tǒng)如何快速準確地判斷,是本研究中擬解決的關(guān)鍵問題。
4 設(shè)計過程
基于LBPH算法人臉識別的研究過程如圖1所示。
步驟一:圖像灰度化處理。
先把彩色圖像灰度化處理,使得其每個像素點都用灰度值來表示,并用雙線性差值法求出相鄰兩個像素點之間的灰度值。
步驟二:分割區(qū)域。
把整個圖像分割成多個方格區(qū)域,識別準確度會隨區(qū)域數(shù)量的增大而提高,相應的計算量也會相應提高。
步驟三:使用LBPH方法提取局部特征。
①編碼
在每個分割區(qū)域中,以每個像素為中心,判斷其與圓形周圍的像素點灰度值的大小關(guān)系,對周圍點進行0或1的編碼,從而得到該點的進制編碼,并推斷和區(qū)分出該區(qū)域是否為點、線、邊緣、角點等情況。
②降維
由于每個像素點的灰度值范圍為0~256,一共266種可能的數(shù)據(jù)待處理,依據(jù)盡量減少數(shù)據(jù)處理量的處理原則,本研究通過ULBP的方法進行降維,減少計算量,提高運算速度,使得系統(tǒng)能實時響應。
③形成二進制編碼直方圖
把整個圖像分割成多個方格區(qū)域,每個區(qū)域中的每個像素點都會有LBP和ULBP的值,統(tǒng)計這些數(shù)據(jù)時形成該區(qū)域的LBPH圖,然后把每個區(qū)域的直方圖連接起來,形成整幅圖像的特征向量的直方圖[4]。
④構(gòu)建二進制編碼直方圖集合
多個對象的直方圖被存儲到數(shù)據(jù)庫中,則形成LBP編碼直方圖集合。
步驟四:人臉識別和匹配。
日后將對被檢對象的LBPH圖與前邊構(gòu)建的二進制編碼直方圖集合進行比較,從而得到分類結(jié)果。
5 結(jié)語
本研究是在phcharm的開發(fā)環(huán)境下,使用Python語言,調(diào)用open CV程序庫,來設(shè)計和實現(xiàn)LBPH的識別功能。為了能提高識別效率,可在卷積神經(jīng)網(wǎng)絡(luò)中加入LBPH圖像信息,并增大訓練的次數(shù),嘗試在訓練中加入卷積[5],使算法更符合實際應用的需要,提高應用廣度,增強市場效益。
【參考文獻】
【1】陳思琪,趙豪越,王靜一,等.人臉識別概述[J].綜合論壇,2018(1):226.
【2】尚麗娜,石晴瑤,方健.基于OpenCV的人眼檢測及疲勞判斷[J].探索與觀察,2018,06(21):19-23.
【3】張枝令.Python實現(xiàn)基于深度學習的人臉識別[J].視覺,2018,05(19):47-96.
【4】朱峰.一種基于多尺度 LBPH 特征的快速人臉識別算法[J].計算機應用與軟件,2015,08(32):315-319.
【5】羅麗紅,劉春曉,柯靈.基于二進制多層 GELM 的異質(zhì)人臉識別模型[J].現(xiàn)代電子技術(shù),2018,09(23):38-43.