倪 童,桑慶兵
(江南大學人工智能與計算機學院,江蘇無錫 214122)
近年來,我國大力推進教育信息化[1],提出以信息技術為支撐,提升教學管理水平的方案。基于此,高校不斷完善信息化基礎設施建設,視頻監控、投影儀、電腦等技術設備被廣泛應用于教學場景中。隨著人工智能等新興技術的興起,有研究人員提出智慧校園[2]的概念,出現了計算機視覺和教育領域相結合的新局面。由基于人臉檢測[3-5]實現的課堂考勤[6-7]以及基于行為識別等相關技術實現的動作識別[8-10]已初見成效,抬頭率作為衡量課堂聽課專注度的重要指標,已逐漸進入研究人員的視野。
目前檢測抬頭率的方法主要有兩種:一是基于人臉檢測獲取人臉的位置,并通過分類器對獲取的人臉信息進行分類以得到頭部狀態[11];二是基于人臉姿態估計[12]獲得面部朝向的角度信息,通過角度反應學生頭部狀態。上述兩種方法均基于人臉進行,因此依賴于人臉獲取的情況,但在真實的課堂場景下,由于受光照、監控設備清晰度等各類因素影響,要獲得完整清晰的人臉有一定難度,因此基于人臉的方法具有一定局限性。
得益于深度學習的發展,使用深度學習的檢測方法[13-15]越來越多,REN 等[16]提出Faster R-CNN 算法,利用RPN 網絡并基于Anchor 機制來生成候選框,進一步提升檢測精度和檢測效率。文獻[17]提出YOLOv3 算法,使用3 個尺度的特征圖提升小目標的檢測效果。但在課堂視頻中,人物相對復雜,特征提取較困難,且當學生出現遮擋時,容易出現遺漏目標的情況。
本文引入視覺特征RGB difference,將其與原圖提取后的特征相融合,并使用改進的注意力模型(Improved Convolutional Block Attention Module,ICBAM)構建新的特征提取網絡。此外,通過設計精煉模塊對檢測結果進行優化,以提高抬頭率檢測的準確性。
基于注意力機制和特征融合的抬頭率檢測算法結構如圖1 所示。對于一段完整的課堂視頻,將其逐幀拆分并作為網絡的輸入,同時引入RGB difference 視覺特征作為網絡的另一支輸入,可視化結果如圖2 所示(彩色效果見《計算機工程》官網HTML 版),從人眼的角度容易看出其中人物的輪廓。之所以選擇引入RGB difference,是因為課堂的監控設備是固定視角,RGB difference 能夠弱化背景等靜物,保持網絡對人物這一動態目標的關注度。原圖和RGB difference 被輸入加載了ICBAM 的特征提取網絡,得到2 個尺寸相同的Feature Map:Fi和Fr,Fi和Fr進行elementwise 加和得到最終的融合 特征圖。以融合特征提取網絡為backbone,使用YOLOv3 進行頭部檢測。與人臉相比,頭部包含更豐富的視覺信息,且受遮擋等因素的影響更小,對抬頭率檢測具有重要作用。在獲得頭部邊界框集合后,通過精煉模塊對結果進一步優化。

圖1 基于注意力機制和特征融合的抬頭率檢測算法結構Fig.1 Structure of head up rate detection algorithm based on attention mechanism and feature fusion

圖2 RGB difference 特征Fig.2 RGB difference feature
注意力機制從模擬生物學的角度出發,使神經網絡具備專注于其輸入或特征子集的能力。文獻[18]提出卷積塊注意力模塊(Convolutional Block Attention Module,CBAM),其結構如圖3 所示。CBAM 通過通道注意力模塊和空間注意力模塊依次對輸入特征進行處理,并獲得精煉特征。在課堂視頻中,教室背景和物品并非關注的目標,因此在網絡中添加注意力模型能夠提升提取有效特征的能力。由于CBAM 使用串型結構,因此空間注意力模塊對特征的解釋能力在一定程度上依賴通道注意力的輸出。此外,CBAM 在通道注意力模塊和空間注意力模塊的前端均使用MaxPool 和AvgPool,這會損失圖像部件之間精確的空間相對關系。基于上述問題,本文提出ICBAM 模型,其結構如圖4 所示。

