摘要:近年來,人臉識(shí)別技術(shù)已經(jīng)由弱人工智能向強(qiáng)人工智能轉(zhuǎn)化,隨著人臉識(shí)別算法的不斷改進(jìn),人臉識(shí)別技術(shù)已經(jīng)在公安、金融等部門得到了廣泛應(yīng)用。本文提出了一種Python語言利用Dlib第三方庫(kù)實(shí)現(xiàn)基于深度學(xué)習(xí)的人臉識(shí)別方法。
關(guān)鍵詞:Python;Dlib;人臉識(shí)別
1、人臉識(shí)別技術(shù)概述
人臉識(shí)別技術(shù)是一種基于圖像識(shí)別,是根據(jù)人臉的特征信息進(jìn)行身份判定的技術(shù),它經(jīng)過了幾十年的發(fā)展已經(jīng)由弱人工智能向強(qiáng)人工智能轉(zhuǎn)化,隨著人臉識(shí)別算法的不斷改進(jìn),人臉識(shí)別技術(shù)已經(jīng)成為人工智能領(lǐng)域的重要應(yīng)用。目前人臉識(shí)別技術(shù)已經(jīng)比較成熟,得到了公安金融等部門的廣泛應(yīng)用。(1)公安部門:通過相片匹配戶籍?dāng)?shù)據(jù),尋找目標(biāo)對(duì)象。(2)安防領(lǐng)域:通過人臉識(shí)別對(duì)重點(diǎn)管控區(qū)域人員的身份識(shí)別,在公共場(chǎng)所對(duì)人群進(jìn)行監(jiān)視,以達(dá)到身份識(shí)別的目的,例如在機(jī)場(chǎng)、車站等人流量大的場(chǎng)所,通過智能監(jiān)控系統(tǒng)識(shí)別犯罪分子。(3)金融領(lǐng)域:利用人臉識(shí)別實(shí)現(xiàn)交易支付,例如支付寶實(shí)名認(rèn)證用戶可通過刷臉支付。
2、人臉識(shí)別的過程
人臉識(shí)別是一個(gè)比較復(fù)雜的過程,歸納起來可以由五個(gè)步驟組成:人臉檢測(cè)、人臉關(guān)鍵點(diǎn)檢測(cè)、人臉規(guī)整、人臉特征提取、人臉識(shí)別,人臉識(shí)別的過程如圖1所示。不同技術(shù)會(huì)采用不同的方法來實(shí)現(xiàn)人臉面部特征的抽象,比如Harmon和Lesk采用多維特征矢量來表示,而Kaya和Kobayashi則采用歐氏距離來表示,本文第三部分提到的Dlib庫(kù)則是基于深度學(xué)習(xí),利用已經(jīng)訓(xùn)練好的人臉關(guān)鍵點(diǎn)檢測(cè)器和人臉識(shí)別模型,得到人臉面部特征值。
3、Dlib庫(kù)介紹
近些年,Python語言發(fā)展迅猛,在很多開發(fā)語言排行榜名列前三名。Python語言能夠得到這么快的發(fā)展,得益于其源代碼開源性和代碼開發(fā)的高效性。Python社區(qū)提供了大量的第三方庫(kù),它們能夠?qū)崿F(xiàn)科學(xué)計(jì)算、數(shù)據(jù)可視化、數(shù)據(jù)分析等多個(gè)領(lǐng)域,Dlib庫(kù)就是一個(gè)知名的第三方庫(kù),能夠?qū)崿F(xiàn)人臉檢測(cè)和識(shí)別,其算法采用HOG特征與級(jí)聯(lián)分類器,算法的實(shí)現(xiàn)大概過程有:(1)將圖像灰度化。(2)采用Gamma校正法對(duì)圖像進(jìn)行顏色空間的標(biāo)準(zhǔn)化。(3)對(duì)每個(gè)圖像像素進(jìn)行梯度計(jì)算。(4)對(duì)圖像進(jìn)行小單元格劃分。(5)生成每個(gè)單元格的梯度直方圖。(6)把單元格組合成大的塊,塊內(nèi)歸一化梯度直方圖。(7)生成HOG特征描述向量。
4、Python利用Dlib庫(kù)實(shí)現(xiàn)人臉識(shí)別
4.1 前期準(zhǔn)備
(1)安裝好Dlib第三方庫(kù)。
(2)下載人臉識(shí)別模型和人臉關(guān)鍵點(diǎn)檢測(cè)器,分別保存為文件1.dat和2.dat(可從網(wǎng)址http://dlib.net/files/下載)。
(3)準(zhǔn)備好已知人臉相片和待識(shí)別人臉相片,本例準(zhǔn)備已知人臉相片20張存放在Faces文件夾中,待識(shí)別人臉2張,其中test01.jpg和Faces文件夾中的第19張相片是同一個(gè)人,test02.jpg和Faces文件夾中的第7張相片是同一個(gè)人,主程序?yàn)閠estface.py,整個(gè)文件夾如圖2所示。
4.2 實(shí)現(xiàn)過程
實(shí)現(xiàn)過程主要有三個(gè)步驟:根據(jù)人臉識(shí)別模型和人臉關(guān)鍵點(diǎn)檢測(cè)器,得到已知人臉相片的特征值庫(kù);根據(jù)人臉識(shí)別模型和人臉關(guān)鍵點(diǎn)檢測(cè)器,得到待識(shí)別人臉相片的特征值;計(jì)算待識(shí)別人臉相片的特征值和特征值庫(kù)的歐式距離,距離最小者就是參考識(shí)別結(jié)果。程序的實(shí)現(xiàn)主要包括以下三個(gè)子函數(shù),fun1函數(shù)功能是得到一張相片的特征值,fun2函數(shù)功能是得到多張相片的特征值庫(kù),fun3函數(shù)功能是計(jì)算待識(shí)別人臉相片的特征值和特征值庫(kù)的歐式距離,輸出距離最小者為參考識(shí)別結(jié)果。
(1)fun1函數(shù)代碼如下,例如執(zhí)行fun1(test01. jpg)就可以得到以下128個(gè)特征值,結(jié)果如表1所示。
(2)fun2函數(shù)代碼如下。
(3)fun3函數(shù)代碼如下。
(4)主程序代碼如下。
主程序分別用test01.jpg和test02.jpg相片進(jìn)行測(cè)試,測(cè)試結(jié)果均正確,都能識(shí)別出與test01.jpg和test02.jpg匹配的相片,測(cè)試結(jié)果圖3所示。
5、結(jié)束語
本方法實(shí)現(xiàn)了人臉識(shí)別的功能,但由于每張相片有128個(gè)特征值,如果已知人臉相片較多,特征值庫(kù)較大,計(jì)算歐式距離所用時(shí)間較長(zhǎng),還要改進(jìn)算法,需要引進(jìn)并行計(jì)算等技術(shù),提高人臉識(shí)別效率。
作者簡(jiǎn)介:張枝令,寧德師范學(xué)院信息與機(jī)電工程學(xué)院,副教授,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)挖掘和大數(shù)據(jù)。