白雨亭
(北方工業大學 信息學院,北京 100144)
機器學習及計算機視覺技術在各個領域已有廣泛的應用,比如工業、交通、醫學領域等。其中,有很多被人們所熟知的應用,如人臉識別、表情識別、監控系統,醫學影像智能診斷[1]等。在動作識別方向,也已有很多實際應用,如行人檢測、異常行為檢測等。
在教育領域,運用動作識別的方法分析記錄學生在課堂上的行為動作,可以對教師的課堂教授效果進行輔助分析,對教師改進課堂教學方法有其一定的意義。
現今,動作識別研究漸趨成熟,其典型識別方法總體分為兩類[2]:一類是根據RGB 圖像進行人體動作識別[3],但是需要經過背景剪除,人體跟蹤進行實現。其中,背景對動作識別影響較大,容易造成較大識別誤差。本文采用一種不容易受到背景條件影響,根據人體骨骼關鍵點進行動作識別的方法,利用卡內基梅隆大學的深度學習開源框架OpenPose[4]跟蹤骨骼關鍵點并輸出關鍵點坐標值而后進行歸一化,再將歸一化后的坐標點運用機器學習算法進行分類訓練。
研究最主要的工作之一即為數據集的構建。在進行動作識別之前,首先要進行樣本集的構建而后用機器學習方法訓練出合適的模型,才能對動作進行識別分類。但是課堂行為數據集并沒有相關的開源數據集,所以本研究首要任務即為構建數據集。
構建數據集所用的視頻錄制于高校課堂的實際授課場景,采用松下HC-W570M 高清攝像頭,輸出為1080p 的mp4 格式文件。實際課堂視頻錄制狀態如圖1 所示。

圖1 現場課堂錄制狀態Fig.1 Live classroom recording status

圖2 人體18點模型Fig.2 Human body 18-point model
收集到課題所需的課堂視頻后,根據采集視頻的觀察,研究成員共找出較為明顯的課堂動作5 類,即舉手、托腮、趴、寫字、玩手機。由于課堂環境的復雜性,一段視頻片段中會有許多學生的出現,需要對視頻進行剪裁、歸一化等處理得到統一分辨率的單人動作視頻數據。經過研究成員的處理,實驗共得到150 段640×480 分辨率的單人動作視頻數據,其中每類動作30 段,平均長度2s 左右,構成本課題研究所用的數據集。
得到數據集后,關鍵的一步是要對每類動作進行特征值的提取,為分類模型的訓練奠定重要的基礎。
本課題的特征值提取過程為:首先,使用卡內基梅隆大學的深度學習開源框架Openpose 來跟蹤輸出人體2D骨骼坐標點而后進行關鍵點坐標的提取及歸一化處理,Openpose 采用的人體18 點模型如圖2 所示,各點對應骨骼位置見表1。
由于課堂上學生的動作行為以坐姿為主,且下半身幾乎處于被完全遮擋的狀態,所以去除掉8 ~13 號骨骼點,排除無關特征點的影響。最終本文提取的主要特征點見表2。
由表2 可見,本文主要采用18 點模型中0 ~7 號,即鼻尖、頸、右肩、右肘、右腕、左肩、左肘、左腕8 個骨骼點作為特征點。
實驗一共有150 個視頻片段,對于每個視頻片段,本課題提取了其每一幀輸出的8 個關鍵骨骼點坐標的(x,y)值,構成一幀的特征值,即每幀特征值為:


表1 18點對應人體骨骼位置Table 1 18 Points corresponding to the human bone position

表2 主要特征點Table 2 Main feature points

圖3 數據處理分類流程圖Fig.3 Data processing classification flow chart
本課題所構成的數據集中,雖然在剪裁數據時將視頻數據進行了統一分辨率輸出,但是由于每個研究對象距離采集設備的距離有遠有近,導致在各個視頻數據中,每個人的大小不盡相同,而且假使每個研究對象距離采集設備的距離相同,由于人的個體差異,也會使得不同研究對象的相同骨骼點所處位置存在較大的差異,導致預測結果不準確,造成預測模型對樣本集過擬合的現象發生。
本課題采用無量綱化處理的方法,減小由于個體差異,距離采集設備距離不同造成的相同骨骼點坐標間差異過大,而對后續分類模型構建產生的誤差。采用的無量綱歸一化公式如下:

其中,xmax是該幀所有提取到的骨骼坐標中最大的x值,xmin為最小的x 值;ymax,ymin同理。
從后續的實驗結果來看,該方法有效地減小了人的個體差異,及距離采集設備距離不同對實驗產生的影響。
本課題采用機器學習方法,使用特征值和標簽來進行數據的訓練、驗證、測試。采用Anaconda 環境,python語言,spyder 編輯器進行。整體數據處理分類流程如圖3所示。
分類算法的選擇svm,決策樹以及隨機森林3 種,采用十折交叉驗證的方法驗證準確率,選擇準確率相對較高的分類器為本課題使用。svm 分別選擇4 類主流的核函數即高斯徑向基,線性,多項式及sigmoid 核函數,對應參數經調整均為對本數據集表現較好的參數選擇。決策樹及隨機森林分類方法經循環參數測試也篩選出相對表現較好的參數值設置。最終分類測試結果準確率見表3。
由表3 可見,線性核函數svm 分類器在本課題所構建的數據集上有較好的表現,且經過后續的新數據測試時,并沒有發生過擬合的現象。

表3 各分類方法準確率Table 3 Accuracy of each classification method
實驗的結果證明本課題的研究方法是行之有效的,且對于教授者對課堂教授效果有輔助分析、記錄的意義。根據訓練分類結果的分析及新數據測試的效果來看,舉手,趴,托腮3 類動作有較好的分類效果,而玩手機和寫字兩類動作因有大部分動作重合的情況出現,導致出現一些分類錯誤的情況,另一類錯誤情況則是當人體處于大規模遮擋狀態的時候。