圖3 CBAM 模型的結構Fig.3 Structure of CBAM model

圖4 ICBAM 模型的結構Fig.4 Structure of ICBAM model
為避免空間注意力模塊對通道注意力模塊的依賴,ICBAM 模型使用雙流結構。且在網絡之后,將通道注意力模塊輸出的Mc(F)和空間注意力模塊輸出 的Ms(F) 分別與輸入特征圖F∈RH×W×C進 行elementwise 乘法操作,得到2 個特征圖Fc和Fs,Fc和Fs進行elementwise 加和后得到最終輸出特征圖Fout,計算公式分別如下所示:

為獲取通道注意力模塊的輸出Mc(F),輸入特征圖F∈RH×W×C分別在H和W2 個維度做global max pooling 和global average pooling,同時在H和W維度上做膨脹系數r=2,filter_num=C的W×H空洞卷積,這里加入空洞卷積是因為輸入特征為粗粒度特征,包含豐富的原始信息,使用空洞卷積可以擴大感受野,過濾冗余特征。空洞卷積的本質是一般卷積的延伸,其輸出y[i]可以表示為:

其中:x[·]表示一維輸入信號;w[l]為卷積核;l為卷積核大小;r為膨脹系數。
二維空洞卷積的示意圖如圖5 所示。輸入特征經過global max pooling、global avreage pooling 和空洞卷積得到3 個1×1×C的特征圖,并將其輸入共享權重的多層感知機[19],分別得到映射特征圖。

圖5 不同膨脹系數的空洞卷積示意圖Fig.5 Schematic diagram of cavity convolution with different expansion coefficients
將3 個特征圖進行elementwise 加和并用sigmoid函數激活后得到通道注意力模塊輸出Mc(F)。Mc(F)的計算公式如式(5)所示:

其 中:W0∈RC/r×C;W1∈RC×C/r;C/r為MLP 隱層神經元個數;C為輸出層神經元個數。
為獲取空間注意力模塊的輸出Ms(F),輸入特征圖F∈RH×W×C并在通道維度做global max pooling和global average pooling,隨后在W和H維度做空洞卷積。參數設置:膨脹系數r=2;filter_num=1;zero_padding=2;size=3×3。3 個輸出特征和在通道維度上concat成一個維度為W×H×3的特征圖,然后通過卷積層和sigmoid 函數激活得到最終空間注意力模塊Ms(F)。Ms(F)的計算公式如下:

其中:f7×7表示卷積核尺寸為7×7 的卷積層。
與CBAM 模型相比,ICBAM 模型使用了雙流結構,剝離了空間注意力模塊對通道注意力模塊的直接依賴,使兩者獲得了相同的權重。此外,在2 個注意力模塊中加入的空洞卷積擴大了感受野,能夠過濾冗余特征。
精煉模塊用于進一步優化檢測網絡,其主要包括特殊幀判定和相鄰幀信息融合兩部分。
1.2.1 特殊幀判定
由于視頻包含一些抬頭和低頭姿態切換瞬間的特殊幀,模型在預測時容易將一個目標預測為2 個不同目標,如圖6 所示。圖6 中疊加的2 個邊界框屬于特殊疊加,無法在預測時通過非極大值抑制[20]等常規過濾方法解決,因為疊加的2 個邊界框置信度相當,模型判定這是2 個不同的目標。為保證后續抬頭率計算的精確度,需對頭部檢測后的基礎邊界框進行精煉。

圖6 邊界框疊加Fig.6 Boundary box overlay
特殊疊加的2 個邊界框具有位置相近、大小相當、狀態分類相反和置信度相當的特點,基于以上特點設計算法,算法流程如圖7 所示。

圖7 特殊幀判定流程Fig.7 Procedure of special frame determination
算法的具體步驟如下:
步驟1同一幀內,對每一個檢測到的頭部邊界框,搜尋是否存在與其疊加的邊界框,若未搜尋到則算法結束;
步驟2判斷疊加的2 個邊界框是否具有特殊疊加的特點,若滿足則為特殊疊加,若不滿足則算法結束;
步驟3刪除兩者中置信度較小的邊界框。
1.2.2 相鄰幀信息融合
到目前為止,每一幀分析相互獨立,結果單一依賴檢測神經網絡的結果,這容易造成多目標檢測不全面的問題。為此,所提模塊利用視頻時序信息,對相鄰兩幀頭部邊界框進行融合,使視頻序列構成鏈式結構。算法流程如圖8 所示。

