王治強,孫曉東,楊 永,孫 鵬
(大連東軟信息學院 智能與電子工程學院,大連 116023)
隨著深度學習的飛躍發展,人臉識別技術趨于成熟,被廣泛應用于企業、學校、機構等各種考勤場景.使用人臉識別進行考勤克服了傳統IC 卡考勤易忘、易替代的缺陷,也比指紋考勤更方便衛生,易被用戶所接受[1].然而,現今的人臉識別考勤系統普遍識別速度慢,在早晚高峰的時候排隊考勤成為常事,并且考勤的時候頭部要擺的很端正才可以識別成功,因此,用戶體驗并沒有達到令人滿意的程度[2].
本文針在系統設計上對現今人臉考勤系統存在的速度慢、只能逐人識別不能群識別、需要擺正頭部體驗不自然等缺陷進行改善,實現體驗自然的人臉識別考勤系統.
在人臉識別應用中,涉及到的人臉識別相關算法主要包括人臉檢測、人臉跟蹤以及人臉匹配3 方面[3].由于大數據技術與深度學習的結合,使得人臉識別在精度和魯棒性方面得到很大的提高[4],然而由于人臉的非剛性特點和角度等多種因素的影響,在實際應用場景中并沒有達到令人滿意的效果,尤其是在移動中和人的自然狀態下多角度人臉識別還存在諸多難點和挑戰[5,6].此外,由于人臉跟蹤抓拍算法差異較大,導致人臉識別算法的運行效率和匹配效果產生了較大差異.有的研究中通過分布式技術,采用服務器機群解決速度提升[7],雖然有一定成效,但成本巨大,難于推廣.
本文針對考勤場景中的人臉識別算法進行了多種實驗與探索,最終歸結出導致在實際應用場景中效果不佳的最核心的問題主要有兩方面:一是要解決人臉的跟蹤,尤其在M:N 模式下的多人臉跟蹤問題;二是多角度人臉的精確匹配問題.由于人臉精確匹配的運算量極大,如果對圖像進行逐幀的特征提取及匹配運算,在普通處理器的計算能力下是無法滿足的.另一方面,運動中人臉的角度變幻莫測,若采用逐幀匹配,在角度不佳情況下漏識率會大大提高[8].因此,本文重點關注這兩點問題,優化人臉跟蹤算法降低實時圖像處理運算量,同時在跟蹤過程中捕捉最佳角度和圖片質量的人臉圖像,從而提高精確匹配成功率[9,10].此外,提出多角度采樣的方法提高自然狀態下人臉識別通過率.在人臉識別考勤系統中進行實現和驗證,實驗證實這樣的解決方案提高了人臉識別的速度與識別通過率.
人臉跟蹤算法主要有3 種:基于模型匹配的跟蹤、基于區域匹配的跟蹤和基于特征匹配的跟蹤[11].在實際應用中基于特征匹配的方法使用較為廣泛,如Azarbayejani 等提出的遞歸估計算法[12]和清華大學的艾海舟等采用的基于人臉檢測的跟蹤算法[13].但是在多人臉跟蹤情況下,如何降低人臉檢測中的負荷以及如何保證后進入攝像機視野的人臉被快速檢測仍然是研究的重點.
本文的人臉跟蹤算法屬于特征匹配,是在遞歸估計算法思想基礎上進行改進,提出一種遞歸最小檢測窗口的方法(Recursion Minimum Window,RMW)降低人臉檢測的負荷,并進行多線程擴展,從而實現多人臉同步跟蹤.本文采用的人臉檢測算法是的基于模板的方法,該方法魯棒性較好,檢測運算量與圖像像素大小成正比[14].RMW 方法工作原理就是盡可能縮小人臉檢測的范圍,從而提升處理速度.具體處理方法為,根據人臉尺寸和運動速度預測目標在下一幀中最大可能的運動范圍,也就是包含目標物體在內的最小圖像,然后基于預測的目標范圍裁剪圖像,作為人臉檢測算法的輸入.如此便可以在圖像輸入到人臉檢測模塊之前極大的裁剪掉無效圖像,提升目標檢測的效率和準確性.如圖1所示為RMW 方法工作原理.


