馬缽濤
摘? 要: 結(jié)合云端數(shù)據(jù)庫(kù)技術(shù)與前沿人臉識(shí)別技術(shù),優(yōu)化模型參數(shù)調(diào)節(jié)策略,設(shè)計(jì)出一種基于自適應(yīng)人臉識(shí)別的出入人員管理系統(tǒng)。系統(tǒng)提供分布式信息錄入、云端數(shù)據(jù)匯總與存儲(chǔ)、人臉識(shí)別、數(shù)據(jù)分析等功能。在使用Arcface深度人臉識(shí)別模型的前提下,設(shè)計(jì)使用多層次多進(jìn)程并行溝通互聯(lián)模式,對(duì)出入人員實(shí)施系統(tǒng)化、自動(dòng)化的管理,實(shí)現(xiàn)管理流程的高效運(yùn)行。
關(guān)鍵詞: 人員管理; 自適應(yīng); 數(shù)據(jù)庫(kù)技術(shù); 人臉識(shí)別技術(shù); 多進(jìn)程
中圖分類(lèi)號(hào):TP391.4TP183C931.6? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):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)人臉識(shí)別的出入人員管理系統(tǒng),在云端共享、數(shù)據(jù)同步的支持下,管理者可對(duì)多出入口人員流動(dòng)進(jìn)行統(tǒng)一管理、分析、優(yōu)化,并可通過(guò)手機(jī)端應(yīng)用,實(shí)現(xiàn)管理者與流動(dòng)人員的信息溝通;在疫情時(shí)期盡最大可能避免因管理失誤而導(dǎo)致的人群聚集場(chǎng)景的出現(xiàn);在節(jié)約人力的基礎(chǔ)上,充分提升管理效能。
1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
1.1 功能模塊設(shè)計(jì)
按照大體功能劃分,基于自適應(yīng)人臉識(shí)別的出入人員管理系統(tǒng)可以分為三大模塊(如圖1)。
⑴ 管理者終端模塊,此模塊又可分為交互層、中間層、處理層這樣的三層結(jié)構(gòu)體系,通過(guò)多進(jìn)程并行運(yùn)轉(zhuǎn)。
⑵ 云端數(shù)據(jù)庫(kù)模塊,該模塊的服務(wù)器上運(yùn)行著一個(gè)匯總數(shù)據(jù)的SQL,其上用規(guī)定的格式存儲(chǔ)注冊(cè)用戶(hù)的相關(guān)信息及每個(gè)人對(duì)應(yīng)的人臉圖片,而所有信息匯總而成的簡(jiǎn)化表將返回并提供給各個(gè)管理者終端,以確保人臉信息的同步與快速識(shí)別。
⑶ 手機(jī)端信息模塊,該模塊以App形式安裝于各個(gè)流動(dòng)人員的手機(jī)中,以實(shí)現(xiàn)用戶(hù)的分散注冊(cè),用于接收通知信息、調(diào)度信息。
1.2 技術(shù)架構(gòu)設(shè)計(jì)
1.2.1 架構(gòu)總覽
系統(tǒng)的總體架構(gòu)為兩層C/S模式[1],包含云端數(shù)據(jù)庫(kù)服務(wù)總機(jī)和單一/多個(gè)管理者終端(以下簡(jiǎn)稱(chēng)終端)(如圖2)。在此模式下,云端數(shù)據(jù)庫(kù)服務(wù)器只負(fù)責(zé)各種數(shù)據(jù)的存儲(chǔ)和維護(hù),而終端則進(jìn)行主要的處理工作。
此架構(gòu)是一種較為典型的“胖客戶(hù)機(jī)(Fat Client)”、“瘦服務(wù)器(Thin Server)”網(wǎng)絡(luò)結(jié)構(gòu)模式[2]。在信息交互上,手機(jī)客戶(hù)端和云端服務(wù)器都分別與終端進(jìn)行信息交流。
1.2.2 三層架構(gòu)
終端程序的結(jié)構(gòu)設(shè)計(jì)類(lèi)似于MVC模式(Model-View-Controller),三個(gè)層次其中包括交互層、中間層、處理層(如圖3),對(duì)應(yīng)于MVC模式[3]中的視圖(View)、控制器(Controller)、模型(Model)三個(gè)部分。交互層是與用戶(hù)聯(lián)系最緊密的部分,管理者使用程序的UI界面方便地查看畫(huà)面、發(fā)布命令和傳遞消息。中間層是數(shù)據(jù)接收、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送的真正執(zhí)行者,中間層接收原始視頻信息,將視頻信息分為兩部分,一部分進(jìn)行預(yù)處理,提供處理層的模型使用,另一部分等待與處理層返回的識(shí)別信息結(jié)合,向交互層傳輸處理后的視頻信息;同時(shí),中間層會(huì)實(shí)時(shí)同步云端數(shù)據(jù),以確保系統(tǒng)的可靠性。處理層主要運(yùn)行系統(tǒng)的核心——人臉識(shí)別模型。模型針對(duì)堆棧視頻取出每一幀圖像,將其輸入帶有邊緣夾角附加損失函數(shù)(Additive Angular Margin Loss, AAML)的深度卷積神經(jīng)網(wǎng)絡(luò),將識(shí)別結(jié)果(即目標(biāo)人臉的名稱(chēng)),反饋回中間層進(jìn)行整合。三個(gè)層級(jí)分別運(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ù)處理過(guò)程
監(jiān)控視頻或網(wǎng)絡(luò)攝像機(jī)視頻經(jīng)過(guò)格式轉(zhuǎn)換后形成的輸入視頻需要進(jìn)行一定的預(yù)先處理。若視頻中并不存在人臉,人臉識(shí)別模型將不需要進(jìn)行運(yùn)轉(zhuǎn),目的是為了節(jié)省系統(tǒng)的資源消耗。因此,視頻幀圖像應(yīng)先通過(guò)三步預(yù)處理。第一步,將RGB圖像轉(zhuǎn)換為HSI圖像,并對(duì)I通道進(jìn)行均衡化處理,對(duì)圖片的明暗程度進(jìn)行調(diào)整,再轉(zhuǎn)換回RGB圖像[4];第二步,調(diào)用Dlib開(kāi)源工具包中的人臉追蹤定位函數(shù),對(duì)圖片中存在的人臉進(jìn)行定位;第三步,圖片存在人臉時(shí),使用獲取的人臉坐標(biāo)信息,定位人臉中心,截取正方形區(qū)域內(nèi)的人臉頭像,調(diào)整其至112×112像素大小。最后,預(yù)處理程序?qū)D片放入進(jìn)程間的共享堆棧。三步預(yù)處理過(guò)程,確保模型接收到的輸入圖片一定存在可識(shí)別的人臉信息,使得計(jì)算資源得以高效利用。
2.2 系統(tǒng)核心——人臉識(shí)別模型
2.2.1 模型優(yōu)勢(shì)
Arcface模型[5]是基于ResNet網(wǎng)絡(luò)[6]進(jìn)行損失函數(shù)優(yōu)化改進(jìn)的人臉識(shí)別模型。在人臉識(shí)別的四個(gè)過(guò)程:人臉檢測(cè)、人臉對(duì)齊、特征提取、特征匹配中,優(yōu)化損失函數(shù)是除優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)外提升模型性能的第二條道路。傳統(tǒng)的損失函數(shù)Softmax[7]存在很大的類(lèi)內(nèi)距離,缺乏對(duì)此的約束;于是Center Loss損失函數(shù)孕育而生,但其卻不能使類(lèi)間可分;在新的SphereFace模型研究中發(fā)現(xiàn),模型學(xué)習(xí)的特征角分布大小,決定著決策邊界的明顯程度;進(jìn)而,Arcface模型中提出了新的Angular Margin Loss約束。通過(guò)實(shí)驗(yàn)證明,加入該損失函數(shù)能夠壓縮同一類(lèi)別至更緊湊的空間,使得模型學(xué)習(xí)到的特征具有更加明顯的角分布,決策邊界也更明顯。此外,Arcface模型對(duì)網(wǎng)絡(luò)結(jié)構(gòu)也進(jìn)行了優(yōu)化,替換ResNet中第一個(gè)7×7卷積層為3×3卷積層、采用Option-E輸出、使用改善后的殘差塊,這些改進(jìn)對(duì)準(zhǔn)確度的提升也有很大作用。最終Arcface模型在MegaFace數(shù)據(jù)集上的測(cè)試結(jié)果證明,其在Rank1指標(biāo)(即第一次命中率)上較第二名有近1個(gè)百分點(diǎn)的提升。
2.2.2 訓(xùn)練過(guò)程
基本學(xué)習(xí)Arcface原作的訓(xùn)練過(guò)程,使用VGGFace2外加一部分自行采集的素材制作人臉數(shù)據(jù)集,其中運(yùn)用模型整合的MTCNN網(wǎng)絡(luò)[8]對(duì)其中的人臉圖片進(jìn)行對(duì)齊處理,并在預(yù)訓(xùn)練模型上進(jìn)一步訓(xùn)練并驗(yàn)證后使用。
2.3 UI界面
終端的交互層運(yùn)行著操作界面,使用QT公司的圖形用戶(hù)界面應(yīng)用程序開(kāi)發(fā)框架進(jìn)行實(shí)現(xiàn)。在框架布局上共分為四個(gè)區(qū)域(如圖4)。左上角的區(qū)域是標(biāo)題區(qū),主要用于設(shè)置路徑和展示視頻數(shù)據(jù);右上方的區(qū)域是畫(huà)面區(qū),視頻畫(huà)面會(huì)以最大范圍展示于此,下方的提示信息欄會(huì)提供一些輔助人臉居中的提醒信息,右側(cè)提示欄顯示識(shí)別人物的身份,若人物為未注冊(cè)人物時(shí),則提示“未知人物”。左下的區(qū)域是具體的操作區(qū),用于對(duì)中間層進(jìn)行發(fā)號(hào)施令。最后,右下角的區(qū)域是綜合的反饋區(qū),在此會(huì)顯示一系列系統(tǒng)運(yùn)行過(guò)程中發(fā)出的提示、記錄的數(shù)據(jù)、出現(xiàn)的錯(cuò)誤等,需要管理者在有需要時(shí)進(jìn)行應(yīng)對(duì)處理。
2.4 云端存儲(chǔ)
注冊(cè)人員的相關(guān)信息,數(shù)據(jù)量龐大,包括文字、圖片,我們將其存儲(chǔ)在一個(gè)可由任意終端訪(fǎng)問(wèn)的云服務(wù)器上。
2.4.1 數(shù)據(jù)庫(kù)文字信息
經(jīng)過(guò)終端審核,并注冊(cè)成功的用戶(hù),其文字?jǐn)?shù)據(jù)包括:注冊(cè)時(shí)生成的惟一標(biāo)識(shí)編號(hào)、姓名、電話(huà)號(hào)碼等基礎(chǔ)信息,而基于使用場(chǎng)景的不同,需求表格可以進(jìn)行自定義設(shè)計(jì),但一切文字?jǐn)?shù)據(jù)均需保存于云服務(wù)器中的數(shù)據(jù)庫(kù)內(nèi),以表格形式存在,并于最后一個(gè)地址屬性列,指明其人臉圖片的存放路徑,方便查找。
2.4.2 存儲(chǔ)區(qū)圖片信息
人物錄取的圖片信息單獨(dú)存儲(chǔ)在服務(wù)器的內(nèi)部存儲(chǔ)中,根據(jù)人物姓名或者惟一ID號(hào)以文件夾形式分隔開(kāi),若錄入圖片存在多張屬于同一人物的臉部圖片,圖片命名應(yīng)以“姓名”+“_”+“序號(hào)”表示,方便匯總程序調(diào)取使用。
2.4.3 信息互聯(lián)與匯總
每個(gè)人都有自己獨(dú)立的身份證,身份證上記錄的信息基本包含了可以證明你個(gè)人身份的所有數(shù)據(jù),基于此,我們?yōu)槊總€(gè)注冊(cè)人員設(shè)計(jì)出一張數(shù)字化的“身份卡”(如圖5),將每個(gè)人的文字信息與其圖片信息關(guān)聯(lián)。需要搜索查找一個(gè)人時(shí),只需要查詢(xún)名字或ID就可以獲取全部的注冊(cè)信息。并且,對(duì)于存儲(chǔ)在云端的所有圖片信息,服務(wù)器端還會(huì)運(yùn)行一個(gè)獨(dú)立程序,用于將人臉信息的特征進(jìn)行提取,匯總成CSV文件。此數(shù)據(jù)文件,由各個(gè)終端的中間層在需要的時(shí)候獲取并傳遞給處理層人臉識(shí)別模型,進(jìn)行對(duì)比使用。
2.5 手機(jī)端通訊
手機(jī)端App的主要使用對(duì)象是需要被管理者所管理的流動(dòng)人員,手機(jī)端服務(wù)主要包含兩個(gè)功能:信息收集和消息通知(如圖6)。
用戶(hù)首先需要下載應(yīng)用并注冊(cè)。成功注冊(cè)后,用戶(hù)會(huì)收到通知,并成為管理區(qū)域內(nèi)的可通行人物,通過(guò)進(jìn)出口的攝像頭識(shí)別人臉即可進(jìn)出管理區(qū)域,這是手機(jī)端的信息收集功能。
消息通知功能面向App的用戶(hù)。管理者發(fā)表調(diào)度信息和管理提示,例如在高峰時(shí)間對(duì)于某一進(jìn)出點(diǎn)人流過(guò)大而出現(xiàn)擁堵的問(wèn)題,管理者可以通過(guò)消息滾動(dòng)條或手機(jī)短信提示,讓用戶(hù)提前知曉并改變策略,將人流分散到其他出入口,避免擁堵的產(chǎn)生。
兩項(xiàng)功能的存在可以幫助管理者較為方便地溝通管理對(duì)象,并根據(jù)系統(tǒng)反饋數(shù)據(jù),及時(shí)對(duì)管理進(jìn)行調(diào)整。
3 功能優(yōu)化
3.1 模型參數(shù)自適應(yīng)調(diào)整
在系統(tǒng)的使用過(guò)程中,系統(tǒng)內(nèi)集合的人臉圖片數(shù)量始終處于變化中。一段時(shí)間內(nèi),注冊(cè)用戶(hù)可能增加也可能減少,但通常模型的訓(xùn)練會(huì)取某一固定數(shù)據(jù)集的圖片進(jìn)行訓(xùn)練,針對(duì)此特定狀態(tài)設(shè)定的模型參數(shù)值,是當(dāng)前條件下模型準(zhǔn)確度最高的狀態(tài),但其并不一定在其他場(chǎng)景中適用。于是,考慮到實(shí)際應(yīng)用場(chǎng)景下模型的識(shí)別處于變化的數(shù)據(jù)集當(dāng)中,我們應(yīng)當(dāng)設(shè)定一種對(duì)策,使得模型可以根據(jù)變化后的數(shù)據(jù)集來(lái)調(diào)整自己的某些參數(shù),以保持準(zhǔn)確度處于較高位置。
在Arcface模型中存在一個(gè)特定閾值,該閾值在人臉比對(duì)時(shí)起到一種類(lèi)似選擇器的作用,模型在訓(xùn)練過(guò)程中會(huì)根據(jù)學(xué)習(xí)率以一定步長(zhǎng)不斷改變?cè)摂?shù)值,直至測(cè)試結(jié)果準(zhǔn)確度到達(dá)可以接受的范圍內(nèi),訓(xùn)練完成后會(huì)不再?lài)L試改變此數(shù)值。
由此,我們思考一種更新方式,即在一特定時(shí)段(夜間或特定日期)對(duì)模型進(jìn)行更新,在兩次更新操作的真空期,注冊(cè)用戶(hù)會(huì)產(chǎn)生變化,影響模型的準(zhǔn)確度。通過(guò)將訓(xùn)練過(guò)的模型在新數(shù)據(jù)集上進(jìn)行新訓(xùn)練,或是在數(shù)據(jù)龐大時(shí)進(jìn)行挑選訓(xùn)練等手段,產(chǎn)生新閾值并覆蓋原閾值,使模型在注冊(cè)用戶(hù)這個(gè)相對(duì)原初訓(xùn)練集更小的范圍內(nèi)精確度始終處于最高狀態(tài)。這種方法稱(chēng)作模型的自適應(yīng)方法。
3.2 視頻堆?;厥諜C(jī)制與識(shí)別機(jī)制優(yōu)化
攝像頭記錄的視頻信息在輸入終端的中間層后,會(huì)先進(jìn)行視頻的預(yù)處理,而經(jīng)過(guò)預(yù)處理的視頻會(huì)壓入一個(gè)共享堆棧,共享堆棧由處理層取用,此過(guò)程是使視頻信息得以在兩個(gè)并行進(jìn)程間同時(shí)得到使用的解決方法,但是其在初期產(chǎn)生了極大的系統(tǒng)資源消耗,甚至導(dǎo)致系統(tǒng)崩潰。為了解決這個(gè)問(wèn)題,共享堆棧的大小有了重新限定,并在系統(tǒng)中引入GC垃圾回收器,在堆棧堆積滿(mǎn)時(shí),自動(dòng)回收緩存。同時(shí)也對(duì)模型的識(shí)別過(guò)程進(jìn)行優(yōu)化處理,模型并不需要對(duì)視頻每一幀持續(xù)地進(jìn)行識(shí)別,那將導(dǎo)致視頻流的輸入速度遠(yuǎn)大于識(shí)別幀提取的速度。在模型識(shí)別并給出判斷后,通過(guò)使用預(yù)處理時(shí)用到的Dlib人臉追蹤器,系統(tǒng)將追蹤已識(shí)別人員的面部在畫(huà)面中的位置,直至人物面部離開(kāi)畫(huà)面或發(fā)生切換前,模型將不再對(duì)已經(jīng)識(shí)別的對(duì)象進(jìn)行無(wú)用的反復(fù)識(shí)別操作。此改進(jìn)可顯著提高畫(huà)面幀率,提升39.4%,并極大減少畫(huà)面卡頓現(xiàn)象的出現(xiàn)。
4 結(jié)束語(yǔ)
本文論述了基于自適應(yīng)參數(shù)設(shè)置人臉識(shí)別模型的出入人員管理系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)及優(yōu)化過(guò)程。展示了該系統(tǒng)所使用的C/S架構(gòu)模式及其獨(dú)特的“三層結(jié)構(gòu)”程序設(shè)計(jì)思路;著重介紹了人臉識(shí)別視頻的預(yù)處理過(guò)程和模型優(yōu)勢(shì)及訓(xùn)練過(guò)程;緊接著對(duì)系統(tǒng)UI的設(shè)計(jì)、云端數(shù)據(jù)服務(wù)器的使用、手機(jī)端通訊的作用進(jìn)行了介紹;并闡述了針對(duì)環(huán)境變化、運(yùn)行卡頓等問(wèn)題的優(yōu)化措施。本系統(tǒng)利用前沿人臉識(shí)別模型,結(jié)合自適應(yīng)參數(shù)調(diào)節(jié)策略,提升了出入管理流程的自動(dòng)化水平,成功減輕了管理人員的數(shù)量需求,在應(yīng)對(duì)人力資源短缺問(wèn)題上有長(zhǎ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的瘦(胖)客戶(hù)機(jī)-終端服務(wù)器模式設(shè)計(jì)及應(yīng)用[J]. 武漢職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(5):73-75
[3] 陳樂(lè),楊小虎.MVC模式在分布式環(huán)境下的應(yīng)用研究[J].計(jì)算機(jī)工程,2006
[4] 鄒宏偉.基于OpenCV的數(shù)字圖像處理技術(shù)研究與實(shí)現(xiàn)[J].無(wú)線(xiàn)互聯(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)