楊振盛 李江華
摘要:在大學(xué)里面上課點(diǎn)到是一件麻煩的事,老師嫌點(diǎn)到耽誤上課時(shí)間,存在不少逃課的學(xué)生抱著僥幸的心理不去上課的問題,設(shè)計(jì)一款基于人臉識(shí)別的校園課堂出勤網(wǎng)頁軟件。利用JAVA技術(shù)實(shí)存儲(chǔ)和文章信息的上傳,前端通過基于人臉識(shí)別的校園課堂出勤網(wǎng)頁進(jìn)行照片人臉匹配,前后端通過JSON數(shù)據(jù)交互。經(jīng)過測(cè)試表明,該系統(tǒng)可以有效地滿足基于人臉識(shí)別的方式,將缺勤學(xué)生姓名等信息存儲(chǔ)并展示。
關(guān)鍵詞:出勤;人臉識(shí)別;校園;網(wǎng)頁;JSON數(shù)據(jù)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)19-0075-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
人臉識(shí)別是將課堂學(xué)生的人臉信息與在云端人臉庫(kù)保存的人臉信息進(jìn)行匹配,若匹配成功,則成功出勤,若沒有匹配成功,人臉庫(kù)中沒有匹配的學(xué)生信息將作為缺勤學(xué)生展示在前端頁面上,可視化界面可以供老師對(duì)學(xué)生出勤情況進(jìn)行管理。在大學(xué)里面上課點(diǎn)到是一件麻煩的事,老師嫌點(diǎn)到耽誤上課時(shí)間,不少逃課的學(xué)生抱著僥幸的心理而不去上課。Face++提供一個(gè)將照片中所有人臉分割成圖API和頭像匹配的API,只是不能輕易被用戶獲取,此網(wǎng)頁軟件旨在解決這一問題,用戶為教室學(xué)生拍一張照,與班級(jí)人臉庫(kù)圖片進(jìn)行匹配即可得到出勤信息。此網(wǎng)站不僅減輕了老師點(diǎn)到工作,而且更加便捷地統(tǒng)計(jì)出班上同學(xué)每節(jié)課的出勤情況,利用人臉技術(shù)實(shí)現(xiàn)學(xué)生的課堂簽到并查缺勤,同時(shí)解決了高校老師點(diǎn)到浪費(fèi)時(shí)間和學(xué)生找人簽到的問題。
1 系統(tǒng)功能結(jié)構(gòu)的設(shè)計(jì)
1.1 服務(wù)端系統(tǒng)功能
如圖1所示后臺(tái)具有如下功能:
1)創(chuàng)建人臉庫(kù)
學(xué)校負(fù)責(zé)人用管理員賬號(hào)登錄后臺(tái)網(wǎng)站,創(chuàng)建一個(gè)以學(xué)校命名的人臉庫(kù),完成后系統(tǒng)返回學(xué)校編號(hào)ID(ID用于創(chuàng)建學(xué)校內(nèi)的班級(jí))。
2)創(chuàng)建班級(jí)
學(xué)校名稱一欄填寫學(xué)校名稱或者學(xué)校編號(hào)ID,班級(jí)名稱為所要?jiǎng)?chuàng)建的班級(jí)名字,如計(jì)算機(jī)xxx班,完成后系統(tǒng)返回班級(jí)編號(hào)ID。
3)導(dǎo)入學(xué)生人臉照片
就可以根據(jù)學(xué)校編號(hào)ID和班級(jí)編號(hào)ID,批量導(dǎo)人班級(jí)學(xué)生人臉庫(kù)。
4)修改密碼
1.2 網(wǎng)頁端的主要功能介紹
如圖2所示網(wǎng)頁端具有如下功能:
1)用戶選擇注冊(cè),注冊(cè)的為一般用戶,注冊(cè)后用戶可以登錄到平臺(tái);
2)各班級(jí)學(xué)生出勤檢測(cè),教室內(nèi)抬頭率檢測(cè),人數(shù)檢測(cè);
3)用戶可以對(duì)默認(rèn)頭像進(jìn)行修改,通過常見問題模塊了解網(wǎng)頁平臺(tái)的使用;
4)對(duì)用戶查詢的缺勤名單結(jié)果進(jìn)行保存管理,提供缺勤名單下載。
2 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)
2.1 數(shù)據(jù)加密提高安全性
由于基于人臉識(shí)別的校園課堂出勤網(wǎng)頁的各大功能用戶需要注冊(cè)后才能使用,并且在識(shí)別后顯示班級(jí)缺勤學(xué)生,在用戶使用過程中,注冊(cè)登錄時(shí)密碼加密是有必要的,所以數(shù)據(jù)安全性是非常重要的。采用嚴(yán)格的身份認(rèn)證來確保用戶的安全性,我們通過前后臺(tái)分離,數(shù)據(jù)庫(kù)的加密來保證整個(gè)系統(tǒng)的安全性。數(shù)據(jù)在傳輸過程中為了避免數(shù)據(jù)被他人截取和非法修改數(shù)據(jù),要對(duì)數(shù)據(jù)進(jìn)行RSA算法加密處理,保證數(shù)據(jù)的安全性,當(dāng)用戶的數(shù)據(jù)傳到后臺(tái)中,后臺(tái)獲取可以通過解密獲得正確的數(shù)據(jù)信息,再把數(shù)據(jù)存儲(chǔ)下來。同理,用戶從后臺(tái)提取數(shù)據(jù)也要經(jīng)進(jìn)行加密,網(wǎng)頁端獲取到數(shù)據(jù)后進(jìn)行解密,從而保證了數(shù)據(jù)安全性和可靠性。具體如圖3所示。
2.2 圖片壓縮處理技術(shù)難點(diǎn)
Face++提供的接口僅限于上傳2MB以內(nèi)大小的圖片,但是實(shí)際上拍攝全體學(xué)生的照片大小大多超過2MB,而且圖片過大上傳的速度過慢會(huì)影響用戶體驗(yàn)。我們了解到一個(gè)圖片壓縮庫(kù)imageConversion在Vue.js內(nèi)可以在圖片上傳之前對(duì)圖片進(jìn)行自定義式的壓縮且使用方便。為追求用戶體驗(yàn),我們將用戶上傳的3-5MB之內(nèi)的所有圖片都?jí)嚎s在2MB以下且不失真,完美解決用戶圖片過大的問題。
2.3 簽到結(jié)果響應(yīng)速度技術(shù)難點(diǎn)
項(xiàng)目初期簽到結(jié)果響應(yīng)速度較慢,首先把圖片將圖片上傳到云端生成檢測(cè)集(根據(jù)圖片檢測(cè)到的人臉token),根據(jù)檢測(cè)集對(duì)云端人臉庫(kù)的匹配生成匹配集(匹配到的學(xué)生人臉token集合)和驗(yàn)證集(應(yīng)該有的學(xué)生的人臉token集合)
出問題過程:
匹配集=遍歷后每一個(gè)token都訪問一次云端人臉庫(kù),生成匹配token
簽到學(xué)生=匹配集和驗(yàn)證集的交集
缺勤學(xué)生=驗(yàn)證集一匹配集
初期我們使用for循環(huán)進(jìn)行遍歷,發(fā)現(xiàn)響應(yīng)速度較慢的情況下,采用Java8的新特性——stream,在設(shè)想中,將for循環(huán)的操作改放與stream中,因?yàn)橛?jì)算是從內(nèi)存移至CPU中,處理速度會(huì)更快,但在實(shí)際過程中速度提升的不是特別明顯,因?yàn)樵蚴且驗(yàn)槠ヅ浼纳珊臅r(shí)過長(zhǎng)。
假設(shè)一個(gè)token的訪問是1秒,60個(gè)就是1分鐘了,顯然這是不可接受的,于是我們將其改為異步訪問,用多線程的方式嘗試解決,在對(duì)一張含40學(xué)生的圖片進(jìn)行檢測(cè)的時(shí)間由Imin以上降至25s左右
3 系統(tǒng)界面設(shè)計(jì)
校園課堂智能出勤軟件,是一款面向高校師生的教學(xué)輔助類網(wǎng)頁軟件,其核心功能為利用人臉技術(shù)實(shí)現(xiàn)學(xué)生的課堂簽到并查缺勤,同時(shí)本軟件也為師生提供了檢測(cè)抬頭率、檢測(cè)人數(shù)、記錄下載等功能。
1)注冊(cè)登錄模塊:注冊(cè)是為了使得用戶信息更好的管理,登錄是用戶使用平臺(tái)的一個(gè)人口。
2)查缺勤功能模塊:提供檢測(cè)缺勤的渠道,識(shí)別后將缺勤學(xué)生名單進(jìn)行顯示。
3)查人數(shù)功能模塊:提供檢測(cè)人數(shù)的渠道,識(shí)別后將照片內(nèi)所有人數(shù)進(jìn)行顯示。
4)查抬頭率功能模塊:提供檢測(cè)抬頭率的渠道,識(shí)別后將照片內(nèi)學(xué)生抬頭率進(jìn)行顯示,側(cè)面反映出學(xué)生聽課效率。
5)收藏記錄模塊:此模塊提供曾經(jīng)查詢的記錄,并提供下載缺勤名單。
6)用戶個(gè)人中心模塊:修改頭像,用戶的問題反饋以及網(wǎng)頁使用幫助等信息,以供用戶進(jìn)行參考和選擇。
4 結(jié)束語
該軟件利用進(jìn)行人臉識(shí)別技術(shù)將照片和人臉進(jìn)行匹配實(shí)現(xiàn)查缺勤、查抬頭率、查人數(shù)等功能。此網(wǎng)站不僅減輕了老師點(diǎn)到工作,而且更加便捷的統(tǒng)計(jì)出班上同學(xué)每節(jié)課的出勤情況,同時(shí)解決了高校老師點(diǎn)到浪費(fèi)時(shí)間和學(xué)生找人簽到的問題。
本系統(tǒng)經(jīng)過測(cè)試,各個(gè)功能模塊運(yùn)行都很穩(wěn)定,人臉技術(shù)匹配成功率達(dá)到90%以上,實(shí)用價(jià)值和商用價(jià)值很高。
參考文獻(xiàn):
[1]梁灝.Vue.js實(shí)戰(zhàn)[Ml.北京:清華大學(xué)出版社,2017: 1-235.
[2]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2010.
[3]賀偉,李鳳.基于項(xiàng)目驅(qū)動(dòng)式教學(xué)的《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》課程實(shí)踐[J]‘計(jì)算機(jī)產(chǎn)品與流通,2019(1): 263-264.
【通聯(lián)編輯:謝媛媛】
收稿日期:2020-04-25
作者簡(jiǎn)介:楊振盛(1999-),男,江西撫州人,本科在讀;李江華(1976-),男,河南南陽人,副教授,碩士生導(dǎo)師,博士,研究方向?yàn)槊嫦虼髷?shù)據(jù)的隱私保護(hù)技術(shù)研究。