林燦然,許偉亮,李逸
(廣東工業大學機電工程學院,廣州510006)
課堂是教師授課和學生獲取知識的重要場所。隨著社會的不斷發展及對學生教育的重視程度提升,對課堂教學質量進行智能化分析變得越發重要。用信息化技術對課堂中學生的行為進行檢測、處理和分析,不僅可以提醒學生規范在課堂上的行為,還可以反映課堂活躍程度,幫助教師改善教學方式[1]。
同時,為了實現優質教育資源的快速與廣泛共享,視頻錄播技術得以發展。視頻錄播系統是一種利用多媒體技術對課堂教學活動進行實時拍攝與錄制,并通過互聯網進行遠程直播或點播的教育系統[2]。傳統的視頻錄播系統需要人工對教學內容進行實時拍攝,教室中教師的走動、板書、學生的起立和坐下等情況都需要人為地控制攝像機對運動目標進行跟蹤拍攝,因此需要投入額外的人力來操作攝像機,從而導致拍攝質量的不穩定及人力成本的提高。此外,拍攝人員在教室中控制攝像機、走動等行為可能會打斷教師的講課思路或分散聽課學生的注意力等,一定程度上地影響了教學質量[3]。隨著人工智能、深度學習以及計算機視覺技術的發展,極大程度推動了智能視頻錄播系統的應用,克服了以往人工監控的不足,在識別性能、效率等方面都有顯著的優勢。其只需提前在教室安裝攝像機,利用目標檢測與行為識別技術檢測當前教室中學生的行為狀態,并根據其狀態控制云臺攝像機對學生進行跟蹤或特寫拍攝,整個錄制過程不需要人工參與,實現了視頻錄播技術的一大突破。
但目前學術界研究學生課堂行為識別的論文較少,研究方法主要集中在機器學習和深度學習上。周鵬霄等人[4]從人臉數目、輪廓特征、主體動作幅度三方面獲取數據,用貝葉斯因果網推理主體行為特征從而進行學生行為識別。黨冬利[5]則提取動作的Zernike矩特征、光流特征、全局運動方向特征,結合樸素貝葉斯分類器[6]來對學生進行行為識別。上述主要運用的是傳統的機器學習方法,需要繁瑣的手工提取特征步驟且準確率較低。廖鵬等人[7]通過背景差分的方法提取學生目標區域,并輸入到VGG網絡中[8],成功識別了睡覺、玩手機、正常三種學生課堂行為。
但上述的文獻都是基于單一模態的數據進行訓練和識別,導致模型的識別效果較差。本文通過實驗對比,研究多模態數據對提高課堂學生行為識別的準確率和召回率的作用,發現對多模態數據如人體關鍵點、RGB圖像等信息的合理結合應用以及對數據進行有效處理如根據訓練損失值排序對較大損失的數據重新打標簽,可以有效提高識別任務的效果,為識別學生課堂行為提供了新的技術方案。
本文主要針對3種典型的學生課堂行為進行識別,分別為:端坐、起立和舉手。其中舉手和起立就是很好的視頻錄播切換鏡頭的信號。一旦算法檢測到有這兩類動作的存在,即可進行鏡頭的切換;一旦動作類型變回端坐,鏡頭即可自動切換回教師的方向。同時這些動作也反映了學生課堂學習的基本情況,對這些典型行為進行識別,也可為后續的自動教學分析提供數據支撐。
本研究選取共90名同學為研究對象,其中30人為一個批次,共3個批次,統一采集同類型動作的數據。具體采集方法如下:對同一批次的人先采集某一類動作如端坐的視頻,要求同學可以有小范圍幅度的變化,如身體傾斜、頭擺動等,保證采集到的數據的多樣性(但僅限于該類動作范圍內),每隔5分鐘換下一個動作,直至3類動作采集完成,換下一批次的同學繼續采集。采集結束后可得到9段視頻,每段約為5分鐘。
采集結束后,對得到的視頻分別通過YOLOv3[9]目標檢測算法得到每個同學的候選框,再將候選框截取出來并進行人工篩查,去掉一些無關及重復程度較大的候選框,即可得到每位同學每類動作的數據。最終保證每類動作的數據在13萬左右。同時,為了保證實驗結果的可靠性,驗證集數據的采集選取了額外的30名同學。具體的課堂學習行為識別數據集D0如表1所示。

