王國琿,張 璇,鄭 浩
(西安工業(yè)大學 光電工程學院,西安 710021)
課堂是學校教育教學工作的主陣地,教學過程中學生的課堂表現(xiàn)對于任課教師把握學生的學習狀態(tài)至關重要,同時也是教學質量評價的重要依據(jù)[1-2]。大多數(shù)高校在進行教學質量評價時,通常采用傳統(tǒng)的問卷調查等課后調查方式[3],致使任課教師在教學過程中無法實時獲得學生課堂狀態(tài)的反饋。部分高校對學生上課過程進行視頻采集,教師通過課后觀察上課視頻進行教學效果評估,這不僅耗費極大的精力和時間,而且無法兼顧到每一個學生[4]。近年來,隨著科學技術的進步和計算機技術的迅速發(fā)展,人工智能技術已經走進課堂,成為教師有力的助手。研究人員開始致力于使用深度學習的方法檢測課堂狀況,分析學生課堂學習狀態(tài),有助于任課教師精準、實時地掌握學生的學習情況,及時改進和優(yōu)化教學方式,調整教學策略,從而提升教學質量,并促進學生的學習效率。
現(xiàn)有關于學生課堂表現(xiàn)的識別和分析研究主要分為兩類:行為識別和表情識別。針對學生課堂行為識別研究,廖鵬等[5]利用VGG 預訓練網絡模型遷移學習,提取學生課堂異常行為特征,實現(xiàn)玩手機、睡覺等行為的識別和分析;蔣沁沂等[6]通過訓練殘差網絡識別到學生上課狀態(tài)的6 種行為;徐家臻等[4]通過Boosting 算法和卷積神經網絡算法提取了學生的骨架信息,從而識別到5 種課堂行為;何秀玲等[7]利用卷積神經網絡(Convolutional Neural Network,CNN)CNN-10 提取人體骨架信息實現(xiàn)了7 種學生課堂行為識別。進行學生課堂行為識別時,骨架信息識別雖可以排除學生體態(tài)、著裝和教室背景等無關信息,但是增加了識別過程的復雜性。事實上,足夠深度的神經網絡能夠從復雜的場景中直接識別出學生的課堂行為。
針對學生課堂表情識別研究,侯鳳芝等[8]構建了基于情感計算的適應性網絡學習系統(tǒng)模型,并對情感缺失問題進行了描述。隨著人工智能技術的發(fā)展,對于表情識別的研究更為深入,賈鸝宇等[9]利用機器學習SVM(Supporting Vector Machin,SVM)算法構建了人臉68個關鍵點,實現(xiàn)了學生課堂中高興、憤怒、平常和困惑4種表情的識別;馬曉玲等[10]通過建立雙模態(tài)情感識別模型對學習者進行了全面的情感分析。
針對學生課堂狀況分析的研究,賈鵬宇等[9]運用YOLO[11]神經網絡對上課學生人數(shù)進行了統(tǒng)計,接著通過K-means聚類分析了學生的位置分布情況,最后利用SVM 算法對學生表情識別進而分析了學生上課的活躍度。本文提出僅通過YOLOX[12]深度學習網絡即可實現(xiàn)對學生從整體到個人的考勤評估,統(tǒng)計學生出勤人數(shù)并對缺勤名單進行標注,并完成學生課堂狀態(tài)的表情和行為識別分析,實現(xiàn)對課堂學習狀態(tài)從個體到整體的分析。
用于人工智能和深度學習的神經網絡模型為多層次神經網絡,神經網絡的每一層將上一層輸出進行非線性映射,通過多層非線性映射的堆疊,神經網絡可以在深層網絡中計算出抽象的特征用于目標識別和分析。典型的神經網絡包括輸入層、卷積層、池化層及全連接層。由于學生課堂狀態(tài)的復雜性,需要足夠深度的神經網絡來進行識別分析,該網絡能夠在復雜的場景下識別學生的面部表情,同時也能識別學生的肢體行為。本文在前人工作的基礎上,僅利用YOLOX 深度學習網絡,實現(xiàn)學生缺勤名單的統(tǒng)計并完成學生課堂表情和行為的同步識別。
1.學生課堂狀態(tài)分析流程
基于YOLOX 深度學習網絡的學生考勤及課堂表情和行為識別分析的流程如圖1 所示。對學生進行考勤分析時,深度學習網絡提取的人臉特征與人臉識別系統(tǒng)比對,統(tǒng)計學生出勤人數(shù),從而可以進行班級學風評價,并對缺勤名單標注,完成學生課堂考勤的評估。對學生表情和行為識別分析時,首先,同時采集學生課堂表情和行為數(shù)據(jù),具體包含2 種學生課堂表情和6種課堂行為的圖像與標簽;其次,通過Imgaug 軟件對學生課堂表情和行為數(shù)據(jù)進行數(shù)據(jù)增強,滿足復雜場景的訓練需求;最后,將數(shù)據(jù)增強后的學生課堂狀態(tài)圖像與標簽對應輸入到YOLOX 深度學習網絡中進行訓練和測試。
圖1 基于YOLOX 深度學習網絡的學生考勤及課堂表情和行為識別分析流程
2.YOLOX 深度學習網絡結構
用于學生課堂狀態(tài)識別分析的YOLOX 深度學習網絡結構如圖2 所示,包括3 個部分:主體網絡、Neck連接部分和預測部分(YOLO Head)。主體網絡由連續(xù)卷積、池化等一系列殘差網絡結構組成,部分卷積層的激活函數(shù)為SiLU 函數(shù)[13]。輸入的圖片在主體網絡進行特征提取,提取到的特征集合為特征層。在主體網絡將得到3 個特征層,3 個輸出尺度分別為:76×76×256、38×38×512 和19×19×1 024。Neck 連接部分采用了特征金字塔結構,在主體網絡獲得的3 個特征層在Neck部分進行特征融合,以進一步提取特征。YOLO Head是YOLOX 的分類器和回歸器,主要作用是判斷特征點是否有物體與其對應。在主體網絡的最后一個特征層進行3 次聯(lián)合卷積后,分別利用4 個不同尺度的最大池化進行處理,池化核大小為13×13、9×9、5×5 和1×1。最大池化處理可極大地增加感受野,分離出學生課堂狀態(tài)圖像中最顯著的上下文和高級抽象特征。鑒于YOLOX 深度學習網絡足夠復雜并經實驗驗證,其能夠同時識別到學生的課堂學習狀態(tài),包括面部表情和肢體行為。
圖2 YOLOX 深度學習網絡結構圖
在預測過程中,輸入圖像被劃分S×S 個網格,每個網絡由B 個bounding box 來檢測物體,從而一張圖像將生成S×S×B 網格。如果物體落在某個網格中,含有這個網格的bounding box 將用來預測該物體。此外,置信閾值的設置可以減少bounding box 的冗余。如果bounding box 的置信度高于此閾值,該bounding box 將保留;否則該bounding box 將被刪除。置信度分數(shù)可由公式(1)獲得。用于學生課堂狀態(tài)識別分析的深度學習網絡損失函數(shù)如公式(2)所示。
本文中,損失函數(shù)被分為3 部分:bounding box 回歸損失lossReg、置信度損失lossObj和類別損失lossCls。訓練過程中損失函數(shù)振蕩下降直至最小值,即損失函數(shù)連續(xù)多次不下降或下降幅度小于閾值時,認為學生課堂狀態(tài)識別分析的深度學習網絡已訓練好,訓練過程結束。
學生課堂學習狀態(tài)的數(shù)據(jù)集來源于課堂教學視頻,將教學視頻分幀為圖像序列,選取其中的3 000 幅圖像作為數(shù)據(jù)集,并利用LabelImg 軟件進行標注。標注分為以下2 個部分:行為標注和表情標注。學生的行為和表情共同反映了課堂的學習狀態(tài),有助于任課教師及時改進和優(yōu)化教學方式,從而提升教學質量和學習效率。
將序列圖像的分辨率調整為608×608,并按照VOC2007 的格式進行標注。學生行為標注時,按以下6 種類型進行標注:舉手、交頭接耳、睡覺、抬頭、低頭學習和低頭玩手機;學生表情標注是建立在學生行為的基礎上,僅標注抬頭時的表情,包括微笑和平常,標注圖像如圖3 所示。LabelImg 標注文件為xml 格式,每幅圖像與其標注文件一一對應輸入深度學習網絡,同時將學生課堂狀態(tài)數(shù)據(jù)集按8∶1∶1 的比例隨機拆分為訓練集、驗證集和測試集。拆分完數(shù)據(jù)集后,利用Imgaug 軟件進行數(shù)據(jù)增強,分別利用不同角度旋轉、局部模糊、光強變化和鏡像等圖像處理方法,最終得到所有的訓練圖像,共計24 000 幅。
圖3 數(shù)據(jù)集標注
本文的實驗環(huán)境為Ubuntu 18.04,CPU 為Intel Core i9-9900X CPU(3.50 GHz),CPU 為NVIDA GeForce GTX 2080Ti(11 G RAM);在Pytorch 1.7 框架下對神經網絡進行訓練和測試,Python 版本為3.7,編輯器Pycharm版本為3.2.0。
(1)將課堂學習狀態(tài)數(shù)據(jù)集隨機分成訓練集、驗證集和測試集,神經網絡獲取所有標注類別的Ground-Truth。
(2)利用Adam 進行YOLOX 深度學習網絡訓練,以VOC 數(shù)據(jù)集的權重作為初始權重輸入,epoch 設為100。訓練分為2 個階段,分別為凍結階段和解凍階段,其epoch 各為50。凍結階段的batchsize 設為8,解凍階段的batchsize 設為4。學習率初始值設為0.001,隨著epoch 的變化而改變,此外可依據(jù)訓練結果的好壞確定學習率的初始值。
(3)用訓練好的深度學習網絡對數(shù)據(jù)集驗證及測試,根據(jù)驗證結果得到mAP(mean Average Precision),可以評估神經網絡的學習性能和對學生課堂學習狀態(tài)的監(jiān)測性能。
為避免侵犯學生隱私,所有學生的姓名皆以序號替代。對多個班級如A、B、C 班進行考勤時,將YOLOX 深度學習網絡與學校的人臉識別系統(tǒng)相結合,統(tǒng)計多個班級學生出勤人數(shù)并給出缺勤名單,同時可針對某一班級分析多次課堂的學生出勤情況,結果分別見表1 和表2,實現(xiàn)對學生從整體到個人的考勤評估。表1 為某一課堂的A、B、C 3 個班級的學生課堂出勤情況統(tǒng)計表,表2為C 班6 次課堂的學生出勤統(tǒng)計分析情況。
表1 不同班級學生出勤情況統(tǒng)計
表2 C 班多次課堂學生出勤統(tǒng)計分析
從表1 中可知,B 班的出勤率為86.1%,高于A 班和C 班的出勤率,可以得出B 班的學風更為濃郁。對多次課堂學生出勤名單進行對比,可以發(fā)現(xiàn)哪些學生經常缺勤、學習態(tài)度不夠端正,有助于任課教師進一步了解學生個人的學習情況。由表2 的多次缺勤學生名單中可以發(fā)現(xiàn),C 班的31 號學生缺勤次數(shù)最多、學習態(tài)度可能存在問題,進一步結合缺勤次數(shù)較多的同宿舍30 號學生,應關注所在宿舍的整體學風,需要任課教師或輔導員及時幫助學生端正學習態(tài)度。
對學生課堂學習狀態(tài)進行訓練時,50 epochs 之后,網絡主體部分開始訓練,YOLOX 深度學習網絡的loss值急速下降并收斂于2.44,此時訓練得到的權重達到最好效果。根據(jù)數(shù)據(jù)集的劃分比例,其中2 400 個數(shù)據(jù)樣本用于深度學習網絡對學生課堂狀態(tài)的測試。本文以mAP為測試指標,對神經網絡訓練的效果進行評定,結果見表3,其中mAP 值越高,表示網絡的訓練效果越好。
表3 各種類別AP 和mAP
表3 表明神經網絡的訓練精度已經很高,由于學生微笑的樣本相比于其他行為或表情偏少,測試時微笑的AP 值略低于其他幾類,但精度也已達到69.86%。
YOLOX 深度學習網絡能夠實現(xiàn)實時動態(tài)檢測,對學生課堂學習狀態(tài)進行精準識別,識別效果如圖4 所示。在實時動態(tài)檢測過程中,教師可根據(jù)學生的表情和行為兼顧到所有學生的學習狀態(tài),觀察每個學生的連續(xù)專注時間,進而判斷學生對教學內容是否感興趣,并及時改進和優(yōu)化教學方式,實施更為合適的教學方案,從而提升教學質量,促進學生的學習效率。
圖4 學生課堂表情和行為識別效果
學生課堂學習狀態(tài)識別分析時,不可避免會出現(xiàn)部分學生被遮擋的情況,使得整體檢測結果受到影響,降低檢測精度。需要指出的是,本文無法處理學生面部和肢體被大比例遮擋的情況,這也是下一步研究工作的重點。
本文聚焦于學生課堂考勤、面部表情和肢體行為識別研究,提出了一種基于YOLOX 深度學習網絡的學生課堂學習狀態(tài)分析方法,實時獲取到學生的課堂學習狀態(tài)。經實驗驗證,該方法能夠在復雜的場景下準確統(tǒng)計考勤情況、識別學生的表情和行為。今后工作中可以嘗試深度學習網絡與其他方法結合解決學生面部和肢體被大比例遮擋的情況,同時應采集樣本量更大、課堂狀態(tài)更加豐富的數(shù)據(jù)來完善本文研究工作。