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