表1 課堂學生行為識別數據集D0
為了保證模型訓練的有效和快速收斂,本研究對采集到的圖像進行以下預處理操作:將截取得到的尺寸不一的圖像統一縮放到256×256(空白部分零填充);隨后以中心點為基準,將縮放后的256×256圖像統一裁剪為224×224的圖像;最后進行圖像去均值操作。
具體3種典型課堂行為圖像如圖1所示。由于受學生的性別、著裝、形體、教室環境等不同因素的影響,學生課堂行為識別的數據采集和篩查工作較為繁瑣。

圖1 某同學的三種典型課堂行為圖
人體關鍵點可以用來表示人體骨骼及形態,通過算法識別并獲取關鍵點在圖像中的坐標位置,以此來對人體的各種行為進行描述。目前主要檢測的關鍵點有頭部、頸部、軀干、雙臂、雙腿和腳等。本研究采用的是COCO數據格式的18個人體關鍵點[10],如圖2所示。

圖2 COCO數據格式18個人體關鍵點圖
人體關鍵點檢測作為輔助手段,在人體追蹤、行為檢測、步態識別等計算機視覺識別領域起著至關重要的作用[11]。目前人體關鍵點主要應用領域集中在安防監控、虛擬現實、醫療康復等,在課堂學生行為識別場景中的應用相對較少。
由于目前需要識別的課堂學生行為主要有3種:端坐、起立和舉手,而這三種行為的姿態區分度較大,因此可以考慮使用人體關鍵點進行識別。
首先,對于采集到的數據,使用AlphaPose[12]進行人體關鍵點檢測,獲得每個人18個關鍵點的位置坐標信息,并通過人工標注其行為作為標簽記錄下來。每個關鍵點包含3個信息,分別是橫坐標Xi、縱坐標Yi以及該關鍵點的置信度Ci,因此每個人會有54維的信息。
因為目的是通過考慮各個關鍵點之間的位置關系,以及關節之間的連接方式如直線、彎曲等來判斷動作的類型。因此進行訓練前需要對數據進行歸一化處理,目的是使各關鍵點的坐標不受學生于教室的具體位置影響。具體歸一化方法如下式所示:

其中,Xmax和Ymax分別是某人18個關鍵點中最大的橫縱坐標值(不一定是同一個關鍵點);Xmin和Ymin分別是某人18個關鍵點中最小的橫縱坐標值(不一定是同一個關鍵點);Xi和Yi分別是某人某關鍵點未歸一化前的橫縱坐標值,Ci是某人某關鍵點未歸一化前的置信度;Xn和Yn分別是某人某關鍵點歸一化后的橫縱坐標值,Cn是某人某關鍵點歸一化后的置信度。
得到歸一化后的每個人的54個關鍵點坐標值以及對應的行為標簽,就可以把訓練數據送入SVM分類器進行學習。使用的是python中sklearn包的SVC函數,核選擇RBF核,其余參數默認。最終可以得到每個人屬于3個行為類別其中某個類別各自的概率值,取其中最大的概率值所在在類別即為識別得到的行為。
具體算法流程如圖3所示:

圖3 基于人體關鍵點的行為識別算法流程圖
經驗證集計算得準確率和召回率如表2所示:

