馬缽濤
摘? 要: 結(jié)合云端數(shù)據(jù)庫技術(shù)與前沿人臉識別技術(shù),優(yōu)化模型參數(shù)調(diào)節(jié)策略,設(shè)計(jì)出一種基于自適應(yīng)人臉識別的出入人員管理系統(tǒng)。系統(tǒng)提供分布式信息錄入、云端數(shù)據(jù)匯總與存儲、人臉識別、數(shù)據(jù)分析等功能。在使用Arcface深度人臉識別模型的前提下,設(shè)計(jì)使用多層次多進(jìn)程并行溝通互聯(lián)模式,對出入人員實(shí)施系統(tǒng)化、自動化的管理,實(shí)現(xiàn)管理流程的高效運(yùn)行。
關(guān)鍵詞: 人員管理; 自適應(yīng); 數(shù)據(jù)庫技術(shù); 人臉識別技術(shù); 多進(jìn)程
中圖分類號:TP391.4TP183C931.6? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2022)06-66-05
Design of access management system based on adaptive face recognition technique
Ma Botao
(College of Computer Science and Technology, Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: Combining cloud database technology, cutting-edge face recognition technology and optimization model parameter adjustment strategy, an access management system based on adaptive face recognition is designed. The system includes functions such as distributed information input, cloud data collection and storage, face recognition, data analysis, etc. Using the Arcface deep face recognition model, a multi-level and multi-process parallel communication and interconnection mode is designed to implement systematic and automated management of entry and exit personnel. It successfully reduces the manual burden and enables the efficient operation of the management process.
Key words: personal management; self-adaption; database; face recognition; multiprocessing
0 引言
本文構(gòu)建一種基于自適應(yīng)人臉識別的出入人員管理系統(tǒng),在云端共享、數(shù)據(jù)同步的支持下,管理者可對多出入口人員流動進(jìn)行統(tǒng)一管理、分析、優(yōu)化,并可通過手機(jī)端應(yīng)用,實(shí)現(xiàn)管理者與流動人員的信息溝通;在疫情時(shí)期盡最大可能避免因管理失誤而導(dǎo)致的人群聚集場景的出現(xiàn);在節(jié)約人力的基礎(chǔ)上,充分提升管理效能。
1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.1 功能模塊設(shè)計(jì)
按照大體功能劃分,基于自適應(yīng)人臉識別的出入人員管理系統(tǒng)可以分為三大模塊(如圖1)。
⑴ 管理者終端模塊,此模塊又可分為交互層、中間層、處理層這樣的三層結(jié)構(gòu)體系,通過多進(jìn)程并行運(yùn)轉(zhuǎn)。
⑵ 云端數(shù)據(jù)庫模塊,該模塊的服務(wù)器上運(yùn)行著一個匯總數(shù)據(jù)的SQL,其上用規(guī)定的格式存儲注冊用戶的相關(guān)信息及每個人對應(yīng)的人臉圖片,而所有信息匯總而成的簡化表將返回并提供給各個管理者終端,以確保人臉信息的同步與快速識別。
⑶ 手機(jī)端信息模塊,該模塊以App形式安裝于各個流動人員的手機(jī)中,以實(shí)現(xiàn)用戶的分散注冊,用于接收通知信息、調(diào)度信息。
1.2 技術(shù)架構(gòu)設(shè)計(jì)
1.2.1 架構(gòu)總覽
系統(tǒng)的總體架構(gòu)為兩層C/S模式[1],包含云端數(shù)據(jù)庫服務(wù)總機(jī)和單一/多個管理者終端(以下簡稱終端)(如圖2)。在此模式下,云端數(shù)據(jù)庫服務(wù)器只負(fù)責(zé)各種數(shù)據(jù)的存儲和維護(hù),而終端則進(jìn)行主要的處理工作。
此架構(gòu)是一種較為典型的“胖客戶機(jī)(Fat Client)”、“瘦服務(wù)器(Thin Server)”網(wǎng)絡(luò)結(jié)構(gòu)模式[2]。在信息交互上,手機(jī)客戶端和云端服務(wù)器都分別與終端進(jìn)行信息交流。
1.2.2 三層架構(gòu)
終端程序的結(jié)構(gòu)設(shè)計(jì)類似于MVC模式(Model-View-Controller),三個層次其中包括交互層、中間層、處理層(如圖3),對應(yīng)于MVC模式[3]中的視圖(View)、控制器(Controller)、模型(Model)三個部分。交互層是與用戶聯(lián)系最緊密的部分,管理者使用程序的UI界面方便地查看畫面、發(fā)布命令和傳遞消息。中間層是數(shù)據(jù)接收、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送的真正執(zhí)行者,中間層接收原始視頻信息,將視頻信息分為兩部分,一部分進(jìn)行預(yù)處理,提供處理層的模型使用,另一部分等待與處理層返回的識別信息結(jié)合,向交互層傳輸處理后的視頻信息;同時(shí),中間層會實(shí)時(shí)同步云端數(shù)據(jù),以確保系統(tǒng)的可靠性。處理層主要運(yùn)行系統(tǒng)的核心——人臉識別模型。模型針對堆棧視頻取出每一幀圖像,將其輸入帶有邊緣夾角附加損失函數(shù)(Additive Angular Margin Loss, AAML)的深度卷積神經(jīng)網(wǎng)絡(luò),將識別結(jié)果(即目標(biāo)人臉的名稱),反饋回中間層進(jìn)行整合。三個層級分別運(yùn)行于各自的進(jìn)程中,進(jìn)程互相獨(dú)立,之間依靠進(jìn)程鎖同步通訊,以減小不必要的交互卡頓。設(shè)計(jì)模式上的三層架構(gòu)與程序模式上的多進(jìn)程共同確保系統(tǒng)內(nèi)的管理者終端高效、健壯地運(yùn)行。
2 系統(tǒng)具體實(shí)現(xiàn)
2.1 視頻預(yù)處理過程
監(jiān)控視頻或網(wǎng)絡(luò)攝像機(jī)視頻經(jīng)過格式轉(zhuǎn)換后形成的輸入視頻需要進(jìn)行一定的預(yù)先處理。若視頻中并不存在人臉,人臉識別模型將不需要進(jìn)行運(yùn)轉(zhuǎn),目的是為了節(jié)省系統(tǒng)的資源消耗。因此,視頻幀圖像應(yīng)先通過三步預(yù)處理。第一步,將RGB圖像轉(zhuǎn)換為HSI圖像,并對I通道進(jìn)行均衡化處理,對圖片的明暗程度進(jìn)行調(diào)整,再轉(zhuǎn)換回RGB圖像[4];第二步,調(diào)用Dlib開源工具包中的人臉追蹤定位函數(shù),對圖片中存在的人臉進(jìn)行定位;第三步,圖片存在人臉時(shí),使用獲取的人臉坐標(biāo)信息,定位人臉中心,截取正方形區(qū)域內(nèi)的人臉頭像,調(diào)整其至112×112像素大小。最后,預(yù)處理程序?qū)D片放入進(jìn)程間的共享堆棧。三步預(yù)處理過程,確保模型接收到的輸入圖片一定存在可識別的人臉信息,使得計(jì)算資源得以高效利用。
2.2 系統(tǒng)核心——人臉識別模型
2.2.1 模型優(yōu)勢
Arcface模型[5]是基于ResNet網(wǎng)絡(luò)[6]進(jìn)行損失函數(shù)優(yōu)化改進(jìn)的人臉識別模型。在人臉識別的四個過程:人臉檢測、人臉對齊、特征提取、特征匹配中,優(yōu)化損失函數(shù)是除優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)外提升模型性能的第二條道路。傳統(tǒng)的損失函數(shù)Softmax[7]存在很大的類內(nèi)距離,缺乏對此的約束;于是Center Loss損失函數(shù)孕育而生,但其卻不能使類間可分;在新的SphereFace模型研究中發(fā)現(xiàn),模型學(xué)習(xí)的特征角分布大小,決定著決策邊界的明顯程度;進(jìn)而,Arcface模型中提出了新的Angular Margin Loss約束。通過實(shí)驗(yàn)證明,加入該損失函數(shù)能夠壓縮同一類別至更緊湊的空間,使得模型學(xué)習(xí)到的特征具有更加明顯的角分布,決策邊界也更明顯。此外,Arcface模型對網(wǎng)絡(luò)結(jié)構(gòu)也進(jìn)行了優(yōu)化,替換ResNet中第一個7×7卷積層為3×3卷積層、采用Option-E輸出、使用改善后的殘差塊,這些改進(jìn)對準(zhǔn)確度的提升也有很大作用。最終Arcface模型在MegaFace數(shù)據(jù)集上的測試結(jié)果證明,其在Rank1指標(biāo)(即第一次命中率)上較第二名有近1個百分點(diǎn)的提升。
2.2.2 訓(xùn)練過程
基本學(xué)習(xí)Arcface原作的訓(xùn)練過程,使用VGGFace2外加一部分自行采集的素材制作人臉數(shù)據(jù)集,其中運(yùn)用模型整合的MTCNN網(wǎng)絡(luò)[8]對其中的人臉圖片進(jìn)行對齊處理,并在預(yù)訓(xùn)練模型上進(jìn)一步訓(xùn)練并驗(yàn)證后使用。
2.3 UI界面
終端的交互層運(yùn)行著操作界面,使用QT公司的圖形用戶界面應(yīng)用程序開發(fā)框架進(jìn)行實(shí)現(xiàn)。在框架布局上共分為四個區(qū)域(如圖4)。左上角的區(qū)域是標(biāo)題區(qū),主要用于設(shè)置路徑和展示視頻數(shù)據(jù);右上方的區(qū)域是畫面區(qū),視頻畫面會以最大范圍展示于此,下方的提示信息欄會提供一些輔助人臉居中的提醒信息,右側(cè)提示欄顯示識別人物的身份,若人物為未注冊人物時(shí),則提示“未知人物”。左下的區(qū)域是具體的操作區(qū),用于對中間層進(jìn)行發(fā)號施令。最后,右下角的區(qū)域是綜合的反饋區(qū),在此會顯示一系列系統(tǒng)運(yùn)行過程中發(fā)出的提示、記錄的數(shù)據(jù)、出現(xiàn)的錯誤等,需要管理者在有需要時(shí)進(jìn)行應(yīng)對處理。
2.4 云端存儲
注冊人員的相關(guān)信息,數(shù)據(jù)量龐大,包括文字、圖片,我們將其存儲在一個可由任意終端訪問的云服務(wù)器上。
2.4.1 數(shù)據(jù)庫文字信息
經(jīng)過終端審核,并注冊成功的用戶,其文字?jǐn)?shù)據(jù)包括:注冊時(shí)生成的惟一標(biāo)識編號、姓名、電話號碼等基礎(chǔ)信息,而基于使用場景的不同,需求表格可以進(jìn)行自定義設(shè)計(jì),但一切文字?jǐn)?shù)據(jù)均需保存于云服務(wù)器中的數(shù)據(jù)庫內(nèi),以表格形式存在,并于最后一個地址屬性列,指明其人臉圖片的存放路徑,方便查找。
2.4.2 存儲區(qū)圖片信息
人物錄取的圖片信息單獨(dú)存儲在服務(wù)器的內(nèi)部存儲中,根據(jù)人物姓名或者惟一ID號以文件夾形式分隔開,若錄入圖片存在多張屬于同一人物的臉部圖片,圖片命名應(yīng)以“姓名”+“_”+“序號”表示,方便匯總程序調(diào)取使用。
2.4.3 信息互聯(lián)與匯總
每個人都有自己獨(dú)立的身份證,身份證上記錄的信息基本包含了可以證明你個人身份的所有數(shù)據(jù),基于此,我們?yōu)槊總€注冊人員設(shè)計(jì)出一張數(shù)字化的“身份卡”(如圖5),將每個人的文字信息與其圖片信息關(guān)聯(lián)。需要搜索查找一個人時(shí),只需要查詢名字或ID就可以獲取全部的注冊信息。并且,對于存儲在云端的所有圖片信息,服務(wù)器端還會運(yùn)行一個獨(dú)立程序,用于將人臉信息的特征進(jìn)行提取,匯總成CSV文件。此數(shù)據(jù)文件,由各個終端的中間層在需要的時(shí)候獲取并傳遞給處理層人臉識別模型,進(jìn)行對比使用。
2.5 手機(jī)端通訊
手機(jī)端App的主要使用對象是需要被管理者所管理的流動人員,手機(jī)端服務(wù)主要包含兩個功能:信息收集和消息通知(如圖6)。
用戶首先需要下載應(yīng)用并注冊。成功注冊后,用戶會收到通知,并成為管理區(qū)域內(nèi)的可通行人物,通過進(jìn)出口的攝像頭識別人臉即可進(jìn)出管理區(qū)域,這是手機(jī)端的信息收集功能。
消息通知功能面向App的用戶。管理者發(fā)表調(diào)度信息和管理提示,例如在高峰時(shí)間對于某一進(jìn)出點(diǎn)人流過大而出現(xiàn)擁堵的問題,管理者可以通過消息滾動條或手機(jī)短信提示,讓用戶提前知曉并改變策略,將人流分散到其他出入口,避免擁堵的產(chǎn)生。
兩項(xiàng)功能的存在可以幫助管理者較為方便地溝通管理對象,并根據(jù)系統(tǒng)反饋數(shù)據(jù),及時(shí)對管理進(jìn)行調(diào)整。
3 功能優(yōu)化
3.1 模型參數(shù)自適應(yīng)調(diào)整
在系統(tǒng)的使用過程中,系統(tǒng)內(nèi)集合的人臉圖片數(shù)量始終處于變化中。一段時(shí)間內(nèi),注冊用戶可能增加也可能減少,但通常模型的訓(xùn)練會取某一固定數(shù)據(jù)集的圖片進(jìn)行訓(xùn)練,針對此特定狀態(tài)設(shè)定的模型參數(shù)值,是當(dāng)前條件下模型準(zhǔn)確度最高的狀態(tài),但其并不一定在其他場景中適用。于是,考慮到實(shí)際應(yīng)用場景下模型的識別處于變化的數(shù)據(jù)集當(dāng)中,我們應(yīng)當(dāng)設(shè)定一種對策,使得模型可以根據(jù)變化后的數(shù)據(jù)集來調(diào)整自己的某些參數(shù),以保持準(zhǔn)確度處于較高位置。
在Arcface模型中存在一個特定閾值,該閾值在人臉比對時(shí)起到一種類似選擇器的作用,模型在訓(xùn)練過程中會根據(jù)學(xué)習(xí)率以一定步長不斷改變該數(shù)值,直至測試結(jié)果準(zhǔn)確度到達(dá)可以接受的范圍內(nèi),訓(xùn)練完成后會不再嘗試改變此數(shù)值。
由此,我們思考一種更新方式,即在一特定時(shí)段(夜間或特定日期)對模型進(jìn)行更新,在兩次更新操作的真空期,注冊用戶會產(chǎn)生變化,影響模型的準(zhǔn)確度。通過將訓(xùn)練過的模型在新數(shù)據(jù)集上進(jìn)行新訓(xùn)練,或是在數(shù)據(jù)龐大時(shí)進(jìn)行挑選訓(xùn)練等手段,產(chǎn)生新閾值并覆蓋原閾值,使模型在注冊用戶這個相對原初訓(xùn)練集更小的范圍內(nèi)精確度始終處于最高狀態(tài)。這種方法稱作模型的自適應(yīng)方法。
3.2 視頻堆棧回收機(jī)制與識別機(jī)制優(yōu)化
攝像頭記錄的視頻信息在輸入終端的中間層后,會先進(jìn)行視頻的預(yù)處理,而經(jīng)過預(yù)處理的視頻會壓入一個共享堆棧,共享堆棧由處理層取用,此過程是使視頻信息得以在兩個并行進(jìn)程間同時(shí)得到使用的解決方法,但是其在初期產(chǎn)生了極大的系統(tǒng)資源消耗,甚至導(dǎo)致系統(tǒng)崩潰。為了解決這個問題,共享堆棧的大小有了重新限定,并在系統(tǒng)中引入GC垃圾回收器,在堆棧堆積滿時(shí),自動回收緩存。同時(shí)也對模型的識別過程進(jìn)行優(yōu)化處理,模型并不需要對視頻每一幀持續(xù)地進(jìn)行識別,那將導(dǎo)致視頻流的輸入速度遠(yuǎn)大于識別幀提取的速度。在模型識別并給出判斷后,通過使用預(yù)處理時(shí)用到的Dlib人臉追蹤器,系統(tǒng)將追蹤已識別人員的面部在畫面中的位置,直至人物面部離開畫面或發(fā)生切換前,模型將不再對已經(jīng)識別的對象進(jìn)行無用的反復(fù)識別操作。此改進(jìn)可顯著提高畫面幀率,提升39.4%,并極大減少畫面卡頓現(xiàn)象的出現(xiàn)。
4 結(jié)束語
本文論述了基于自適應(yīng)參數(shù)設(shè)置人臉識別模型的出入人員管理系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)及優(yōu)化過程。展示了該系統(tǒng)所使用的C/S架構(gòu)模式及其獨(dú)特的“三層結(jié)構(gòu)”程序設(shè)計(jì)思路;著重介紹了人臉識別視頻的預(yù)處理過程和模型優(yōu)勢及訓(xùn)練過程;緊接著對系統(tǒng)UI的設(shè)計(jì)、云端數(shù)據(jù)服務(wù)器的使用、手機(jī)端通訊的作用進(jìn)行了介紹;并闡述了針對環(huán)境變化、運(yùn)行卡頓等問題的優(yōu)化措施。本系統(tǒng)利用前沿人臉識別模型,結(jié)合自適應(yīng)參數(shù)調(diào)節(jié)策略,提升了出入管理流程的自動化水平,成功減輕了管理人員的數(shù)量需求,在應(yīng)對人力資源短缺問題上有長遠(yuǎn)效益。
在后續(xù)的改進(jìn)中,應(yīng)著重于模型輕量化的研究,以減輕管理員終端的計(jì)算處理負(fù)擔(dān),或是整合重復(fù)資源嘗試進(jìn)行云端統(tǒng)一處理的可能。
參考文獻(xiàn)(References):
[1] 李敏.C/S和B/S模式及混合模式研究[J].西華師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2006(2):198-201
[2] 彭洵,李軍,廖兆曙.基于Windows的瘦(胖)客戶機(jī)-終端服務(wù)器模式設(shè)計(jì)及應(yīng)用[J]. 武漢職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(5):73-75
[3] 陳樂,楊小虎.MVC模式在分布式環(huán)境下的應(yīng)用研究[J].計(jì)算機(jī)工程,2006
[4] 鄒宏偉.基于OpenCV的數(shù)字圖像處理技術(shù)研究與實(shí)現(xiàn)[J].無線互聯(lián)科技,2019,16(22):2
[5] Deng Jiankang,Guo Jia,Yang Jing,Xue Niannan,Cotsia Irene,Zafeiriou Stefanos P. ArcFace: Additive Angular Margin Loss for Deep Face Recognition[J].IEEE transactions on pattern analysis and machine intelligence,2021
[6] Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun 0001.Deep Residual Learning for Image Recognition[J].CoRR,2015,abs/1512.03385
[7] Weiyang Liu,Yandong Wen,Zhiding Yu,Meng Yang.Large-Margin Softmax Loss for Convolutional Neural Networks[J].CoRR,2016,abs/1612.02295
[8] Kaipeng Zhang,Zhanpeng Zhang,Zhifeng Li,Yu Qiao 0001. Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks.[J].IEEE Signal Process. Lett.,2016,23(10)