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