王治強,孫曉東,楊 永,孫 鵬
(大連東軟信息學(xué)院 智能與電子工程學(xué)院,大連 116023)
隨著深度學(xué)習(xí)的飛躍發(fā)展,人臉識別技術(shù)趨于成熟,被廣泛應(yīng)用于企業(yè)、學(xué)校、機構(gòu)等各種考勤場景.使用人臉識別進行考勤克服了傳統(tǒng)IC 卡考勤易忘、易替代的缺陷,也比指紋考勤更方便衛(wèi)生,易被用戶所接受[1].然而,現(xiàn)今的人臉識別考勤系統(tǒng)普遍識別速度慢,在早晚高峰的時候排隊考勤成為常事,并且考勤的時候頭部要擺的很端正才可以識別成功,因此,用戶體驗并沒有達到令人滿意的程度[2].
本文針在系統(tǒng)設(shè)計上對現(xiàn)今人臉考勤系統(tǒng)存在的速度慢、只能逐人識別不能群識別、需要擺正頭部體驗不自然等缺陷進行改善,實現(xiàn)體驗自然的人臉識別考勤系統(tǒng).
在人臉識別應(yīng)用中,涉及到的人臉識別相關(guān)算法主要包括人臉檢測、人臉跟蹤以及人臉匹配3 方面[3].由于大數(shù)據(jù)技術(shù)與深度學(xué)習(xí)的結(jié)合,使得人臉識別在精度和魯棒性方面得到很大的提高[4],然而由于人臉的非剛性特點和角度等多種因素的影響,在實際應(yīng)用場景中并沒有達到令人滿意的效果,尤其是在移動中和人的自然狀態(tài)下多角度人臉識別還存在諸多難點和挑戰(zhàn)[5,6].此外,由于人臉跟蹤抓拍算法差異較大,導(dǎo)致人臉識別算法的運行效率和匹配效果產(chǎn)生了較大差異.有的研究中通過分布式技術(shù),采用服務(wù)器機群解決速度提升[7],雖然有一定成效,但成本巨大,難于推廣.
本文針對考勤場景中的人臉識別算法進行了多種實驗與探索,最終歸結(jié)出導(dǎo)致在實際應(yīng)用場景中效果不佳的最核心的問題主要有兩方面:一是要解決人臉的跟蹤,尤其在M:N 模式下的多人臉跟蹤問題;二是多角度人臉的精確匹配問題.由于人臉精確匹配的運算量極大,如果對圖像進行逐幀的特征提取及匹配運算,在普通處理器的計算能力下是無法滿足的.另一方面,運動中人臉的角度變幻莫測,若采用逐幀匹配,在角度不佳情況下漏識率會大大提高[8].因此,本文重點關(guān)注這兩點問題,優(yōu)化人臉跟蹤算法降低實時圖像處理運算量,同時在跟蹤過程中捕捉最佳角度和圖片質(zhì)量的人臉圖像,從而提高精確匹配成功率[9,10].此外,提出多角度采樣的方法提高自然狀態(tài)下人臉識別通過率.在人臉識別考勤系統(tǒng)中進行實現(xiàn)和驗證,實驗證實這樣的解決方案提高了人臉識別的速度與識別通過率.
人臉跟蹤算法主要有3 種:基于模型匹配的跟蹤、基于區(qū)域匹配的跟蹤和基于特征匹配的跟蹤[11].在實際應(yīng)用中基于特征匹配的方法使用較為廣泛,如Azarbayejani 等提出的遞歸估計算法[12]和清華大學(xué)的艾海舟等采用的基于人臉檢測的跟蹤算法[13].但是在多人臉跟蹤情況下,如何降低人臉檢測中的負荷以及如何保證后進入攝像機視野的人臉被快速檢測仍然是研究的重點.
本文的人臉跟蹤算法屬于特征匹配,是在遞歸估計算法思想基礎(chǔ)上進行改進,提出一種遞歸最小檢測窗口的方法(Recursion Minimum Window,RMW)降低人臉檢測的負荷,并進行多線程擴展,從而實現(xiàn)多人臉同步跟蹤.本文采用的人臉檢測算法是的基于模板的方法,該方法魯棒性較好,檢測運算量與圖像像素大小成正比[14].RMW 方法工作原理就是盡可能縮小人臉檢測的范圍,從而提升處理速度.具體處理方法為,根據(jù)人臉尺寸和運動速度預(yù)測目標(biāo)在下一幀中最大可能的運動范圍,也就是包含目標(biāo)物體在內(nèi)的最小圖像,然后基于預(yù)測的目標(biāo)范圍裁剪圖像,作為人臉檢測算法的輸入.如此便可以在圖像輸入到人臉檢測模塊之前極大的裁剪掉無效圖像,提升目標(biāo)檢測的效率和準(zhǔn)確性.如圖1所示為RMW 方法工作原理.
圖1 RMW 方法原理圖
RMW 算法對單人臉檢測跟蹤處理速度提升計算公式如式(1)所示,W,H為原始圖像的寬高,W′和H′為最小預(yù)測窗口的寬高,V為人臉移動速度,R為視頻圖像的幀率,σ為常量.由公示可見,速度提升倍數(shù)約為原始圖像面積和人臉邊框面積的比值.即人臉在圖像中尺寸越小,則跟蹤速度越快.
RMW 算法的整體處理流程如圖2所示.首先根據(jù)上一幀跟蹤狀態(tài)預(yù)測當(dāng)前幀最小檢測窗口,如果是起始幀則窗口初始化為整幅圖像,然后根據(jù)最小窗口剪裁圖像,調(diào)用人臉檢測算法檢測人臉并根據(jù)人臉信息更新跟蹤狀態(tài),如此循環(huán)跟蹤直到退出.
圖2 RMW 算法處理流程
多人臉同步跟蹤情況下,對RMW 算法進行多線程設(shè)計,每張人臉使用獨立線程跟蹤,多人臉跟蹤的處理線程模型如圖3所示.結(jié)構(gòu)上包含全幅人臉檢測線程和RMW 人臉跟蹤線程兩部分,全幅檢測線程執(zhí)行周期較長,可以間隔多個圖像幀執(zhí)行一次,為發(fā)現(xiàn)新進入攝像機視野的人臉做整幅圖像的人臉檢測,一旦檢測到新人臉,則啟動RMW 跟蹤線程對人臉進行跟蹤,RMW 跟蹤線程檢測目標(biāo)丟失的時候則退出,全幅檢測線程發(fā)現(xiàn)新人臉則繼續(xù)添加新的跟蹤線程,從而持續(xù)維護跟蹤列表.
圖3 多人臉跟蹤線程模型
從攝像機獲取一幀實時圖像,采用RMW 算法預(yù)測截取最小檢測窗口,然后調(diào)用人臉識別庫檢測人臉,更新跟蹤列表并計算人臉角度、速度、圖像質(zhì)量等狀態(tài)信息,通過線程池方式并發(fā)執(zhí)行跟蹤處理,并在一幀檢測的開頭和結(jié)束進行線程同步.具體一幀圖像的檢測跟蹤的詳細流程圖如圖4所示.
圖4 RMW 人臉跟蹤處理詳細流程圖
自然狀態(tài)下的人臉被攝像機捕捉到的角度與狀態(tài)存在各種可能,傳統(tǒng)多角度人臉識別算法有很多種,如線性判別分析(LDA)、主成分分析(PCA)、回歸函數(shù)法等[15,16].然而在實際應(yīng)用中,在采集人臉信息環(huán)節(jié)并不容易實現(xiàn).為了讓用戶體驗更加自然,本文在人臉采集的時候?qū)Σ杉嵌茸隽藬U展,每張臉采集:正中、偏上、偏下、偏左、偏右5 張照片.在精確匹配的時候根據(jù)抓拍人臉的當(dāng)時狀態(tài)完成匹配,同時加上人臉角度的約束條件,則會使匹配結(jié)果更加精確.人臉采集的圖樣如圖5所示.
圖5 人臉多角度采集
本文所設(shè)計的人臉識別考勤系統(tǒng)主要包含如下幾方面功能:
1)用戶管理功能:采集用戶的人臉信息,還有對員工信息的增、刪、改、查管理功能;
2)人臉識別功能:采用實時M:N 的方式進行多人臉同步識別,支持多人同時考勤,并支持人臉大角度識別,增強用戶體驗;
3)考勤管理功能及其他:包含員工考勤管理、數(shù)據(jù)統(tǒng)計、考勤設(shè)置、考勤語音提示和系統(tǒng)設(shè)置功能.
人臉識別驗證功能是本系統(tǒng)的核心功能,系統(tǒng)使用第三方顏行人臉識別庫實現(xiàn)人臉檢測與匹配,軟件模塊圖如圖6所示.RMW 人臉跟蹤以及人臉匹配的應(yīng)用算法在人臉跟蹤識別模塊中實現(xiàn),調(diào)用顏行Facevall lib 實現(xiàn)人臉檢測與匹配.調(diào)用Speech lib 實現(xiàn)語音提示功能.
圖6 系統(tǒng)軟件結(jié)構(gòu)框圖
為滿足計算性能要求,考勤終端硬件設(shè)計采用X86架構(gòu)CPU 為Intel i7-8550u,RAM 為8 GB 的工控機為主控單元,使用1080P 幀頻30 fps 的高清攝像機采集人臉圖像,外接觸摸屏等人機交互外設(shè).
軟件開發(fā)基于Windows C# Visual Studio 開發(fā)環(huán)境,依據(jù)面向?qū)ο笤O(shè)計思想,采用多線程方式,實現(xiàn)了用戶界面、圖像采集、人臉跟蹤和檢索算法、考勤管理和網(wǎng)絡(luò)通信等功能.軟件界面基于WPF 窗體設(shè)計,采用C#5 新特性async await 關(guān)鍵字和lambda 表達式方便地實現(xiàn)多線程異步執(zhí)行,提升系統(tǒng)并行效率.在多線程并發(fā)執(zhí)行方面,用線程池技術(shù)實現(xiàn)多線程并發(fā)處理.數(shù)據(jù)存儲采用MySQL 數(shù)據(jù)庫.考勤終端與數(shù)據(jù)庫采用C/S 架構(gòu),支持多終端同步運行,多終端同步考勤.
人臉考勤界面采用單獨的窗口,實現(xiàn)效果圖如圖7所示.人臉考勤成功后會記錄數(shù)據(jù)庫,保存考勤時人臉照片,用于考勤記錄查詢及統(tǒng)計報表功能.
圖7 人臉考勤界面
人臉信息采集窗口如圖8所示,采集上下左右及正中5 張人臉照片.
針對人臉識別在實際應(yīng)用中的效果,從兩方面驗證算法性能,一方面是處理每個圖像幀的時間效率,另一方面從實際應(yīng)用的效果,即識別通過率進行測試.
圖8 人臉信息采集界面
為測試人臉跟蹤與識別算法的效率,對一分鐘1800 幀視頻圖像進行識別,統(tǒng)計平均每幀圖像的處理時間.為檢驗RMW 人臉跟蹤算法性能,與不使用RMW 算法,即與每幀圖像都全幅檢測的普通跟蹤算法相對比,計算RMW 算法在處理效率方面的效果.測試視頻中人臉移動速度較慢,小于0.5 m/s,分別在不同人數(shù)和距離情況下測試了多組數(shù)據(jù).
如圖9所示,從測試結(jié)果可以看出,RMW 算法大大降低了每幀圖像的平均處理時間,效率提升很明顯,為普通算法的兩倍以上,并且人數(shù)越少效果越明顯.另外,從RMW 算法的兩組數(shù)據(jù)可以看出,人臉距離攝像機的距離對處理時間的影響也很大,因為距離越遠,人臉?biāo)枷袼卦叫?檢索與匹配的計算量也越小.
圖9 人臉數(shù)與每幀處理時間曲線圖
為檢驗人臉識別實際應(yīng)用的通過率,使用1000 人共5 千張人臉的人臉檢索庫,測試從單人到6 人同時考勤效果.運動狀態(tài)包括靜止、緩慢行走(0.5 m/s)、正常速度行走(1 m/s).測試結(jié)果記錄識別時間和漏識次數(shù).時間記錄從距離攝像機3 m 開始計時到識別到人臉后屏幕提示姓名為止的時間.
測試結(jié)果如圖10所示,靜止?fàn)顟B(tài)下識別率都達到100%,人數(shù)的增加和移動速度的加快都會降低識別通過率,平均識別時間會隨人數(shù)增加而增加.漏識的主要原因是由于人臉移動速度快的情況下,還沒等到系統(tǒng)捕捉到高質(zhì)量的圖像,人就已經(jīng)走過去了,并且人數(shù)越多,捕捉人臉需要的時間就越長,從而導(dǎo)致漏識幾率增大.
圖10 識別通過率和平均識別時間結(jié)果圖
為測試人臉檢索庫引入正中和上下左右5 張人臉圖片的效果,對緩慢行走狀態(tài)下人臉識別通過率進行測試,分別對人臉角度為正中、偏左、偏右、偏上、偏下5 種狀態(tài)進行測試.測試結(jié)果如表1所示.
表1 單張采集與多張采集識別通過率對比(單位:%)
由測試結(jié)果可見,采集多角度采集的情況與單張采集情況相比,除了正中角度外,其余4 個角度都有明顯提升,平均通過率提升11%,可見該方法在實際應(yīng)用中是切實有效的.
本文在人臉識別考勤系統(tǒng)的設(shè)計中引入RMW 跟蹤算法,提高了多人臉同步跟蹤的效率,并通過采集正中、上下左右5 張人臉照片的方式增強自然狀態(tài)下人臉識別通過率,取得了較有成效的實際應(yīng)用效果.但在同時考勤人數(shù)大于4 的時候,由于處理性能和攝像機圖像質(zhì)量下降的原因,會導(dǎo)致漏識率明顯增高.然而,對于一般應(yīng)用場景,本文的算法基于現(xiàn)有人臉識別庫、普通處理器以及相機條件下,已經(jīng)可以達到實際應(yīng)用需求.如要進一步提高應(yīng)用效果,除了繼續(xù)優(yōu)化算法,還可以從提高處理器性能和采用高速相機角度進行解決.