鄧塏鏞 趙慧元 田剛 張鎣

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