梁利亭
(三門峽職業(yè)技術(shù)學(xué)院,河南 三門峽 472000)
課堂是教學(xué)主戰(zhàn)場,科學(xué)的課堂評價體系對課堂教學(xué)質(zhì)量的提高有著重要作用。近年來,人們陸續(xù)提出了多種課堂評價方法,常見的有問卷調(diào)查法、課后評價法。這些方法基本是通過課后在學(xué)生中進行調(diào)查,并以人工統(tǒng)計方法來評價教學(xué)質(zhì)量,需要消耗大量人力、物力等,其結(jié)果也存在一定的滯后性和主觀性[1]。計算機視覺方法是通過監(jiān)控設(shè)備捕捉學(xué)生的到課、聽課等信息,通過分析捕捉到的數(shù)據(jù)進而對課堂質(zhì)量進行評價。目前市面上也出現(xiàn)了一些基于人臉識別的課堂質(zhì)量評價系統(tǒng),但由于精度、成本等問題,沒有在課堂中被廣泛推廣。因此,引入高精度、客觀以及成本可控的基于人臉檢測和表情識別的現(xiàn)代化課堂評價系統(tǒng)很有必要。
本研究所開發(fā)的課堂評價系統(tǒng),通過人臉檢測對學(xué)生課堂上的抬頭率和表情進行識別,進而客觀、準確得到學(xué)生的聽課狀態(tài),為課堂評價提供了參考,為教師提升課堂質(zhì)量提供了依據(jù)。
人臉檢測是計算機目標檢測技術(shù)的一種,也是人臉識別的基礎(chǔ)和前提,相對于計算機目標檢測技術(shù)中的通用檢測,因為人臉存在表情、膚色、飾物等因素,人臉檢測有其特殊性,
因此對于人臉模型的檢測訓(xùn)練,一般通過以下幾個步驟進行:
第一、預(yù)處理數(shù)據(jù)集
近年來,隨著FDDB、FaceDB、Wider Face等優(yōu)質(zhì)人臉數(shù)據(jù)集的公開,為人臉檢測的快速發(fā)展提供了前提和基礎(chǔ),為了保證人臉模型的實用性,一般在人臉檢測前,先對數(shù)據(jù)集進行如顏色轉(zhuǎn)變、平移變換、隨機裁剪等方式的預(yù)處理。
第二、定位人臉
預(yù)處理好圖像后,首先確定圖像中人臉的位置。對于單一人臉圖像,我們采用“滑窗”的方法進行人臉定位:用特定大小的窗口對圖像進行遍歷,對得到的所有小窗口進行判斷,分析是否存在人臉信息,最終得到人臉定位;對于多個人臉的圖片,先對圖片進行循環(huán)縮放,得到各種尺寸的圖像信息,然后把圖像信息構(gòu)造成圖像金字塔,接著用特定大小的窗口遍歷整個圖像金字塔,最后,用分類器分類、預(yù)測得到的每一個圖像窗口,確定人臉位置[2]。
第三、邊框回歸
對于得到的人臉窗口,先和原圖像進行IOU(Intersection over Union)比對,得到它們的交并比,接著優(yōu)化確定交并比的閾值,將大于閾值的圖像窗口作為目標窗口;然后使用NMS方法將目標窗口中置信度最高的窗口確定為人臉窗口;接著將人臉窗口的中心位置以及窗口的寬和長與原圖像進行回歸計算,通過微調(diào)人臉窗口的邊框最終得到人臉檢測結(jié)果。
人臉檢測所用的模型有多種,卷積神經(jīng)網(wǎng)絡(luò)是其中重要的一種。廣泛應(yīng)用于圖形、語音、深度學(xué)習(xí)等領(lǐng)域,并取得了很多突破性進展和成就。卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,其結(jié)構(gòu)上除了都包含輸入層、輸出層等網(wǎng)絡(luò)層,它的隱層一般還包括卷積層、池化層、全連接層等常用網(wǎng)絡(luò)層,這些層的結(jié)構(gòu)和功能如下所示:
(1)卷積層
卷積層的主要作用是進行卷積運算。首先設(shè)定卷積核,然后用卷積核根據(jù)特定的步長遍歷輸入圖像的特征值并進行相應(yīng)的卷積運算,卷積運算后,我們用激活函數(shù)處理運算結(jié)果,使得卷積運算的結(jié)果非線性化。
(2)池化層
池化層也被叫做下采樣層,它的主要作用是減少計算量,降低圖像處理技術(shù)中的維度,還可以防止圖形計算過于擬合。池化層和卷積層在操作上比較類似,不同的是將取最大值、取隨機值和取平均值等運算代替卷積運算。因此,池化又可以根據(jù)不同的池化運算分為隨機池化、平均池化和最大池化等。
(3)全連接層
全連接層一般位于輸出層之前,它使用如sigmoid、softmax等激活函數(shù),將上一層傳入的圖像特征值與本層的神經(jīng)元進行連接計算,最終將分類結(jié)果進行輸出。
本層的網(wǎng)絡(luò)參數(shù)整體是通過反向傳播算法計算實現(xiàn)的,它是一種特別的前饋神經(jīng)網(wǎng)絡(luò),在構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的時候,為了提高計算效率和精度,通常會加入跳躍鏈接、正則化等方法進行處理[3]。
(1)貝葉斯定理
貝葉斯定理,是解決隨機事件的條件概率等問題所提出的推理,求解表達式如下所示:
P(A)指的是事件A發(fā)生的概率,P(B)指的是事件B發(fā)生的概率,P(A|B)指的是B確定發(fā)生,則A事件發(fā)生的概率。
(2)樸素貝葉斯分類器
樸素貝葉斯分類器假設(shè)各個事件的各個屬性之間是相互獨立的,在此基礎(chǔ)上,對聯(lián)合概率進行建模,并計算目標條件概率的方法。具體公式如下:
其中,x為待分類的圖像特征集合,xm為待分類的某一個特征值,yn表示類別集合中的某一個類別項,P(x|yn)P(yn)為相互獨立假設(shè)下,各特征值在各類別下的條件概率計算值。
(1)實現(xiàn)思路
本研究在聯(lián)級的CNN基礎(chǔ)上,提出了新的人臉檢測模型,該模型由三個卷積神經(jīng)網(wǎng)絡(luò)采用級聯(lián)的方式構(gòu)造而成,這三個卷積神經(jīng)網(wǎng)絡(luò)都處在隱層中,它們的的復(fù)雜度從低到高,它們包含的卷積核和卷積層數(shù)也由少到多,它們分別命名為CNNa、CNNb 和 CNNc,模型的主要工作分為三個階段來完成,如圖1所示:
圖1 基于聯(lián)級CNN模型的人臉檢測步驟
第一、得到較為準確的候選框。先使用CNNa網(wǎng)絡(luò)模型,粗略的計算出可能存在的大量候選框,同時計算出每一個候選框的回歸向量;接著,校準第一步得到的候選框的回歸向量;然后,把重疊性高的候選框進行合并;最后得到較為準確的候選框。
第二、使用精確度和復(fù)雜度更高的CNNb模型對候選框進行進一步的篩選和邊框校準,并用非極大值抑制的方法進行合并。
第三、調(diào)整邊框回歸的閾值,使用層次更深的CNNc模型進一步細化邊框,得到更加準確的人臉特征,并輸出結(jié)果。
(2)模型訓(xùn)練
本研究對CNN三級網(wǎng)絡(luò)模型進行訓(xùn)練的人臉數(shù)據(jù)集均從開源FDDB里面進行挑選。先把尺寸為12x12,顏色模式為RGB的人臉圖片輸入至CNNa網(wǎng)絡(luò)模型中,經(jīng)過訓(xùn)練,得到大小為1x1x2的多維人臉分類信息,然后將人臉分類信息定位到定位框數(shù)組,轉(zhuǎn)換成圖片后,修改尺寸,通過CNNb的計算和處理進一步得到人臉框和定位數(shù)據(jù),在此基礎(chǔ)上,為了提高定位和識別的精度,CNNc采用邊框回歸的方式進行處理,最終得到檢測結(jié)果。
(3)模型優(yōu)化
課堂教學(xué)圖片往往場景比較大,學(xué)生數(shù)量比較多,學(xué)生位置相對集中,使用網(wǎng)絡(luò)模型對這類圖片進行人臉檢測時,往往會出現(xiàn)漏檢率高、識別和計算效率低等問題,為了解決此類問題,本研究通過以下方法對模型進行優(yōu)化和調(diào)整:
第一、圖片預(yù)處理
在課堂教學(xué)此類場景中,學(xué)生數(shù)量較多,位置集中,人臉尺寸大小基本一致,同一節(jié)課學(xué)生座位也相對固定,因此我們使用圖像金字塔法,生成大量小尺寸的圖像金字塔,這樣大大減少了課堂教學(xué)場景圖片的尺寸轉(zhuǎn)換的計算量,加快了網(wǎng)絡(luò)模型的計算速度,提高了人臉檢測的效率,具體公式如下:
其中,p_size表示待檢測圖片的大小,d_size為檢測窗口的尺寸,f_sizemax和f_sizemin表示人臉的最大值和最小值,本模型取值18;i表示縮放次數(shù),當公式中的第一個條件不滿足時,停止縮放,圖像金字塔初步形成。
第二、批量歸一化
批量歸一化的目的是在神經(jīng)網(wǎng)絡(luò)模型中,將神經(jīng)元的輸入值糾正回標準的正太分布區(qū)域中,這個標準的正太分布區(qū)域一般方差值為1,均值等于0。經(jīng)過批量歸一的過程,可以有效降低模型訓(xùn)練過程中梯度消失的現(xiàn)象,同時也能增加模型的計算速度,因此,本模型在每一層的激活函數(shù)前都先對卷積核進行了批量歸一化的變換運算,以提高整個模型各個層的收斂速度,變換公式如下:
第三、融入注意力機制
2017年注意力機制被谷歌第一次引入到Encoder-Decoder模型中,此后,便引起了廣泛的關(guān)注,目前在語音識別領(lǐng)域有較多應(yīng)用。本研究將注意力機制的思路引入到CNNc網(wǎng)絡(luò)的Conv層中,具體步驟如下:現(xiàn)將特征圖像用平均池化的方法轉(zhuǎn)換成浮點數(shù),再對全連接層各個通道的權(quán)重值進行訓(xùn)練學(xué)習(xí),接著使用激活函數(shù)將權(quán)重加入至特征圖,最終加快整體運算速度。
第四、調(diào)試參數(shù)
在多次試驗基礎(chǔ)上,對參數(shù)進行不斷調(diào)整,最終確定人臉的偏移度為正負25度之間,最大程度地獲得學(xué)生人臉信息。
經(jīng)過上述過程的運算、調(diào)試、優(yōu)化后,人臉檢測的準確率、速度和可靠性得到提升,漏檢率明顯下降,可以滿足后續(xù)要求,測試效果如圖2所示:
圖2 模型優(yōu)化效果圖
(1)提取臉部特征
用Dlib工具提取人臉窗口的特征點,Dlib默認提取68個人臉關(guān)鍵特征點,這68個特征點中,鼻子、臉部輪廓等18個特征點對人臉表情意義不大,在此,我們將其去掉。
(2)獲得HOG特征
首先,將檢測到的窗口大小統(tǒng)一轉(zhuǎn)換成36x36;接著使用matplotlib工具將圖像灰度化;然后為了降低噪聲對圖像的干擾,使用Gamma校正法通過調(diào)整圖像的對比度,對圖像進行歸一化處理;接著計算特征圖像中每一個像素的大小和方向;然后將圖形等分成方形小格(Cells),計算出梯度直方圖;最后,將得到的Cells組成成塊,再按每一塊的特征向量進行串聯(lián)組合,從而得到圖像的HOG 特征。
(3)模型訓(xùn)練
表情識別的模型訓(xùn)練主要通過以下兩個步驟完成:
第一、計算特征工程。先將每一個臉部的HOG特征圖和計算得到的人臉特征點重新轉(zhuǎn)換成向量圖。再用scikit-learn提供的工具對得到的向量圖進行篩選和預(yù)處理,形成特征工程。
第二、訓(xùn)練表情識別網(wǎng)絡(luò)模型
先隨機打亂特征工程提供的所有數(shù)據(jù)集,接著把他們平均分成4部分,然后使用交叉驗證的方法對4個分類進行訓(xùn)練,整個訓(xùn)練過程均基于樸素貝葉斯網(wǎng)絡(luò)接口,具體過程如下所示:首先建立基于貝葉斯分類模型,接著對網(wǎng)絡(luò)模型中alpha平滑參數(shù)進行調(diào)整和優(yōu)化,然后使用類先驗概率的方法,得到樣本中對于每一種課堂表情(“認真聽講”“疑惑狀態(tài)”“理解掌握”“抗拒不屑”)所對應(yīng)的概率值,最后使用joblib.dump函數(shù)多分類模型進行保存。
利用上述過程進行訓(xùn)練和調(diào)優(yōu),得到表情識別準確率為73%,因為人臉標簽設(shè)置原因,“認真聽講”和“理解掌握”兩種模型的人臉特征比較相似,分類器比較難對其作出特別準確的判斷,因此,整個模型的準確率不是特別高。如果把“認真聽講”“疑惑狀態(tài)”“理解掌握”“抗拒不屑”四種表情分為“聽講”和“不聽講”,表情識別的準確率可以提升至93%,符合預(yù)期要求。
本文主要通過計算學(xué)生課堂的“抬頭聽課率”和“學(xué)生面部表情”這兩項指標來評價課堂效果。
學(xué)生“抬頭聽課率”情況可以反映其聽課狀態(tài),本文首先每隔10秒鐘對班級學(xué)生進行全面的人臉檢測,因為同一節(jié)課中,學(xué)生位置相對固定,因此,本文對檢測到的人臉信息按位置信息進行編號,每一個編號代表一名同學(xué)。接著計算檢測到的某一編號人臉在總檢測人臉中出現(xiàn)的次數(shù),可得到該學(xué)生在課堂上的抬頭聽課率。最后用全班同學(xué)的抬頭聽課次數(shù)和總?cè)藬?shù)進行比較,再通過平均值計算,可得到課堂的整體抬頭聽課率,具體公式如下:
其中,t表示檢測到的人臉次數(shù),M表示總?cè)藬?shù)。
通過課堂整體抬頭聽課率的計算,可以從一定程度上反映班級學(xué)生在課堂上的聽課和專注度等情況,經(jīng)過多次真實實驗以及對課堂視頻進行分析對比,可以得出以下數(shù)據(jù):對于普通課堂,當班級的整體抬頭聽課率高于0.75時,可以認為班級學(xué)生專注率很高,課堂效果特別好,當班級抬頭聽課率在0.55至0.75之間時,認為班級學(xué)生專注率比較高,當班級抬頭聽課率低于0.55時,認為班級學(xué)生專注率低,課堂效果不理想。這里還存在一種特殊情況,某一時間段里面,一名學(xué)生始終處于低頭狀態(tài),那么可以同時參考當前時間段內(nèi)班級的整體抬頭聽課率,如果班級整體抬頭聽課率低于0.4的話,說明在當前時間段內(nèi),大部分同學(xué)可能存在看書、記筆記等情況,也可以認為該同學(xué)專注度比較高,課堂效果整體較好。
將檢測結(jié)果由特征工程輸入到分類器,可以得到表情的分類,并計算“理解掌握”“認真聽講”“疑惑狀態(tài)”“抗拒不屑”這四種表情的置信度Si,i=(0,1,2,3),在這里設(shè)置“理解掌握”“認真聽講”和“疑惑狀態(tài)”評分為9、8和7,設(shè)置“抗拒不屑”的評分為-10,加權(quán)后可通過如下公式得到表情評分:
score=9s0+8s1+7s2-10s3
然后將得到的評分通過歸一化方法進行處理,使得結(jié)果分布在[0,1]之間,歸一化公式 如下:
最后,對結(jié)果進行分析,評分越高,表明該同學(xué)在當前時刻越認真聽講,專注度越高。把全班同學(xué)的評分情況取平均值,便可得到班級在當前課堂上的整體表情得分,實驗表明,班級平均分高于0.6可認為該班級學(xué)習(xí)興趣高,該課堂教學(xué)質(zhì)量較好。
(1)課堂實驗
實驗時長約40分鐘,拍攝設(shè)備為一般手機后置攝像頭,得到視頻的格式為MP4,幀率30FPS。對視頻檢測和計算的速率為2次/秒,40分鐘共檢測和計算了約1200次,對40分鐘內(nèi)班級整體抬頭聽課率進行檢測和分析,結(jié)果如圖3所示:
圖3 班級整體抬頭聽課率
對圖4的數(shù)據(jù)每隔10分鐘對抬頭聽課率進行求平均計算,可以得出以下結(jié)果:班級抬頭聽課率隨課堂時間而變化,課堂前十分鐘的抬頭聽課率為0.55,班級活躍度為一般,10至20分鐘抬頭聽課率為0.62,活躍度為良好,20至30分鐘,抬頭率為0.73,活躍度為優(yōu)秀,30分鐘以后,抬頭率為0.41,活躍度為差。結(jié)果表明,學(xué)生的活躍度在10到30分鐘之間是最好的,超過30分鐘,活躍度急劇下降。這也與相關(guān)研究中人的注意力保持時間規(guī)律相吻合。因此,相關(guān)教師在組織課堂教學(xué)時,盡量把重點的教學(xué)內(nèi)容放在10到30分鐘這個時間段進行講解,30分鐘以后,盡量不要講解重點和難點。
同時,本文也對班級50名同學(xué)在40分鐘課堂時間里所采集的人臉圖像進行了表情識別與表情評分實驗,實驗結(jié)果顯示,課堂10到30分鐘的時間段內(nèi),班級同學(xué)的表情得分明顯高于其他時間的表情得分,說明這段時間內(nèi)學(xué)生課堂專注度較高,可以利用這段時間講解課程的重點和難點,這與課堂抬頭聽課率的實驗結(jié)果相吻合。
(2)實驗結(jié)論
通過對50名學(xué)生40分鐘的實驗結(jié)果進行分析,可以得出結(jié)論:抬頭聽課率可以反映學(xué)生在課堂上的活躍程度,通過表情識別得出的表情得分可以反映學(xué)生在課堂上的專注度。教師可以根據(jù)相應(yīng)數(shù)據(jù)對課堂安排進行調(diào)整,以期得到最好教學(xué)效果。把兩種評價方法進行結(jié)合,可作為課堂教學(xué)質(zhì)量評價的一個重要參考指標。
教育信息化的關(guān)鍵在于教學(xué)方式現(xiàn)代化、教學(xué)方法科技化以及教學(xué)評價數(shù)字化[4],結(jié)合深度學(xué)習(xí)技術(shù)的基于人臉檢測和表情識別的課堂評價,將數(shù)字化技術(shù)用于課堂教學(xué)評價環(huán)節(jié),有助于課堂管理和教學(xué)評估信息化,具有一定的理論價值和推廣意義。