新聞中心

EEPW首頁(yè) > 物聯(lián)網(wǎng)與傳感器 > 設(shè)計(jì)應(yīng)用 > 基于FaceNet的智能自習(xí)室的設(shè)計(jì)與實(shí)現(xiàn)*

基于FaceNet的智能自習(xí)室的設(shè)計(jì)與實(shí)現(xiàn)*

作者:董濤,周旭輝,張浩(鄭州工商學(xué)院信息工程學(xué)院,鄭州 451400) 時(shí)間:2023-06-25 來(lái)源:電子產(chǎn)品世界 收藏
編者按:本項(xiàng)目從鄭州GS學(xué)院公共自習(xí)室的實(shí)際情況出發(fā),通過(guò)分時(shí)段調(diào)研本校圖書(shū)館公共自習(xí)室的座位使用情況和管理狀況,發(fā)現(xiàn)自習(xí)室存在學(xué)生占座、高峰時(shí)段擁擠、人工管理效率低等情況。為了解決公共自習(xí)室的困境,本文提出一種基于互聯(lián)網(wǎng)預(yù)約+人工智能管理的解決方案。運(yùn)用微信小程序?qū)崿F(xiàn)公共自習(xí)室使用狀態(tài)查看和網(wǎng)絡(luò)預(yù)約功能,并借助人臉識(shí)別和物聯(lián)網(wǎng)實(shí)現(xiàn)了無(wú)人化和智能化管理。

*基金項(xiàng)目:鄭州工商學(xué)院科研創(chuàng)新項(xiàng)目,項(xiàng)目編號(hào):2022-KYDXS-10

本文引用地址:http://2s4d.com/article/202306/447904.htm

隨著近些年高校的擴(kuò)招,不斷增加的學(xué)生數(shù)量使校園的公共資源陷入資源緊張和管理混亂的局面。很多高校共自習(xí)室的使用和管理中都面臨著“長(zhǎng)期占座”或者“高峰搶座”等問(wèn)題的困境。本文以鄭州GS 學(xué)院的圖書(shū)館公共自習(xí)室實(shí)際應(yīng)用為研究背景,設(shè)計(jì)研發(fā)一款基于微信小程序前端以及技術(shù)的公共自習(xí)室座位預(yù)約及管理系統(tǒng)。從而幫助學(xué)生更合理有效地安排自習(xí)時(shí)間,并幫助學(xué)校緩解公共自習(xí)室資源緊缺問(wèn)題。

1 系統(tǒng)總體設(shè)計(jì)

研究生擴(kuò)招,在考研熱潮之下寬敞明亮、學(xué)習(xí)氛圍濃郁的公共自習(xí)室無(wú)疑是考研族學(xué)習(xí)的最佳場(chǎng)所。引入公共自習(xí)室座位座位預(yù)約及管理系統(tǒng),希望實(shí)現(xiàn)座位共享,提高座位的利用率,緩解座位緊張的問(wèn)題。本系統(tǒng)共包含了四大功能模塊,如圖1 所示:

1687656895606115.png

圖1 公共自習(xí)室管理系統(tǒng)框架

1) 微信小程序模塊:本模塊主要負(fù)責(zé)提供學(xué)生用戶(hù)訪(fǎng)問(wèn)系統(tǒng)的交互UI。學(xué)生僅需在手機(jī)端關(guān)注圖書(shū)館微信公眾號(hào)即可進(jìn)入公共自習(xí)室在線(xiàn)預(yù)約系統(tǒng)。通往微信小程序?qū)W生能夠以可視化的方式查看圖書(shū)館公共自習(xí)室座位的使用情況。同時(shí)還可通過(guò)微信小程序?qū)崿F(xiàn)自習(xí)室座位的在線(xiàn)預(yù)約。

2) 后端服務(wù)模塊:后端服務(wù)包含了座位預(yù)約信息的管理;模塊中人臉圖庫(kù)的管理;學(xué)生學(xué)習(xí)記錄統(tǒng)計(jì);物聯(lián)網(wǎng)模塊邏輯控制,以及其他信息管理功能。該模塊是公共自習(xí)室智能化管理的中樞模塊,負(fù)責(zé)各個(gè)模塊中的消息轉(zhuǎn)發(fā)工作。