圖1 RMW 方法原理圖
RMW 算法對單人臉檢測跟蹤處理速度提升計算公式如式(1)所示,W,H為原始圖像的寬高,W′和H′為最小預測窗口的寬高,V為人臉移動速度,R為視頻圖像的幀率,σ為常量.由公示可見,速度提升倍數約為原始圖像面積和人臉邊框面積的比值.即人臉在圖像中尺寸越小,則跟蹤速度越快.
RMW 算法的整體處理流程如圖2所示.首先根據上一幀跟蹤狀態預測當前幀最小檢測窗口,如果是起始幀則窗口初始化為整幅圖像,然后根據最小窗口剪裁圖像,調用人臉檢測算法檢測人臉并根據人臉信息更新跟蹤狀態,如此循環跟蹤直到退出.

圖2 RMW 算法處理流程
多人臉同步跟蹤情況下,對RMW 算法進行多線程設計,每張人臉使用獨立線程跟蹤,多人臉跟蹤的處理線程模型如圖3所示.結構上包含全幅人臉檢測線程和RMW 人臉跟蹤線程兩部分,全幅檢測線程執行周期較長,可以間隔多個圖像幀執行一次,為發現新進入攝像機視野的人臉做整幅圖像的人臉檢測,一旦檢測到新人臉,則啟動RMW 跟蹤線程對人臉進行跟蹤,RMW 跟蹤線程檢測目標丟失的時候則退出,全幅檢測線程發現新人臉則繼續添加新的跟蹤線程,從而持續維護跟蹤列表.

圖3 多人臉跟蹤線程模型
從攝像機獲取一幀實時圖像,采用RMW 算法預測截取最小檢測窗口,然后調用人臉識別庫檢測人臉,更新跟蹤列表并計算人臉角度、速度、圖像質量等狀態信息,通過線程池方式并發執行跟蹤處理,并在一幀檢測的開頭和結束進行線程同步.具體一幀圖像的檢測跟蹤的詳細流程圖如圖4所示.

圖4 RMW 人臉跟蹤處理詳細流程圖
自然狀態下的人臉被攝像機捕捉到的角度與狀態存在各種可能,傳統多角度人臉識別算法有很多種,如線性判別分析(LDA)、主成分分析(PCA)、回歸函數法等[15,16].然而在實際應用中,在采集人臉信息環節并不容易實現.為了讓用戶體驗更加自然,本文在人臉采集的時候對采集角度做了擴展,每張臉采集:正中、偏上、偏下、偏左、偏右5 張照片.在精確匹配的時候根據抓拍人臉的當時狀態完成匹配,同時加上人臉角度的約束條件,則會使匹配結果更加精確.人臉采集的圖樣如圖5所示.

圖5 人臉多角度采集
本文所設計的人臉識別考勤系統主要包含如下幾方面功能:
1)用戶管理功能:采集用戶的人臉信息,還有對員工信息的增、刪、改、查管理功能;
2)人臉識別功能:采用實時M:N 的方式進行多人臉同步識別,支持多人同時考勤,并支持人臉大角度識別,增強用戶體驗;
3)考勤管理功能及其他:包含員工考勤管理、數據統計、考勤設置、考勤語音提示和系統設置功能.
人臉識別驗證功能是本系統的核心功能,系統使用第三方顏行人臉識別庫實現人臉檢測與匹配,軟件模塊圖如圖6所示.RMW 人臉跟蹤以及人臉匹配的應用算法在人臉跟蹤識別模塊中實現,調用顏行Facevall lib 實現人臉檢測與匹配.調用Speech lib 實現語音提示功能.

