歐陽維晰,樊萬姝,陳麟偉
(大連大學軟件工程學院,遼寧大連 116622)
隨著智能化教育體系的不斷發展和完善,如何將人工智能技術更好地應用于高校課堂教學場景中具有現實需求性。目前高校課堂教學紀律主要依靠于教師的管理和學生的自我約束,教室中的監控錄像無法實現對課堂上每個學生的課堂行為進行監督與管理,教師不能及時接收學生對教學情況的真實反饋。鑒于此,利用智能化技術[1]對課堂學生行為進行監測具有必要性和迫切性。針對課堂學生行為的檢測識別,傳統方法大多使用特征檢測算法及分類算法對其狀態進行提取和分類。最近,深度學習的快速發展為學生行為檢測識別提供了新的思路。不同于傳統的人工提取工作,深度學習方法不需顯式地給出具體的檢測模型,而是利用設計好的網絡模型端到端地隱式學習相應的映射函數,在識別精度上有了較大程度提升[2]。得益于深度學習在圖像數據集上具有很強的學習能力,本文采用檢測速度和精度都較優的YOLOv5算法對學生課堂抬頭低頭行為識別,針對學生不同狀態實時反饋得到一個合理識別結果。將深度學習技術引入高校的教學質量評估中,實時對學生課堂上的抬頭低頭狀態進行檢測,有助于教師及時了解學生的學習狀態,根據學生反饋調整教學方式以提高教學質量,推動高校課堂教學的改革和教學體系的優化。
YOLOv5作為基于深度學習的物體檢測框架的典型代表,被廣泛應用于各類目標檢測任務。該算法是YOLO系列目標檢測算法的第五代,相比前幾代算法,在速度與精度方面都得到了極大的提升。目前,YOLOv5 共 有4 種 網 絡 模 型YOLOv5s、YOLOv5l、YOLOv5m 以及YOLOv5x,其中YOLOv5s 是YOLOv5 系列中網絡深度和寬度最小的模型[3],可以更好地應用于小數據集的模型訓練。鑒于此,本文采用YOLOv5s模型實現學生課堂抬頭低頭行為識別。YOLOv5s 網絡模型主要由Input、Backbone、Neck、Prediction 四部分構成。YOLOv5s算法的整體網絡架構如圖1所示。
1.1.1 Input
YOLOv5s的輸入端采用Mosaic數據增強的方式,對多張大學生課堂圖片進行處理,進而擴充數據集,提升模型對小目標檢測的性能;在每次訓練時,基于訓練數據自動學習的方式自適應計算最佳錨框值。在網絡訓練階段,模型根據初始錨點框輸出相應的預測框,計算其與真實框之間的差異,執行反向更新操作,從而迭代更新網絡參數;此外,YOLOv5s對原始課堂的圖片進行縮放時使用了自適應縮放技術,在縮放后的圖片中自適應地填充最少的黑邊,旨在進行推理時,大幅降低計算量,進一步提升目標檢測速度。
1.1.2 Backbone
Backbone 主要包含Focus 結構以及CSP 結構[4]。Focus結構用于實現高分辨率圖像信息從空間維到通道維的轉換,將大小為608×608×3 的課堂圖片輸入到Focus 結構,經過4 次切片操作得到大小為304×304×12的特征圖,再使用1次32個卷積核的卷積操作輸出大小為304×304×32 的課堂圖片特征圖。YOLOv5s 設計了兩種CSP 結構:CSP1_X 和CSP2_X,分別應用于Backbone 和Neck 中。CSP 結構克服了其他卷積神經網絡框架中梯度信息重復的缺陷,在減少模型的參數量和FLOPS 數值的同時提高了推理速度和準確率。此外,Backbone 中還加入了SPP 模塊,增強網絡對多尺度特征進行融合的能力。
1.1.3 Neck
Neck是在Backbone和Prediction之間插入的用于更好地提取融合特征的網絡層,其采用特征金字塔網絡(Feature Pyramid Networks,FPN)[5]和感知對抗網絡(Path Aggregation Network,PAN)相組合的結構進行上采樣和下采樣。通過自頂向下的FPN,上采樣高層特征以傳遞強語義特征,生成預測特征圖。在FPN后添加自底向上的PAN 傳達強定位特征。FPN 與PAN 的聯合使用可以實現不同的主干層對不同的檢測層的參數聚合,同時獲得語義特征和定位特征,進一步提高模型的特征提取能力。
1.1.4 Prediction
Prediction 主要由損失函數和非極大值抑制兩部分組成。YOLOv5s 中采用GIOU_Loss[6]作為Bounding box 的損失函數。GIOU_Loss中增加了相交尺度的衡量方式,有利于緩解課堂圖片邊界框不重合的特殊情況。針對大量目標框的篩選問題,使用非極大值抑制方法對冗余的預測框進行過濾,以獲取最優的目標框,進一步提升算法的檢測精度。
基于YOLOv5 的課堂抬頭低頭行為識別主要包括數據集構建、模型訓練以及抬頭低頭姿態檢測估計三部分。首先通過安裝在高校不同教室中的多個攝像頭采集多個上課視頻信息并截取成幀圖片,使用LabelImg 對其進行標注以構建抬頭低頭識別數據集;其次通過YOLOv5s 訓練模塊對數據集進行訓練獲取模型權重數據;最后使用YOLOv5s預測模塊完成學生低頭行為預測。實驗流程如圖2所示。