3) 模塊:本模塊是實(shí)現(xiàn)公共自習(xí)室智能化無(wú)人化管理的核心功能模塊。首先系統(tǒng)通過(guò)控制自習(xí)室入口處的攝像頭,采集學(xué)生的面部圖片,然后運(yùn)用FaceNet 模型實(shí)現(xiàn)人臉特征提取,隨后比對(duì)并將結(jié)果傳送給后端服務(wù)模塊。在由后端服務(wù)程序把控制信號(hào)傳輸給物聯(lián)網(wǎng)模塊。

4) 物聯(lián)網(wǎng)模塊:實(shí)現(xiàn)智能化管理的硬件實(shí)施模塊,根據(jù)后端服務(wù)模塊傳遞的控制信號(hào),分別控制自習(xí)室門(mén)口的出入閘機(jī)和放置在自習(xí)室座位上的物聯(lián)網(wǎng)LED小燈。

2 微信小程序模塊設(shè)計(jì)與實(shí)現(xiàn)

微信小程序作為騰訊公司推出的一款基于微信平臺(tái)的移動(dòng)APP,具有簡(jiǎn)單易用、跨平臺(tái)、即走即用等特點(diǎn)。因此本系統(tǒng)的用戶(hù)UI 交互系統(tǒng)采用了微信小程序進(jìn)行開(kāi)發(fā)設(shè)計(jì)。主要實(shí)現(xiàn)了鄭州GS 學(xué)院圖書(shū)館公共自習(xí)室座位使用情況的實(shí)時(shí)可視化的信息展示,包含當(dāng)前座位的狀態(tài)及本座位已有的預(yù)約信息。

自習(xí)室中有8 張大桌子,每張桌子上可安排8 個(gè)自習(xí)座位,每個(gè)方塊就代表一個(gè)自習(xí)座位。白色方塊代表該座位為空閑狀態(tài),無(wú)人預(yù)約,單擊此方塊則可以進(jìn)入預(yù)約信息填寫(xiě)界面。紅色方塊則表示該座位已經(jīng)被預(yù)約或正在使用,點(diǎn)擊此方塊則可以產(chǎn)看座位具體的使用信息,包括預(yù)約的開(kāi)始時(shí)間和結(jié)束時(shí)間以及預(yù)約人的基本信息。具體流程如下圖所示:

1687657065129594.png

3 后端服務(wù)設(shè)計(jì)與實(shí)現(xiàn)

后端服務(wù)主要采用了SpringBoot 框架,實(shí)現(xiàn)了整個(gè)系統(tǒng)的數(shù)據(jù)傳遞和業(yè)務(wù)邏輯控制。主要的數(shù)據(jù)交互流程包括個(gè)人信息,座位信息,控制信號(hào)幾部分。首先前端復(fù)制接收用戶(hù)控制信號(hào)或者收集用戶(hù)的數(shù)據(jù),提交到基于SpringBoot 框架的服務(wù)器程序進(jìn)行邏輯處理和數(shù)據(jù)交互。例如登錄模塊由SpringBoot 的control 層接收預(yù)約請(qǐng)求,并接收傳入的用戶(hù)名、座位編號(hào)、預(yù)約時(shí)間等數(shù)據(jù)。然后由service 層負(fù)責(zé)對(duì)收集的數(shù)據(jù)進(jìn)行非空或者字符集轉(zhuǎn)換等加工處理。座位預(yù)約數(shù)據(jù)信息的存儲(chǔ)需要通過(guò)Mapper 層的Java 接口調(diào)用項(xiàng)應(yīng)的Mapper 文件,完成Java 接口和SQL 語(yǔ)句之間的映射。而本系統(tǒng)的數(shù)據(jù)底層采用MySQL 數(shù)據(jù)庫(kù)實(shí)現(xiàn)。整個(gè)后端服務(wù)采用SpringBoot框架能有利于這個(gè)程序的后期維護(hù)。

4 人臉識(shí)別模塊的設(shè)計(jì)實(shí)現(xiàn)

4.1 RetinaFace網(wǎng)絡(luò)

RetinaFace 是一種用于人臉檢測(cè)和人臉識(shí)別的深度學(xué)習(xí)網(wǎng)絡(luò)模型,由中國(guó)科學(xué)院自動(dòng)化研究所的陳澤民等人在2019 年提出。它采用了一種新穎的多任務(wù)損失函數(shù),可以同時(shí)預(yù)測(cè)人臉的邊界框、人臉關(guān)鍵點(diǎn)、人臉的姿態(tài)和人臉的人種信息,具有較高的檢測(cè)精度和速度。

