鄧熠 畢磊 薛甜 范亞江 侯丹
摘 要:文章針對傳統(tǒng)考勤效率過低和現(xiàn)有人臉識別技術(shù)需要近距離刷臉的弊端,設(shè)計了一個基于深度學習的人臉識別課堂實時考勤系統(tǒng)。該系統(tǒng)以樹莓派和Intel Movidius神經(jīng)棒NCS為硬件平臺,使用Python和OpenCV實現(xiàn)了基于深度卷積神經(jīng)網(wǎng)絡(luò)的人臉識別,并通過設(shè)計的考勤系統(tǒng)來保存識別結(jié)果和管理考勤數(shù)據(jù)。這種新型考勤系統(tǒng)在簡化考勤流程的同時避免了傳統(tǒng)考勤機需要近距離刷臉的弊端,支持遠距離多人同時與實時識別,提高了考勤效率。
關(guān)鍵詞:人臉識別;考勤系統(tǒng);卷積神經(jīng)網(wǎng)絡(luò);結(jié)構(gòu)查詢語言
0?引言
隨著互聯(lián)網(wǎng)技術(shù)、計算機技術(shù)、嵌入式技術(shù)和生物識別技術(shù)的飛速發(fā)展,公司、學校和各企事業(yè)單位的考勤方法也有了新的轉(zhuǎn)變。課堂考勤是教學過程中的一個重要環(huán)節(jié),傳統(tǒng)的人工統(tǒng)計方法會造成教學時間的大量浪費。本設(shè)計提出了一個基于人臉識別的課堂考勤系統(tǒng),大大節(jié)省了考勤占用的時間。人臉識別目前已經(jīng)逐漸在各領(lǐng)域得到應用,其對人精準并且便利的辨別特性使得各領(lǐng)域逐漸加大對人臉識別的重視和應用推廣。近年來相關(guān)政策的頻頻出臺,也為人臉識別技術(shù)的發(fā)展提供了政策保障,未來人臉識別將會有更大的發(fā)展空間和應用市場。由于人工簽到和人工統(tǒng)計等傳統(tǒng)考勤方法不但浪費時間和人力物力,還存在著容易被忘記、被冒用和被替代等缺點,使得考勤的管理難度增加,人臉識別課堂考勤系統(tǒng)完全可以解決此類問題,具有很大的作用[1]。
1?系統(tǒng)分析
人臉識別課堂考勤系統(tǒng)本著為學校更便捷、高效地管理考勤,借助該系統(tǒng)可快速完成移動課堂的考勤。同時,目前的人臉識別算法已較為成熟,可以保證該系統(tǒng)具有較高的可靠性。該系統(tǒng)運用樹莓派的配置、MySQL數(shù)據(jù)庫的使用和部署、利用Python調(diào)用OpenCV等技術(shù)的研發(fā)來打造此系統(tǒng)。
基于圖像分類和目標檢測的人臉識別有三大模塊:第一是采集數(shù)據(jù)集,第二是模型訓練,第三是人臉識別。在人臉識別中使用了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),卷積神經(jīng)網(wǎng)絡(luò)是一種深度前饋人工神經(jīng)網(wǎng)絡(luò),可以進行大型圖像處理,已成功地應用于圖像識別Intel Movidius神經(jīng)計算棒NCS,可以幫助低性能的設(shè)備實時運行CNN,進行一些圖像分類等處理。目前的人臉識別算法較為成熟,可以保證該系統(tǒng)具有較高的可靠性。運用樹莓派的配置、MySQL數(shù)據(jù)庫的使用和部署、利用Python調(diào)用OpenCV等技術(shù)的研發(fā)來打造此系統(tǒng)。
本文所涉及的系統(tǒng)是一個基于樹莓派的小型系統(tǒng),不用耗費大量的資源。在開發(fā)系統(tǒng)時,使用的軟件都是開源的,對硬件的配置要求不高[2-3]。
2?系統(tǒng)總體設(shè)計
2.1? 功能設(shè)計
人臉識別考勤系統(tǒng)主要由登錄模塊、識別模塊、考勤簽到模塊以及后臺管理模塊組成。
教師端模塊:用戶可以注冊登錄,登錄后可以對個人信息進行管理,包括修改個人信息,登錄密碼,創(chuàng)建課程、生成課程二維碼,創(chuàng)建簽到、取消簽到、查看考勤匯總表等。
學生端模塊:用戶可以注冊登錄,登錄后可以對個人信息進行管理,包括修改個人信息,登錄密碼以及人臉信息錄入,可以加入課程,查看公告和新聞,查看本人簽到記錄。
管理員模塊:查看和刪除操作不規(guī)范的用戶,可以修改人臉識別的精確度,并確保用戶的個人信息不被泄露,也可以重置系統(tǒng),發(fā)布新版本,發(fā)布公告。
2.2? 系統(tǒng)界面設(shè)計
系統(tǒng)的界面主要采用PyQt設(shè)計。PyQt是一個創(chuàng)建GUI應用程序的工具包,是Python編程語言和Qt庫的成功融合。Python快速開發(fā)Gui程序,而Qt庫是目前最強大的庫之一。Qt廣泛應用于嵌入式開發(fā)中,只要編寫一次程序和UI,就能跨不同的桌面與嵌入式系統(tǒng)進行部署,不用修改源代碼,從而減少了項目的開發(fā)成本。項目的系統(tǒng)界面包括以下3個。
(1)角色登錄界面:給用戶以及管理員提供登錄界面;
(2)考勤展示界面:給學生考勤的時候提供考勤數(shù)據(jù)以及考勤結(jié)果的展示;
(3)后臺管理界面:給師生以及管理員提供不同的管理界面,不同的角色有不同的功能界面。
2.3? 嵌入式硬件設(shè)計
考勤系統(tǒng)以O(shè)penCV視覺庫為核心,設(shè)計了基于樹莓派為硬件基礎(chǔ)的人臉識別系統(tǒng)。先將需要的Linux環(huán)境經(jīng)過燒錄鏡像、配置網(wǎng)絡(luò)、安裝軟件、傳輸文件等流程,將承載系統(tǒng)的Linux環(huán)境配置好,再給Linux安裝需要的python環(huán)境,安裝OpenVINO,再配置后期實現(xiàn)人臉算法動態(tài)識別的算法神經(jīng)棒需要的USB規(guī)則,最后安裝好攝像頭[4-5]。
2.4? 數(shù)據(jù)庫設(shè)計
2.4.1 概念結(jié)構(gòu)設(shè)計
通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示。系統(tǒng)規(guī)劃出的實體共有5個,分別是管理員實體、學生實體、教師實體、課程表、簽到表。
各實體屬性如下:
管理員(管理員賬號、密碼);
學生(學號、密碼、班級、課程、考勤次數(shù)、缺勤次數(shù));
教師(教師號、密碼、負責班級);
課程表(課程號、課程名稱、時間、任課教師);
考勤表(學生學號、學生姓名、學生班級、考勤次數(shù)、缺勤次數(shù)、缺勤課程號、考勤總次數(shù))。
各個實體之間的關(guān)系如圖2所示。
2.4.2 邏輯結(jié)構(gòu)設(shè)計
系統(tǒng)共有5張數(shù)據(jù)表,分別為管理員表、學生表、教師表,課程表、考勤表。
管理員表:此表用來存儲所有管理員的信息;
學生表:此表用來存儲所有學生的詳細個人信息;
教師表:此表用來存儲所有教師的信息;
課程表:用來存儲所有學生有課程信息;
考勤表:用來存儲學生的課程簽到考勤情況。
3 系統(tǒng)設(shè)計
該系統(tǒng)的主要功能是提取人臉特征,實現(xiàn)一個人臉識別的考勤系統(tǒng),分為人臉圖像信息采集模塊、人臉識別模塊、考勤模塊。人臉識別模塊是將考勤時的人臉圖像輸入人臉識別模型中進行識別,主要是深度學習算法實現(xiàn)過程;考勤模塊是將學生人臉識別結(jié)果保存到數(shù)據(jù)庫中的考勤表,即考勤登記,并對考勤信息進行管理。
3.1? 人臉圖像信息采集模塊
人臉圖像信息采集模塊主要是預先采集學生人臉圖像并進行預處理和訓練人臉識別模型。
學生入校時都會錄入個人信息,包括學號、姓名、人臉圖像等,本系統(tǒng)將這些采集好的人臉圖像存入人臉圖像特征庫。預處理過程是需要對一個人臉識別出的圖片進行一系列的處理,繼而進行下一步的工作。預處理在整個人臉識別系統(tǒng)中占據(jù)著重要的地位,只有在預處理過程中達到較高的準確度,才能更好地完成后面人臉定位及特征提取這兩大關(guān)鍵模塊。預處理模塊主要是從圖片庫中獲取圖片,獲取后的圖片可以在軟件的界面中顯示出來,以便進行識別。
訓卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),CNN是一種讓權(quán)重在不同位置共享的神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)先選擇一個局部區(qū)域去掃描整張圖片,進而對人臉進行檢測。
3.2? 人臉識別模塊
本模塊是整個系統(tǒng)的核心部分,主要功能是識別人臉檢測模塊中檢測到的人臉圖像。首先進行歸一化處理,然后進行特征提取并與人臉特征圖像庫逐一比較,識別身份,同時在本系統(tǒng)中記錄出勤情況。人臉識別模塊的設(shè)計流程如圖3所示。
該模塊采用深度學習中的卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉識別功能。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學習的代表算法。卷積神經(jīng)網(wǎng)絡(luò)主要是由輸入層、卷積層、池化層、全連接層和輸出層組成,卷積神經(jīng)網(wǎng)絡(luò)的典型結(jié)構(gòu)如圖4所示[6]。
設(shè)第i層的特征圖為Hi,則卷積層Hi的生成過程可描述為下式:
式中:為傳遞至第i層的權(quán)值向量:符號為卷積操作,bi為偏移向量。與飽和非線性函數(shù)相比,不飽和非線性函數(shù)能較好地避免梯度爆炸或者梯度消失問題,也能提高模型訓練速度。
下采樣層有兩個作用:(1)降維;(2)保持特征尺度不變性。原始圖像經(jīng)過卷積層和下采樣層交替變換后,再接入一個全連接網(wǎng)絡(luò)利用所提取的特征對圖像分類。分類計算后的結(jié)果是一個關(guān)于安全概率分布的向量:
式中:H0為原始圖像。式(3)為原始圖像經(jīng)過一系列的特征提取、組合變換后,得到標簽概率。深度神經(jīng)網(wǎng)絡(luò)中權(quán)值參數(shù)W是利用訓練數(shù)據(jù)反復訓練模型,使得損失函數(shù)最小化確定好。常見的損失函數(shù)有均方誤差:
式中:n為類別的數(shù)量;Yi為第i個樣本的實際類別;Y-i為模型預測的類別。在利用大數(shù)據(jù)進行模型訓練時,可能會導致過擬合現(xiàn)象,為了避免這種情況,需采用模型正則化等技術(shù):
式中:ω用來控制正則化的強度。CNN訓練的過程使用的是梯度下降算法。通過訓練誤差的反向傳播,逐層修正網(wǎng)絡(luò)中的權(quán)值參數(shù)W和偏值參數(shù)b:
式中:學習速率η控制學習步長[7]。
3.3? 考勤模塊
考勤模塊是整個系統(tǒng)中最后一部分。在使用人臉識別進行課堂考勤時,系統(tǒng)會檢測到到堂同學的人臉圖像,并與人臉圖像特征庫中的圖像逐一比較驗證,并將出勤情況記錄下來。識別出的人臉登記為出勤,未識別的人臉即為缺勤,最后把出勤情況記錄在表格中展示出來,方便管理人員掌握學生上課的出勤情況。
4?結(jié)語
本文以人臉識別技術(shù)為基礎(chǔ),從學生課堂自動考勤需求出發(fā),設(shè)計了基于人臉識別的學生課堂考勤系統(tǒng)。本文主要介紹了基于深度學習的人臉識別課堂考勤系統(tǒng)的設(shè)計與實現(xiàn)。該系統(tǒng)除了具有基本的功能外,重點在于該系統(tǒng)在普遍性、穩(wěn)定性、系統(tǒng)需求分析等方面做了詳細設(shè)計,并最終完成了該考勤系統(tǒng)。
本文開發(fā)的基于人臉識別的學生課堂考勤系統(tǒng)所需硬件簡單,性價比高,且性能穩(wěn)定,所開發(fā)出的系統(tǒng)具有較好的工程應用價值。程序完成開發(fā)后也經(jīng)過了一系列測試,整體來說還是沒有發(fā)現(xiàn)明顯的操作邏輯錯誤。在本次系統(tǒng)的設(shè)計過程中,筆者不僅對各項專業(yè)知識有了進一步的認識,而且學到了很多GUI頁面開發(fā)的技術(shù)技巧,對以后的工作和學習有很大幫助。
[參考文獻]
[1]劉洋.基于人臉識別技術(shù)的教室考勤系統(tǒng)的設(shè)計和實現(xiàn)[D].成都:西南交通大學,2016.
[2]王靜.高校智能化考勤系統(tǒng)的設(shè)計與實現(xiàn)[J].信息與電腦(理論版),2015(16):78-79.
[3]禮冬雪,王啟民,李源,等.基于嵌入式系統(tǒng)的小型生物質(zhì)鍋爐智能控制器[J].沈陽工程學院學報(自然科學版),2017(1):15-19.
[4]張鈺敏,葉傳奇,張淑媛,等.樹莓派人臉識別系統(tǒng)的開發(fā)與研究[J].電腦知識與技術(shù),2020(13):221-222.
[5]陳超,黃佳.基于深度學習的樹莓派人臉與表情識別系統(tǒng)研究與設(shè)計[J].網(wǎng)絡(luò)安全技術(shù)與應用,2019(12):50-52.
[6]李雄,文開福,鐘小明,等.基于深度學習的人臉識別考勤管理系統(tǒng)開發(fā)[J].實驗室研究與探索,2019(7):115-118,123.
[7]劉杰,孫立民.深度學習人臉識別技術(shù)在考勤系統(tǒng)中的應用[J].智能計算機與應用,2020(2):17-22.
(編輯 傅金睿)