劉 璐
(吉安職業技術學院 江西 吉安 343000)
隨著人們生活品質的不斷提高,人們對體育運動的重視度也越來越高。體育舞蹈作為可觀賞性較好的體育運動已逐步在各個高校及人們的日常生活中得到推廣[1-2]。體育舞蹈具有嚴格的動作規范性,因此在平時的體育舞蹈訓練中,都需要專業人員進行指導。專業人員在指導體育舞蹈訓練時,對動作的規范性判斷一般依靠于個人經驗,這就使得動作規范性的指導缺乏統一性和科學性。同時依賴于專業人員指導也給體育舞蹈訓練的靈活性帶來了阻礙。
將科學技術與體育舞蹈相結合,促使體育舞蹈訓練能夠在無人指導下,依靠智能機器來監督訓練者動作的規范性,就變得尤為必要。對此,本文以Kinect三維傳感器作為基礎,采集體育舞蹈訓練者的原始運動圖像,再通過目標檢測、特征提取、人體關節點檢測、姿態匹配計算幾個步驟來設計人體姿態估計算法,構建基于Kinect的體育舞蹈動作檢測系統,以對體育舞蹈訓練者的動作規范性進行便捷、直觀、科學的監督。
Kinect三維傳感器在結構上主要由彩色攝像頭、紅外攝像頭以及深度攝像頭組成,其實物圖如圖1所示。Kinect就是依靠著三個攝像頭來采集體育舞蹈訓練者原始圖像信息的[3]。
Kinect三維傳感器在獲取體育舞蹈訓練場景圖像的時候,涉及如圖2所示的四個坐標系[4-5]。
圖2中,Ow為世界坐標系,Oc為相機坐標系,OUV為圖像像素坐標系,O為圖像物理坐標系。其中,相機坐標系即Kinect自身的坐標系。當Kinect捕獲到世界坐標系中的內容w(xw,yw,zw)后,需要將其轉換到相機坐標系下,轉換過程如下[6-7]:
式中,(xc,yc,zc)為w在相機坐標系中的坐標,R3×3和T3×1分別為坐標系Ow到坐標系Oc的旋轉矩陣和平移矩陣。
坐標系OUV與坐標系O之間的變換過程為:
式中,u0為坐標系OUV中U在坐標系O中x周上的投影。
此時,w(xw,yw,zw)在坐標系OUV中轉換過程為:
通過上述變換過程,即可將體育舞蹈訓練者的場景信息,轉換成Kinect中的圖像信息。
體育舞蹈訓練者的姿態估計是對其訓練動作標準性判定的關鍵內容。本文將通過目標檢測、特征提取、人體關節點檢測、姿態匹配計算4個部分,來實現人體姿態估計算法的構建。
Kinect中生成的原始圖像信息包含了體育舞蹈訓練者及訓練場景,為了提取出體育舞蹈訓練者目標,就需要進行目標檢測。在此,采用幀間差分法來提取體育舞蹈訓練者目標。
采用幀間差分法來提取體育舞蹈訓練者目標時,需要將相鄰兩幀圖像進行比對,并設立一個閾值。當相鄰兩幀圖像的差分值小于閾值時,則表示該圖像內容為訓練場景而不是訓練目標。當相鄰兩幀圖像的差分值大于閾值時,則表示該圖像內容為訓練目標。該過程可表述為[8]:
式中,B(x,y)為相鄰兩幀圖像IK+1(x,y)和IK(x,y)的差分圖像,F(x,y)為B(x,y)的二值化圖像,T為設立的閾值。
檢測出訓練目標后,就需要對其特征進行提取。在此采用Canny算法來完成訓練目標的特征提取。
Canny算法提取特征是依靠檢測訓練目標的邊緣,并將邊緣連接而實現的。Canny算法提取特征時,需要對圖像進行平滑處理:
接著計算出圖像中像素點(x,y)處的梯度幅值Z(x,y)和方向f(x,y):
再通過梯度幅值Z(x,y)和方向f(x,y)進行非極大值抑制方法,篩選出候選邊緣點。利用雙閾值法從候選邊緣點中提取和連接邊緣點,以完成圖像的特征提取。
由于雙閾值法從候選邊緣點中提取和連接邊緣點時,易受噪聲干擾,對此,本文以梯度方向為依據,采用了方向抑制的方法,來從候選邊緣點中提取和連接邊緣點。
首先,以候選邊緣點O為中心,建立如圖3所示的8鄰域結構圖,并將8鄰域中任一點r與o點的連線用Sr表示。然后,求取r與o點的平均梯度方向與Sr法線方向夾角的絕對值Ar。最后,設定方向抑制閾值E。由于鄰域內邊緣點之間都處于同一邊緣上,所以其Ar值較小,而噪聲點與邊緣點的方向不同,所以其Ar值較大。因此,當Ar<E時,O即可視為邊緣點。由此避免了噪聲的干擾。
提取出體育舞蹈訓練者的特征輪廓后,需要對人體關節點進行檢測,以便于姿態的匹配計算。人體關節點為具有位置特征的一些點,一般由15至20個點組成。根據體育舞蹈訓練的特征,取圖4所示15個點即可。
在檢測人體關節點時,先在圖像頂部和底部分別設置一條水平線,將頂部水平線下移至與特征輪廓第一次相交時,即判斷該相交點為頭部關節點,將此時頂部水平線的位置記錄為L1。同理將底部水平線上移至與特征輪廓第一次相交時,即判斷該相交兩點為左、右腳關節點,將此時底部水平線的位置記錄為L2。求取出L1與L2的差值L就表示訓練者的身高。求出身高L后,依據人體各關節的比例關系,即可檢測出人體的關節點[9-10]。
檢測出人體關節點后,即可將檢測出的關節點信息與樣例庫的關節點信息進行匹配,以完成姿態的匹配計算。在此,通過歐氏距離的計算方法來完成關節點之間的匹配計算,其過程如下。
式中,H為姿態的匹配值,(x1,y1)和(x2,y2)分別為檢測出的關節點坐標和樣例庫中的關節點坐標。
通過上述幾個步驟就實現了人體姿態估計算法,以對體育舞蹈訓練者的動作進行監督。
利用MATLAB在Intel Corei7處理器、500 GB硬盤的計算機上,聯合Kinect 2.0及建立實驗環境。通過選取左肩、左肘、左手腕組成的關節角1,及右髖、右膝、右腳組成的關節角2作為觀測目標,來測試本文所提系統的檢測效果。
各關節角的測試結果如圖5所示。從圖5a可見,在0~100幀內,訓練者的關節角1變化軌跡與樣例庫的關節角1位置變化大體一致,但是會有不大于10°的誤差出現。從圖5b也可以發現,在0~100幀內,訓練者的關節角2變化軌跡也與樣例庫的關節角2位置的變化大體一致,但是在75幀附近,系統檢測出了訓練者出現了較大的動作誤差。由此可見,本文所提系統能夠較為準確地檢測出體育舞蹈訓練者的訓練動作,同時也能通過樣例庫的比對,輔助體育舞蹈訓練者改正其動作。說明,本文所設計的體育舞蹈動作檢測系統,能夠幫助體育舞蹈訓練者在無人指導自主訓練下,監督其動作規范性。
本文以Kinect三維傳感器為基礎,設計了一種體育舞蹈動作檢測系統。分析了Kinect將訓練場景轉換為相機內坐標的過程。同時采用幀間差分法檢測出了體育舞蹈訓練者目標,通過改進的Canny算法獲取了訓練者的邊緣輪廓,利用移動水平線的方法,檢測出了訓練者的身高,進而以人體關節比例為依據,獲取了訓練者的關節點,借助歐氏距離測量的方法,完成了訓練者姿態估計算法的設計。通過實驗表明,本文所設計系統能正確的捕捉訓練者的動作要點,并能通過將捕捉的動作要點與樣例庫比對,督促訓練者進行正確動作的訓練。