表2基于人體關鍵點的行為識別算法結果
由上表2可以看出,平均準確率0.7153基本可以實現對3類行為的識別,其中端坐的準確率可達到0.9917,而起立和舉手相對來說較低。這是因為課堂大部分情況下學生都處于端坐的狀態,當算法無法很好地判斷當前行為時,會更多考慮端坐。
因此基于人體關鍵點可以在一定程度上實現課堂學生3類行為的識別,且只基于關鍵點的識別不容易受到課堂場景等背景因素的干擾,魯棒性較強。但由于人體的骨骼構造使得人體姿態具有多樣性,一個關節的微小調節可能導致行為發生巨大的變化,而且在實際場景中還會受到更多其它不可控因素的干擾,如背景多樣化、物體存在遮擋、光照強度不同、識別角度不同等。因此可以考慮加入其他模態的數據進行識別。
只基于關鍵點的課堂行為識別不易受背景因素干擾,魯棒性較強,但其同樣忽視了背景可能帶來的語義信息的幫助,因此本研究嘗試基于RGB圖像分類的方法進行學生課堂行為識別,探究各模態數據對模型識別的影響和幫助程度。
基于RGB圖像分類的方法流程同數據采集方法類似,對實時的視頻流通過YOLOv3[9]目標檢測算法得到每個同學的候選框,再將候選框截取出來,送入在ImageNet[13]上預訓練好后在D0數據集上調優的Resnet18[14]模型進行前向推斷,從而模型會給出這個候選框屬于3類行為中每類行為的概率值(相加為1),概率值最大的那類行為即模型識別得到的結果。
經驗證集計算得準確率和召回率如下表3所示:

表3 基于RGB圖像分類的行為識別算法結果
其中,端坐和舉手的準確率均無基于關鍵點的算法高,且平均準確率0.6235也沒有0.7153高。因此單獨用RGB圖像分類的方法不能很好地對學生行為進行識別。
基于單模態數據如關鍵點或RGB圖像均無法很好識別課堂學生行為。因此考慮基于多模態數據的行為識別算法,即結合關鍵點與RGB圖像二者的信息。因為基于關鍵點識別能不受課堂背景的干擾,讓模型能更集中于學習行為之間的區別,而基于RGB圖像又能補全關鍵點丟失掉的有用的背景語義信息,二者能夠互補。
基于關鍵點與RGB圖像的行為識別算法主要由2條支路分別提取特征,然后進行特征融合,最后進行預測。首先,對于從視頻抽取的某一視頻幀,經過YOLO v3[9]目標檢測算法得到某個同學的候選框,預處理過后,分為左右兩條支路。左邊是關鍵點支路,經過SPPE[12](Single Person Pose Estimator,單人姿態估計器)后可以得到該人54維的特征信息,進行離差標準化(Min-Max Normalization),目的是對原始數據進行線性變換,使結果值映射到0和1之間;同時該候選框經過右邊的RGB圖像支路,提取ResNet18[14]模型除去全連接層以外的最后一層的512維特征;之后將關鍵點的54維特征與圖像的512維特征進行concat(通道連接)操作,即直接串聯特征,并以此為最后的特征進行行為預測。
具體算法流程如圖4所示:

圖4 基于關鍵點與RGB圖像的行為識別算法流程圖
3類算法經驗證集計算得到的準確率和召回率如表4所示:

表4 3類行為識別算法結果
由上表4可以看出,結合了關鍵點與RGB圖像的多模態行為識別算法的平均準確率為0.7590,召回率為0.8996,均為3類算法中最高。特別對于起立這類行為,準確率更是比只用關鍵點的算法提高了接近20%。而只用RGB圖像的算法,無論是單獨某類行為或者平均準確率都是比較低的。這表明,對于課堂學生行為識別,利用關鍵點是較好的選擇。而結合了關鍵點與RGB圖像的多模態行為識別算法又會比單獨使用其中某種模態會有所提升,表明多模態數據的使用是比較有效的。
但可以發現,即使使用了多模態的數據,平均的準確率和召回率依然比較低,且其中舉手的錯判率比較高,也許對數據的處理至關重要。只有更好地處理數據,才能最大程度發揮多模態模型的效果。
數據的處理對提高算法的準確率有很大的幫助。為此,本研究探究了幾種能在現有模型上,對數據進行處理,進而進一步提高識別準確率的方法。
在之前的模型訓練過程中只使用了端坐、起立和舉手3類行為的數據。但實際情況會比較復雜,可能端坐這個行為還包含趴桌子、看書、寫字這些行為,因此考慮將趴桌子、看書、寫字這幾類行為一起并入端坐這個類別中。并手工進行數據篩查,去掉一些重復的數據,得到新的數據集D1,如表5所示。驗證集為保證公平,不進行處理。

