閆曉煒 張朝暉 趙小燕 賈鸝宇
摘 要: 利用智能視頻監(jiān)控來進行課堂教學自動評估,可以方便高效地服務于教學,而作為課堂教學中的主要角色,教師授課狀態(tài)對課堂教學評價有著至關重要的影響,因此本實驗使用視頻技術通過對教師肢體動作檢測實現了對教師的授課評價。在實驗中作者首先對比了OpenPose和yolo兩種深度學習算法并最終選擇yolo算法,然后自己制作數據集進行訓練檢測,完成教師肢體動作的識別,最后針對識別框尺寸大小不準確的問題進行了優(yōu)化,提高了檢測的準確度。
關鍵詞:課堂教學評估;肢體動作檢測;深度學習算法
中圖分類號:TP37,G202 ? ? 文獻標志碼:B? ? ? ? ? ?文章編號:1673-8454(2019)16-0088-04
一、引言
得益于視頻監(jiān)控技術的發(fā)展和人們綜合素質水平的提高,基于視頻處理的課堂教學自動評估系統(tǒng)[1]應運而生,逐漸取代了傳統(tǒng)的教學評估系統(tǒng),更方便地服務于課堂教學管理工作,同時為監(jiān)督教育的進步和發(fā)展提供了技術支持。這些智能監(jiān)控系統(tǒng)主要利用了視頻處理技術對學生進行監(jiān)控,針對學生的上課考勤、聽課情況進行分析,最終獲得教學評估數據。
在課堂中學生固然有著重要的身份地位,我們通過監(jiān)測學生的情況對課堂教學進行評價。但評價課堂的教學不能僅僅以學生為中心,教師作為傳道授業(yè)解惑者也有著不可動搖的地位。教師所擁有的良好的教學方式,不僅可以幫助教師提高工作效率,而且也促進了師生的交流,更有利于教師的教學[2][3]。綜上,我們將教師也加入到智能教學評估系統(tǒng)中,可以更全面地對教學進行評價。
教師通過實際的肢體動作可以有效地傳達自己的情緒或者信息給學生,更容易吸引學生的注意力。教師在講課過程中加入肢體動作不僅有強調、示范的作用,而且增加課堂的感染力,加強教師說話的力度,強化教學信息[4]。教師在授課過程中的肢體動作可以看作反映教師授課狀態(tài)的重要依據。因此我們選擇教師的肢體動作來進行檢測,并通過yolo算法實現,同時對算法進行了優(yōu)化。
二、教師肢體動作檢測方法
教師的肢體動作是課堂教學的重要組成部分,它能將原本抽象的教學內容形象化、具體化,通過肢體動作的表達,提高了學生的學習熱情,活躍了課堂氣氛,拉近了師生距離[5]。通過檢測教師肢體動作來對課堂進行評價需要選取教師的肢體動作來制作數據集。本次實驗選取了教師的兩個典型動作:教師指黑板的動作、教師站在講臺前的動作,分別如圖1所示。
基于計算機視覺的發(fā)展,肢體動作因其傳達信息多、應用范圍廣受到了研究人員的關注并且提出了多種識別方法。最近比較流行的有:香港中文大學博士Wei Yang的PyraNet[6],Alexander Toshev、Christian Szegedy提出的DeepPose[7],卡內基梅隆大學的OpenPose[8],華盛頓大學艾倫研究所的Josehp Redmon、Ali Farhadi提出的yolo[9]等等。本實驗首先分別選取了OpenPose、yolo兩種算法,在對比分析之后最終選擇了yolo算法,并且對該算法進行了優(yōu)化。
OpenPose算法是卡內基梅隆大學提出來的一種自下而上的肢體動作識別方法。通過身體關鍵點的定位與各個關節(jié)的定位實現肢體檢測。它的優(yōu)點是魯棒性好,人體被遮擋的部位也能夠估計出來,缺點是計算量很大,實時性差。本實驗使用該算法識別FPS僅為10幀/秒,不能滿足實時性。yolo算法是一種基于深度學習的目標檢測算法,它具有檢測速度快、準確度高的優(yōu)點,但是對相互靠得很近的物體和小的群體檢測效果不好。yolo可以一次性預測多個box位置和類別,實現了端到端的目標檢測與識別。使用該算法識別FPS為22幀/秒,滿足了實時性和準確度的需求,最終選了yolo算法。本次實驗采用的是yolo 的第二個版本yolov2。
1.yolo網絡結構
yolo算法包含分類網絡和檢測網絡兩類網絡。yolo分類網絡借鑒了GoogLeNet的思想,包含卷積層和全連接層,其中卷積層分為3*3、1*1兩種卷積核,用來提取特征,全連接層輸出類別結果。本次實驗使用的yolov2版本,提出了一種新的分類網絡DarkNet-19,包含19個卷積層和5個池化層,見圖2。
yolov2的檢測網絡是在分類網絡基礎上進行了調整。將分類網絡的最后一個1*1的卷積層移除,添加3個3*3*1024的卷積層,再添加輸出是類別個數的1*1卷積。檢測網絡結構如圖3所示。
2.yolo實現肢體檢測
利用yolo實現教師肢體檢測需要三步:制作數據集、訓練數據集、測試識別。
(1)制作數據集
本次實驗數據集采用的是VOC數據集,在采集到足夠圖像之后使用LabelImg軟件進行特征標注,生成帶有位置信息的xml文件,然后使用matlab軟件生成.txt訓練測試文件,最后將上述圖像文件放入新建的VOC文檔中完成了數據集的制作,見圖4。
(2)訓練數據集
yolov2的訓練包括三個階段:第一階段輸入224*224的圖像,先在ImageNet分類數據集上預訓練DartNet-19,該階段共訓練160期。 第二階段輸入448*448的圖像,繼續(xù)在ImageNet數據集上訓練分類模型,訓練10期。第三個階段是修改DartNet-19分類模型為檢測模型,并在檢測數據集上繼續(xù)微調網絡,見圖5。
(3)yolo檢測識別
yolov2實現肢體動作的檢測首先在檢測模型中輸入圖片,并將圖片劃分為s*s的網格。本實驗采用的是416*416尺寸,因為模型下采樣總步長為32,所以將圖像劃分為13*13的網格。如果目標的中心位置落入某個格子,那么該格子就負責檢測出這個物體。圖6中正中間的格子為中心位置,負責檢測肢體動作。
每個網格預測5個框,每個框包含x,y,w,h和confidence 5個數值。其中x,y代表了框的橫縱坐標,w,h代表了框的寬高,confidence代表了預測的框中含有目標的置信度和準確度。公式如下:
Pr(Object)*IOUtruth
pred公式1
若包含物體,則P(object) = 1;否則P(object) = 0。
同時每個網格預測類別信息,本次設置了1個類別,因此類別信息為1。計算得到輸出值為13*13*(5*5+1)。
然后每個網格預測的類別信息和框預測的confidence信息相乘獲得預測的概率,公式如下:
Pr(Classi|Object)*Pr(Object)*IOUtruth
pred=Pr(Classi)*IOUtruth
pred公式2
得到每個框的概率之后,根據閾值大小,濾掉得分低的框,對保留的框進行NMS(非極大值抑制)處理,得到最終的檢測結果。
三、優(yōu)化yolo網絡
使用yolo網絡實現了教師肢體動作的檢測,但是部分識別框尺寸不合適并不能完全將動作包括起來,也從側面反映了識別結果有一定的缺陷。通過分析yolov2的原理和程序發(fā)現是yolov2特有的anchor機制造成了這一結果。
anchor機制[10]是yolov2參考了Faster RCNN中的anchor box方法,通過預先設置anchor boxes的尺寸更好地預測框的坐標。不同的是faster RCNN中的框大小和比例是根據經驗手工精選并設定的,同時anchor boxes的尺寸可以在訓練過程中調整。而yolov2的尺寸是使用聚類方法求得的,在一開始就選擇合適的尺寸,幫助網絡更好地預測目標。在yolov2中原作者計算出來的框大部分是瘦高的,這一尺寸符合行人的特征,而我們要檢測的教師肢體動作標注出的框大部分是扁平的和偏向正方形的,如果仍舊使用原作者給出的數據就會導致上述問題,因此,采用K-means聚類方法生成適合于本數據集的anchor box數據,優(yōu)化yolov2的anchor參數,解決了這一問題并提高了yolov2的準確率。
K-means聚類算法是一種基于劃分的聚類算法,通過計算距離將相近的對象劃分至同一個簇,將較遠的對象劃分至不同的類簇[11]。算法的基本思想:先選擇k個點作為初始聚類中心點,然后計算剩余的樣品點到中心點的距離,根據歐氏距離越小相似度越高的原則,分別將其分配到與其最相似的聚類,然后再次計算得到每個類別新的聚類中心,并對剩余樣品點進行分配,上述過程進行循環(huán)迭代直到達到給定次數或者聚類準則函數開始收斂為止[12]。
該算法中假設待聚類的數集D={xi|xi∈RP,i=1,2,…n},
p是維數,則歐式距離公式為:
d(xi,x)=公式3
聚類準則函數為:
E=|x-c|公式4
其中c1,c2…,ck為k個聚類中心。
yolo算法中若直接使用會使大的框比小的框產生更大的誤差,因此yolo作者定義了新的距離公式:
d(box,centroid)=1-IOU(box,centroid)公式5
同時將所有框中心點的x,y坐標都設為0,方便公式的使用。
本實驗利用K-means算法對之前標注的特征框尺寸數據進行聚類,計算出符合本實驗的anchor大小,替換了網絡之前的數據,重新訓練之后檢測教師肢體動作的框尺寸合適,并且檢測準確度也有所提升。
四、實驗結果
此次實驗采用yolo算法完成教師肢體動作的檢測。在實驗中首先選取了OpenPose、yolo兩種算法,發(fā)現OpenPose準確度高,但由于計算量可觀,實時性差,無法滿足實驗要求,而yolo算法實時性好,雖然準確度相比OpenPose有所下降,但對實驗沒有大的影響,因此最終選擇了yolo算法。兩個算法檢測效果對比如表1所示。
確定使用yolo算法后,具體說明了yolo的分類網絡、檢測網絡兩種結構以及實現檢測的過程,并且針對識別結果中出現的識別框尺寸不合適的情況分析原因,同時采用K-means聚類方法計算出anchor參數,完成對yolo的參數優(yōu)化,解決了上述問題,而且提高了識別準確率。yolo優(yōu)化前后檢測效果對比如表2所示。
識別結果如圖7所示,本實驗還記錄了優(yōu)化前后訓練過程中的avg_loss數據,并將數據可視化進行分析,發(fā)現兩者損失下降的迭代次數是差不多的,本次優(yōu)化并未對損失迭代有太大影響,見圖8。
五、結束語
本實驗將視頻監(jiān)控技術與課堂評價系統(tǒng)相結合,將檢測教師授課情況加入到課堂教學自動評估系統(tǒng)中,并選取教師肢體動作為教師授課評價的指標。在算法上使用yolo算法并進行優(yōu)化完成教師肢體動作檢測。此次實驗完善了課堂教學自動評估系統(tǒng),對課堂教學管理工作具有積極意義。
參考文獻:
[1]文楷,田生偉,王琨,等.基于視頻分析的課堂教學效果自動評價系統(tǒng)[J].中國教育技術裝備,2016(8):50-52.
[2]周智慧.發(fā)展性課堂教學評價體系探討[J].教育探索,2010(6):47-48.
[3]余林.教學心理學叢書——課堂教學評價[M].北京:人民教育出版社,2007(2):1-15.
[4]楊世軍.教師肢體語言的課堂效用[J].南昌高專學報,2010,25(5):92-93+104.
[5]鄧美德.論教師教學肢體語言的實然與應然[J].大理學院學報,2012,11(7):82-85.
[6]Wei Yang,Shuang Li,Wanli Ouyang,et al.Learning Feature Pyramids for Human Pose Estimation[C].IEEE International Conference on Computer Vision,2017.
[7]Alexander Toshev,Christian Szegedy. DeepPose: Human Pose Estimation via Deep Neural Networks[C].IEEE International Conference on Computer Vision,2014.
[8]Zhe Cao,Tomas Simon,Shih-En Wei, et al. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields[C].IEEE International Conference on Computer Vision,2017.
[9]Josehp Redmon,Ali Farhadi.YOLO9000: Better, Faster, Stronger[C].IEEE International Conference on Computer Vision,2017.
[10]王曙光,呂攀飛.改進YOLOv2的裝甲車輛目標識別[J].計算機與現代化,2018(9):68-71+79.
[11]束仁義,陳帥,王思賢,等.基于k-means的手勢識別系統(tǒng)設計[J].廊坊師范學院學報(自然科學版),2019,19(1):46-50.
[12]張素潔,趙懷慈.最優(yōu)聚類個數和初始聚類中心點選取算法研究[J].計算機應用研究,2017,34(6):1617-1620.
(編輯:魯利瑞)