歐陽維晰,樊萬姝,陳麟偉
(大連大學(xué)軟件工程學(xué)院,遼寧大連 116622)
隨著智能化教育體系的不斷發(fā)展和完善,如何將人工智能技術(shù)更好地應(yīng)用于高校課堂教學(xué)場(chǎng)景中具有現(xiàn)實(shí)需求性。目前高校課堂教學(xué)紀(jì)律主要依靠于教師的管理和學(xué)生的自我約束,教室中的監(jiān)控錄像無法實(shí)現(xiàn)對(duì)課堂上每個(gè)學(xué)生的課堂行為進(jìn)行監(jiān)督與管理,教師不能及時(shí)接收學(xué)生對(duì)教學(xué)情況的真實(shí)反饋。鑒于此,利用智能化技術(shù)[1]對(duì)課堂學(xué)生行為進(jìn)行監(jiān)測(cè)具有必要性和迫切性。針對(duì)課堂學(xué)生行為的檢測(cè)識(shí)別,傳統(tǒng)方法大多使用特征檢測(cè)算法及分類算法對(duì)其狀態(tài)進(jìn)行提取和分類。最近,深度學(xué)習(xí)的快速發(fā)展為學(xué)生行為檢測(cè)識(shí)別提供了新的思路。不同于傳統(tǒng)的人工提取工作,深度學(xué)習(xí)方法不需顯式地給出具體的檢測(cè)模型,而是利用設(shè)計(jì)好的網(wǎng)絡(luò)模型端到端地隱式學(xué)習(xí)相應(yīng)的映射函數(shù),在識(shí)別精度上有了較大程度提升[2]。得益于深度學(xué)習(xí)在圖像數(shù)據(jù)集上具有很強(qiáng)的學(xué)習(xí)能力,本文采用檢測(cè)速度和精度都較優(yōu)的YOLOv5算法對(duì)學(xué)生課堂抬頭低頭行為識(shí)別,針對(duì)學(xué)生不同狀態(tài)實(shí)時(shí)反饋得到一個(gè)合理識(shí)別結(jié)果。將深度學(xué)習(xí)技術(shù)引入高校的教學(xué)質(zhì)量評(píng)估中,實(shí)時(shí)對(duì)學(xué)生課堂上的抬頭低頭狀態(tài)進(jìn)行檢測(cè),有助于教師及時(shí)了解學(xué)生的學(xué)習(xí)狀態(tài),根據(jù)學(xué)生反饋調(diào)整教學(xué)方式以提高教學(xué)質(zhì)量,推動(dòng)高校課堂教學(xué)的改革和教學(xué)體系的優(yōu)化。
YOLOv5作為基于深度學(xué)習(xí)的物體檢測(cè)框架的典型代表,被廣泛應(yīng)用于各類目標(biāo)檢測(cè)任務(wù)。該算法是YOLO系列目標(biāo)檢測(cè)算法的第五代,相比前幾代算法,在速度與精度方面都得到了極大的提升。目前,YOLOv5 共 有4 種 網(wǎng) 絡(luò) 模 型YOLOv5s、YOLOv5l、YOLOv5m 以及YOLOv5x,其中YOLOv5s 是YOLOv5 系列中網(wǎng)絡(luò)深度和寬度最小的模型[3],可以更好地應(yīng)用于小數(shù)據(jù)集的模型訓(xùn)練。鑒于此,本文采用YOLOv5s模型實(shí)現(xiàn)學(xué)生課堂抬頭低頭行為識(shí)別。YOLOv5s 網(wǎng)絡(luò)模型主要由Input、Backbone、Neck、Prediction 四部分構(gòu)成。YOLOv5s算法的整體網(wǎng)絡(luò)架構(gòu)如圖1所示。
1.1.1 Input
YOLOv5s的輸入端采用Mosaic數(shù)據(jù)增強(qiáng)的方式,對(duì)多張大學(xué)生課堂圖片進(jìn)行處理,進(jìn)而擴(kuò)充數(shù)據(jù)集,提升模型對(duì)小目標(biāo)檢測(cè)的性能;在每次訓(xùn)練時(shí),基于訓(xùn)練數(shù)據(jù)自動(dòng)學(xué)習(xí)的方式自適應(yīng)計(jì)算最佳錨框值。在網(wǎng)絡(luò)訓(xùn)練階段,模型根據(jù)初始錨點(diǎn)框輸出相應(yīng)的預(yù)測(cè)框,計(jì)算其與真實(shí)框之間的差異,執(zhí)行反向更新操作,從而迭代更新網(wǎng)絡(luò)參數(shù);此外,YOLOv5s對(duì)原始課堂的圖片進(jìn)行縮放時(shí)使用了自適應(yīng)縮放技術(shù),在縮放后的圖片中自適應(yīng)地填充最少的黑邊,旨在進(jìn)行推理時(shí),大幅降低計(jì)算量,進(jìn)一步提升目標(biāo)檢測(cè)速度。
1.1.2 Backbone
Backbone 主要包含F(xiàn)ocus 結(jié)構(gòu)以及CSP 結(jié)構(gòu)[4]。Focus結(jié)構(gòu)用于實(shí)現(xiàn)高分辨率圖像信息從空間維到通道維的轉(zhuǎn)換,將大小為608×608×3 的課堂圖片輸入到Focus 結(jié)構(gòu),經(jīng)過4 次切片操作得到大小為304×304×12的特征圖,再使用1次32個(gè)卷積核的卷積操作輸出大小為304×304×32 的課堂圖片特征圖。YOLOv5s 設(shè)計(jì)了兩種CSP 結(jié)構(gòu):CSP1_X 和CSP2_X,分別應(yīng)用于Backbone 和Neck 中。CSP 結(jié)構(gòu)克服了其他卷積神經(jīng)網(wǎng)絡(luò)框架中梯度信息重復(fù)的缺陷,在減少模型的參數(shù)量和FLOPS 數(shù)值的同時(shí)提高了推理速度和準(zhǔn)確率。此外,Backbone 中還加入了SPP 模塊,增強(qiáng)網(wǎng)絡(luò)對(duì)多尺度特征進(jìn)行融合的能力。
1.1.3 Neck
Neck是在Backbone和Prediction之間插入的用于更好地提取融合特征的網(wǎng)絡(luò)層,其采用特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)[5]和感知對(duì)抗網(wǎng)絡(luò)(Path Aggregation Network,PAN)相組合的結(jié)構(gòu)進(jìn)行上采樣和下采樣。通過自頂向下的FPN,上采樣高層特征以傳遞強(qiáng)語義特征,生成預(yù)測(cè)特征圖。在FPN后添加自底向上的PAN 傳達(dá)強(qiáng)定位特征。FPN 與PAN 的聯(lián)合使用可以實(shí)現(xiàn)不同的主干層對(duì)不同的檢測(cè)層的參數(shù)聚合,同時(shí)獲得語義特征和定位特征,進(jìn)一步提高模型的特征提取能力。
1.1.4 Prediction
Prediction 主要由損失函數(shù)和非極大值抑制兩部分組成。YOLOv5s 中采用GIOU_Loss[6]作為Bounding box 的損失函數(shù)。GIOU_Loss中增加了相交尺度的衡量方式,有利于緩解課堂圖片邊界框不重合的特殊情況。針對(duì)大量目標(biāo)框的篩選問題,使用非極大值抑制方法對(duì)冗余的預(yù)測(cè)框進(jìn)行過濾,以獲取最優(yōu)的目標(biāo)框,進(jìn)一步提升算法的檢測(cè)精度。
基于YOLOv5 的課堂抬頭低頭行為識(shí)別主要包括數(shù)據(jù)集構(gòu)建、模型訓(xùn)練以及抬頭低頭姿態(tài)檢測(cè)估計(jì)三部分。首先通過安裝在高校不同教室中的多個(gè)攝像頭采集多個(gè)上課視頻信息并截取成幀圖片,使用LabelImg 對(duì)其進(jìn)行標(biāo)注以構(gòu)建抬頭低頭識(shí)別數(shù)據(jù)集;其次通過YOLOv5s 訓(xùn)練模塊對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練獲取模型權(quán)重?cái)?shù)據(jù);最后使用YOLOv5s預(yù)測(cè)模塊完成學(xué)生低頭行為預(yù)測(cè)。實(shí)驗(yàn)流程如圖2所示。
圖2 實(shí)驗(yàn)流程圖
本實(shí)驗(yàn)收集了大量大學(xué)生課堂上課視頻,盡量選擇在同一地點(diǎn),不同時(shí)間,人數(shù)差不多的視頻。首先,從篩選出的每個(gè)視頻的中間部分每隔5s 截取1 張圖片,共截取100張圖片。由于大學(xué)生在課堂上的行為狀態(tài)相對(duì)單一,一般只有抬頭聽課和低頭看書兩種狀態(tài),為保證數(shù)據(jù)的質(zhì)量和可靠性,所截取的100張圖片里學(xué)生的抬頭低頭狀態(tài)總量盡量在同一個(gè)范圍內(nèi)波動(dòng)。經(jīng)以上數(shù)據(jù)處理后采集并整理得到2 000張數(shù)據(jù)圖片。隨后,采用LabelImg開源數(shù)據(jù)標(biāo)注工具對(duì)學(xué)生抬頭低頭狀態(tài)進(jìn)行標(biāo)簽標(biāo)注,并將圖片的標(biāo)注格式由xml 轉(zhuǎn)換為txt 文件格式,即YOLOv5s 數(shù)據(jù)格式。圖3為數(shù)據(jù)集標(biāo)注樣例。txt 文件中每行第一個(gè)數(shù)據(jù)表示目標(biāo)類別,0代表抬頭,1代表低頭,其余四個(gè)數(shù)字分別代表目標(biāo)左上角的坐標(biāo)和寬高。最后,以7:2:1的比例將標(biāo)注好的數(shù)據(jù)劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,并將這些數(shù)據(jù)集中的圖片分別存放相應(yīng)的.txt文件下。
圖3 LabelImg標(biāo)注界面
本實(shí)驗(yàn)采用目標(biāo)檢測(cè)任務(wù)中常用的平均精度均值(mean Average Precision,mAP)[7]來評(píng)價(jià)模型性能。mAP 是基于召回率(Recall)、精準(zhǔn)率(Precision)以及平均精度(Average Precision,AP)三個(gè)指標(biāo)。
召回率是指模型在進(jìn)行目標(biāo)檢測(cè)時(shí)是否將所有區(qū)域都檢測(cè)到,計(jì)算公式如式(1)所示:
其中,TP表示真正例,F(xiàn)N表示假反例。
精準(zhǔn)率是指模型在進(jìn)行目標(biāo)檢測(cè)時(shí)檢測(cè)到的區(qū)域準(zhǔn)確率,計(jì)算公式如式(2)所示:
其中,F(xiàn)P表示假正例。
平均精度是召回率從0 到1 時(shí)準(zhǔn)確率的平均值,衡量訓(xùn)練得到的模型對(duì)單位類檢測(cè)效果的好壞。計(jì)算公式如式(3)所示:
其中,P(s)是準(zhǔn)確率-召回率(Precision-recall,PR)曲線。平均精度為PR曲線的面積。
mAP為所有類別平均精度的平均值,計(jì)算公式如式(4)所示:
其中,AP(i)表示第i個(gè)類別的檢測(cè)精度,n表示類別數(shù)目。
模型訓(xùn)練環(huán)境為單張RTX3090,操作系統(tǒng)為Ubuntu18.04,開發(fā)語言為Python,選用PyTorch深度學(xué)習(xí)框架,使用CUDA并行計(jì)算架構(gòu)運(yùn)算平臺(tái)。在訓(xùn)練過程中,采用YOLOv5系列中輕量級(jí)的YOLOv5s網(wǎng)絡(luò)模型,參數(shù)設(shè)置:學(xué)習(xí)率設(shè)置為0.01,bitch-size大小設(shè)置為32,訓(xùn)練迭代次數(shù)設(shè)置為200,權(quán)重衰減設(shè)置為0.005。對(duì)設(shè)置好參數(shù)的源代碼進(jìn)行編譯,即通過訓(xùn)練可獲得的模型的權(quán)重?cái)?shù)據(jù),每張圖片的推理運(yùn)行時(shí)間約為5ms。訓(xùn)練結(jié)果如圖4 所示。經(jīng)過200 次左右的訓(xùn)練后,YOLOv5s網(wǎng)絡(luò)模型的損失函數(shù)已趨于穩(wěn)定。
圖4 定位損失、置信度損失和分類損失在訓(xùn)練過程中迭代次數(shù)的關(guān)系圖
YOLOv5s 算法中所使用的損失函數(shù)由以下三種損失函數(shù)組成:定位損失(localization loss)、分類損失(classification loss)、置信度損失(confidence loss)。其中YOLOv5s 采用GIoU Loss 函數(shù)來計(jì)算定位損失,公式如下所示:
其中,對(duì)于任意的兩個(gè)A、B框,首先找到一個(gè)能夠包住它們的最小方框C,C(A∪B)表示為C的面積減去A∪B的面積,再用A、B的IoU 值減去這個(gè)比值得到GIoU。
YOLOv5s 采用交叉熵?fù)p失函數(shù)(BCEclsloss)來計(jì)算定位損失,計(jì)算公式如下:
其中,N表示類別總個(gè)數(shù),xi為當(dāng)前類別預(yù)測(cè)值,yi表示經(jīng)過激活函數(shù)后得到的當(dāng)前類別的概率,y*i表示為當(dāng)前類別的真實(shí)值(0或1),Lclass為分類損失。
YOLOv5s采用BECLogits 損失函數(shù)來計(jì)算置信度損失,這個(gè)損失函數(shù)結(jié)合了Sigmoid 和BCELoss,計(jì)算公式如下:
其中,σ(x)為Sigmoid 函數(shù),可以把x映射到(0,1)區(qū)間。
訓(xùn)練過程中通過對(duì)網(wǎng)絡(luò)參數(shù)的反復(fù)調(diào)整,選擇精度最優(yōu)的網(wǎng)絡(luò)模型,并對(duì)其進(jìn)行測(cè)試。YOLOv5s網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測(cè)時(shí)可以對(duì)目標(biāo)圖像進(jìn)行分類、定位、確定目標(biāo)大小。本實(shí)驗(yàn)的精準(zhǔn)率-置信度關(guān)系圖如圖5(a)所示,召回率-置信度關(guān)系圖如圖5(b)所示,F(xiàn)1曲線如圖5(c)所示,精準(zhǔn)率-召回率關(guān)系圖如圖5(d)所示。目標(biāo)檢測(cè)模型的mAP@0.5為0.358。結(jié)合目標(biāo)檢測(cè)的可視化視頻可以發(fā)現(xiàn),由于攝像頭的視角問題,近距離的可以很好地檢測(cè)出抬頭低頭的狀態(tài),遠(yuǎn)距離的區(qū)域由于目標(biāo)小,視角很偏,難以檢測(cè)出目標(biāo),還會(huì)影響分類的準(zhǔn)確性。
圖5 不同指標(biāo)曲線圖
抬頭低頭行為檢測(cè)效果如圖6所示。可以發(fā)現(xiàn)在畫面清晰的情況下基本能夠準(zhǔn)確識(shí)別學(xué)生,并較為準(zhǔn)確地識(shí)別該學(xué)生此時(shí)的抬頭低頭狀態(tài)。通過計(jì)算得到識(shí)別平均置信度為0.75,說明利用該模型可以準(zhǔn)確識(shí)別學(xué)生的抬頭、低頭行為,有助于老師在教學(xué)活動(dòng)中更好的了解學(xué)生的上課狀態(tài),提高學(xué)生的學(xué)習(xí)效率。
圖6 抬頭低頭行為檢測(cè)效果圖
本文提出了一種基于YOLOv5的課堂學(xué)生行為檢測(cè)方法,初步來看,此模型對(duì)于學(xué)生課堂的檢測(cè)行為是十分可行有效的,可實(shí)現(xiàn)對(duì)學(xué)生的行為狀態(tài)進(jìn)行統(tǒng)一的收集分析,輔助教師實(shí)時(shí)關(guān)注學(xué)生的上課狀態(tài),提高課堂學(xué)生的學(xué)習(xí)效率,有效地改善課堂老師的教學(xué)質(zhì)量。但仍有不足且需完善的地方,未來研究工作將重點(diǎn)聚焦于多尺度特征提取上,在深度學(xué)習(xí)網(wǎng)絡(luò)中實(shí)現(xiàn)多種不同的特征圖分辨率的分支并行,提升小目標(biāo)的檢測(cè)的準(zhǔn)確率。此外,將開展基于多目相機(jī)目標(biāo)檢測(cè)的研究,對(duì)大學(xué)課堂學(xué)生行為狀態(tài)的識(shí)別進(jìn)行優(yōu)化。