圖2 實驗流程圖
本實驗收集了大量大學生課堂上課視頻,盡量選擇在同一地點,不同時間,人數差不多的視頻。首先,從篩選出的每個視頻的中間部分每隔5s 截取1 張圖片,共截取100張圖片。由于大學生在課堂上的行為狀態相對單一,一般只有抬頭聽課和低頭看書兩種狀態,為保證數據的質量和可靠性,所截取的100張圖片里學生的抬頭低頭狀態總量盡量在同一個范圍內波動。經以上數據處理后采集并整理得到2 000張數據圖片。隨后,采用LabelImg開源數據標注工具對學生抬頭低頭狀態進行標簽標注,并將圖片的標注格式由xml 轉換為txt 文件格式,即YOLOv5s 數據格式。圖3為數據集標注樣例。txt 文件中每行第一個數據表示目標類別,0代表抬頭,1代表低頭,其余四個數字分別代表目標左上角的坐標和寬高。最后,以7:2:1的比例將標注好的數據劃分為訓練集、測試集和驗證集,并將這些數據集中的圖片分別存放相應的.txt文件下。

圖3 LabelImg標注界面
本實驗采用目標檢測任務中常用的平均精度均值(mean Average Precision,mAP)[7]來評價模型性能。mAP 是基于召回率(Recall)、精準率(Precision)以及平均精度(Average Precision,AP)三個指標。
召回率是指模型在進行目標檢測時是否將所有區域都檢測到,計算公式如式(1)所示:
其中,TP表示真正例,FN表示假反例。
精準率是指模型在進行目標檢測時檢測到的區域準確率,計算公式如式(2)所示:
其中,FP表示假正例。
平均精度是召回率從0 到1 時準確率的平均值,衡量訓練得到的模型對單位類檢測效果的好壞。計算公式如式(3)所示:
其中,P(s)是準確率-召回率(Precision-recall,PR)曲線。平均精度為PR曲線的面積。
mAP為所有類別平均精度的平均值,計算公式如式(4)所示:
其中,AP(i)表示第i個類別的檢測精度,n表示類別數目。
模型訓練環境為單張RTX3090,操作系統為Ubuntu18.04,開發語言為Python,選用PyTorch深度學習框架,使用CUDA并行計算架構運算平臺。在訓練過程中,采用YOLOv5系列中輕量級的YOLOv5s網絡模型,參數設置:學習率設置為0.01,bitch-size大小設置為32,訓練迭代次數設置為200,權重衰減設置為0.005。對設置好參數的源代碼進行編譯,即通過訓練可獲得的模型的權重數據,每張圖片的推理運行時間約為5ms。訓練結果如圖4 所示。經過200 次左右的訓練后,YOLOv5s網絡模型的損失函數已趨于穩定。

圖4 定位損失、置信度損失和分類損失在訓練過程中迭代次數的關系圖
YOLOv5s 算法中所使用的損失函數由以下三種損失函數組成:定位損失(localization loss)、分類損失(classification loss)、置信度損失(confidence loss)。其中YOLOv5s 采用GIoU Loss 函數來計算定位損失,公式如下所示:
其中,對于任意的兩個A、B框,首先找到一個能夠包住它們的最小方框C,C(A∪B)表示為C的面積減去A∪B的面積,再用A、B的IoU 值減去這個比值得到GIoU。
YOLOv5s 采用交叉熵損失函數(BCEclsloss)來計算定位損失,計算公式如下:
其中,N表示類別總個數,xi為當前類別預測值,yi表示經過激活函數后得到的當前類別的概率,y*i表示為當前類別的真實值(0或1),Lclass為分類損失。
YOLOv5s采用BECLogits 損失函數來計算置信度損失,這個損失函數結合了Sigmoid 和BCELoss,計算公式如下:
其中,σ(x)為Sigmoid 函數,可以把x映射到(0,1)區間。
訓練過程中通過對網絡參數的反復調整,選擇精度最優的網絡模型,并對其進行測試。YOLOv5s網絡進行目標檢測時可以對目標圖像進行分類、定位、確定目標大小。本實驗的精準率-置信度關系圖如圖5(a)所示,召回率-置信度關系圖如圖5(b)所示,F1曲線如圖5(c)所示,精準率-召回率關系圖如圖5(d)所示。目標檢測模型的mAP@0.5為0.358。結合目標檢測的可視化視頻可以發現,由于攝像頭的視角問題,近距離的可以很好地檢測出抬頭低頭的狀態,遠距離的區域由于目標小,視角很偏,難以檢測出目標,還會影響分類的準確性。

圖5 不同指標曲線圖
抬頭低頭行為檢測效果如圖6所示。可以發現在畫面清晰的情況下基本能夠準確識別學生,并較為準確地識別該學生此時的抬頭低頭狀態。通過計算得到識別平均置信度為0.75,說明利用該模型可以準確識別學生的抬頭、低頭行為,有助于老師在教學活動中更好的了解學生的上課狀態,提高學生的學習效率。

圖6 抬頭低頭行為檢測效果圖
本文提出了一種基于YOLOv5的課堂學生行為檢測方法,初步來看,此模型對于學生課堂的檢測行為是十分可行有效的,可實現對學生的行為狀態進行統一的收集分析,輔助教師實時關注學生的上課狀態,提高課堂學生的學習效率,有效地改善課堂老師的教學質量。但仍有不足且需完善的地方,未來研究工作將重點聚焦于多尺度特征提取上,在深度學習網絡中實現多種不同的特征圖分辨率的分支并行,提升小目標的檢測的準確率。此外,將開展基于多目相機目標檢測的研究,對大學課堂學生行為狀態的識別進行優化。