RetinaFace模型的基本思路是通過(guò)將人臉檢測(cè)問(wèn)題轉(zhuǎn)化為一個(gè)回歸問(wèn)題,預(yù)測(cè)每個(gè)人臉的邊界框、關(guān)鍵點(diǎn)、姿態(tài)和人種信息。模型主要由兩部分組成:特征提取網(wǎng)絡(luò)和人臉檢測(cè)頭。

特征提取網(wǎng)絡(luò)采用了ResNet-50 作為骨干網(wǎng)絡(luò),通過(guò)提取特征圖來(lái)表征不同尺度的特征。檢測(cè)頭采用了一種類(lèi)似于RetinaNet 的方法,對(duì)于不同尺度的特征圖,使用多個(gè)分支來(lái)預(yù)測(cè)不同大小的人臉邊界框和關(guān)鍵點(diǎn)。此外,檢測(cè)頭還使用了一種人種分類(lèi)分支,可以用于預(yù)測(cè)人臉的人種信息。

4.2 介紹

image.png

圖4 FaceNet網(wǎng)絡(luò)結(jié)構(gòu)

本文使用MobileNet 作為FaceNet 網(wǎng)絡(luò)的主干特征提取網(wǎng)絡(luò),MobileNet 網(wǎng)絡(luò)是專(zhuān)注于移動(dòng)端或者嵌入式設(shè)備中的輕量級(jí)CNN, 相比于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò), 在準(zhǔn)確率小幅度降低的前提下大大減少模型參數(shù)與運(yùn)算量。

圖片batch經(jīng)過(guò)深度卷積之后會(huì)得到一組人臉數(shù)據(jù)。將得到的數(shù)據(jù)采用L2 歸一化得到128 維人臉的特征矩陣。然后針對(duì)圖片的128 位特征矩陣,采用計(jì)算歐氏空間距離的方法進(jìn)行人臉相似度的判斷。兩組向量的歐式距離越小說(shuō)明兩圖相似度越高,反之則相似度越低[2]。設(shè)圖像A 的特征向量集為aa11,a12a13...a1n),圖像B 的特征向量集為bb11,b12b13...b1n), 則計(jì)算兩圖的歐式空間距離的公式如下:

image.png   image.png

然后通過(guò)控制對(duì)人臉特征向量之間的歐氏空間距離的閾值,就可以實(shí)現(xiàn)對(duì)人臉圖像的區(qū)分。

1687658059931199.png

圖5 人臉處理流程

4.3 人臉識(shí)別流程

1) 靜態(tài)人臉圖像采集,在用戶(hù)注冊(cè)該系統(tǒng)時(shí),小程序會(huì)調(diào)用移動(dòng)設(shè)備的攝像頭或者相冊(cè)功能,要求用戶(hù)提供一張正面的人臉照片。

2) 人臉圖像提取,利用RetinaFace 網(wǎng)絡(luò)進(jìn)行邊框回歸檢測(cè)來(lái)確定人臉的區(qū)域,并將框選人臉圖像信息錄入本地圖庫(kù)。

3) 人臉特征提取,基于本地人臉圖庫(kù)運(yùn)用FaceNet網(wǎng)絡(luò)進(jìn)行人臉特征的向量提取,經(jīng)過(guò)深度學(xué)習(xí)網(wǎng)絡(luò)會(huì)提取到的128 維特征向量矩陣。

4) 存儲(chǔ)人臉特征,將人臉圖像提取的128 位的特征向量存入到數(shù)據(jù)庫(kù)。

5) 動(dòng)態(tài)圖像采集,通過(guò)攝像頭終端每間隔3 秒鐘采集時(shí)長(zhǎng)為一秒的短視頻20f/s,并從中平均抽樣5 禎的圖像作為識(shí)別圖片。

6) 提取人臉特征提取,重復(fù)上述(2~3) 步的操作,提取出5 張動(dòng)態(tài)圖像的特征向量。并進(jìn)行均值計(jì)算,得出1 個(gè)特征向量矩陣。

7) 載入本地人臉庫(kù),將數(shù)據(jù)表中存放的靜態(tài)人臉特征矩陣以numpy 模塊格式進(jìn)行載入,而人臉信息則封裝入JSON 字符串。

8) 歐式距離計(jì)算,將步驟(6) 中得出的特征向量于載入的本地特征矩陣庫(kù)中的特征向量運(yùn)用式(1) 計(jì)算歐式距離d

9) 識(shí)別結(jié)果輸出, 如果歐式距離d 大于預(yù)訂設(shè)置的閥值則認(rèn)定為匹配失敗則是輸出Unknown,反之d 小于閥值則匹配成功輸出本地庫(kù)中的用戶(hù)標(biāo)簽信息。

