何斌斌 張波 彭小春 彭華梁
華南農(nóng)業(yè)大學(xué) 廣東 廣州 510642
近幾年,隨著人工智能技術(shù)不斷優(yōu)化和完善,依托于人工智能的人臉識別技術(shù)被廣泛應(yīng)用到刑偵、交通、金融等領(lǐng)域,教育領(lǐng)域也不例外。高校校內(nèi)師生數(shù)量較大,人員流動比較頻繁,在疫情防控期間,人員動態(tài)管理存在較大壓力,因此高校開始將人臉識別技術(shù)運用到學(xué)校管理當(dāng)中,尤其門禁進出、安保等方面,減輕管理人員的工作壓力,同時學(xué)校也能通過人臉識別技術(shù),準(zhǔn)確掌握學(xué)生的在校狀態(tài)以及活動軌跡[1]。
為提升學(xué)校智能化管理水平,更好維護良好校園秩序,快捷高效的解決全校師生人臉大批量錄入的問題,本文提出一種可信身份師生人臉智能采集系統(tǒng),提供安全的人臉特征照自助采集服務(wù),為師生進出校門提供便捷服務(wù)。為加強個人信息保護,人臉特征照采集僅限于校園網(wǎng)環(huán)境下使用。
人臉識別技術(shù)是一種基于人工智能(AI)的計算機技術(shù),用于在數(shù)字圖像中查找和識別人臉。基于人臉識別技術(shù)的“可信身份師生人臉采集系統(tǒng)”采用前后端分離開發(fā)架構(gòu),以及Python和C#混合語言多端開發(fā)模式[2]。
“前后端分離技術(shù)”已經(jīng)成為互聯(lián)網(wǎng)項目開發(fā)的業(yè)界標(biāo)桿,通過前后端獨立開發(fā)有效地進行解耦。并且前后端分離技術(shù)為以后的大型分布式架構(gòu)、彈性計算架構(gòu)、微服務(wù)架構(gòu)、多端化服務(wù)(多種客戶端,例如:瀏覽器,智慧屏終端,手機終端等等)打下堅實的基礎(chǔ)。
本系統(tǒng)前端選型采用輕量型的Vue框架,后端則采用Python語言中較為可靠的Flask框架[3]。采用Python語言不僅可以編寫后端API接口,同時可編寫人臉識別程序,Python語言不僅語法優(yōu)雅簡單,第三方庫功能強大,而且還可以跨平臺運行。考慮到人臉特征照的存儲安全性,分發(fā)的可靠性以及海量照片檢索的性能,本系統(tǒng)采用對象存儲(OSS)作為人臉特征照存儲的底層支撐技術(shù)。
對于師生人臉特征照采集而言,首先要提供一個功能完善的管理后臺,此外,一個嚴(yán)格身份核驗、快速便捷的智慧屏采集終端也是保證師生采集人臉特征照質(zhì)量的重要一步。考慮如上因素,本系統(tǒng)按照管理后臺端和智慧屏自主采集終端獨立設(shè)計,其主要功能如下:
管理后臺端:①用戶管理:實現(xiàn)對全校師生以及管理員等用戶基本信息管理。②用戶管理:實現(xiàn)對全校師生以及管理員等用戶基本信息管理。③用戶臉庫管理:實現(xiàn)對全校師生錄入的多張?zhí)卣髡盏拇鎯凸芾怼"軕?yīng)用授權(quán)管理:實現(xiàn)第三方系統(tǒng)申請臉庫、授權(quán)訪問等功能。⑤用戶黑白名單:實現(xiàn)用戶臉庫的黑白名單管理。
智慧屏自主采集終端:①身份核驗:通過身份證、校園卡對用戶身份進行雙重身份校對核驗。②人證比對:通過身份證照片以及自動調(diào)用攝像頭抓拍的人臉特征照進行比對,通過比對分?jǐn)?shù)判斷是否為同一個人。③人臉特征照采集:自動調(diào)用攝像頭拍攝人臉特征照,系統(tǒng)會對照片進行質(zhì)量檢測,符合要求才能入庫。
基于DDD領(lǐng)域驅(qū)動設(shè)計思想[4],本系統(tǒng)可以分解為6大功能模塊:用戶管理模塊、臉庫管理模塊、應(yīng)用授權(quán)模塊、身份核驗?zāi)K、特征照采集模塊、人臉識別模塊。
在上述功能中,身份核驗和人臉識別是本系統(tǒng)的核心[5-6]。詳細(xì)功能設(shè)計如下:①身份證信息讀取:智慧屏終端配備二代身份證閱讀器,通過讀取用戶的身份證,獲得姓名、身份證號、照片等個人身份真實信息。②身份證信息讀取:智慧屏終端配備二代身份證閱讀器,通過讀取用戶的身份證,獲得姓名、身份證號、照片等個人身份真實信息。③身份信息校驗:通過上述獲取的用戶姓名、身份證號、校園卡號,與學(xué)校身份數(shù)據(jù)中心對接,核實身份信息是否一致。④抓拍人臉特征照:智慧屏終端配備USB攝像頭,抓拍人臉特征照,并與身份證照片合并推送到云端服務(wù)器進一步處理。⑤抓拍人臉特征照:智慧屏終端配備USB攝像頭,抓拍人臉特征照,并與身份證照片合并推送到云端服務(wù)器進一步處理。⑥云端預(yù)處理:服務(wù)器收到人臉特征照以及身份證照片,與Python端的人臉識別模塊建立連接,發(fā)送人臉比對請求,等待識別結(jié)果。⑦人證比對:Python 端使用深度卷積網(wǎng)絡(luò),利用提前訓(xùn)練好的模型處理待檢測圖片,得出識別結(jié)果。⑧特征照入庫:經(jīng)身份信息校驗以及人證比對成功后,Python端把用戶的特征照保存到對象存儲,并把對應(yīng)關(guān)系保存到數(shù)據(jù)庫。⑨結(jié)果反饋:人臉特征照采集結(jié)果返回給前端展示給用戶,提醒用戶收好個人證件。
根據(jù)上述的功能設(shè)計,梳理出功能開發(fā)流程圖如圖1。

