徐蘇杰 高尚 張夢坤 朱樂俊
(江蘇科技大學 鎮(zhèn)江 212003)
行為識別一直是計算機視覺中的熱門話題,隨著人工智能的發(fā)展,與人有關的動作行為應用到很多方面,包括視頻監(jiān)控、人機交互、智能駕駛等[1~3]。但是,由于人類行為識別的復雜性,至今依然是一個巨大的挑戰(zhàn)。
學生在課堂上的行為表現(xiàn)在課堂教育中有著重要的意義。課堂上學生的行為動作,情緒,注意力,對課堂教育的質(zhì)量密切相關。識別課堂上學生行為并做出評價是具有重要意義[4~6]。傳統(tǒng)課堂的教育評價方式存在既浪費人力又浪費時間,而且效率低的問題,還具有一定的主觀性。隨著第二代Kinect 傳感器的問世,在醫(yī)學、科研、娛樂等方面的有著越來越廣泛的應用。將Kinect 傳感器應用到課堂教學當中,是因為該傳感器可以獲取人體骨骼關節(jié)點的三維坐標數(shù)據(jù)并進行動作行為的識別,Kinect 傳感器對光照變化和視角等因素不敏感,具有較高的可利用性。第二代Kinect 傳感器可以采集25 個骨骼關節(jié)點[7],如圖1 所示,每一個骨骼關節(jié)點都有唯一的標示符和對應的三維坐標數(shù)據(jù)。相比較于傳統(tǒng)的RGB 圖像識別存在的光照、障礙物遮掩、背景等問題[8~9],Kinect 傳感器的紅外攝像頭可以捕捉人體的深度圖像信息并獲取學生的三維坐標數(shù)據(jù),Kinect 傳感器的4 個麥克風可以采集聲音并過濾背景噪聲,還可以定位聲源,Kinect 傳動馬達電動機可編程控制仰角,用來獲取最佳角度。正是由于Kinect 能準確的描述骨骼數(shù)據(jù)和計算速度快,并且具有高性價比等優(yōu)點,越來越受到學者們的追捧,并在人機交互、VR等領域被廣泛使用。
圖1 人體骨架圖
使用Kinect 傳感器采集課堂上的骨骼坐標數(shù)據(jù)并進行識別,不僅可以節(jié)省傳統(tǒng)課堂教育評價的人力和物力,也可以對光照和障礙物等問題有一定的改善,實現(xiàn)對課堂上的學生行為的精準觀察。課堂上學生的消極行為(講話,睡覺等行為)、交互行為(起立,舉手等行為)都會被識別,對提高課堂教學的質(zhì)量和學生的學習效率有著重要的意義[5,10]。
Kinect 傳感器能獲取人體動作的彩色圖像和深度圖像,數(shù)據(jù)源可以通過Kinect SDK 提供的API來獲取25個人體的骨骼關節(jié)點坐標數(shù)據(jù)[11],如圖1所示,依次為臀部中心、脊椎、脖子、頭、左肩膀、左手肘、左手腕、左手、右肩膀、右手肘、右手腕、右手、左臀、左膝蓋、左腳踝、左腳、右臀、右膝蓋、右腳踝、右腳、肩膀、左手尖、左拇指、右手鍵、右拇指,這些骨骼關節(jié)點就是下文中用到的姿勢特征點。
基于骨骼的動作識別方法現(xiàn)分為兩大類:一是基于深度學習,二是基于手動特征提取。基于深度學習是通過使用深度學習的方法自身學習,提取特征,這種動作識別方法需要大量的訓練數(shù)據(jù),花費時間長,優(yōu)點是準確率高?;谑謩犹卣魈崛〉姆椒ㄊ峭ㄟ^人工的方式提取特征,然后對特征進行建模并使用分類器進行分類比較。手動提取特征的方法耗費大量的人力,對于數(shù)據(jù)量規(guī)模不是很大的數(shù)據(jù)集來說,計算量較小并且精準度能滿足要求。
基于手動特征提取的方法可以根據(jù)描述符的性質(zhì)分為四類[12]。
2.2.1 基于位置的描述符
基于位置的描述符是直接使用關節(jié)位置來構(gòu)建描述符。Jiang 等[13]使用傅立葉時間金字塔(FTP)對各關節(jié)與其他關節(jié)的相對成對位置來表示骨架序列的每一幀進行建模。Yang 等[14]提出了局部特征方法來建立局部特征矩陣,實現(xiàn)多種特征的融合和降維。但是這種方法忽略了人與環(huán)境,人與人等之間的交互信息,只專注于局部特征,比如打電話和舉手,忽略了場景的信息,大大增加了歧義性。
2.2.2 基于幾何的描述符
基于幾何的描述符是通過幾何概念來表示骨骼運動。Arrate 等[15]提出利用在不同身體部位之間的旋轉(zhuǎn)和平移來表示三維幾何模型關系,將人體骨骼表示Lie 群中的點,整個人體骨骼為SE(3)×…×SE(3),利用DTW 和傅里葉時間金字塔做數(shù)據(jù)處理,然后進行建模和分類。Chen 等[16]提出GPD(Geometric Pose Descriptor)特征,該特征利用關節(jié)點的空間位置和距離等信息來描述人體的運動狀態(tài)。
2.2.3 基于運動的描述符
基于運動的描述符是通過關節(jié)運動學來描述的,如速度,加速度和距離等。Leordeanu 等[17]提出串聯(lián)這些特征,然后加權(quán),最后通過KNN 算法進行分類。Boutteau 等[18]KSC 特征描述符,這個描述符是位置,速度和加速度這一些運動學實體來建立的。
2.2.4 基于統(tǒng)計的描述符
基于統(tǒng)計的描述符利用統(tǒng)計工具來表示有區(qū)別的動作。Koniusz 等[19]提出了使用核張量的方法來記錄兩個動作序列之間的兼容性和每個動作的動態(tài)信息。Tang 等[20]提出利用加權(quán)協(xié)方差的描述符的方法實時積累信息和在線預測。
人體骨骼模型中有n個關節(jié)點,給定一個髖關節(jié)點,可以求得其他n-1 個關節(jié)點與髖關節(jié)點的歐式距離和夾角余弦值。數(shù)據(jù)集中的視頻一秒大概30 幀左右,給定每一秒鐘的第一幀,可以求得其他每一幀的關節(jié)點與第一幀關節(jié)點的歐式距離和夾角的余弦值。
3.1.1 距離特征
假設有n個關節(jié)點構(gòu)成的骨骼數(shù)據(jù),在t幀下的第i個關節(jié)點的坐標可以表示為:Ji(t)={xi(t),yi(t),zi(t)}(1≤i≤n),則第t幀下的骨骼狀態(tài)為:St={J1(t),J2(t)…Jn(t)},對于給定N幀的動作序列就可以表示為v=(S1,S2,…SN)。其中第三個關節(jié)點表示髖關節(jié)坐標{x3(t),y3(t),z3(t)},即則第t幀下第i個和髖關節(jié)點間的歐式距離為式(1)。
人體的行為動作不僅與人當前的位置信息有關,還與過去的位置信息相關,所以我們不僅要將當前幀的骨骼特征表示出來,還要將當前幀與初始幀對應的骨骼特征表示出來。所以第t幀下第i個關節(jié)點和第1幀下第i個關節(jié)點間的歐式距離為式(2):
3.1.2 角度特征
假設一個人體骨骼數(shù)據(jù),因為,人體骨骼關節(jié)點存在角度關系,且骨骼關節(jié)點的角度會隨著人體運動而發(fā)生變化,所以確定人體骨骼關節(jié)點的三維坐標位置,就能計算各個關節(jié)點之間的夾角。第t幀下第i個關節(jié)點和髖關節(jié)點間的夾角余弦值的式(3):
第t幀下第i個關節(jié)點和第1 幀下第i個關節(jié)點間的夾角余弦值的式(4):
本文中利用到4 個特征向量,所以特征向量的維度較高,維度很高的話會存在一些冗余的信息和噪音信息,在接下來的建模和分類中會造成誤差,降低準確率。PCA 降維的主要思想是將可能具有相關性的高維變量合成線性無關的低維變量,計算公式為
其中y 為主成分特征,xi是需要降維的特征,xˉ是特征均值,UT是協(xié)方差矩陣計算矩陣,計算公式為
3.3.1 SVM
支持向量機(SVM)的基本思想是能夠正確的劃分訓練數(shù)據(jù)集并幾何間隔最大的分離超平面。SVM適合小量樣本數(shù)據(jù),可以利用內(nèi)積核函數(shù)代替向高維空間的非線性映射。因此本文選用SVM 分類器對骨骼數(shù)據(jù)進行分類。
SVM的目標函數(shù)為
其對偶問題為
則分類函數(shù)為
其中,(xi,yi)為訓練樣本,xi和yi分別是樣本的特征向量和標簽類;l為訓練的樣本數(shù)量;?i是松弛變量;C為懲罰系數(shù),是對誤差的寬容度,C越高,容易過擬合。C越小,容易欠擬合。
3.3.2 核函數(shù)
支持向量機(SVM)是一種用于處理線性可分的分類算法,對于處理非線性可分的數(shù)據(jù)時,SVM先在低維的空間中完成計算,利用核函數(shù)映射到高維特征空間,構(gòu)造出最優(yōu)分離超平面,將非線性數(shù)據(jù)分開。
式(10)中函數(shù)K(x,z)為核函數(shù)(Kernal Function),常用的核函數(shù)有線性核函數(shù)、多項式核函數(shù)和徑向基核函數(shù)還有Sigmoid核函數(shù)。
1)線性核函數(shù):
2)多項式核函數(shù):
多項式核中,需要指定的參數(shù)為核函數(shù)參數(shù)γ,b以及q。
3)徑向基核函數(shù):
若選擇徑向基核作為Kernel,該函數(shù)會自帶一個gamma參數(shù),gamma參數(shù)和σ2的關系如式(13)。
4)Sigmoid核函數(shù):
Sigmoid核中,需要指定的參數(shù)為γ。
其中βm為子核函數(shù)的權(quán)值,滿足:
在實驗中,選擇了高斯核函數(shù),多項式核函數(shù)和Sigmoid核函數(shù)作為多核核函數(shù)的子核函數(shù)。
實驗在配置為Inter(R)Core(TM)i5-4200H CPU2.8GHz,12GB 內(nèi)存,64 位操作系統(tǒng)的個人電腦上進行。
本文選取三個公測數(shù)據(jù)集和實測數(shù)據(jù)集分別對文中所提方法進行有效性驗證。其中三個公測數(shù)據(jù)集分別為:Florence3D-Action,UTKinect-Action和MSR-Action3D。
1)UTKinect-Action 數(shù)據(jù)集:該數(shù)據(jù)集有10 個動作,10個測試者,每個測試者執(zhí)行每個動作2次,總共有199個深度序列圖。
2)Florence3D-Action 數(shù)據(jù)集:該數(shù)據(jù)集有9 個動作,10 個測試者,每個測試者執(zhí)行每個動作2~3次,總共有215個深度序列圖。
表1 采集的29個動作的骨骼圖像
3)MSR-Action3D 數(shù)據(jù)集:該數(shù)據(jù)集使用類似于Kinect 的深度傳感器捕獲。該數(shù)據(jù)集有20 個動作,10 個不同的測試者,每個測試者執(zhí)行每個動作2~3次,總共有567個深度圖序列。
實驗中4 個數(shù)據(jù)集隨機選取1/2 的數(shù)據(jù)集作為訓練樣本,其余作為測試樣本。這里選擇的提取方法是Joint angles 方法、Joint positions 方法,和基于深度學習網(wǎng)絡的ST-GCN[21]方法作為對比實驗方法。本論文設置高斯核函數(shù)權(quán)值β1=0.5,多項式核函數(shù)和Sigmoid 核函數(shù)權(quán)值分別為β2=β3=0.25。實驗結(jié)果如表2所示。
表2 MSRAction3D數(shù)據(jù)集實驗結(jié)果
從MSRAction3D 數(shù)據(jù)集中,我們可以看到在AS1,AS2數(shù)據(jù)集上,我們的方法可以實現(xiàn)更高的準確率,但是在AS3 數(shù)據(jù)集上,基于手工特征方法的Joint positions方法準確率最高。AS3中的數(shù)據(jù)都是復雜性較高的動作,所以可以看出,我們的方法不適用于復雜性較高的動作識別。
從表3、表4、表5 可以看出我們的方法可以實現(xiàn)更高的準確率,尤其是在我們的課堂實測數(shù)據(jù)集上。對于基于深度學習網(wǎng)絡的ST-GCN 方法中,準確率普遍偏低,說明在訓練數(shù)據(jù)不充足的情況下,計算機無法學習出更好的特征。在課堂行為數(shù)據(jù)集上,多核SVM分類器準確率達到0.947,明顯優(yōu)于其他基于手工特征的對比方法。
表3 Florence3D數(shù)據(jù)集實驗結(jié)果
表4 UTKinect數(shù)據(jù)集實驗結(jié)果
表5 課堂實測數(shù)據(jù)集實驗結(jié)果
通過采集學生在課堂上的行為數(shù)據(jù)并進行分析,可以為教學形成有效的教學反饋,提高學生的學習效率。通過獲取到學生在課堂上的三維骨骼數(shù)據(jù),再對骨骼關節(jié)點的距離和角度特征,采用多核SVM 非線性分類器進行行為識別。從實驗結(jié)果可以看出,基于距離和角度的方法可以在公測和實測數(shù)據(jù)集上有很好的準確率。但是實驗中的維度較高,所以在后期可以通過一定的算法,通過選擇一定合適的維度進行降維。雖然基于多核的SVM具有很好的識別率,但是未來我們可以自動學習核函數(shù)適合的權(quán)值參數(shù)。