表5課堂學生行為識別數據集D1
還有另一種可以檢查數據的標簽是否正確,以及數據的標簽是否帶有歧義的辦法,就是在模型訓練過程中,觀察每個訓練樣本的loss(損失)值。因為loss可以反映模型對該樣本的學習程度與實際標簽的差異,如果loss值比較大,表明模型對該數據沒有學得很好,可能是該數據標簽沒有打對,或者該數據帶有歧義性,可能人工也無法對其很好地判斷類別,對于這種數據建議是手動剔除不加入訓練。本研究中對訓練3個epoch后的數據,分別打印出loss值從大到小排序前10000個樣本,并手動檢查其標簽是否正確。圖5是一些loss值較大的歧義數據的示例圖,可以看出有些摸頭發的行為容易和舉手造成歧義,因此對于此類數據可以根據需要從數據集中剔除或將其標簽改成端坐。
經過2次loss值排序檢查數據后,得到新的數據集D2、D3如表6所示:

表6課堂學生行為識別數據集D2、D3

圖5 loss值較大的歧義數據示例圖
基于新的D1、D2和D3數據集,采用之前最好的一個模型:基于關鍵點與RGB圖像的行為識別算法重新訓練并在驗證集上進行驗證,得到結果如表7所示。
從表7可以看出,在經過合并多類數據和2次loss值排序檢查數據操作后的D3數據集上,之前的基于關鍵點與RGB圖像的行為識別算法在相同的驗證集下可以達到當前最高的準確率0.90和最高的召回率0.96,準確率相較于D0提升了接近14%。可以看出,數據的改進對模型效果的提升是直接和顯著的。其中端坐和舉手2個類別也是最高的,整體基本可以滿足實際場景的需求。
因為前面將趴桌子、看書、寫字這幾類行為一起并入端坐這個類別中,導致端坐和其他兩個類別的數據量極其不均衡,因此可以考慮在訓練過程中設置每個類別的權重加以約束。
根據每類樣本的數量進行權重修改,數據量較大的類別,權重設置得相對小一些;而對數據量較小的類別,可以人為對權重設置得大一些,可以在一定程度上防止模型過擬合,提升模型效果。

表7新數據集上基于關鍵點與RGB圖像的行為識別算法結果
在Pytorch中,設置權重的代碼如下:
weight_classes=torch.cuda.FloatTensor([0.14,1.0,0.39])
criterion=nn.CrossEntropyLoss(weight=weight_classes)
經實驗,得得到結果如表8所示,可見設置權重能在一定程度上繼續提升模型的效果,但權重的設定是超參數,需要多次嘗試。

表8設置權重對比結果
利用行為識別算法識別課堂學生行為,可以幫助教師改善教學方式,推動智能視頻錄播系統的應用,意義重大。本文通過多組實驗來研究多模態數據對提高課堂學生行為識別的準確率和召回率的影響,發現基于多模態數據如人體關鍵點、RGB圖像等的行為識別方法,效果有一定的提升,在此基礎上通過對數據進行有效的后處理如合并多類數據、根據訓練損失值排序對較大損失的數據重新打標簽和設置不同類別之間的權重,可以更進一步提高識別任務的效果,且效果提升十分明顯。本文的基于多模態數據的課堂學生行為識別算法可廣泛應用于解決實際工作中常見的識別分類等相關問題,具有一定的實際意義。
另外,舉手識別率較其他類別相對低了一些,因為其歧義性較大。未來,融合語音、表情等更豐富語義信息的多模態數據的學生課堂行為識別將是一個重要研究方向,也是本文后續重點研究內容。