王 祺,田 青,趙 歌,曲洪權
(北方工業(yè)大學電子信息工程學院,北京 100144)
隨著社會的不斷進步和科技的迅速發(fā)展,快速有效的自動身份驗證和查詢系統(tǒng)的需求越來越大[1-5].但目前很多銀行、機場仍是通過工作人員的主觀判來確定某人是否人證相符,這種方法的效率和準確率都不盡如人意.為此,筆者設計出一套人證比對系統(tǒng),有效利用二代身份證信息,能高效、準確地完成人證比對.
訓練測試數(shù)據集采用CASIA-Webface[6].CASIA-Webface共有10 575人的圖像信息,每個人的圖片數(shù)量從幾十到幾百不等,圖像類別、數(shù)量之間嚴重不平衡,人臉位置分布不確定.因此在預處理過程中,首先定位圖片中的人臉位置坐標,并繪制相應的矩形框,框出人臉;然后根據人臉位置獲取人臉關鍵點位置信息,如眼睛、鼻子和嘴等68個特征點.采用dlib工具[7]完成人臉檢測及特征點提取,具有較高的準確率.由于數(shù)據集中存在多姿態(tài)人臉圖像,因此在得到人臉關鍵點后,利用仿射變換[8]對人臉進行校正對齊,將其調整為近似于正面人臉的圖像,有助于之后的訓練.人臉預處理過程如圖1所示.
圖1 人臉預處理過程Fig. 1 Face Image Preprocessing
卷積神經網絡的結構主要包括卷積層、池化層、全連接層和輸出層[9].卷積層通常包含若干個特征平面,每個特征平面由一些矩形排列的神經元組成,同一特征平面的神經元共享權值(卷積核).卷積核一般以隨機小數(shù)矩陣的形式初始化,在網絡的訓練過程中卷積核將學習得到合理的權值,其優(yōu)點是減少網絡各層之間的連接,同時降低過擬合的風險.卷積層的工作是將卷積核(特征矩陣)和輸入值(前一層的特征平面)按照順序依次求積,再對結果進行加權求和,然后加上一個偏置項,通過非線性函數(shù)(激活函數(shù))得到最后的輸出結果.卷積層的輸出結果為xl=f(ωlxl-1+bl).其中:l為層數(shù);ω為權值;b為偏置項;f為激活函數(shù),常見的是sigmoid函數(shù).
池化層的主要目的是降維,具體操作是對不同位置的特征進行聚合統(tǒng)計,計算圖像在一個區(qū)域上的某個特定特征的平均值 (或最大值).經過池化層的采樣后,輸出特征圖的數(shù)量不變,尺寸變小,減小了計算復雜度.
全連接層的主要目的是將輸出層的神經元與輸入層的每個神經元都連接起來,神經元數(shù)目通常與分類個數(shù)有關.
本研究采用的網絡結構包括5個單元模塊和1個全連接層(圖2),其中每個單元模塊由2~3個卷積層和池化層組成.以一張RGB圖像作為網絡輸入,經過5個單元模塊的特征提取、非線性映射和特征降維后,再通過全連接層篩選特征,進一步降低特征維度,最終由SoftMax分類器輸出,實現(xiàn)人臉的判別.
圖2 網絡結構Fig. 2 Network Structure
每層輸出特征圖大小的計算公式為
其中:w為輸入圖像寬度;h為輸入圖像長度;w′為輸出特征圖寬度;h′為輸出特征圖長度;p為填充像素數(shù);s為步長.以第1個單元模塊為例.卷積層的配置為:卷積核大小(kernel_size)3×3;卷積核個數(shù)(num_output)64;卷積核步長(stride)默認1;pad像素1.網絡輸入224×224(width×height)的圖像,經過2個卷積層后,每個特征圖的大小為((224-3+2)/1+1)×((224-3+2)/1+1)=224×224.池化層的配置為:池化核大小(kernel_size)2×2;池化核步長(stride) 默認2;pad像素0.經過池化層后,每個特征圖大小為((224-2)/2+1)×((224-2)/2+1)=112×112.因為有64個核,所以經過第1個單元模塊后輸出特征圖大小為112×112×64.同理,經過第2個單元模塊后輸出特征圖大小為56×56×128;經過第3個單元模塊后輸出特征圖大小為28×28×256;經過第4個單元模塊后輸出特征圖大小為14×14×512;經過第5個單元模塊后輸出大小為1×1×512.由于本研究對10 575個人的不同人像信息進行訓練,因此對應輸出10 575類,全連接層設置為10 575個神經元.
首先,刷卡獲取身份證信息的同時讀取實時視頻,截取視頻當前幀,利用dlib[8]人臉檢測算法提取視頻幀中的人臉位置信息,并對其進行歸一化處理;然后,將處理好的視頻幀和身份證圖片輸入訓練好的模型中,分別提取2張圖片的特征信息,對比并判斷是否為同一人;最后,將身份證信息輸入數(shù)據庫中,對比并判斷是否為黑名單人員.基于人臉識別技術的人證比對系統(tǒng)設計流程如圖3所示.
圖3 基于人臉識別技術的人證比對系統(tǒng)設計流程Fig. 3 Face Verification System Design Flow Base on Facial Recognition Technology
信息采集模塊由身份證信息采集和視頻圖片采集組成.身份證信息采集是將身份證讀卡器與PC機通過USB接口相連,獲取身份證信息,包含姓名、身份證號碼和照片等;視頻圖片采集是將高分辨率的攝像機與服務器通過網口相連,獲取人臉圖像.由于人臉圖像的質量與人證比對系統(tǒng)的準確率有直接聯(lián)系,因此安裝攝像機時應盡量保持正面視角,人與攝像頭的距離不要過近,以免出現(xiàn)失真,人臉兩眼間距不小于40像素.
實現(xiàn)場景為1∶1的人臉驗證,但是由于系統(tǒng)部署的環(huán)境復雜,視頻中可能出現(xiàn)人臉數(shù)量較多的情況,導致識別比對速度過慢,因此先預估當前幀所在區(qū)域,縮小檢測范圍,確定感興趣區(qū)域,當人臉出現(xiàn)在規(guī)定區(qū)域內再進行檢測識別.
在人臉檢測階段,首先檢測視頻幀上的所有人臉圖像,并按圖像大小進行排序,篩選出排名前3的人臉圖像;然后將3張圖像依次輸入網絡中,根據網絡參數(shù)轉換為對應的特征向量;最后對比身份證照片與當前幀圖像中的3個特征向量,計算比分,取比分最高的與算法閾值進行比較,若高于閾值則判斷為同一人,否則判斷為不同人.
數(shù)據庫比對模塊是將身份證讀卡器傳來的持卡人員信息(包括姓名、身份證號碼、出生年月和地址等)傳至數(shù)據庫比對函數(shù),對比身份證信息與oracle數(shù)據庫中的人員信息.數(shù)據庫比對流程如圖4所示.
圖4 數(shù)據庫對比流程Fig. 4 Database Comparison Process
在系統(tǒng)部署中,攝像機安裝位置面對大門,攝像產生逆光,導致人臉圖像偏暗,光線強烈的時候,圖像難以分辨,因此必須通過光線補償來解決光照問題.光線補償通常有2種解決方案:(1)在人臉正前方安裝補光燈,這一方案可解決逆光問題,但是會對持卡人員產生視覺影響并且可能導致圖片過亮過白;(2)在天花板上安裝補光燈,這一方案對持卡人員干擾較小,但是可能會因為光線分布不均而出現(xiàn)陰陽臉影響圖像效果.筆者綜合這2種方案的優(yōu)點,在攝像機上方和側面較高且稍遠離人臉的位置架設補光燈,這就保證了光線均勻,很好地解決光照問題.
系統(tǒng)測試包括硬件環(huán)境和軟件系統(tǒng)的穩(wěn)定性測試,其中人臉比對的準確率和識別速度是測試的重點.系統(tǒng)界面如圖5所示,實驗條件和性能參數(shù)列于表1.
圖5 系統(tǒng)界面展示Fig. 5 System Interface Display
實驗條件 性能參數(shù)計算機硬件CPU:Intel(R) Core(TM) i7-4712MQ CPU @2.30 GHz計算機操作系統(tǒng)Windows 8 64位操作系統(tǒng)攝像頭型號??礑S-2CD3T45-I8網絡攝像頭,采集幀率為20 fps 二代身份證閱讀器型號新中新身份證閱讀器,讀卡時間小于1.0 s
實驗共準備了正、負樣本各400對進行測試.以自建數(shù)據集下正負樣本每組圖片的相似度得分和對應標簽為輸入數(shù)據,以相似度得分為閾值依次排序,將測試樣本當作正樣本逐個進行預測,可分別計算出TPR和FPR的概率值.部分閾值與TDR和FRR的概率值的關系如表2所示.
表2 TPR和FPR的概率值與閾值的關系
由表2可知,坐標為(0.045,0.955)的點最接近(0,1),此時閾值為0.379,正確識別率為95.5%.在實際人證比對場景中,為了盡可能地降低錯誤識別率,閾值設置為0.4,而正確識別率可以通過對人臉姿勢的調整來提升.系統(tǒng)模擬現(xiàn)場測試1 562人,通過率96%,從接收到身份證讀卡器信息到完成比對,平均耗時約0.83 s,CPU及內存占比穩(wěn)定,滿足現(xiàn)場比對需求.
設計了一套采用卷積神經網絡方法進行人臉識別的人證比對系統(tǒng).利用獲取到的二代身份證信息完成人證比對和數(shù)據庫比對雙重驗證,避免了證件被他人借用或冒用的風險.在實際測試環(huán)境中,人臉比對通過率達到96%,且滿足實時性要求.由于本研究在人臉預處理時采用傳統(tǒng)人臉檢測及對齊算法,因此人臉對齊精度偏低,下一步的研究將對此作改進,為人臉識別提供更好的數(shù)據預處理,從而提升人臉識別模型的準確率.