4.4 模型訓(xùn)練

LFW 數(shù)據(jù)集主要應(yīng)用對(duì)人臉識(shí)別的準(zhǔn)確度的測(cè)試上,并采用遷移學(xué)習(xí)的方式對(duì)該數(shù)據(jù)集進(jìn)行訓(xùn)練[4]。從數(shù)據(jù)集中隨機(jī)選擇5 000 對(duì)由人臉組成的人臉圖片識(shí)別對(duì),其中2 500 對(duì)的兩張人臉圖片來(lái)自于同一個(gè)人,另2 500 對(duì)的兩張人臉圖片來(lái)自于不同的人。測(cè)試過(guò)程中LFW 隨機(jī)給出1 對(duì)照片,詢(xún)問(wèn)被測(cè)系統(tǒng)兩張照片是否屬于同一個(gè)人,系統(tǒng)正確或錯(cuò)誤兩種答案。將這5 000對(duì)人臉測(cè)試的系統(tǒng)答案與真實(shí)答案的比值就是人臉識(shí)別準(zhǔn)確率。

4.5 閾值測(cè)算

真正例率tpr表示測(cè)試結(jié)果中通過(guò)預(yù)測(cè)正確的次數(shù)占所有匹配結(jié)果為真的比值。tp表示模型中匹配結(jié)果為真且預(yù)測(cè)也正確的次數(shù),fn為預(yù)測(cè)錯(cuò)誤但匹配結(jié)果正確。表示模型其計(jì)算公式如下:

image.png    image.png

假正例率表述預(yù)測(cè)結(jié)果錯(cuò)誤次數(shù)占所有匹配結(jié)果為真的比例,記作fpr。其計(jì)算公式如下:

image.png   image.png

(3)式中,fp表示模型預(yù)測(cè)為真但匹配答案錯(cuò)誤,tn表示預(yù)測(cè)為錯(cuò)匹配結(jié)果為假的次數(shù)[2]。那么,經(jīng)過(guò)對(duì)數(shù)據(jù)模型的訓(xùn)練去尋求一個(gè)閾值使得tpr盡可能高,fpr盡可能低。本文在閾值區(qū)間 [0,1] 步長(zhǎng)為0.01 中尋求最佳閾值,每一次閾值迭代出來(lái)的fprtpr都記錄下來(lái),畫(huà)成一個(gè)二維平面圖。以fpr為橫坐標(biāo)、tpr為縱坐標(biāo)的二維平面圖中,最佳閾值應(yīng)該位于最接近左上角的一點(diǎn),那么可以求左上角的(0,1) 點(diǎn)與Roc 曲線(xiàn)的直線(xiàn)最短距離來(lái)確定最佳閾值。

5 結(jié)果分析

將測(cè)試集進(jìn)行分組輸入給模型進(jìn)行測(cè)試。驗(yàn)證結(jié)果如下:

image.png

測(cè)試集的準(zhǔn)確率分組測(cè)試結(jié)果顯示較接近訓(xùn)練的準(zhǔn)確率,準(zhǔn)確率約為89%,且實(shí)際部署使用的過(guò)程中會(huì)多次驗(yàn)證。因此實(shí)際部署使用過(guò)程中產(chǎn)生的誤差可忽略不計(jì)。

6 結(jié)束語(yǔ)

本文通過(guò)引入智能自習(xí)室系統(tǒng)。以解決傳統(tǒng)自習(xí)室問(wèn)題,加入FaceNet 網(wǎng)絡(luò)在中低性能的機(jī)器部署時(shí)仍有20 幀左右的速度。故有望在實(shí)際部署中以低成本解決實(shí)際問(wèn)題。

參考文獻(xiàn):

[1] 劉秀麗,陳銳.基于深度學(xué)習(xí)的人臉識(shí)別技術(shù)及其應(yīng)用場(chǎng)景探討[J].黑龍江科學(xué),2021,12(22):12-13.

[2] 李志華,張見(jiàn)雨,魏忠誠(chéng).基于MTCNN和Facenet的人臉識(shí)別系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2022,45(4):139-143.

[3] 張綠云,馬海榮,岑凱.威基于 FaceNet 的人臉識(shí)別研究與實(shí)現(xiàn)[J].信息與電腦,2022,10(10):134-136

[4] 董濤,秦勤.基于魯棒最大單純形體積的高光譜圖像快速端元提取[J].電子測(cè)量技術(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月期)



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