圖8 相鄰幀信息融合流程Fig.8 Procedure of adjacent frame information fusion
具體如算法1 所示:
算法1相鄰幀信息融合

其中:pi表示上一幀第i個頭部邊界框;ni表示當前幀第i個頭部邊界框;max_IOU 表示pi與N中所有邊界框的最大交并比。
由于目前在抬頭率檢測領域沒有相關的公開數據集,因此采集課堂視頻數據并進行人工標注,自建抬頭率檢測數據集RDS。RDS 數據集共包含378 個課堂視頻片段,每段視頻時長10 s 左右。除了對每段視頻的抬頭率標注外,還以從每20 幀中抽取一幀的方式進行頭部邊界框標注,標注原則為上至頭部頂端,下至下顎,左右至雙耳。視頻采集攝像機型號為海康威視DS-2CD3321FD-IW1-T,架設位置為講臺上方1 m 處,固定斜向下正面視角。截取視頻部分幀作為數據樣例,如圖9 所示。

圖9 RDS 數據樣例Fig.9 RDS data sample
硬件環境:Intel Core I5 處理器;NVIDIA GEFORCEE GTX 860 顯卡;16 GB 內存。軟件環境:anaconda python3.7.1;JetBrains PyCharm Community Edition 2019.1.2 x64,tensorflow1.13.1,opencv,numpy1.12,easydict等。參數說明:本文使用的IOU 閾值為0.5,置信度閾值為0.8,膨脹系數為2,訓練初始學習率為1×10-4,結尾學習率為1×10-6,batch size 為8。
為衡量算法輸出的準確性,采用平均抬頭率誤差(mRR Error)作為評價指標。平均抬頭率誤差是指算法的所有輸出抬頭率與真實抬頭率之差的平均絕對值,該指標能反映算法的輸出結果與實際值之間的偏差,mRR Error 越小代表算法的準確性越好。mRR Error 的定義如下:

其中:n表示測試集包含視頻總數;Ri表示第i個視頻的算法輸出抬頭率;Ti表示第i個視頻的實際抬頭率;m為視頻包含幀數;rk表示視頻第k幀抬頭人數;tk表示視頻第k幀總人數。
2.4.1 消融實驗
為驗證RGB difference 特征、ICBAM 和精煉模塊對模型性能的影響,對加載上述部件前后的模型進行實驗對比,結果如表1 所示,其中“√”表示加載此部件,“—”表示不加載此部件。

表1 不同部件對模型性能的影響Table 1 Influence of different components on model performance %
由表1 可知,RGB difference 特征、ICBAM 和精煉模塊對模型性能的提升均有不同程度的促進作用,其中處于較高層次的精煉模塊對性能的影響較大,當加載所有部件時,模型性能取得最優。
圖10 為訓練過程中mRR Error 隨著迭代次數變化的曲線圖,從中可以看出加載了所有部件的模型相比基礎模型的mRR Eerror 更低,效果更好。

圖10 mRR Error 隨迭代次數變化的曲線Fig.10 Curve of MRR error with the number of iterations
2.4.2 ICBAM 和CBAM 模型的對比實驗
本文在CBAM 模型的基礎上改進提出ICBAM模型,為比較兩者的效果,在其他部件保持一致的條件下進行CBAM 和ICBAM 的對比實驗,實驗結果表明,加載CBAM 模型的mRR Error 為15.981,加載ICBAM 模型的mRR Error 為15.648,經過改進的ICBAM 的mRR Error 比CBAM 更低。
2.4.3 ICBAM 加載位置對mRR Error 的影響
為比較ICBAM 不同加載位置對mRR Error 的影響,設計3 組不同的位置方案并進行對比:1)僅加載至特征提取網絡前端;2)僅加載至后端;3)前端+后端,實驗結果如表2 所示。由表2 可知,在特征提取網絡前端和后端分別加載ICBAM 的效果最好,且前端部分影響較大,這說明ICBAM 對淺層特征的提取效果更好。

