華春杰,于雅楠,李慧蘋,劉 航
(1.天津職業(yè)技術(shù)師范大學(xué)信息技術(shù)工程學(xué)院,天津300222;2.天津中醫(yī)藥大學(xué)人事處,天津301617)
2019年,“國際人工智能與教育”大會在北京召開,大會提出我國需高度重視人工智能技術(shù)和教育的深度融合,推動教育變革創(chuàng)新。因此,充分體現(xiàn)人工智能在教育應(yīng)用中的智能化特征,是未來智慧教育的發(fā)展方向[1]?!叭斯ぶ悄?教育”是融合現(xiàn)代物聯(lián)網(wǎng)、大數(shù)據(jù)、云計算、VR與AR等信息技術(shù)手段的增強(qiáng)型數(shù)字教育。傳統(tǒng)領(lǐng)域與人工智能高度融合,但是相比于工業(yè)和制造業(yè)來說,人工智能在教育領(lǐng)域的作用還未充分發(fā)揮。在傳統(tǒng)的教室課堂上,學(xué)生經(jīng)常被學(xué)習(xí)之外的事物吸引,導(dǎo)致聽課效率低下。目前,課堂教學(xué)中教師主要采用觀察的方式了解學(xué)生的表情和行為信息,根據(jù)學(xué)生表情判斷其對當(dāng)前知識的掌握程度,但當(dāng)教師的教學(xué)管理任務(wù)較多時,可能會出現(xiàn)信息傳遞不足或滯后的情況,降低了課堂教學(xué)的效率。而在課堂教學(xué)中加入表情識別技術(shù)可以極大地改善這一問題。
表情是人的情緒最真實的反映。研究者采用基于知識、統(tǒng)計模型等方法來檢測人臉,提取五官特征、人臉表情特征、圖像紋理等特征對表情進(jìn)行分類。隨著人工智能領(lǐng)域的高速發(fā)展,以深度學(xué)習(xí)為代表的機(jī)器學(xué)習(xí)技術(shù)在計算機(jī)視覺領(lǐng)域中取得了突破性的進(jìn)展,一系列人臉檢測的網(wǎng)絡(luò)被提出,如MTCNN[2]、Fast RCNN[3]、Faster R-CNN[4]、YOLOv3[5]和SSD[6];基于深度學(xué)習(xí)的經(jīng)典表情識別模型有VGGNet[7]、GooGleNet[8]、ResNet[9]。Mase[10]使用光流法,結(jié)合K-近鄰算法[11]進(jìn)行表情識別;Jung等[12]設(shè)計了DTAN和DTGN兩種網(wǎng)絡(luò),將人臉圖像分為雙通道,分別輸入其中,在數(shù)據(jù)集上取得了較高的識別率;李勇等[13]提出了跨連接的LeNet-5卷積神經(jīng)網(wǎng)絡(luò),其融合了低層次和高層次特征構(gòu)造分類器,以便提高識別率;張璟[14]設(shè)計了VGGNet-19GP、Res Net-18和Ensemble Net三種不同深度神經(jīng)網(wǎng)絡(luò)模型來進(jìn)行表情識別,均取得了較高的識別率。以上網(wǎng)絡(luò)均屬于大型網(wǎng)絡(luò),計算量巨大,在實際應(yīng)用中效果較好,但不適宜環(huán)境單一的課堂情況。因此,本文設(shè)計一種較輕巧的端到端表情識別模型,對課堂上的學(xué)生進(jìn)行人臉檢測和表情識別,幫助教師充分了解課堂教學(xué)效果,以提高課堂教學(xué)質(zhì)量。
人臉檢測最早起源于人臉識別,主要分為基于知識和基于統(tǒng)計模型的方法?;谥R的方法需要將人臉各種基本特征提取出來。汪濟(jì)民等[15]利用空間灰度共生矩陣的參數(shù)特征來表示紋理特征,但此方法僅可以用于低分辨率的人臉檢測。傳統(tǒng)的人臉檢測方法在拍攝角度、人臉的亮度發(fā)生變化時,檢測的結(jié)果會有所不同?;诮y(tǒng)計模型的方法主要分為基于人工神經(jīng)網(wǎng)絡(luò)算法[16]、基于支持向量機(jī)算法[17]和基于AdaBoost算法[18]。人工神經(jīng)網(wǎng)絡(luò)中大量的神經(jīng)元相互連接,并且能夠反映輸入和輸出點之間的關(guān)系。支持向量機(jī)的方法能夠有效地將少量樣本信息、復(fù)雜的模型及較強(qiáng)的學(xué)習(xí)能力結(jié)合起來,獲得了更好的推廣力。而AdaBoost算法在同一個訓(xùn)練集訓(xùn)練不同的分類器,再把這些弱分類器相結(jié)合,形成一個強(qiáng)分類器。
傳統(tǒng)的表情識別方法的主要任務(wù)是人臉面部表情特征提取。一張人臉圖片所含的信息量很大,但在一個視頻序列中,表情會在幀序列中發(fā)生變化,因此在進(jìn)行表情識別時,提取圖像的有效信息,如五官特征、圖像的紋理特點等,該方法對識別的速度與準(zhǔn)確性具有很大的影響。
傳統(tǒng)的表情特征提取主要有基于全局、局部與混合式的提取方法。人臉上的肌肉運動導(dǎo)致人產(chǎn)生不同的表情,當(dāng)肌肉運動時,面部的紋理也會發(fā)生相應(yīng)的變化,而這些變化可以由人臉表情圖像表現(xiàn)出來并對其產(chǎn)生全局性的影響,由此提出基于全局的特征提取方法?;诩咸卣髋c基于紋理特征的方法是局部特征提取最常用的方法,隨著研究的深入,研究者將基于全局與局部的特征提取方法相融合,提高了識別率。
2006年,深度學(xué)習(xí)由Hinton等首次提出,2012年卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)提出并被廣泛應(yīng)用,如MTCNN、Fast R-CNN、Faster R-CNN、YOLOv3和SSD,這些網(wǎng)絡(luò)首先從全圖上學(xué)習(xí)特征以獲取人臉在圖像中的具體位置,再進(jìn)行分類和定位。
基于以上成果,許多研究者開始將深度學(xué)習(xí)由圖像識別領(lǐng)域轉(zhuǎn)向了表情識別。與傳統(tǒng)的表情識別不同,基于深度學(xué)習(xí)的表情識別技術(shù)將特征提取與表情分類同時進(jìn)行,并在特征提取方面做出了極大的改進(jìn)。目前流行的基于深度學(xué)習(xí)的表情識別模型有VGGNet、GoogleNet、ResNet等。以上網(wǎng)絡(luò)在復(fù)雜場景的實際應(yīng)用中效果較好,但是這些網(wǎng)絡(luò)均屬于大型網(wǎng)絡(luò),計算量巨大,不適宜相對簡單的課堂環(huán)境。
百年大計,教育為本,我國歷來重視教育的發(fā)展和教育質(zhì)量。課堂是教師、學(xué)生交流與學(xué)習(xí)的場所,傳統(tǒng)的教學(xué)形式往往以教師在課堂上講授學(xué)科知識為主,有時候忽視了學(xué)生的接受程度,學(xué)生反饋給教師的信息不足,特別是智能手機(jī)與平板的出現(xiàn),課上“低頭族”成了普遍現(xiàn)象,教學(xué)質(zhì)量便隨之降低。合理準(zhǔn)確的課堂教學(xué)質(zhì)量評估對于課堂教學(xué)十分重要,近年來研究開發(fā)出很多種教學(xué)評估方法,如問卷調(diào)查法、生理觀察法、計算機(jī)視覺法等。由于受視頻監(jiān)控以及計算機(jī)視覺算法等限制,目前使用的計算機(jī)視覺來對學(xué)生進(jìn)行檢測的方法多數(shù)應(yīng)用于在線課堂學(xué)習(xí)中的師生互動場景。
在線課堂目前僅對單人或者單一場景進(jìn)行面部識別,對傳統(tǒng)教室中師生互動的課堂進(jìn)行檢測和評估的算法甚少。因此,本文就教室中課堂上學(xué)生的抬頭情況與表情識別做了研究,通過基于端到端的表情識別算法對教室視頻監(jiān)控系統(tǒng)采集到的信息進(jìn)行分析,檢測出上課時學(xué)生的抬頭情況,識別學(xué)生的微表情,判斷學(xué)生的學(xué)習(xí)狀態(tài),結(jié)合教師與學(xué)生的互動情況和學(xué)生的行為模式綜合測評課堂的教學(xué)效果。再將對學(xué)生的分析結(jié)果反饋給教師和學(xué)校,為學(xué)校制定更加合理的規(guī)章制度、更加高效的教學(xué)計劃提供參考。同時,可以實時檢測到學(xué)生的異常行為,及時傳遞給教師、家長,避免發(fā)生不必要的意外。
本文采用的端到端的表情識別模型,命名為CNN-Specific,其主要包括搭建并訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)以及實現(xiàn)面部表情識別兩部分。用訓(xùn)練后的模型分別進(jìn)行了靜態(tài)圖片識別和實時檢測識別。
CNN-Specific模型的整體框架如圖1所示。首先將數(shù)據(jù)集中的人臉圖像進(jìn)行一系列預(yù)處理,然后將處理后的圖片作為輸入放入卷積神經(jīng)網(wǎng)絡(luò)模塊進(jìn)行訓(xùn)練,在模型的最后,計算人臉對應(yīng)的每個表情得分值,得分值最大的表情類別為該人臉?biāo)鶎俚谋砬椤?/p>
圖1中的CNN模塊包含有4個卷積層、3個池化層和2個全連接層,網(wǎng)絡(luò)內(nèi)部參數(shù)如表1所示。本文在輸入層后加入了1*1的卷積層,以達(dá)到輸入非線性的目的,并使網(wǎng)絡(luò)的深度得到增加,增強(qiáng)了網(wǎng)絡(luò)模型的表達(dá)能力。在每個卷積層之后使用Relu函數(shù)進(jìn)行激活,在2個全連接層引入Dropout防止過擬合。
表1 CNN-Specific模型網(wǎng)絡(luò)內(nèi)部參數(shù)
3.2.1 數(shù)據(jù)集預(yù)處理
使用標(biāo)準(zhǔn)靜態(tài)圖片訓(xùn)練模型時,每張圖片都是正面且表情清晰,但在實際應(yīng)用中,采集到的圖像會由于角度、亮度的不同導(dǎo)致同一人臉的同一表情差別也很大。因此,本文先對訓(xùn)練圖片進(jìn)行一系列預(yù)處理操作,如翻轉(zhuǎn)、調(diào)整大小、調(diào)節(jié)亮度、裁切等。對圖片的預(yù)處理過程如下:
(1)將原始圖片從左向右隨機(jī)翻轉(zhuǎn)圖像。
(2)調(diào)整圖像的亮度。調(diào)整亮度的隨機(jī)因子范圍為-32/255~23/255。
(3)調(diào)整圖像的對比度。調(diào)整對比度的隨機(jī)因子范圍為0.8~1.2。
(4)裁剪圖片為指定大小。
3.2.2 訓(xùn)練優(yōu)化
在神經(jīng)網(wǎng)絡(luò)模型中所搭建的網(wǎng)絡(luò)越復(fù)雜,訓(xùn)練難度越大,訓(xùn)練時間就越長。但是,對于復(fù)雜問題的處理又是必不可少的,要對網(wǎng)絡(luò)模型進(jìn)行優(yōu)化以提高訓(xùn)練效率。本文使用Adam算法來進(jìn)行優(yōu)化。自適應(yīng)梯度算法(Adagrad)為每個參數(shù)都保留一個學(xué)習(xí)率來提升在稀疏梯度上的性能;均方根傳播(RMSProp)根據(jù)最近權(quán)重梯度平均值為每一個參數(shù)設(shè)計適應(yīng)性學(xué)習(xí)率。而Adam算法結(jié)合了Adarad和RMSProp算法的優(yōu)點,Adam算法更新自適應(yīng)學(xué)習(xí)速率過程如下:
(1)計算t時間步的梯度。
(2)計算梯度的指數(shù)移動平均數(shù),m0初始化為0,β1為指數(shù)衰減率,用來控制權(quán)重分配,一般設(shè)置為接近1的值,默認(rèn)值為0.9。
(3)計算梯度平方的指數(shù)移動平均數(shù),v0初始化為0,β2為指數(shù)衰減率,用來控制之前梯度平方的影響情況,默認(rèn)值為0.999。
(4)由于m0初始化為0,因此在訓(xùn)練初期會使mt偏向于0,因此需對梯度均值mt的偏差進(jìn)行糾正。
(5)同理,由于v0初始化為0,導(dǎo)致訓(xùn)練初期vt偏向于0,對其偏差進(jìn)行糾正。
(6)更新參數(shù),初始的學(xué)習(xí)率α乘以梯度均值于梯度方差的平方根之比。學(xué)習(xí)率初始值為0.001,ε的值設(shè)置為10-8。
3.2.3 檢測和識別結(jié)果顯示
此模塊分為靜態(tài)圖片測試與人臉實時檢測,主要使用的庫為Opencv庫,在靜態(tài)圖片檢測階段,調(diào)用Opencv庫中Haar特征分類器detectMultiScale函數(shù),檢測出人臉,并根據(jù)給出的人臉位置畫出矩形框圖,再根據(jù)模型輸出結(jié)果中給出的表情分類。實時檢測與靜態(tài)圖片檢測不同,需要攝像頭捕捉圖像和從圖像上識別表情同時進(jìn)行。攝像頭采集模塊使用Opencv庫中的VideoCapture函數(shù),然后將捕捉到的圖像傳送至訓(xùn)練好的模型進(jìn)行檢測,實時顯示人臉檢測和表情識別的結(jié)果。
本文采用FER2013人臉表情數(shù)據(jù)集進(jìn)行訓(xùn)練,每張圖片為48*48的灰度圖。數(shù)據(jù)集共有64 594張圖片,訓(xùn)練集有35 886張,測試集有28 708張,公共驗證圖和私有驗證圖平均分配。數(shù)據(jù)集包含生氣、厭惡、恐懼、開心、難過、驚訝、中性7種表情,分別對應(yīng)0—6這7個標(biāo)簽。將訓(xùn)練集圖片和對應(yīng)標(biāo)簽輸入模型進(jìn)行訓(xùn)練,最終將訓(xùn)練好的模型運用到實際工作中。訓(xùn)練過程中,若將照片全部載入內(nèi)存,則每次訓(xùn)練將數(shù)據(jù)集重新載入,會出現(xiàn)耗損大、占據(jù)內(nèi)存空間大等現(xiàn)象?;诖藛栴},本文將數(shù)據(jù)集中的圖片轉(zhuǎn)化為.tfrecord格式,每次訓(xùn)練僅載入一部分?jǐn)?shù)據(jù),訓(xùn)練與讀取數(shù)據(jù)同時進(jìn)行,加快訓(xùn)練速度。
實驗采用CPU為Intel core i5,使用的語言為Python,在深度學(xué)習(xí)框架Tensorflow下進(jìn)行相關(guān)設(shè)計,使用Adam優(yōu)化器訓(xùn)練10 000次。實驗檢測階段分為靜態(tài)人臉圖片檢測和相機(jī)實時檢測。在實時檢測階段,將USB相機(jī)固定在教室的講臺位置,該相機(jī)可360°旋轉(zhuǎn),實時將采集到的圖片傳遞給模型進(jìn)行識別。
為了評估CNN-Specific模型的性能,本文使用普通的卷積神經(jīng)網(wǎng)絡(luò)模型CNN和經(jīng)典模型VGGNet作為對比實驗,CNN模型有4層卷積層,卷積核大小分別為5、5、3、3;池化層大小分別為3、3、2、2;步長均為2。以上3個模型在同一實驗環(huán)境下分別進(jìn)行訓(xùn)練,得到的表情識別測試集準(zhǔn)確率如表2所示。
表2 模型識別率對比
從表2可以看出,本文使用的CNN-Specific模型的識別正確率低于VGGNet模型,但是遠(yuǎn)高于普通卷積神經(jīng)網(wǎng)絡(luò)模型CNN;但CNN-Specific模型的網(wǎng)絡(luò)結(jié)構(gòu)和VGGNet模型相比屬于輕量級的網(wǎng)絡(luò),相比之下網(wǎng)絡(luò)參數(shù)很少,占用內(nèi)存較少,更加適宜于實時檢測。
針對CNN-Specific模型,分析實驗得出標(biāo)簽中“生氣”和“厭惡”相似度較高,導(dǎo)致整體的識別準(zhǔn)確率不高。測試分為靜態(tài)人臉圖片檢測和動態(tài)相機(jī)實時檢測。
(1)靜態(tài)人臉圖片測試分別使用了FER2013數(shù)據(jù)集內(nèi)的圖片、低像素圖像和相機(jī)拍攝的真實人臉圖像,測試結(jié)果如圖2所示。其中,圖2(a)為單人臉,識別效果較好;圖2(b)為網(wǎng)絡(luò)下載課堂場景圖片,像素較低,學(xué)生在輕度低頭時仍然能檢測到人臉;圖2(c)中大多數(shù)學(xué)生在抬頭聽講,人臉檢測和表情識別效果較好,但當(dāng)學(xué)生用手遮擋側(cè)臉時,會對檢測模型產(chǎn)生影響,且可能會出現(xiàn)假陽性,將其他位置檢測為人臉;圖2(d)檢測出了圖片上的所有人臉,但在某些位置出現(xiàn)了錯檢,且學(xué)生側(cè)臉角度較大時仍然會出現(xiàn)檢測不到的情況。
圖2 CNN-Specific模型靜態(tài)人臉圖片測試結(jié)果
從圖2可知,本模型取得了較好的識別效果,對于正臉有較高的識別率,且在多人環(huán)境中仍然有較好的識別效果。
(2)動態(tài)相機(jī)實時檢測場景為真實課堂場景,由于視頻幀相鄰序列人臉表情變化不大,本文只挑選出關(guān)鍵幀展示識別結(jié)果。視頻關(guān)鍵幀檢測和識別效果如圖3所示。從圖3可以看出,實時檢測時模型的人臉檢測率和表情識別率均未下降,且對輕度側(cè)臉和低頭有一定的包容度,當(dāng)相機(jī)拍攝學(xué)生的正臉時,可將所有的人臉檢測出來(圖3(d)),但相機(jī)位于側(cè)方位時,人臉密集區(qū)域有互相遮擋的情況,造成部分人臉漏檢錯檢。
圖3 CNN-Specific模型動態(tài)實時場景測試結(jié)果
由圖3可知,當(dāng)人臉處于較正的位置,且教室人較多時,模型有較好的人臉檢測率和表情識別效果,但當(dāng)有一些干擾因素時會降低識別準(zhǔn)確度,如學(xué)生用手遮擋側(cè)臉、戴帽子或戴口罩時,會導(dǎo)致漏檢。除此之外,某些場景會出現(xiàn)假陽性,將無人臉位置錯檢為人臉。干擾因素下的測試結(jié)果如圖4所示。
圖4 CNN-Specific模型干擾因素下的測試結(jié)果
在真實課堂環(huán)境中,學(xué)生表情沒有確定的標(biāo)簽,無法準(zhǔn)確判斷學(xué)生的表情分類,故本文使用模型在3個課堂場景中統(tǒng)計了課堂的抬頭情況,學(xué)生課堂抬頭情況統(tǒng)計如表3所示。
表3 學(xué)生課堂抬頭情況統(tǒng)計
場景檢測率Ps和模型檢測率Pm的計算式為
式中:A為正確檢測出的人臉個數(shù);B為誤將非人臉區(qū)檢測為人臉的個數(shù);C為該場景中包含的完整人臉個數(shù)。
由表3可以看出,實驗中場景的平均檢測率為78.0%,模型的平均檢測率為93.5%,均取得了較高的檢測率,可以滿足課堂場景中的抬頭率檢測。
通過將人臉檢測與表情識別技術(shù)應(yīng)用在課堂上,對教室中課堂上學(xué)生的抬頭情況與表情識別進(jìn)行了研究,其中以抬頭率和學(xué)生在教師講課時的對應(yīng)表情作為判讀檢測課堂教學(xué)與學(xué)生專注程度的標(biāo)準(zhǔn)之一。
(1)課堂抬頭率
每隔1 min對教室中的人臉進(jìn)行檢測,計算上課時檢測到的人臉數(shù),與全班人數(shù)進(jìn)行比較,計算出當(dāng)前時刻的抬頭率,再計算整個課堂上每分鐘抬頭率平均值,得到本節(jié)課的抬頭聽課率。圖片課堂抬頭率θ的計算式為
式中:Y為假設(shè)課堂人數(shù);n為每節(jié)課相機(jī)采集次數(shù);Xi為第i次檢測到的人臉數(shù)。
(2)學(xué)生課堂表情分析
當(dāng)教師講課時,不同的課堂情景會使學(xué)生有不同的心理狀態(tài),體現(xiàn)在人物表情上即為不同的面部表情,如當(dāng)教師提出問題時,積極參與思考的學(xué)生會有“疑惑”或者“難過”表情;當(dāng)學(xué)生受到教師的表揚時,會表現(xiàn)出“開心”或者“驚訝”表情。
教師可根據(jù)模型識別出的學(xué)生表情對應(yīng)相應(yīng)的教學(xué)情境,將課堂教學(xué)情況數(shù)字化,綜合分析課堂效果、學(xué)生對該課程的感興趣程度等。其課堂效果與傳統(tǒng)方法相比有了很大的改進(jìn),主要體現(xiàn)在以下方面:①本文將基于深度學(xué)習(xí)的視覺算法與視頻技術(shù)相結(jié)合,對學(xué)校課堂監(jiān)控系統(tǒng)中的視頻幀進(jìn)行人臉檢測和微表情識別,充分利用了視頻監(jiān)控信息,提高了效率。②通過檢測學(xué)生人臉,判斷其在課堂的抬頭率;通過識別學(xué)生的表情,分析學(xué)生的學(xué)習(xí)狀態(tài)、精神狀態(tài)等,幫助學(xué)生調(diào)整自己的聽課狀態(tài)。③將學(xué)生課堂狀態(tài)的分析結(jié)果反饋給教師,教師可結(jié)合學(xué)生行為模式綜合測評課堂教學(xué)效果以及學(xué)生在本節(jié)課的學(xué)習(xí)效果;幫助教師與學(xué)生建立更加高效的互動,調(diào)整授課方法。④將學(xué)生課堂狀態(tài)的分析結(jié)果反饋給學(xué)校,幫助學(xué)校制定更加合理的規(guī)章制度,更加高效的教學(xué)計劃。⑤將學(xué)生課堂狀態(tài)的分析結(jié)果反饋給家長,使家長進(jìn)一步了解學(xué)生聽課狀況,便于家長進(jìn)行更加合理的家庭教育,促進(jìn)學(xué)生健康成長。
本文采用基于端到端的設(shè)計方法搭建一種表情識別模型,用于評價學(xué)生上課出勤率、活躍度等課堂信息。模型的輕巧結(jié)構(gòu)降低了計算量,且有較好的識別率。將訓(xùn)練后的端到端表情識別模型應(yīng)用于傳統(tǒng)的課堂教學(xué)過程中,通過對教室中學(xué)生的人臉檢測,計算出課堂抬頭率;識別不同教學(xué)情景下學(xué)生表情,判讀學(xué)生的課堂專注度;分析學(xué)生感興趣程度以及教師的教學(xué)方式是否合理,綜合評價課堂效果。本模型將課堂信息更多地轉(zhuǎn)換成為數(shù)字信息,有利于綜合分析課堂數(shù)據(jù),幫助教師、學(xué)校更好地掌握及分析課堂教學(xué)情況。