基于FaceNet的智能自習室的設計與實現*
*基金項目:鄭州工商學院科研創(chuàng)新項目,項目編號:2022-KYDXS-10
本文引用地址:http://cafeforensic.com/article/202306/447904.htm隨著近些年高校的擴招,不斷增加的學生數量使校園的公共資源陷入資源緊張和管理混亂的局面。很多高校共自習室的使用和管理中都面臨著“長期占座”或者“高峰搶座”等問題的困境。本文以鄭州GS 學院的圖書館公共自習室實際應用為研究背景,設計研發(fā)一款基于微信小程序前端以及人臉識別技術的公共自習室座位預約及管理系統(tǒng)。從而幫助學生更合理有效地安排自習時間,并幫助學校緩解公共自習室資源緊缺問題。
1 系統(tǒng)總體設計
研究生擴招,在考研熱潮之下寬敞明亮、學習氛圍濃郁的公共自習室無疑是考研族學習的最佳場所。引入公共自習室座位座位預約及管理系統(tǒng),希望實現座位共享,提高座位的利用率,緩解座位緊張的問題。本系統(tǒng)共包含了四大功能模塊,如圖1 所示:
圖1 公共自習室管理系統(tǒng)框架
1) 微信小程序模塊:本模塊主要負責提供學生用戶訪問系統(tǒng)的交互UI。學生僅需在手機端關注圖書館微信公眾號即可進入公共自習室在線預約系統(tǒng)。通往微信小程序學生能夠以可視化的方式查看圖書館公共自習室座位的使用情況。同時還可通過微信小程序實現自習室座位的在線預約。
2) 后端服務模塊:后端服務包含了座位預約信息的管理;人臉識別模塊中人臉圖庫的管理;學生學習記錄統(tǒng)計;物聯網模塊邏輯控制,以及其他信息管理功能。該模塊是公共自習室智能化管理的中樞模塊,負責各個模塊中的消息轉發(fā)工作。
3) 人臉識別模塊:本模塊是實現公共自習室智能化無人化管理的核心功能模塊。首先系統(tǒng)通過控制自習室入口處的攝像頭,采集學生的面部圖片,然后運用FaceNet 模型實現人臉特征提取,隨后比對并將結果傳送給后端服務模塊。在由后端服務程序把控制信號傳輸給物聯網模塊。
4) 物聯網模塊:實現智能化管理的硬件實施模塊,根據后端服務模塊傳遞的控制信號,分別控制自習室門口的出入閘機和放置在自習室座位上的物聯網LED小燈。
2 微信小程序模塊設計與實現
微信小程序作為騰訊公司推出的一款基于微信平臺的移動APP,具有簡單易用、跨平臺、即走即用等特點。因此本系統(tǒng)的用戶UI 交互系統(tǒng)采用了微信小程序進行開發(fā)設計。主要實現了鄭州GS 學院圖書館公共自習室座位使用情況的實時可視化的信息展示,包含當前座位的狀態(tài)及本座位已有的預約信息。
自習室中有8 張大桌子,每張桌子上可安排8 個自習座位,每個方塊就代表一個自習座位。白色方塊代表該座位為空閑狀態(tài),無人預約,單擊此方塊則可以進入預約信息填寫界面。紅色方塊則表示該座位已經被預約或正在使用,點擊此方塊則可以產看座位具體的使用信息,包括預約的開始時間和結束時間以及預約人的基本信息。具體流程如下圖所示:
3 后端服務設計與實現
后端服務主要采用了SpringBoot 框架,實現了整個系統(tǒng)的數據傳遞和業(yè)務邏輯控制。主要的數據交互流程包括個人信息,座位信息,控制信號幾部分。首先前端復制接收用戶控制信號或者收集用戶的數據,提交到基于SpringBoot 框架的服務器程序進行邏輯處理和數據交互。例如登錄模塊由SpringBoot 的control 層接收預約請求,并接收傳入的用戶名、座位編號、預約時間等數據。然后由service 層負責對收集的數據進行非空或者字符集轉換等加工處理。座位預約數據信息的存儲需要通過Mapper 層的Java 接口調用項應的Mapper 文件,完成Java 接口和SQL 語句之間的映射。而本系統(tǒng)的數據底層采用MySQL 數據庫實現。整個后端服務采用SpringBoot框架能有利于這個程序的后期維護。
4 人臉識別模塊的設計實現
4.1 RetinaFace網絡
RetinaFace 是一種用于人臉檢測和人臉識別的深度學習網絡模型,由中國科學院自動化研究所的陳澤民等人在2019 年提出。它采用了一種新穎的多任務損失函數,可以同時預測人臉的邊界框、人臉關鍵點、人臉的姿態(tài)和人臉的人種信息,具有較高的檢測精度和速度。
RetinaFace模型的基本思路是通過將人臉檢測問題轉化為一個回歸問題,預測每個人臉的邊界框、關鍵點、姿態(tài)和人種信息。模型主要由兩部分組成:特征提取網絡和人臉檢測頭。
特征提取網絡采用了ResNet-50 作為骨干網絡,通過提取特征圖來表征不同尺度的特征。檢測頭采用了一種類似于RetinaNet 的方法,對于不同尺度的特征圖,使用多個分支來預測不同大小的人臉邊界框和關鍵點。此外,檢測頭還使用了一種人種分類分支,可以用于預測人臉的人種信息。
4.2 FaceNet模型介紹
圖4 FaceNet網絡結構
本文使用MobileNet 作為FaceNet 網絡的主干特征提取網絡,MobileNet 網絡是專注于移動端或者嵌入式設備中的輕量級CNN, 相比于傳統(tǒng)卷積神經網絡, 在準確率小幅度降低的前提下大大減少模型參數與運算量。
圖片batch經過深度卷積之后會得到一組人臉數據。將得到的數據采用L2 歸一化得到128 維人臉的特征矩陣。然后針對圖片的128 位特征矩陣,采用計算歐氏空間距離的方法進行人臉相似度的判斷。兩組向量的歐式距離越小說明兩圖相似度越高,反之則相似度越低[2]。設圖像A 的特征向量集為a(a11,a12,a13...a1n),圖像B 的特征向量集為b(b11,b12,b13...b1n), 則計算兩圖的歐式空間距離的公式如下:
然后通過控制對人臉特征向量之間的歐氏空間距離的閾值,就可以實現對人臉圖像的區(qū)分。
圖5 人臉處理流程
4.3 人臉識別流程
1) 靜態(tài)人臉圖像采集,在用戶注冊該系統(tǒng)時,小程序會調用移動設備的攝像頭或者相冊功能,要求用戶提供一張正面的人臉照片。
2) 人臉圖像提取,利用RetinaFace 網絡進行邊框回歸檢測來確定人臉的區(qū)域,并將框選人臉圖像信息錄入本地圖庫。
3) 人臉特征提取,基于本地人臉圖庫運用FaceNet網絡進行人臉特征的向量提取,經過深度學習網絡會提取到的128 維特征向量矩陣。
4) 存儲人臉特征,將人臉圖像提取的128 位的特征向量存入到數據庫。
5) 動態(tài)圖像采集,通過攝像頭終端每間隔3 秒鐘采集時長為一秒的短視頻20f/s,并從中平均抽樣5 禎的圖像作為識別圖片。
6) 提取人臉特征提取,重復上述(2~3) 步的操作,提取出5 張動態(tài)圖像的特征向量。并進行均值計算,得出1 個特征向量矩陣。
7) 載入本地人臉庫,將數據表中存放的靜態(tài)人臉特征矩陣以numpy 模塊格式進行載入,而人臉信息則封裝入JSON 字符串。
8) 歐式距離計算,將步驟(6) 中得出的特征向量于載入的本地特征矩陣庫中的特征向量運用式(1) 計算歐式距離d。
9) 識別結果輸出, 如果歐式距離d 大于預訂設置的閥值則認定為匹配失敗則是輸出Unknown,反之d 小于閥值則匹配成功輸出本地庫中的用戶標簽信息。
4.4 模型訓練
LFW 數據集主要應用對人臉識別的準確度的測試上,并采用遷移學習的方式對該數據集進行訓練[4]。從數據集中隨機選擇5 000 對由人臉組成的人臉圖片識別對,其中2 500 對的兩張人臉圖片來自于同一個人,另2 500 對的兩張人臉圖片來自于不同的人。測試過程中LFW 隨機給出1 對照片,詢問被測系統(tǒng)兩張照片是否屬于同一個人,系統(tǒng)正確或錯誤兩種答案。將這5 000對人臉測試的系統(tǒng)答案與真實答案的比值就是人臉識別準確率。
4.5 閾值測算
真正例率tpr表示測試結果中通過預測正確的次數占所有匹配結果為真的比值。tp表示模型中匹配結果為真且預測也正確的次數,fn為預測錯誤但匹配結果正確。表示模型其計算公式如下:
假正例率表述預測結果錯誤次數占所有匹配結果為真的比例,記作fpr。其計算公式如下:
(3)式中,fp表示模型預測為真但匹配答案錯誤,tn表示預測為錯匹配結果為假的次數[2]。那么,經過對數據模型的訓練去尋求一個閾值使得tpr盡可能高,fpr盡可能低。本文在閾值區(qū)間 [0,1] 步長為0.01 中尋求最佳閾值,每一次閾值迭代出來的fpr、tpr都記錄下來,畫成一個二維平面圖。以fpr為橫坐標、tpr為縱坐標的二維平面圖中,最佳閾值應該位于最接近左上角的一點,那么可以求左上角的(0,1) 點與Roc 曲線的直線最短距離來確定最佳閾值。
5 結果分析
將測試集進行分組輸入給模型進行測試。驗證結果如下:
測試集的準確率分組測試結果顯示較接近訓練的準確率,準確率約為89%,且實際部署使用的過程中會多次驗證。因此實際部署使用過程中產生的誤差可忽略不計。
6 結束語
本文通過引入智能自習室系統(tǒng)。以解決傳統(tǒng)自習室問題,加入FaceNet 網絡在中低性能的機器部署時仍有20 幀左右的速度。故有望在實際部署中以低成本解決實際問題。
參考文獻:
[1] 劉秀麗,陳銳.基于深度學習的人臉識別技術及其應用場景探討[J].黑龍江科學,2021,12(22):12-13.
[2] 李志華,張見雨,魏忠誠.基于MTCNN和Facenet的人臉識別系統(tǒng)設計[J].現代電子技術,2022,45(4):139-143.
[3] 張綠云,馬海榮,岑凱.威基于 FaceNet 的人臉識別研究與實現[J].信息與電腦,2022,10(10):134-136
[4] 董濤,秦勤.基于魯棒最大單純形體積的高光譜圖像快速端元提取[J].電子測量技術,2021,5(44):121-127.
[5] FLORIAN S, DMITRY K, JAMES P. Facenet: a unified embedding for face recognition and clustering [C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015:815-823.
(本文來源于《電子產品世界》雜志2023年6月期)
評論