蔡博深, 趙 玲*, 周 容, 孫岳麓, 駱?biāo)己? 盧 仲, 馮 帥, 崔茹云, 馬國(guó)洋, 姬星宇, 田利隆, 王朋珍
(1.東北石油大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院黑龍江大慶 163318;2.大慶油田設(shè)計(jì)院有限公司信息技術(shù)中心黑龍江大慶 163712)
在教學(xué)過(guò)程中, 課堂教學(xué)是很重要的一個(gè)環(huán)節(jié)。學(xué)生在課堂上的表現(xiàn)以及學(xué)生的聽(tīng)課狀態(tài)都是衡量課堂教學(xué)效果的重要方式。課堂中的行為是評(píng)價(jià)聽(tīng)課效果的重要指標(biāo)。因此, 無(wú)論是授課教師還是管理層, 對(duì)學(xué)生課堂的不規(guī)范行為都極為關(guān)注。然而在傳統(tǒng)的課堂教學(xué)中, 學(xué)生的聽(tīng)課狀態(tài)及不規(guī)范行為主要依靠授課教師的觀察, 當(dāng)發(fā)現(xiàn)不規(guī)范行為時(shí), 只能做到口頭提醒。該方法不僅影響了教師授課環(huán)節(jié)的流暢性, 同時(shí)由于教師是在授課過(guò)程中觀察的, 對(duì)學(xué)生的評(píng)價(jià)難以做到全面準(zhǔn)確。因此, 通過(guò)計(jì)算機(jī)視覺(jué)的方式對(duì)學(xué)生課堂不規(guī)范行為進(jìn)行檢測(cè)逐漸受到關(guān)注。
隨著視頻監(jiān)控的普及, 許多多媒體教室都安裝有視頻監(jiān)控, 但是視頻監(jiān)控功能多用來(lái)進(jìn)行視頻回放或人工查閱。人工查閱不能夠及時(shí)地反饋信息, 且需要耗費(fèi)大量的人力。隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展, 人體行為檢測(cè)技術(shù)得到廣泛關(guān)注。文獻(xiàn)[1]使用紅外視頻進(jìn)行人體行為識(shí)別, 與可見(jiàn)光圖像進(jìn)行融合判斷。文獻(xiàn)[2]針對(duì)課堂環(huán)境的行為識(shí)別, 使用隱馬爾科夫模型(SCHMM)實(shí)現(xiàn)人體形態(tài)特征識(shí)別。文獻(xiàn)[3-4]針對(duì)逐幀的識(shí)別失去幀間的連續(xù)性, 使用時(shí)序網(wǎng)絡(luò)對(duì)視頻場(chǎng)景下連續(xù)性信息進(jìn)行識(shí)別。文獻(xiàn)[5-6]使用骨骼信息作為學(xué)生課堂行為的表征, 使用Kinect傳感器套件完成骨骼坐標(biāo)提取, 并使用圖卷積網(wǎng)絡(luò)進(jìn)行行為識(shí)別。文獻(xiàn)[7]使用Open Pose和改進(jìn)的VGG16、SSD算法完成課堂行為識(shí)別, 文獻(xiàn)[8]提出了基于Open Pose的異常行為檢測(cè)系統(tǒng), 該模型可以對(duì)考場(chǎng)中多名考生同時(shí)進(jìn)行骨骼關(guān)鍵點(diǎn)檢測(cè), 根據(jù)關(guān)鍵點(diǎn)信息提取有用的特征向量進(jìn)行訓(xùn)練, 可較好地檢測(cè)出探頭、伸手、站立3種異常行為, 文獻(xiàn)[9-10]針對(duì)真實(shí)課堂環(huán)境易受遮擋問(wèn)題, 對(duì)比了Alpha Pose和Open Pose算法, 結(jié)果表明Alpha Pose算法在教室這類(lèi)有遮擋物場(chǎng)景下的關(guān)鍵點(diǎn)估計(jì)比Open Pose算法準(zhǔn)確率高出2.54%。文獻(xiàn)[11]提出了將ST-GCN用于人體行為識(shí)別, 提高了識(shí)別效率和準(zhǔn)確率
關(guān)于行為識(shí)別的方法很多, 但將人體行為識(shí)別方法應(yīng)用在課堂環(huán)境, 實(shí)現(xiàn)對(duì)學(xué)生課堂的規(guī)范行為識(shí)別不多, 而且實(shí)時(shí)性差, 因此本文提出了一種基于圖卷積神經(jīng)網(wǎng)絡(luò)的學(xué)生課堂不規(guī)范行為實(shí)時(shí)檢測(cè)方法。首先采集學(xué)生課堂圖像, 然后對(duì)視頻監(jiān)控的學(xué)生使用YOLOv5進(jìn)行定位, 對(duì)其骨架進(jìn)行提取, 最后利用圖卷積網(wǎng)絡(luò)分類(lèi)識(shí)別。算法流程如圖1所示。
圖1 算法流程圖Fig.1 Algorithm flow chart
因?yàn)檎n堂環(huán)境背景復(fù)雜, 所以為了減少不必要的檢測(cè)和提高效能, 需要對(duì)學(xué)生進(jìn)行定位, 減少后續(xù)骨骼提取和行為識(shí)別帶來(lái)的計(jì)算量。本文使用YOLOv5網(wǎng)絡(luò)作為學(xué)生的定位基礎(chǔ)模型。其針對(duì)輸入端, 使用了自適應(yīng)錨框計(jì)算等操作, 使得對(duì)于教室監(jiān)控中的學(xué)生這種小型目標(biāo)的檢測(cè)具有非常好的效果。預(yù)測(cè)框來(lái)自初始錨框的輸出, 與真實(shí)框進(jìn)行比對(duì), 計(jì)算差距, 反向更新迭代, 使得效果更加穩(wěn)定;它融合了其他算法中的一 些 結(jié) 構(gòu), 如Focus和CSP(Cross Stage Partial Network)等;增加了FPN(Feature Pyramid Network)和PAN(Path Aggregation Network)的結(jié)構(gòu), 修改損失函數(shù)為GIOU_Loss, 非極大值抑制采用DIOU_nms。
Alpha Pose姿態(tài)估計(jì)算法采用自上而下的策略進(jìn)行人體骨骼識(shí)別。其主要采用仿射變換調(diào)整檢測(cè)框, 附加單人姿態(tài)估計(jì)(Single-Person Post Estimator, SPPE)用于訓(xùn)練擬合, 以及采用參數(shù)化非極大值抑制解決冗余問(wèn)題。
由于卷積神經(jīng)網(wǎng)絡(luò)并不具備標(biāo)度不變性和旋轉(zhuǎn)不變性, 只有最大池化才具有不變性。越大的池化層, 感受野就越大, 所允許的平移就會(huì)越大。本文采用對(duì)稱空間變換網(wǎng)絡(luò)(Symmetric Spatial Transformer Network, SSTN), 通過(guò)仿射變換, 實(shí)現(xiàn)了映射轉(zhuǎn)換功能, 其給每一種變化都提供了2個(gè)參數(shù), 最后使用6個(gè)參數(shù)用于表征對(duì)原圖的變化。SSTN由空間變換網(wǎng)絡(luò)(Spatial Transformer Network, STN)和空間反變換網(wǎng)絡(luò)(Spatial Detransformer Transformer Network, SDTN)2個(gè)部分組成, STN的結(jié)構(gòu)主要分為參數(shù)預(yù)測(cè)、坐標(biāo)映射、像素點(diǎn)采集。
本文使用STN和SDTN自動(dòng)選取ROI, 使用STN去提取一個(gè)高質(zhì)量的人體區(qū)域框, 如式(1)所示:
其中,θ1,θ2和θ3都是二維空間的向量,xi和yi分別表示某一點(diǎn)的x和y坐標(biāo),t表示變換前的坐標(biāo),s表示變換后的坐標(biāo)。
在經(jīng)過(guò)單人姿態(tài)識(shí)別之后, 使用SDTN將估計(jì)的人體姿態(tài)反射回原圖坐標(biāo)中, 如式(2)所示:
其中γ1,γ2和γ3為反向轉(zhuǎn)換需要的參數(shù)。
STN和SDTN的結(jié)構(gòu)為反向結(jié)構(gòu), 有以下關(guān)系:
因此STN和SDTN是被同時(shí)更新參數(shù)的。
相較于傳統(tǒng)的兩步法, 本文采用新的姿態(tài)距離函數(shù)Dpose來(lái)比較姿態(tài)之間的相似程度, 從而消除冗余的識(shí)別結(jié)果。非極大值抑制, 即抑制不是極大值的元素, 在本文上一步的檢測(cè)中, 會(huì)產(chǎn)生非常多的目標(biāo)檢測(cè)結(jié)果框, 其中有很多重復(fù)的框都定位到同一位學(xué)生中, 需要去除這些重復(fù)的框, 獲得真正的目標(biāo)框。
值得注意的是, 即使使用較小的閾值Nt, 附近的檢測(cè)框也會(huì)受到較多的抑制, 因此有很高的錯(cuò)失率, 而使用大的Nt, 將會(huì)增加假正的情況。當(dāng)目標(biāo)個(gè)數(shù)遠(yuǎn)小于ROI個(gè)數(shù)時(shí), 假正的增加將會(huì)大于真陽(yáng)的增加, 因此高的NMS不是最優(yōu)的。
本文使用距離函數(shù)Dpose來(lái)判定姿態(tài)距離。如式(4)所示:
其中Β(kni)表示部位i的區(qū)域位置,knj表示第j個(gè)部位的坐標(biāo)位置,cni表示第j個(gè)部位的置信度分?jǐn)?shù), tanh函數(shù)可以過(guò)濾掉置信度低的姿態(tài), 當(dāng)2個(gè)姿態(tài)的置信度都比較高的時(shí)候, 上述函數(shù)輸出接近1。這個(gè)距離表示姿態(tài)之間不同部位的匹配數(shù)。
因此最終可定義為
本文采用時(shí)空?qǐng)D卷積網(wǎng)絡(luò)[14]分析學(xué)生課堂骨架數(shù)據(jù)中的行為。時(shí)空?qǐng)D卷積網(wǎng)絡(luò)(Spatial Temporal Graph Convolutional Networks, ST-GCN), 是基于圖卷積神經(jīng)網(wǎng)絡(luò)加強(qiáng)時(shí)空聯(lián)系的一類(lèi)模型, 使得人體行為識(shí)別方法得到了極大的改進(jìn)。其中輸入來(lái)自Alpha Pose提取的骨架關(guān)鍵點(diǎn), 在骨架序列中構(gòu)造時(shí)空?qǐng)D, 利用分區(qū)和跨時(shí)間連接等方式, 再聯(lián)合利用幀序列控件信息來(lái)提取骨架信息, 從信息中提取高級(jí)別的特征來(lái)聚合圖像。
ST-GCN最后使用softmax函數(shù)完成分類(lèi)操作。
來(lái)自Alpha Pose的學(xué)生骨架序列由骨骼關(guān)鍵點(diǎn)的二維坐標(biāo)表示。在此使用時(shí)空?qǐng)DG=(V,E)表示關(guān)節(jié)點(diǎn)之間的時(shí)間與空間之間的連接關(guān)系。V表示骨架序列中的所有節(jié)點(diǎn), 對(duì)于來(lái)自Alpha Pose的數(shù)據(jù)為13個(gè)關(guān)鍵點(diǎn)。E包括2種連接, 分別為不同時(shí)間之間的連接和同一時(shí)間不同關(guān)節(jié)點(diǎn)之間的連接。
在圖像中, 采樣函數(shù)是相對(duì)于中心位置的近鄰像素, 也就是圍繞中心位置的卷積核大小的一塊區(qū)域。在圖卷積中, 可以類(lèi)似地定義為對(duì)于節(jié)點(diǎn)vti其鄰近節(jié)點(diǎn)集合B(vti)={vtj|d(vtj,vti)≤D}上的采樣函數(shù), 其中d(vtj,vti)表示從vtj到vti的最小長(zhǎng)度(最小跳數(shù))。因此采樣函數(shù)p:B(vti)→V可以被寫(xiě)作
本文選取D=1, 也就是最近鄰。
在二維卷積中, 相鄰像素的空間順序是固定的, 因此權(quán)重函數(shù)可以按照空間順序建立索引, 按元素乘法計(jì)算。而對(duì)于圖卻沒(méi)有這樣的排列順序, 所以本文認(rèn)為鄰近節(jié)點(diǎn)的空間順序由根節(jié)點(diǎn)周?chē)従訄D中的圖標(biāo)記過(guò)程定義, 通過(guò)劃分某一關(guān)節(jié)點(diǎn)vti的鄰居集B(Vti)到固定數(shù)量的K個(gè)自己來(lái)簡(jiǎn)化這一過(guò)程, 其中每個(gè)子集共用一個(gè)標(biāo)簽。因此映射為
lti:B(vti)→{0, …,K-1}, 權(quán)重函數(shù)為
本文實(shí)驗(yàn)執(zhí)行環(huán)境為:Intel i5-9300H 2.4GHz CPU、NVIDIA GTX 1660ti GPU, 操作系統(tǒng)為Windows 10 20H2, 編程語(yǔ)言為Python3.9, 使用PyTorch進(jìn)行訓(xùn)練。
本文以學(xué)生課堂作弊視頻為數(shù)據(jù)集, 包括玩手機(jī)、打瞌睡、走神等17種行為。
學(xué)生定位選擇YOLOv5框架, 使用上述的自制數(shù)據(jù)集, 其中包括33669個(gè)訓(xùn)練視頻和5611個(gè)驗(yàn)證視頻, 將圖像歸一化到528x528像素, 使用Adam優(yōu)化器, 置信度閾值為0.7, 非極大值抑制閾值為0.4, 學(xué)習(xí)率為10-4。隨機(jī)抽取訓(xùn)練樣本進(jìn)行1400次迭代, 每次迭代樣本數(shù)為2個(gè)。
本文以精確度(P)和平均精度(mAP)來(lái)衡量模型, 計(jì)算公式如式(8)所示:
其中,TP(true positive)表示被正確分類(lèi)的正例;FP(false positive)表示本來(lái)是負(fù)例, 被錯(cuò)分為正例。
在測(cè)試集上, YOLOv5的檢測(cè)精度為98.9%, 平均幀率可以達(dá)到18幀/秒。檢測(cè)效果如圖2所示。
圖2 學(xué)生檢測(cè)結(jié)果Fig.2 Results of students detection
經(jīng)過(guò)課堂學(xué)生定位分析得出學(xué)生邊框過(guò)于緊湊, 可能存在信息損失, 本文實(shí)驗(yàn)中, 無(wú)視長(zhǎng)寬比統(tǒng)一尺寸。本文分別采用Open Pose[12]、DSTA-net[13]和Apha Pose進(jìn)行人體骨架提取。實(shí)驗(yàn)結(jié)果如表1所示, Alpha Pose和DSTA-net的效果如圖3所示。
圖3 Alpha Pose(左)和DSTA-net(右)識(shí)別結(jié)果Fig.3 Result of alpha Pose(left)and DSTA-net(right)
表1 單人關(guān)鍵點(diǎn)提取結(jié)果Tab.2 Result of single persion key point extraction
根據(jù)實(shí)驗(yàn)結(jié)果, 可以看到Apha Pose的效果比較突出, 且性能也比較優(yōu)秀。按照上述流程, 本文在不同場(chǎng)景下對(duì)人物不同行為的骨骼數(shù)據(jù)進(jìn)行分析和檢測(cè), 結(jié)果顯示, 測(cè)試準(zhǔn)確率為94.9%, 其中影響識(shí)別結(jié)果的原因是人體關(guān)節(jié)的部分遮擋、不常見(jiàn)行為和非學(xué)生的誤識(shí)別。因此又對(duì)樣本中的困難樣本進(jìn)行了剔除, 保留了完整的人體信息, 去除了舞臺(tái)跳舞等動(dòng)作, 測(cè)試準(zhǔn)確率為97.0%。
圖卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò), 原則上也可以基于圖像進(jìn)行識(shí)別, 但是由于沒(méi)有在圖像中標(biāo)識(shí)出骨骼姿態(tài), 因此識(shí)別精度并不高, 識(shí)別效率也會(huì)降低, 影響實(shí)時(shí)性, 而ST-GCN是用于識(shí)別骨骼關(guān)鍵點(diǎn)信息的網(wǎng)絡(luò)[15], 該網(wǎng)絡(luò)設(shè)計(jì)的輸入和輸出均為骨骼姿態(tài), 輸入骨骼姿態(tài)可以達(dá)到較好的精度和效果。
根據(jù)模型詳細(xì)設(shè)計(jì)流程, 為了測(cè)試圖卷積神經(jīng)網(wǎng)絡(luò)對(duì)于骨骼數(shù)據(jù)的分類(lèi)效果, 本文選擇了骨骼提取效果進(jìn)行識(shí)別, 并與標(biāo)注的結(jié)果進(jìn)行對(duì)比, 通過(guò)實(shí)驗(yàn)結(jié)果可以看出, ST-GCN可以很好地學(xué)習(xí)人體骨架數(shù)據(jù)所包含的動(dòng)作信息, 很好地用于人體行為識(shí)別中。
本次訓(xùn)練所使用的數(shù)據(jù)集中, 訓(xùn)練集有33669個(gè)骨架, 驗(yàn)證集有5611個(gè)骨架。本次訓(xùn)練每次隨機(jī)采樣10個(gè), 迭代2000次, 學(xué)習(xí)率為0.0001, 使用Adam優(yōu)化器和交叉熵?fù)p失函數(shù)。最終的圖卷積模型在訓(xùn)練集上的分類(lèi)準(zhǔn)確率為100.0%, 在驗(yàn)證集上的分類(lèi)準(zhǔn)確率為96.0%。行為識(shí)別結(jié)果如圖4所示。
圖4 行為識(shí)別結(jié)果Fig.4 Result of behavior detection
本文針對(duì)現(xiàn)有方法在學(xué)生課堂環(huán)境下的行為檢測(cè)不能實(shí)時(shí)準(zhǔn)確地識(shí)別學(xué)生行為的問(wèn)題, 提出了一種基于Alphap Pose和ST-GCN的學(xué)生課堂行為檢測(cè)模型。首先對(duì)課堂攝像視頻進(jìn)行切割, 降低計(jì)算量, 然后使用Alpha Pose提取人體骨架, 最后使用圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)生行為識(shí)別。
實(shí)驗(yàn)表明, 該方法在真實(shí)課堂場(chǎng)景下檢測(cè)速率可達(dá)20幀/秒, 行為識(shí)別準(zhǔn)確率可達(dá)94.9%, 能夠及時(shí)發(fā)現(xiàn)學(xué)生課堂的不規(guī)范行為。但是, 該模型對(duì)于動(dòng)作幅度較大的行為依舊存在著識(shí)別錯(cuò)誤的情況。因此, 在今后將針對(duì)特殊動(dòng)作情況下行為識(shí)別存在的失誤進(jìn)行研究。