徐蘇杰 高尚 張夢坤 朱樂俊
(江蘇科技大學 鎮江 212003)
行為識別一直是計算機視覺中的熱門話題,隨著人工智能的發展,與人有關的動作行為應用到很多方面,包括視頻監控、人機交互、智能駕駛等[1~3]。但是,由于人類行為識別的復雜性,至今依然是一個巨大的挑戰。
學生在課堂上的行為表現在課堂教育中有著重要的意義。課堂上學生的行為動作,情緒,注意力,對課堂教育的質量密切相關。識別課堂上學生行為并做出評價是具有重要意義[4~6]。傳統課堂的教育評價方式存在既浪費人力又浪費時間,而且效率低的問題,還具有一定的主觀性。隨著第二代Kinect 傳感器的問世,在醫學、科研、娛樂等方面的有著越來越廣泛的應用。將Kinect 傳感器應用到課堂教學當中,是因為該傳感器可以獲取人體骨骼關節點的三維坐標數據并進行動作行為的識別,Kinect 傳感器對光照變化和視角等因素不敏感,具有較高的可利用性。第二代Kinect 傳感器可以采集25 個骨骼關節點[7],如圖1 所示,每一個骨骼關節點都有唯一的標示符和對應的三維坐標數據。相比較于傳統的RGB 圖像識別存在的光照、障礙物遮掩、背景等問題[8~9],Kinect 傳感器的紅外攝像頭可以捕捉人體的深度圖像信息并獲取學生的三維坐標數據,Kinect 傳感器的4 個麥克風可以采集聲音并過濾背景噪聲,還可以定位聲源,Kinect 傳動馬達電動機可編程控制仰角,用來獲取最佳角度。正是由于Kinect 能準確的描述骨骼數據和計算速度快,并且具有高性價比等優點,越來越受到學者們的追捧,并在人機交互、VR等領域被廣泛使用。

