白雨亭
(北方工業(yè)大學(xué) 信息學(xué)院,北京 100144)
機(jī)器學(xué)習(xí)及計算機(jī)視覺技術(shù)在各個領(lǐng)域已有廣泛的應(yīng)用,比如工業(yè)、交通、醫(yī)學(xué)領(lǐng)域等。其中,有很多被人們所熟知的應(yīng)用,如人臉識別、表情識別、監(jiān)控系統(tǒng),醫(yī)學(xué)影像智能診斷[1]等。在動作識別方向,也已有很多實(shí)際應(yīng)用,如行人檢測、異常行為檢測等。
在教育領(lǐng)域,運(yùn)用動作識別的方法分析記錄學(xué)生在課堂上的行為動作,可以對教師的課堂教授效果進(jìn)行輔助分析,對教師改進(jìn)課堂教學(xué)方法有其一定的意義。
現(xiàn)今,動作識別研究漸趨成熟,其典型識別方法總體分為兩類[2]:一類是根據(jù)RGB 圖像進(jìn)行人體動作識別[3],但是需要經(jīng)過背景剪除,人體跟蹤進(jìn)行實(shí)現(xiàn)。其中,背景對動作識別影響較大,容易造成較大識別誤差。本文采用一種不容易受到背景條件影響,根據(jù)人體骨骼關(guān)鍵點(diǎn)進(jìn)行動作識別的方法,利用卡內(nèi)基梅隆大學(xué)的深度學(xué)習(xí)開源框架OpenPose[4]跟蹤骨骼關(guān)鍵點(diǎn)并輸出關(guān)鍵點(diǎn)坐標(biāo)值而后進(jìn)行歸一化,再將歸一化后的坐標(biāo)點(diǎn)運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行分類訓(xùn)練。
研究最主要的工作之一即為數(shù)據(jù)集的構(gòu)建。在進(jìn)行動作識別之前,首先要進(jìn)行樣本集的構(gòu)建而后用機(jī)器學(xué)習(xí)方法訓(xùn)練出合適的模型,才能對動作進(jìn)行識別分類。但是課堂行為數(shù)據(jù)集并沒有相關(guān)的開源數(shù)據(jù)集,所以本研究首要任務(wù)即為構(gòu)建數(shù)據(jù)集。
構(gòu)建數(shù)據(jù)集所用的視頻錄制于高校課堂的實(shí)際授課場景,采用松下HC-W570M 高清攝像頭,輸出為1080p 的mp4 格式文件。實(shí)際課堂視頻錄制狀態(tài)如圖1 所示。
圖1 現(xiàn)場課堂錄制狀態(tài)Fig.1 Live classroom recording status
圖2 人體18點(diǎn)模型Fig.2 Human body 18-point model
收集到課題所需的課堂視頻后,根據(jù)采集視頻的觀察,研究成員共找出較為明顯的課堂動作5 類,即舉手、托腮、趴、寫字、玩手機(jī)。由于課堂環(huán)境的復(fù)雜性,一段視頻片段中會有許多學(xué)生的出現(xiàn),需要對視頻進(jìn)行剪裁、歸一化等處理得到統(tǒng)一分辨率的單人動作視頻數(shù)據(jù)。經(jīng)過研究成員的處理,實(shí)驗共得到150 段640×480 分辨率的單人動作視頻數(shù)據(jù),其中每類動作30 段,平均長度2s 左右,構(gòu)成本課題研究所用的數(shù)據(jù)集。
得到數(shù)據(jù)集后,關(guān)鍵的一步是要對每類動作進(jìn)行特征值的提取,為分類模型的訓(xùn)練奠定重要的基礎(chǔ)。
本課題的特征值提取過程為:首先,使用卡內(nèi)基梅隆大學(xué)的深度學(xué)習(xí)開源框架Openpose 來跟蹤輸出人體2D骨骼坐標(biāo)點(diǎn)而后進(jìn)行關(guān)鍵點(diǎn)坐標(biāo)的提取及歸一化處理,Openpose 采用的人體18 點(diǎn)模型如圖2 所示,各點(diǎn)對應(yīng)骨骼位置見表1。
由于課堂上學(xué)生的動作行為以坐姿為主,且下半身幾乎處于被完全遮擋的狀態(tài),所以去除掉8 ~13 號骨骼點(diǎn),排除無關(guān)特征點(diǎn)的影響。最終本文提取的主要特征點(diǎn)見表2。
由表2 可見,本文主要采用18 點(diǎn)模型中0 ~7 號,即鼻尖、頸、右肩、右肘、右腕、左肩、左肘、左腕8 個骨骼點(diǎn)作為特征點(diǎn)。
實(shí)驗一共有150 個視頻片段,對于每個視頻片段,本課題提取了其每一幀輸出的8 個關(guān)鍵骨骼點(diǎn)坐標(biāo)的(x,y)值,構(gòu)成一幀的特征值,即每幀特征值為:
表1 18點(diǎn)對應(yīng)人體骨骼位置Table 1 18 Points corresponding to the human bone position
表2 主要特征點(diǎn)Table 2 Main feature points
圖3 數(shù)據(jù)處理分類流程圖Fig.3 Data processing classification flow chart
本課題所構(gòu)成的數(shù)據(jù)集中,雖然在剪裁數(shù)據(jù)時將視頻數(shù)據(jù)進(jìn)行了統(tǒng)一分辨率輸出,但是由于每個研究對象距離采集設(shè)備的距離有遠(yuǎn)有近,導(dǎo)致在各個視頻數(shù)據(jù)中,每個人的大小不盡相同,而且假使每個研究對象距離采集設(shè)備的距離相同,由于人的個體差異,也會使得不同研究對象的相同骨骼點(diǎn)所處位置存在較大的差異,導(dǎo)致預(yù)測結(jié)果不準(zhǔn)確,造成預(yù)測模型對樣本集過擬合的現(xiàn)象發(fā)生。
本課題采用無量綱化處理的方法,減小由于個體差異,距離采集設(shè)備距離不同造成的相同骨骼點(diǎn)坐標(biāo)間差異過大,而對后續(xù)分類模型構(gòu)建產(chǎn)生的誤差。采用的無量綱歸一化公式如下:
其中,xmax是該幀所有提取到的骨骼坐標(biāo)中最大的x值,xmin為最小的x 值;ymax,ymin同理。
從后續(xù)的實(shí)驗結(jié)果來看,該方法有效地減小了人的個體差異,及距離采集設(shè)備距離不同對實(shí)驗產(chǎn)生的影響。
本課題采用機(jī)器學(xué)習(xí)方法,使用特征值和標(biāo)簽來進(jìn)行數(shù)據(jù)的訓(xùn)練、驗證、測試。采用Anaconda 環(huán)境,python語言,spyder 編輯器進(jìn)行。整體數(shù)據(jù)處理分類流程如圖3所示。
分類算法的選擇svm,決策樹以及隨機(jī)森林3 種,采用十折交叉驗證的方法驗證準(zhǔn)確率,選擇準(zhǔn)確率相對較高的分類器為本課題使用。svm 分別選擇4 類主流的核函數(shù)即高斯徑向基,線性,多項式及sigmoid 核函數(shù),對應(yīng)參數(shù)經(jīng)調(diào)整均為對本數(shù)據(jù)集表現(xiàn)較好的參數(shù)選擇。決策樹及隨機(jī)森林分類方法經(jīng)循環(huán)參數(shù)測試也篩選出相對表現(xiàn)較好的參數(shù)值設(shè)置。最終分類測試結(jié)果準(zhǔn)確率見表3。
由表3 可見,線性核函數(shù)svm 分類器在本課題所構(gòu)建的數(shù)據(jù)集上有較好的表現(xiàn),且經(jīng)過后續(xù)的新數(shù)據(jù)測試時,并沒有發(fā)生過擬合的現(xiàn)象。
表3 各分類方法準(zhǔn)確率Table 3 Accuracy of each classification method
實(shí)驗的結(jié)果證明本課題的研究方法是行之有效的,且對于教授者對課堂教授效果有輔助分析、記錄的意義。根據(jù)訓(xùn)練分類結(jié)果的分析及新數(shù)據(jù)測試的效果來看,舉手,趴,托腮3 類動作有較好的分類效果,而玩手機(jī)和寫字兩類動作因有大部分動作重合的情況出現(xiàn),導(dǎo)致出現(xiàn)一些分類錯誤的情況,另一類錯誤情況則是當(dāng)人體處于大規(guī)模遮擋狀態(tài)的時候。