黃昶蓉,祁圣恩,包雨杭,郎子迅,牛振華,任相花
(哈爾濱理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150080)
在評價學(xué)校辦學(xué)水平和教學(xué)質(zhì)量的依據(jù)中,課堂的教學(xué)質(zhì)量最為重要,并且學(xué)生上課的聽課狀態(tài)可以直接反映其教學(xué)效果。獲取學(xué)生姿態(tài)(學(xué)習(xí)行為)已經(jīng)成為了在課堂中如何衡量學(xué)生聽課效果的核心內(nèi)容。學(xué)生在課堂上的姿態(tài)表現(xiàn)(玩手機,睡覺,低頭,寫筆記,認(rèn)真聽課,趴桌子等)是評價學(xué)生學(xué)習(xí)狀態(tài)和課堂教學(xué)質(zhì)量的重要依據(jù)。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,深度學(xué)習(xí)技術(shù)應(yīng)用于課堂教學(xué),對教室監(jiān)控圖像進(jìn)行分析,獲得真實、客觀的學(xué)生上課狀態(tài),并將其作為評價課堂教學(xué)質(zhì)量的數(shù)據(jù)支撐。然而,如何準(zhǔn)確地獲取學(xué)生上課狀態(tài)的學(xué)習(xí)數(shù)據(jù)成為了研究中的一個難點,而解決這個問題需要一種精確的學(xué)生姿態(tài)檢測算法。
本文使用改進(jìn)的YOLOv4算法,并且在YOLOv4算法的基礎(chǔ)上實現(xiàn)對課堂上學(xué)生姿態(tài)的準(zhǔn)確檢測。
YOLOv4通過提取輸入圖像的特征,獲得一張S×S的特征圖。依據(jù)每張?zhí)卣鲌D的大小,在輸入圖像上劃分S×S個網(wǎng)格,每個網(wǎng)格用于檢測在該網(wǎng)格中的對象[1]。ground truth中某個目標(biāo)對象的中心位置坐標(biāo)所在的網(wǎng)格,負(fù)責(zé)檢測該目標(biāo)對象[2]。
為了全面、精確地檢測不同大小的目標(biāo)對象和防止圖像在多次卷積后壓縮導(dǎo)致圖像失真情況的出現(xiàn),YOLOv4特征圖的三種大小分為13×13、26×26和52×52[3],分別用來檢測大、中、小目標(biāo)對象。
YOLOv4在輸入圖像上劃分S×S個網(wǎng)格,其中每個網(wǎng)格將輸出B個bounding box信息,以及C個目標(biāo)對象所屬類別的概率信息。每個bounding box信息包含5個數(shù)據(jù)值,分別是目標(biāo)框的中心坐標(biāo)(x,y)、寬高(w、h)和置信度confidence[4]。
置信度表示該bounding box內(nèi)包含物體的可能性,其計算公式如式(1)所示:
式中,Pr(Object)的值為0或1,用于表示該格子是否存在目標(biāo)對象。表示當(dāng)前預(yù)測框bounding box和真實框truth box的交并比,其計算公式如式(2)所示:
YOLOv4對置信度進(jìn)行篩選是以一個固定的閾值作為標(biāo)準(zhǔn),如果預(yù)測框的置信度沒有達(dá)到閾值,就將其拋棄。如果出現(xiàn)重疊率比較高的預(yù)測框,就采用非極大值抑制算法將其去除,得到最終的檢測結(jié)果[5]。
YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)主要由CSPDarkNet53主干特征提取網(wǎng)絡(luò)、特征金字塔和YoloHead三部分組成。
CSPDarknet53是基于YOLOv3主干網(wǎng)絡(luò)Darknet53,并在其基礎(chǔ)上進(jìn)行修改完善,最終形成的一種包含了5個CSP模塊的Backbone結(jié)構(gòu),其中CSP模塊將基礎(chǔ)層的特征映射劃分為兩部分,即將原來的殘差塊堆疊進(jìn)行了拆分,拆成了左右兩個不同的部分,主干部分用于繼續(xù)進(jìn)行原先的殘差塊堆疊,另一部分則類似殘差邊,經(jīng)過一些少量處理直接連接到最后,然后通過跨階段層次結(jié)構(gòu)將它們合并起來。通過這種處理,在減少了計算量的基礎(chǔ)上,還確保了模型的準(zhǔn)確率。
特征金字塔主要包括SPP模塊和PANet模塊。SPP模塊通過融合不同大小的最大池化層來獲得魯棒的特征表示,與單純的使用k*k最大池化的方式相比,采用SPP模塊的方式具有更加突出的優(yōu)點,例如其可以有效地擴大主干特征的接收范圍和明顯地分離最重要的上下文特征。PANet是融合了上采樣、下采樣以及特征融合的一個模塊。在PANet模塊之中,CSPDarknet53首先將針對輸出的兩個有效特征層單獨進(jìn)行一次卷積操作,再和SPP模塊輸出的有效特征層三者之間進(jìn)行堆疊、卷積、上采樣和下采樣,在實現(xiàn)特征金字塔從下到上的特征提取后,還需要實現(xiàn)從上到下的特征提取,有利于更好地完成目標(biāo)定位的功能。
YoloHead本質(zhì)上是一個3×3和1×1的卷積,3×3的卷積是進(jìn)行特征的整合,1×1的卷積則是把獲取的特征轉(zhuǎn)化為YOLOv4的預(yù)測結(jié)果。這個預(yù)測結(jié)果代表了每一個網(wǎng)格點上的3個先驗框內(nèi)部是否包含物體以及這個物體的種類,還有這個先驗框的調(diào)整參數(shù)。
為了實現(xiàn)有效地提高訓(xùn)練樣本的多樣性和充分地增強模型的魯棒性的目標(biāo),以及避免模型產(chǎn)生過擬合的問題,采用了Mosaic數(shù)據(jù)增強進(jìn)行數(shù)據(jù)集的擴充[6]。Mosaic數(shù)據(jù)增強每一次從數(shù)據(jù)集中隨機抽取4張圖像,分別對其進(jìn)行翻轉(zhuǎn)、縮放、色域變化等操作,并且按照4個不同的方位進(jìn)行隨機的裁剪和拼接,形成一張全新的圖像,再將其反饋給神經(jīng)網(wǎng)絡(luò)用于訓(xùn)練。部分處理好的合成圖像如圖1所示。
從圖1可以看出,合成圖像與真實圖像之間存在一定的區(qū)別,例如,與真實圖像相比,合成圖像時用于拼接的圖片相互之間會覆蓋,從而導(dǎo)致合成圖像中的真實框顯示不全。
圖1 采用Mosaic數(shù)據(jù)增強方法生成的模擬數(shù)據(jù)
YOLOv4模型中使用的anchors參數(shù)值是對VOC2007數(shù)據(jù)集做聚類分析得出的,本文特有的學(xué)生姿態(tài)數(shù)據(jù)集具有拍攝空間小、拍攝背景較為單一、拍攝人員較為固定、人員較少和多為大目標(biāo)等特點。VOC2007數(shù)據(jù)集的anchors與本實驗的數(shù)據(jù)并不十分匹配。
為了獲得大小比較合適的anchors,根據(jù)數(shù)據(jù)集樣本上存在的標(biāo)簽信息,對目標(biāo)的寬和高進(jìn)行k-means聚類分析。傳統(tǒng)的聚類方法一般使用歐氏距離來衡量差異,當(dāng)anchors的尺寸較大時,其誤差也會更大[7]。因此引入了IOU,并使用平均IOU作為其精確度評價標(biāo)準(zhǔn),可以避免產(chǎn)生這個問題。
為了減少不必要的訓(xùn)練計算量,應(yīng)該選擇適當(dāng)?shù)腶nchor個數(shù)。本文選取的k值區(qū)間為[5,12],分別用其進(jìn)行聚類分析,根據(jù)實驗計算結(jié)果得到k的大小和精確度accuracy的關(guān)系如圖2所示。從圖2可以看出,k=9時,accuracy較高,效果比較優(yōu)秀。因此本文選取anchor的參數(shù)個數(shù)為9。
圖2 k的大小與accuracy之間的關(guān)系圖
本次實驗選擇的操作系統(tǒng)為Windows10,實驗顯卡型號為NVIDIA GeForce GTX 1080Ti,GPU數(shù)量為1。使用Visual Studio Code的編譯環(huán)境,預(yù)裝環(huán)境包括python3.6、Tensorflow-GPU 1.13.2、cuda10.0以及cudnn7.4.1.5等。
本次實驗通過4名實驗人員相互合作,選擇在不同教室內(nèi)以及不同拍攝角度對實驗人員擺出的學(xué)生姿態(tài)進(jìn)行視頻錄制。將拍攝獲得的視頻進(jìn)行幀截取,篩選出最具有學(xué)生姿態(tài)代表性的視頻幀作為數(shù)據(jù)樣本,最終獲取的數(shù)據(jù)集樣本數(shù)為10 387。經(jīng)統(tǒng)計,該數(shù)據(jù)集共 有masked、play_phone、concentration、unfocused、abnormal、hands_up、sleep 7種學(xué)生姿態(tài)目標(biāo),每種目標(biāo)所占數(shù)據(jù)集的比例如圖3所示。
圖3 數(shù)據(jù)集中每種學(xué)生姿態(tài)比例
在數(shù)據(jù)集建立之后,使用LabelImg軟件對數(shù)據(jù)集中的所有樣本進(jìn)行標(biāo)注并生成相對應(yīng)的XML標(biāo)簽文件。記錄該圖像的寬高、通道數(shù)、對應(yīng)的矩形框標(biāo)簽以及bounding box坐標(biāo)值等。
為了提高模型檢測不同學(xué)生姿態(tài)的準(zhǔn)確性,采用Mosaic數(shù)據(jù)增強形成合成圖像并擴充已經(jīng)完成標(biāo)記的數(shù)據(jù)集。表1為數(shù)據(jù)集加入合成圖像前后的數(shù)量變化。
表1 數(shù)據(jù)集加入合成圖像前后的數(shù)量變化
為了比較YOLOv4模型改進(jìn)前后的檢測效果并選出合適的模型進(jìn)行學(xué)生姿態(tài)的檢測,根據(jù)是否使用Mosaic數(shù)據(jù)增強和是否使用k-means聚類生成新的anchor box,設(shè)計了兩組實驗作為對比,見表2。
表2 模型對比實驗設(shè)計
第一組實驗使用YOLOv4模型的預(yù)訓(xùn)練權(quán)重、原學(xué)生姿態(tài)數(shù)據(jù)集、VOC2007數(shù)據(jù)集聚類得到的anchor參數(shù)值和原損失函數(shù),共同進(jìn)行模型的訓(xùn)練。
第二組實驗使用YOLOv4模型的預(yù)訓(xùn)練權(quán)重,加入了合成圖像后的新學(xué)生姿態(tài)數(shù)據(jù)集,通過學(xué)生姿態(tài)數(shù)據(jù)集進(jìn)行聚類從而得到的新anchor box參數(shù)值和原損失函數(shù),共同進(jìn)行模型的訓(xùn)練。
(1)精確度precision和召回率recall
對于一個二分類任務(wù),正例和負(fù)例分別表示目標(biāo)對象是正確類別還是非正確類別。真正例TP表示分類器認(rèn)為是正例并且確實是正例,假正例FP表示分類器認(rèn)為是正例但實際上是負(fù)例,假負(fù)例FN表示分類器認(rèn)為是負(fù)例但實際上是正例。因此,precision表示在該分類器預(yù)測的正例中有多少是準(zhǔn)確的,recall表示實際是正例的有多少被分類器準(zhǔn)確地預(yù)測。
(2)平均精度AP和平均精度均值mAP
為了綜合precision和recall兩個指標(biāo)對模型進(jìn)行評價,提出用AP這一度量標(biāo)準(zhǔn),定義為所有recall值對應(yīng)的precision值的均值。在計算AP的積分中,i表示目標(biāo)類別i,P代表precision,r代表recall,P是一個關(guān)于r的函數(shù)。因此,AP表示的就是P-R曲線下的面積,而mAP就是對所有AP求均值。
(3)模型性能分析
利用4.3節(jié)設(shè)計的兩組對比實驗分別進(jìn)行測試,計算并繪制出每個模型對應(yīng)的AP值和mAP值,比較并分析數(shù)值的變化來判斷模型的準(zhǔn)確性和可靠性。測試結(jié)果如圖4、圖5所示。
圖4 第一組測試得到的AP與mAP值
圖5 第二組測試得到的AP與mAP值
圖4展示了第一組模型訓(xùn)練后的檢測結(jié)果,mAP值達(dá)到66.83%,masked、play_phone、sleep和concentration 4種姿態(tài)的AP值都達(dá)到了80%及以上,模型可以較好地預(yù)測這4種姿態(tài)。而hands_up、abnormal和unfocused 3種姿態(tài)的AP值均小于50%,unfocused姿態(tài)的AP值更是低至31%。
圖5展示了第二組模型訓(xùn)練后的檢測結(jié)果,mAP值達(dá)到68.90%,masked、play_phone、sleep和concentration 4種姿態(tài)的AP值都達(dá)到了80%及以上,模型可以較好地預(yù)測這4種姿態(tài)。abnormal姿態(tài)的AP值為56%,而hands_up和unfocused 2種姿態(tài)的AP值均小于50%。
從兩組實驗測試結(jié)果的對比發(fā)現(xiàn),使用加入了合成數(shù)據(jù)的數(shù)據(jù)集和新的anchor組合的模型相比于原模型,play_phone、hands_up和abnormal 3種學(xué)生姿態(tài)的AP值有所提高,整個模型的mAP值也有了略微提升。這充分說明了改進(jìn)的模型在一定程度上更有利于實現(xiàn)目標(biāo)對象的檢測。通過觀察兩組實驗每種姿態(tài)的AP值,發(fā)現(xiàn)masked、play_phone、sleep和concentration 4種姿態(tài)的AP值較高,說明其訓(xùn)練數(shù)據(jù)質(zhì)量較好。而hands_up、abnormal和unfocused 3種姿態(tài)的AP值較低。
本文針對如何客觀準(zhǔn)確地描述學(xué)生實時上課狀態(tài)的問題,提出了一種融合了Mosaic數(shù)據(jù)增強和kmeans聚類分析的改進(jìn)的YOLOv4網(wǎng)絡(luò)模型。對比實驗表明,改進(jìn)的YOLOv4模型具有較快的處理速度和較高的準(zhǔn)確性,對于某些學(xué)生姿態(tài)的檢測具有更好的效果。該模型可以真實客觀、科學(xué)合理地對學(xué)生上課狀態(tài)進(jìn)行量化檢測,并且對提升學(xué)校的教學(xué)質(zhì)量和提高學(xué)生在課堂上的聽課效率具有重要意義。