圖1 人體骨架圖
使用Kinect 傳感器采集課堂上的骨骼坐標數據并進行識別,不僅可以節省傳統課堂教育評價的人力和物力,也可以對光照和障礙物等問題有一定的改善,實現對課堂上的學生行為的精準觀察。課堂上學生的消極行為(講話,睡覺等行為)、交互行為(起立,舉手等行為)都會被識別,對提高課堂教學的質量和學生的學習效率有著重要的意義[5,10]。
Kinect 傳感器能獲取人體動作的彩色圖像和深度圖像,數據源可以通過Kinect SDK 提供的API來獲取25個人體的骨骼關節點坐標數據[11],如圖1所示,依次為臀部中心、脊椎、脖子、頭、左肩膀、左手肘、左手腕、左手、右肩膀、右手肘、右手腕、右手、左臀、左膝蓋、左腳踝、左腳、右臀、右膝蓋、右腳踝、右腳、肩膀、左手尖、左拇指、右手鍵、右拇指,這些骨骼關節點就是下文中用到的姿勢特征點。
基于骨骼的動作識別方法現分為兩大類:一是基于深度學習,二是基于手動特征提取。基于深度學習是通過使用深度學習的方法自身學習,提取特征,這種動作識別方法需要大量的訓練數據,花費時間長,優點是準確率高。基于手動特征提取的方法是通過人工的方式提取特征,然后對特征進行建模并使用分類器進行分類比較。手動提取特征的方法耗費大量的人力,對于數據量規模不是很大的數據集來說,計算量較小并且精準度能滿足要求。
基于手動特征提取的方法可以根據描述符的性質分為四類[12]。
2.2.1 基于位置的描述符
基于位置的描述符是直接使用關節位置來構建描述符。Jiang 等[13]使用傅立葉時間金字塔(FTP)對各關節與其他關節的相對成對位置來表示骨架序列的每一幀進行建模。Yang 等[14]提出了局部特征方法來建立局部特征矩陣,實現多種特征的融合和降維。但是這種方法忽略了人與環境,人與人等之間的交互信息,只專注于局部特征,比如打電話和舉手,忽略了場景的信息,大大增加了歧義性。
2.2.2 基于幾何的描述符
基于幾何的描述符是通過幾何概念來表示骨骼運動。Arrate 等[15]提出利用在不同身體部位之間的旋轉和平移來表示三維幾何模型關系,將人體骨骼表示Lie 群中的點,整個人體骨骼為SE(3)×…×SE(3),利用DTW 和傅里葉時間金字塔做數據處理,然后進行建模和分類。Chen 等[16]提出GPD(Geometric Pose Descriptor)特征,該特征利用關節點的空間位置和距離等信息來描述人體的運動狀態。
2.2.3 基于運動的描述符
基于運動的描述符是通過關節運動學來描述的,如速度,加速度和距離等。Leordeanu 等[17]提出串聯這些特征,然后加權,最后通過KNN 算法進行分類。Boutteau 等[18]KSC 特征描述符,這個描述符是位置,速度和加速度這一些運動學實體來建立的。
2.2.4 基于統計的描述符
基于統計的描述符利用統計工具來表示有區別的動作。Koniusz 等[19]提出了使用核張量的方法來記錄兩個動作序列之間的兼容性和每個動作的動態信息。Tang 等[20]提出利用加權協方差的描述符的方法實時積累信息和在線預測。
人體骨骼模型中有n個關節點,給定一個髖關節點,可以求得其他n-1 個關節點與髖關節點的歐式距離和夾角余弦值。數據集中的視頻一秒大概30 幀左右,給定每一秒鐘的第一幀,可以求得其他每一幀的關節點與第一幀關節點的歐式距離和夾角的余弦值。
3.1.1 距離特征
假設有n個關節點構成的骨骼數據,在t幀下的第i個關節點的坐標可以表示為:Ji(t)={xi(t),yi(t),zi(t)}(1≤i≤n),則第t幀下的骨骼狀態為:St={J1(t),J2(t)…Jn(t)},對于給定N幀的動作序列就可以表示為v=(S1,S2,…SN)。其中第三個關節點表示髖關節坐標{x3(t),y3(t),z3(t)},即則第t幀下第i個和髖關節點間的歐式距離為式(1)。

人體的行為動作不僅與人當前的位置信息有關,還與過去的位置信息相關,所以我們不僅要將當前幀的骨骼特征表示出來,還要將當前幀與初始幀對應的骨骼特征表示出來。所以第t幀下第i個關節點和第1幀下第i個關節點間的歐式距離為式(2):

3.1.2 角度特征
假設一個人體骨骼數據,因為,人體骨骼關節點存在角度關系,且骨骼關節點的角度會隨著人體運動而發生變化,所以確定人體骨骼關節點的三維坐標位置,就能計算各個關節點之間的夾角。第t幀下第i個關節點和髖關節點間的夾角余弦值的式(3):

第t幀下第i個關節點和第1 幀下第i個關節點間的夾角余弦值的式(4):

本文中利用到4 個特征向量,所以特征向量的維度較高,維度很高的話會存在一些冗余的信息和噪音信息,在接下來的建模和分類中會造成誤差,降低準確率。PCA 降維的主要思想是將可能具有相關性的高維變量合成線性無關的低維變量,計算公式為

其中y 為主成分特征,xi是需要降維的特征,xˉ是特征均值,UT是協方差矩陣計算矩陣,計算公式為

3.3.1 SVM
支持向量機(SVM)的基本思想是能夠正確的劃分訓練數據集并幾何間隔最大的分離超平面。SVM適合小量樣本數據,可以利用內積核函數代替向高維空間的非線性映射。因此本文選用SVM 分類器對骨骼數據進行分類。
SVM的目標函數為

其對偶問題為

則分類函數為

