黃昶蓉,祁圣恩,包雨杭,郎子迅,牛振華,任相花
(哈爾濱理工大學 計算機科學與技術學院,黑龍江 哈爾濱 150080)
在評價學校辦學水平和教學質量的依據中,課堂的教學質量最為重要,并且學生上課的聽課狀態可以直接反映其教學效果。獲取學生姿態(學習行為)已經成為了在課堂中如何衡量學生聽課效果的核心內容。學生在課堂上的姿態表現(玩手機,睡覺,低頭,寫筆記,認真聽課,趴桌子等)是評價學生學習狀態和課堂教學質量的重要依據。隨著深度學習技術的發展,深度學習技術應用于課堂教學,對教室監控圖像進行分析,獲得真實、客觀的學生上課狀態,并將其作為評價課堂教學質量的數據支撐。然而,如何準確地獲取學生上課狀態的學習數據成為了研究中的一個難點,而解決這個問題需要一種精確的學生姿態檢測算法。
本文使用改進的YOLOv4算法,并且在YOLOv4算法的基礎上實現對課堂上學生姿態的準確檢測。
YOLOv4通過提取輸入圖像的特征,獲得一張S×S的特征圖。依據每張特征圖的大小,在輸入圖像上劃分S×S個網格,每個網格用于檢測在該網格中的對象[1]。ground truth中某個目標對象的中心位置坐標所在的網格,負責檢測該目標對象[2]。
為了全面、精確地檢測不同大小的目標對象和防止圖像在多次卷積后壓縮導致圖像失真情況的出現,YOLOv4特征圖的三種大小分為13×13、26×26和52×52[3],分別用來檢測大、中、小目標對象。
YOLOv4在輸入圖像上劃分S×S個網格,其中每個網格將輸出B個bounding box信息,以及C個目標對象所屬類別的概率信息。每個bounding box信息包含5個數據值,分別是目標框的中心坐標(x,y)、寬高(w、h)和置信度confidence[4]。
置信度表示該bounding box內包含物體的可能性,其計算公式如式(1)所示:

式中,Pr(Object)的值為0或1,用于表示該格子是否存在目標對象。表示當前預測框bounding box和真實框truth box的交并比,其計算公式如式(2)所示:

YOLOv4對置信度進行篩選是以一個固定的閾值作為標準,如果預測框的置信度沒有達到閾值,就將其拋棄。如果出現重疊率比較高的預測框,就采用非極大值抑制算法將其去除,得到最終的檢測結果[5]。
YOLOv4網絡結構主要由CSPDarkNet53主干特征提取網絡、特征金字塔和YoloHead三部分組成。
CSPDarknet53是基于YOLOv3主干網絡Darknet53,并在其基礎上進行修改完善,最終形成的一種包含了5個CSP模塊的Backbone結構,其中CSP模塊將基礎層的特征映射劃分為兩部分,即將原來的殘差塊堆疊進行了拆分,拆成了左右兩個不同的部分,主干部分用于繼續進行原先的殘差塊堆疊,另一部分則類似殘差邊,經過一些少量處理直接連接到最后,然后通過跨階段層次結構將它們合并起來。通過這種處理,在減少了計算量的基礎上,還確保了模型的準確率。
特征金字塔主要包括SPP模塊和PANet模塊。SPP模塊通過融合不同大小的最大池化層來獲得魯棒的特征表示,與單純的使用k*k最大池化的方式相比,采用SPP模塊的方式具有更加突出的優點,例如其可以有效地擴大主干特征的接收范圍和明顯地分離最重要的上下文特征。PANet是融合了上采樣、下采樣以及特征融合的一個模塊。在PANet模塊之中,CSPDarknet53首先將針對輸出的兩個有效特征層單獨進行一次卷積操作,再和SPP模塊輸出的有效特征層三者之間進行堆疊、卷積、上采樣和下采樣,在實現特征金字塔從下到上的特征提取后,還需要實現從上到下的特征提取,有利于更好地完成目標定位的功能。
YoloHead本質上是一個3×3和1×1的卷積,3×3的卷積是進行特征的整合,1×1的卷積則是把獲取的特征轉化為YOLOv4的預測結果。這個預測結果代表了每一個網格點上的3個先驗框內部是否包含物體以及這個物體的種類,還有這個先驗框的調整參數。
為了實現有效地提高訓練樣本的多樣性和充分地增強模型的魯棒性的目標,以及避免模型產生過擬合的問題,采用了Mosaic數據增強進行數據集的擴充[6]。Mosaic數據增強每一次從數據集中隨機抽取4張圖像,分別對其進行翻轉、縮放、色域變化等操作,并且按照4個不同的方位進行隨機的裁剪和拼接,形成一張全新的圖像,再將其反饋給神經網絡用于訓練。部分處理好的合成圖像如圖1所示。
從圖1可以看出,合成圖像與真實圖像之間存在一定的區別,例如,與真實圖像相比,合成圖像時用于拼接的圖片相互之間會覆蓋,從而導致合成圖像中的真實框顯示不全。