圖1 功能開發(fā)流程圖
系統(tǒng)使用Pycharm 2022開發(fā)管理后臺端,采用Visual Studio 2022開發(fā)智慧屏前端,分別采用Python語言和C#語言混合開發(fā),采用Mysql8關(guān)系型數(shù)據(jù)庫提供用戶數(shù)據(jù)庫存儲,同時采用了MinIO作為對象存儲保存人臉特征照。根據(jù)系統(tǒng)的整體功能設(shè)計,進行系統(tǒng)詳細(xì)設(shè)計。
身份證讀卡器采用新中新DKQ-A16D二代身份讀卡器,IC卡讀卡器采用URF-R330 IC卡讀寫器,攝像頭采用兼容USB 2.0免驅(qū)動型攝像頭。

圖2 新中新DKQ-A16D二代身份讀卡器
使用基于Vue框架的AVUE-UI進行前端頁面開發(fā),給管理后臺提供 信息管理操作;后端采用peewee框架作為訪問數(shù)據(jù)持久層,對用戶信息數(shù)據(jù)進行增、刪、查、改。
為了保障數(shù)據(jù)傳輸可靠性和安全性,智慧屏終端通過USB攝像頭抓拍人臉特征照后,首先將圖片轉(zhuǎn)為Base64編碼,通過HTTPS協(xié)議傳輸?shù)胶蠖耍邮仗幚砗螅D(zhuǎn)存對象存儲中。
服務(wù)器端接收到智慧屏終端發(fā)送的請求后,與身份中心對接,根據(jù)用戶的關(guān)鍵信息請求用戶的基本數(shù)據(jù),從基本數(shù)據(jù)比對用戶的姓名、身份證號、校園卡號是否一致。
云端身份信息核對成功后,使用基于TensorFlow的MTCNN模型[7],對人像區(qū)域進行定位,抽取出人臉特征照,同時與身份證照片進行比對,比對通過后把人臉特征數(shù)據(jù)記錄到數(shù)據(jù)庫。
Python端識別完成后,將識別結(jié)果通過AJAX請求返回至前端,前端對結(jié)果進行處理、展示。
本系統(tǒng)前端采用Vue框架的組件化技術(shù),把頁面拆分成多個組件 (component),每個組件依賴的CSS、JavaScript、模板、圖片等資源放在一起開發(fā)和維護。編寫組件就像搭積木一樣,編寫一堆組件最終拼裝生成頁面。前端采用路由配置模塊化,實現(xiàn)模塊統(tǒng)一加載,實現(xiàn)模塊代碼重用。
人臉識別模塊通過3個階段的深度卷積網(wǎng)絡(luò)級聯(lián)來實現(xiàn),識別之前,需要收集大批量質(zhì)量合格的人臉數(shù)據(jù)集對模型進行訓(xùn)練,然后將圖像中的人臉進行預(yù)處理,輸入數(shù)據(jù),最后使用SVM分類訓(xùn)練驗證其分類結(jié)果,形成人臉識別模型[8-9]。當(dāng)服務(wù)器接收到智慧屏終端發(fā)送的識別請求,人臉識別模塊開始調(diào)用人臉識別模型,輸入人臉特征照,返回識別結(jié)果。
管理端的人員數(shù)據(jù)管理如圖3所示,應(yīng)用授權(quán)管理如圖4所示。

圖3 人員數(shù)據(jù)管理

圖4 應(yīng)用授權(quán)管理
智慧屏終端如圖5所示:

圖5 智慧屏終端采集界面
①用戶把身份證放到讀卡器,自動讀取身份證并填充信息;②自動讀取校園卡并填充信息;③點擊拍照自動進行人臉識別并抓拍;④點擊上傳個人信息即可將信息上傳云端核驗并入庫。
基于多重身份校驗的人臉特征照采集系統(tǒng)是保證師生真實身份的有效手段。系統(tǒng)的整體設(shè)計采用了前后端分離技術(shù),使用Python語言和C#語言共同開發(fā),完成了用戶管理、臉庫管理、人臉入庫管理等功能。人臉識別模塊采用了深度卷積網(wǎng)絡(luò),并使用TensorFlow訓(xùn)練模型實現(xiàn)了人臉檢測和人臉比對。經(jīng)實踐檢驗,系統(tǒng)運行穩(wěn)定,效果良好,通過智慧屏終端可實現(xiàn)師生全自助式安全采集個人的人臉特征照,大大降低了人臉錄入工作量。