其中,(xi,yi)為訓練樣本,xi和yi分別是樣本的特征向量和標簽類;l為訓練的樣本數量;?i是松弛變量;C為懲罰系數,是對誤差的寬容度,C越高,容易過擬合。C越小,容易欠擬合。
3.3.2 核函數
支持向量機(SVM)是一種用于處理線性可分的分類算法,對于處理非線性可分的數據時,SVM先在低維的空間中完成計算,利用核函數映射到高維特征空間,構造出最優分離超平面,將非線性數據分開。

式(10)中函數K(x,z)為核函數(Kernal Function),常用的核函數有線性核函數、多項式核函數和徑向基核函數還有Sigmoid核函數。
1)線性核函數:

2)多項式核函數:

多項式核中,需要指定的參數為核函數參數γ,b以及q。
3)徑向基核函數:

若選擇徑向基核作為Kernel,該函數會自帶一個gamma參數,gamma參數和σ2的關系如式(13)。
4)Sigmoid核函數:

Sigmoid核中,需要指定的參數為γ。

其中βm為子核函數的權值,滿足:

在實驗中,選擇了高斯核函數,多項式核函數和Sigmoid核函數作為多核核函數的子核函數。
實驗在配置為Inter(R)Core(TM)i5-4200H CPU2.8GHz,12GB 內存,64 位操作系統的個人電腦上進行。
本文選取三個公測數據集和實測數據集分別對文中所提方法進行有效性驗證。其中三個公測數據集分別為:Florence3D-Action,UTKinect-Action和MSR-Action3D。
1)UTKinect-Action 數據集:該數據集有10 個動作,10個測試者,每個測試者執行每個動作2次,總共有199個深度序列圖。
2)Florence3D-Action 數據集:該數據集有9 個動作,10 個測試者,每個測試者執行每個動作2~3次,總共有215個深度序列圖。

表1 采集的29個動作的骨骼圖像
3)MSR-Action3D 數據集:該數據集使用類似于Kinect 的深度傳感器捕獲。該數據集有20 個動作,10 個不同的測試者,每個測試者執行每個動作2~3次,總共有567個深度圖序列。
實驗中4 個數據集隨機選取1/2 的數據集作為訓練樣本,其余作為測試樣本。這里選擇的提取方法是Joint angles 方法、Joint positions 方法,和基于深度學習網絡的ST-GCN[21]方法作為對比實驗方法。本論文設置高斯核函數權值β1=0.5,多項式核函數和Sigmoid 核函數權值分別為β2=β3=0.25。實驗結果如表2所示。

表2 MSRAction3D數據集實驗結果
從MSRAction3D 數據集中,我們可以看到在AS1,AS2數據集上,我們的方法可以實現更高的準確率,但是在AS3 數據集上,基于手工特征方法的Joint positions方法準確率最高。AS3中的數據都是復雜性較高的動作,所以可以看出,我們的方法不適用于復雜性較高的動作識別。
從表3、表4、表5 可以看出我們的方法可以實現更高的準確率,尤其是在我們的課堂實測數據集上。對于基于深度學習網絡的ST-GCN 方法中,準確率普遍偏低,說明在訓練數據不充足的情況下,計算機無法學習出更好的特征。在課堂行為數據集上,多核SVM分類器準確率達到0.947,明顯優于其他基于手工特征的對比方法。

表3 Florence3D數據集實驗結果

表4 UTKinect數據集實驗結果

表5 課堂實測數據集實驗結果
通過采集學生在課堂上的行為數據并進行分析,可以為教學形成有效的教學反饋,提高學生的學習效率。通過獲取到學生在課堂上的三維骨骼數據,再對骨骼關節點的距離和角度特征,采用多核SVM 非線性分類器進行行為識別。從實驗結果可以看出,基于距離和角度的方法可以在公測和實測數據集上有很好的準確率。但是實驗中的維度較高,所以在后期可以通過一定的算法,通過選擇一定合適的維度進行降維。雖然基于多核的SVM具有很好的識別率,但是未來我們可以自動學習核函數適合的權值參數。