圖6 系統軟件結構框圖
為滿足計算性能要求,考勤終端硬件設計采用X86架構CPU 為Intel i7-8550u,RAM 為8 GB 的工控機為主控單元,使用1080P 幀頻30 fps 的高清攝像機采集人臉圖像,外接觸摸屏等人機交互外設.
軟件開發基于Windows C# Visual Studio 開發環境,依據面向對象設計思想,采用多線程方式,實現了用戶界面、圖像采集、人臉跟蹤和檢索算法、考勤管理和網絡通信等功能.軟件界面基于WPF 窗體設計,采用C#5 新特性async await 關鍵字和lambda 表達式方便地實現多線程異步執行,提升系統并行效率.在多線程并發執行方面,用線程池技術實現多線程并發處理.數據存儲采用MySQL 數據庫.考勤終端與數據庫采用C/S 架構,支持多終端同步運行,多終端同步考勤.
人臉考勤界面采用單獨的窗口,實現效果圖如圖7所示.人臉考勤成功后會記錄數據庫,保存考勤時人臉照片,用于考勤記錄查詢及統計報表功能.

圖7 人臉考勤界面
人臉信息采集窗口如圖8所示,采集上下左右及正中5 張人臉照片.
針對人臉識別在實際應用中的效果,從兩方面驗證算法性能,一方面是處理每個圖像幀的時間效率,另一方面從實際應用的效果,即識別通過率進行測試.

圖8 人臉信息采集界面
為測試人臉跟蹤與識別算法的效率,對一分鐘1800 幀視頻圖像進行識別,統計平均每幀圖像的處理時間.為檢驗RMW 人臉跟蹤算法性能,與不使用RMW 算法,即與每幀圖像都全幅檢測的普通跟蹤算法相對比,計算RMW 算法在處理效率方面的效果.測試視頻中人臉移動速度較慢,小于0.5 m/s,分別在不同人數和距離情況下測試了多組數據.
如圖9所示,從測試結果可以看出,RMW 算法大大降低了每幀圖像的平均處理時間,效率提升很明顯,為普通算法的兩倍以上,并且人數越少效果越明顯.另外,從RMW 算法的兩組數據可以看出,人臉距離攝像機的距離對處理時間的影響也很大,因為距離越遠,人臉所占像素越小,檢索與匹配的計算量也越小.

圖9 人臉數與每幀處理時間曲線圖
為檢驗人臉識別實際應用的通過率,使用1000 人共5 千張人臉的人臉檢索庫,測試從單人到6 人同時考勤效果.運動狀態包括靜止、緩慢行走(0.5 m/s)、正常速度行走(1 m/s).測試結果記錄識別時間和漏識次數.時間記錄從距離攝像機3 m 開始計時到識別到人臉后屏幕提示姓名為止的時間.
測試結果如圖10所示,靜止狀態下識別率都達到100%,人數的增加和移動速度的加快都會降低識別通過率,平均識別時間會隨人數增加而增加.漏識的主要原因是由于人臉移動速度快的情況下,還沒等到系統捕捉到高質量的圖像,人就已經走過去了,并且人數越多,捕捉人臉需要的時間就越長,從而導致漏識幾率增大.

圖10 識別通過率和平均識別時間結果圖
為測試人臉檢索庫引入正中和上下左右5 張人臉圖片的效果,對緩慢行走狀態下人臉識別通過率進行測試,分別對人臉角度為正中、偏左、偏右、偏上、偏下5 種狀態進行測試.測試結果如表1所示.

表1 單張采集與多張采集識別通過率對比(單位:%)
由測試結果可見,采集多角度采集的情況與單張采集情況相比,除了正中角度外,其余4 個角度都有明顯提升,平均通過率提升11%,可見該方法在實際應用中是切實有效的.
本文在人臉識別考勤系統的設計中引入RMW 跟蹤算法,提高了多人臉同步跟蹤的效率,并通過采集正中、上下左右5 張人臉照片的方式增強自然狀態下人臉識別通過率,取得了較有成效的實際應用效果.但在同時考勤人數大于4 的時候,由于處理性能和攝像機圖像質量下降的原因,會導致漏識率明顯增高.然而,對于一般應用場景,本文的算法基于現有人臉識別庫、普通處理器以及相機條件下,已經可以達到實際應用需求.如要進一步提高應用效果,除了繼續優化算法,還可以從提高處理器性能和采用高速相機角度進行解決.