表2 ICBAM 加載位置對性能影響Table 2 Effect of ICBAM loading position on performance %
2.4.4 空洞卷積參數對性能的影響
空洞卷積參數主要是指膨脹系數,實驗對使用不同膨脹系數的空洞卷積效果進行對比,結果如表3所示。其中膨脹系數為2 的空洞卷積效果較好,原因可能是膨脹系數較小時,保留的原始信息更完整,進而導致mRR Error 更低。

表3 不同膨脹系數對性能影響Table 3 Effect of different expansion coefficient on Performance %
2.4.5 不同抬頭率檢測算法對比
表4為注意力和特征融合抬頭率檢測算法與其他抬頭率檢測算法在RDS 數據集上的性能對比。運算時間為檢測一段幀率為20 frame/s 的10 s 視頻片段所用時間。雖然本文所提算法是基于深度學習的方法,在速度上稍慢,但是在準確度上取得了不錯的表現。

表4 RDS 數據集上不同抬頭率檢測算法性能對比Table 4 Performance comparison of different head up rate detection algorithms on RDS datasets
本文算法和CBAM+YOLOv3、D53+YOLOv3 均是基于YOLOv3 的算法,因此在檢測部分的計算量一致。之所以本文算法相較于這3 種算法較慢有2 個主要原因:1)在特征提取網絡中這2 種算法均僅使用原圖作為輸入,本文算法在逐幀提取特征的同時還需計算并生成每一幀對應的RGB difference 特征,且雙流結構的特征提取網絡需要更高的計算量;2)本文算法相較于以上2 種算法額外設計了2 個精煉模塊以提升檢測結果的準確性,因此增加了檢測時間。
在注意力和特征融合的抬頭率檢測算法的基礎上,基于PyQt5+TensorFlow1.13 框架構建課堂行為分析軟件。軟件主要實現課堂到課人數、課堂抬頭率和個人抬頭率3 個計算需求,共包含3 個頁面:首頁(主界面),視頻頁和分析結果頁。
1)首頁:用戶進入系統后通過首頁選擇待分析的視頻文件,確認分析后等待視頻分析完成即可向其他界面查詢分析結果。首頁僅保留了視頻選擇和視頻分析2 個功能,配置參數及選項均向用戶隱藏,有助于提升系統的易用性。分析軟件主界面如圖11 所示。

圖11 軟件主界面Fig.11 Software main interface
2)視頻頁:視頻頁以播放器的形式向用戶展示分析完成的視頻數據,能直觀反映分析結果,視頻的每一幀會以黃色的矩形框標注低頭的學生(彩色效果見《計算機工程》官網HTML 版),以綠色的矩形框標注抬頭的學生,矩形框上方的數字表示該學生從視頻開始到現在的個人抬頭率。視頻頁支持視頻導出功能,界面如圖12 所示。

圖12 視頻頁Fig.12 Video page
3)分析結果頁:分析結果頁展示文本及圖表形式的分析結果,包括到課人數、課堂專注度、平均抬頭率以及總體抬頭率變化折線圖,有助于反映課堂的聽課情況,若平均抬頭率低于50%,則會反饋課堂專注度低,并對課堂專注度和平均抬頭率標紅(彩色效果見《計算機工程》官網HTML 版),界面如圖13 所示。
為提升課堂監督管理質量,本文提出一種結合注意力機制和特征融合的課堂抬頭率檢測算法。使用RGB difference 視覺特征獲得信息更為豐富的深層融合特征,并構建一種改進的注意力模型ICBAM加載至特征提取網絡上,提升網絡的特征提取能力。此外,在ICBAM 中引入空洞卷積過濾冗余特征,通過設計精煉模塊對預測結果進行優化,并在所提算法的基礎上設計完成課堂行為分析軟件。實驗結果表明,本文算法在抬頭率檢測數據集RDS 上的平均抬頭率誤差為15.648%,相比于SolvePnP 等主流檢測算法具有更低的誤差率。下一步將通過提高模型的運行速度,拓展分析軟件可以識別的行為種類,從而優化軟件的界面設計,以獲得更大的應用價值。