滄州交通學(xué)院 邵曉康 張 恒 田春子 孫淑營
人臉識別使用較為流行的開源算法OpenCV,該算法識別準(zhǔn)確度較高,占用系統(tǒng)資源較少,響應(yīng)時間快,可離線進(jìn)行學(xué)習(xí)、識別。簽到系統(tǒng)如果跟隨課程的主程序,不僅對電腦內(nèi)存消耗會增加,而且也會增加CPU的運(yùn)算負(fù)擔(dān),因此設(shè)計的系統(tǒng)是單獨(dú)的程序系統(tǒng),不會因教師上課方式的改變而無法使用本系統(tǒng),將簽到系統(tǒng)從上課系統(tǒng)中移植出來不僅可以在不改變原來上課方式的情況下使用,而且上課系統(tǒng)更新后不用擔(dān)心簽到系統(tǒng)的異常,該系統(tǒng)可以很好的幫助教師和學(xué)生家長督促學(xué)生學(xué)習(xí),并幫助教師更好的進(jìn)行授課。
OpenCV算法是由Gary Bradsky在英特爾創(chuàng)立的,該算法的正式版本是在2000年發(fā)布的。2005年OpenCV算法在DARPA大戰(zhàn)中獲得冠軍,隨著時間的推移,OpenCV算法應(yīng)用的場景越來越多,從開始的用于汽車開發(fā),到現(xiàn)在的計算機(jī)視覺,不僅如此,OpenCV算法支持多種語言,如C++、Python、Java等,還可以在不同的系統(tǒng)平臺上使用。
用戶首次登錄,系統(tǒng)會自動檢測是否有該賬號的人臉信息數(shù)據(jù),系統(tǒng)會自動獲取用戶的登錄賬號,用此賬號來查找用戶的人臉圖像數(shù)據(jù)是否存在,當(dāng)發(fā)現(xiàn)不存在時,系統(tǒng)會提示用戶進(jìn)行相關(guān)的人臉數(shù)據(jù)的采集,用戶同意進(jìn)行人臉數(shù)據(jù)采集時,系統(tǒng)使用OpenCV算法對用戶的人像的采集,并保存人臉數(shù)據(jù)。
當(dāng)用戶登錄驗(yàn)證成功之后系統(tǒng)對已存儲的人臉數(shù)據(jù)進(jìn)行檢測,當(dāng)發(fā)現(xiàn)無本用戶人臉數(shù)據(jù)時,系統(tǒng)會提醒用戶進(jìn)行人臉存儲,當(dāng)用戶同意人臉數(shù)據(jù)采集時,系統(tǒng)將會打開攝像頭并獨(dú)處每一幀的圖像,此時開始進(jìn)行人臉采集并進(jìn)行相關(guān)的存儲。
系統(tǒng)啟動人臉檢測,此時系統(tǒng)會讀取每一幀的圖像,當(dāng)讀取圖像成功時,系統(tǒng)會將所識別的人臉以及用戶Id標(biāo)注在人臉識別的視頻圖像中。
用戶登錄之后并進(jìn)行了相關(guān)的人臉數(shù)據(jù)的存儲之后,系統(tǒng)會檢測數(shù)據(jù)庫中是否有該用戶的基本信息,當(dāng)發(fā)現(xiàn)未有該用戶的信息時,系統(tǒng)會提示用戶進(jìn)行基本信息的填寫,從而達(dá)到信息的上傳,方便對課程的統(tǒng)計,以及課程點(diǎn)名的標(biāo)注。
教師成功完成登錄并進(jìn)入系統(tǒng)主頁時,點(diǎn)擊開始上課功能,此時系統(tǒng)會進(jìn)行相關(guān)的提示,提示操作者進(jìn)行相關(guān)的信息的填寫,這些信息作為課程的上課的基本信息,可作為后面的課程統(tǒng)計。
當(dāng)教師點(diǎn)擊上課按鈕進(jìn)入上課界面以后,系統(tǒng)會提示用戶填寫基本信息,當(dāng)用戶填寫完對應(yīng)的信息之后,該課程則開課成功,此時系統(tǒng)之系統(tǒng)會自動生成一個上課密令,上課密令需要告訴給學(xué)生用戶。
教師發(fā)布課程以后,會得到課程的開課密令,學(xué)生通過教師得到該密令之后,可以通過我要學(xué)習(xí)按鈕進(jìn)入上課學(xué)習(xí)模式,在相應(yīng)的界面填寫上課命令,會得到該課程的基本信息。
學(xué)生填寫密令之后,系統(tǒng)會在數(shù)據(jù)庫中查詢該課程的基本信息,當(dāng)該密令存在時,系統(tǒng)會將該課程的基本信息顯示到課程信息界面,用戶可以核對課程信息,從而檢查課程是否正確,當(dāng)用戶檢查該課程無誤時,可以點(diǎn)擊加入該課程。
進(jìn)入上課時間后,系統(tǒng)會隨機(jī)的進(jìn)行人臉簽到,每節(jié)課簽到次數(shù)不固定,簽到時間不固定,每次簽到時間約為30s。
學(xué)生填寫完成密令之后,會進(jìn)入相應(yīng)的課程,當(dāng)進(jìn)入上課時間后,系統(tǒng)會自動進(jìn)入隨機(jī)簽到模式,上課期間會進(jìn)行多次人臉識別簽到,當(dāng)學(xué)生簽到成功以后,系統(tǒng)會記入簽到時間、簽到課程信息等相關(guān)信息,當(dāng)學(xué)生未簽到成功時,系統(tǒng)會將本次未簽到成功的時間、課程信息等相關(guān)信息存入數(shù)據(jù)庫中,方便教師課程結(jié)束后統(tǒng)計,每次簽到時間未30s,簽到完成后簽到界面會立即消失,當(dāng)未簽到成功時,簽到界面也會立刻消失,簽到過程中為了保證簽到準(zhǔn)確性,在簽到時如果界面中出現(xiàn)了多張系統(tǒng)信息人臉,此時系統(tǒng)不會啟動簽到成功機(jī)制,當(dāng)簽到界面出現(xiàn)唯一人臉時,簽到成功機(jī)制才會啟動。
抬頭檢測功能是學(xué)生簽到功能的衍生功能,該功能是在整個課程的上課階段進(jìn)行的,抬頭檢測主要是檢測學(xué)生是否聽課,以及對整個課程是否滿意的檢測。抬頭檢測還能反映出同學(xué)們在本節(jié)課中的狀態(tài)及時發(fā)現(xiàn)學(xué)生的問題,及時對學(xué)生針對性輔導(dǎo)。
抬頭檢測主要是為了對課程滿意度的檢測,學(xué)生在課程中抬頭的次數(shù)可以十分直觀的表現(xiàn)出該課程是否受學(xué)生的喜歡,同時也可以在一定程度上表現(xiàn)出該課程教師的上課氛圍,以及該教師的授課是否被學(xué)生認(rèn)可,該檢測功能基于OpenCV算法的人臉檢測功能,在上課時間段內(nèi)系統(tǒng)會多次進(jìn)行學(xué)生抬頭的檢測,每次檢測時間較短,檢測時間隨機(jī),本設(shè)計中的抬頭檢測主要為了反映教師的授課情況,每節(jié)課結(jié)束后均會對課程的整體抬頭率進(jìn)行統(tǒng)計,當(dāng)該課程結(jié)束時教師檢查該課程時,可以將該課程的學(xué)生抬頭率導(dǎo)出,將該抬頭率作為本課程的教學(xué)評估的部分參考。
課程情況導(dǎo)出,主要是將本節(jié)課的學(xué)生簽到情況進(jìn)行相關(guān)的導(dǎo)出,方便教師對課程的統(tǒng)計,以及學(xué)生的到課率統(tǒng)計。
課程情況導(dǎo)出主要為了方便教師更加方便的獲取本節(jié)課的學(xué)生簽到情況,以及學(xué)生到課率情況,教師課程結(jié)束后在主頁點(diǎn)擊簽到情況導(dǎo)出,系統(tǒng)會前往數(shù)據(jù)庫中查詢本節(jié)課的課程情況,獲取本節(jié)課的學(xué)生簽到情況,從而獲取本節(jié)課的簽到情況,然后將獲取的數(shù)據(jù)轉(zhuǎn)換為Excel表格形式,最后將本節(jié)課的情況導(dǎo)出到本地主機(jī),這樣不僅方便了教師對學(xué)生的簽到,也在一定程度上節(jié)省了傳統(tǒng)簽到方式所帶來的對課程時間的浪費(fèi),而且這種方式可以更加直觀的表現(xiàn)出本節(jié)課的到課情況,不僅如此,本節(jié)課的課程信息也可作為輔導(dǎo)員對潛在問題學(xué)生定位,幫助輔導(dǎo)員更好的尋找潛在問題學(xué)生,幫助潛在問題學(xué)生更好的去學(xué)習(xí),積極學(xué)習(xí)課程知識。
本設(shè)計的反饋功能主要分為兩種,一種為用戶在使用過程中如果發(fā)生異常的錯誤時,系統(tǒng)會主動將發(fā)生在錯誤時發(fā)送系統(tǒng)運(yùn)行日志到管理員郵箱,通過日志的記錄情況來判斷發(fā)生錯誤的模塊以及錯誤情況,另一種反饋功能為用戶主動提交反饋,用戶可以在主頁面選擇反饋,從而主動將各種自己在使用過程中意見以及對整個系統(tǒng)的建議發(fā)送給管理員。
本次測試分別從相應(yīng)時間、系統(tǒng)資源占用等方面進(jìn)行敘述,通過進(jìn)行相關(guān)的性能測試,完成對系統(tǒng)的全面測試,防止用戶使用過程中發(fā)生錯誤。
(1)性能指標(biāo)預(yù)測是測試系統(tǒng)性能的對比參考材料,具體指標(biāo)情況如表1所示。
表1 性能指標(biāo)
(2)測試工具:Quest公司的Quest BenchMark Factory for Database。
(3)測試環(huán)境:使用PC機(jī),安裝Windows 10系統(tǒng),數(shù)據(jù)使用云數(shù)據(jù)庫MySQL。
(4)測試過程:
該測試工具主要測試的是數(shù)據(jù)的承載能力,本設(shè)計主要的測試內(nèi)容為數(shù)據(jù)庫的測試,因此,使用該測試工具是十分合適的選擇,該測試工具通過對數(shù)據(jù)庫工作負(fù)責(zé)、數(shù)據(jù)庫代碼可拓展性、行業(yè)標(biāo)準(zhǔn)的基準(zhǔn)、虛擬用戶和食物負(fù)載模擬等測試,對數(shù)據(jù)庫進(jìn)行全方位的測試,全方位的對數(shù)據(jù)庫進(jìn)行測試。
(5)測試結(jié)果:本次測試結(jié)果如表2所示。
表2 性能指標(biāo)
測試結(jié)果顯示,本系統(tǒng)的性能可以完成滿足本設(shè)計的期望值,隨然后存在一些隱性問題,單各項(xiàng)指標(biāo)優(yōu)秀,可以滿足正常的使用。
本論文對基于OpenCV算法的人臉識別課堂簽到系統(tǒng)的設(shè)計與實(shí)現(xiàn)進(jìn)行了詳細(xì)的描述與說明。在技術(shù)上,針對系統(tǒng)開發(fā)中的關(guān)鍵性技術(shù)進(jìn)行了較為詳細(xì)的較少,還對系統(tǒng)的設(shè)計、實(shí)現(xiàn)等方面濟(jì)寧了詳盡的介紹,討論了系統(tǒng)測試原則及性能。
本設(shè)計雖然基本完成了功能要求,但有些方面也需要進(jìn)一步的研究和完善。
(1)論文只考慮了用戶的基本使用情況,并未對教師用戶的功能更加深入的研究,例如在線文件發(fā)送、作業(yè)查看等。
(2)針對于信息導(dǎo)出模塊,該模塊所使用的用戶信息并不全面,本設(shè)計并未對該部分?jǐn)?shù)據(jù)進(jìn)行更深入的數(shù)據(jù)挖掘。