圖1 采用Mosaic數據增強方法生成的模擬數據
YOLOv4模型中使用的anchors參數值是對VOC2007數據集做聚類分析得出的,本文特有的學生姿態數據集具有拍攝空間小、拍攝背景較為單一、拍攝人員較為固定、人員較少和多為大目標等特點。VOC2007數據集的anchors與本實驗的數據并不十分匹配。
為了獲得大小比較合適的anchors,根據數據集樣本上存在的標簽信息,對目標的寬和高進行k-means聚類分析。傳統的聚類方法一般使用歐氏距離來衡量差異,當anchors的尺寸較大時,其誤差也會更大[7]。因此引入了IOU,并使用平均IOU作為其精確度評價標準,可以避免產生這個問題。
為了減少不必要的訓練計算量,應該選擇適當的anchor個數。本文選取的k值區間為[5,12],分別用其進行聚類分析,根據實驗計算結果得到k的大小和精確度accuracy的關系如圖2所示。從圖2可以看出,k=9時,accuracy較高,效果比較優秀。因此本文選取anchor的參數個數為9。

圖2 k的大小與accuracy之間的關系圖
本次實驗選擇的操作系統為Windows10,實驗顯卡型號為NVIDIA GeForce GTX 1080Ti,GPU數量為1。使用Visual Studio Code的編譯環境,預裝環境包括python3.6、Tensorflow-GPU 1.13.2、cuda10.0以及cudnn7.4.1.5等。
本次實驗通過4名實驗人員相互合作,選擇在不同教室內以及不同拍攝角度對實驗人員擺出的學生姿態進行視頻錄制。將拍攝獲得的視頻進行幀截取,篩選出最具有學生姿態代表性的視頻幀作為數據樣本,最終獲取的數據集樣本數為10 387。經統計,該數據集共 有masked、play_phone、concentration、unfocused、abnormal、hands_up、sleep 7種學生姿態目標,每種目標所占數據集的比例如圖3所示。

圖3 數據集中每種學生姿態比例
在數據集建立之后,使用LabelImg軟件對數據集中的所有樣本進行標注并生成相對應的XML標簽文件。記錄該圖像的寬高、通道數、對應的矩形框標簽以及bounding box坐標值等。
為了提高模型檢測不同學生姿態的準確性,采用Mosaic數據增強形成合成圖像并擴充已經完成標記的數據集。表1為數據集加入合成圖像前后的數量變化。

表1 數據集加入合成圖像前后的數量變化
為了比較YOLOv4模型改進前后的檢測效果并選出合適的模型進行學生姿態的檢測,根據是否使用Mosaic數據增強和是否使用k-means聚類生成新的anchor box,設計了兩組實驗作為對比,見表2。

表2 模型對比實驗設計
第一組實驗使用YOLOv4模型的預訓練權重、原學生姿態數據集、VOC2007數據集聚類得到的anchor參數值和原損失函數,共同進行模型的訓練。
第二組實驗使用YOLOv4模型的預訓練權重,加入了合成圖像后的新學生姿態數據集,通過學生姿態數據集進行聚類從而得到的新anchor box參數值和原損失函數,共同進行模型的訓練。
(1)精確度precision和召回率recall

對于一個二分類任務,正例和負例分別表示目標對象是正確類別還是非正確類別。真正例TP表示分類器認為是正例并且確實是正例,假正例FP表示分類器認為是正例但實際上是負例,假負例FN表示分類器認為是負例但實際上是正例。因此,precision表示在該分類器預測的正例中有多少是準確的,recall表示實際是正例的有多少被分類器準確地預測。
(2)平均精度AP和平均精度均值mAP

為了綜合precision和recall兩個指標對模型進行評價,提出用AP這一度量標準,定義為所有recall值對應的precision值的均值。在計算AP的積分中,i表示目標類別i,P代表precision,r代表recall,P是一個關于r的函數。因此,AP表示的就是P-R曲線下的面積,而mAP就是對所有AP求均值。
(3)模型性能分析
利用4.3節設計的兩組對比實驗分別進行測試,計算并繪制出每個模型對應的AP值和mAP值,比較并分析數值的變化來判斷模型的準確性和可靠性。測試結果如圖4、圖5所示。

圖4 第一組測試得到的AP與mAP值

圖5 第二組測試得到的AP與mAP值
圖4展示了第一組模型訓練后的檢測結果,mAP值達到66.83%,masked、play_phone、sleep和concentration 4種姿態的AP值都達到了80%及以上,模型可以較好地預測這4種姿態。而hands_up、abnormal和unfocused 3種姿態的AP值均小于50%,unfocused姿態的AP值更是低至31%。
圖5展示了第二組模型訓練后的檢測結果,mAP值達到68.90%,masked、play_phone、sleep和concentration 4種姿態的AP值都達到了80%及以上,模型可以較好地預測這4種姿態。abnormal姿態的AP值為56%,而hands_up和unfocused 2種姿態的AP值均小于50%。
從兩組實驗測試結果的對比發現,使用加入了合成數據的數據集和新的anchor組合的模型相比于原模型,play_phone、hands_up和abnormal 3種學生姿態的AP值有所提高,整個模型的mAP值也有了略微提升。這充分說明了改進的模型在一定程度上更有利于實現目標對象的檢測。通過觀察兩組實驗每種姿態的AP值,發現masked、play_phone、sleep和concentration 4種姿態的AP值較高,說明其訓練數據質量較好。而hands_up、abnormal和unfocused 3種姿態的AP值較低。
本文針對如何客觀準確地描述學生實時上課狀態的問題,提出了一種融合了Mosaic數據增強和kmeans聚類分析的改進的YOLOv4網絡模型。對比實驗表明,改進的YOLOv4模型具有較快的處理速度和較高的準確性,對于某些學生姿態的檢測具有更好的效果。該模型可以真實客觀、科學合理地對學生上課狀態進行量化檢測,并且對提升學校的教學質量和提高學生在課堂上的聽課效率具有重要意義。