冷新科, 姜輝軍
(1. 湖南大學 體育學院, 長沙 410082; 2. 湖南第一師范學院 數學與計算科學學院, 長沙 410205)
基于視覺的人體動作提取方法具有成本小及智能化等優勢, 從人體運動圖像序列內提取人體姿態信息, 是運動捕捉領域的研究重點, 在體育、 醫療和軍事等領域應用廣泛[1]. 因為人體運動呈非剛體運動狀態, 存在較多的遮擋, 使得從視頻圖像內提取的人體姿態輪廓具有較高的波動性, 精確度較低. 傳統基于最大熵HMM(hidden Markov model)的人體姿態提取方法, 無法解決該問題, 其要對各人體姿態節點實施歸一化操作, 僅能獲取局部最佳解, 存在較高的標識錯誤, 使提取的人體姿態輪廓有較大偏差[2]. 因此, 本文提出一種非剛性人體運動動作圖像正確姿態輪廓提取算法, 以獲取準確的人體運動姿態輪廓.
通過底層尺度不變特征變換(SIFT)表示人體運動圖像庫是對圖像特性進行提取的目的, 具有SIFT特征的圖像有平移恒定、 尺度恒定及選擇恒定的特性, 該類圖像特征在匹配各視角下目標對象時能達到較佳的效果. SIFT特征可辨別目標對象, 通過在尺度空間中選擇高斯差分函數的極值明確特征點. SIFT特征在旋轉及尺度方面是恒定的, 因此在變化的尺度和方向上具有魯棒性. 在算法初期, 建立關于輸入圖像的高斯尺度空間, 能在原始圖像中運用高斯函數卷積獲取[3], 通過兩個卷積后的人體運動動作圖像運算獲得高斯差分函數為
D(x,y,σ)=L(x,y,kσ)-L(x,y,σ),
(1)
其中k表示尺度因子. 人體姿態圖像用L(x,y,σ)表示, 高斯函數G(x,y,kσ)卷積得出的結果用I(x,y)表示, 則
L(x,y,σ)=G(x,y,σ)*I(x,y),
(2)
其中:*表示卷積算子;
在人體姿態圖像L的不同尺度層次中提取圖像的梯度及方向, 實現抽取不同重要部位圖像特性的目的. 圖像差分獲得不同像素Lij的圖像梯度大小Mij及方向Rij分別為
(3)

(4)
抽取的SIFT特征圖如圖1所示.

圖1 人體SIFT特征提取圖像Fig.1 Human SIFT feature extraction images
基于獲取的人體側影SIFT特征提取圖像, 對人體運動動作圖像姿態輪廓提取問題進行建模, 獲得的D維非線性時間序列建模為
xi+1=h(xi)+u,
(5)

(6)
獲得相關動態核模型的核函數. 其中:Tφ表示狀態轉移矩陣;μφ表示平移向量;vφ∈H表示高斯白噪聲.

圖2 人體運動序列網絡概率模型Fig.2 Network probabilistic model of human motion sequences
人體肢體檢測的極大概率方位是在關聯概率密度函數f(P,x,y,A,B)的極值處, 因此把隱變量與觀察變量之間的位置設為概率密度函數f(P,x,y,A,B), 人體肢體的方位用x描述, 檢測肢體的方位與速度用y描述, 人體肢體的外觀模具用Ai表示[4], 檢測到的外觀模具用Bi表示. 本文所用方法與圖模型學習相似, 概率圖模型的構造如圖2所示.
整體變量P與各肢體的方位及速度(xi,i≠k)決定第k個肢體xk的方位及運動速度. 肢體xk的方位與速度影響著檢測到的肢體方位yj, 肢體部分的外觀模具Ai決定Bj. 從概率模型中可獲得聯合概率公式為
f(P,x,y,A,B)=f(y|x,B)f(B|A)f(A)f(P)f(x|P),
(7)
其中f(P)表示不同肢體的觀察概率. 運動過程中的人體不具有先驗常識, 所以要把不同肢體間存在的概率設定為互不干擾[5], 可得
(8)

f(x|P)=(1/N)M.
(9)
高斯分布是對其方位與速度建模進行檢測, 得到人體肢體的外觀模型[6], 公式為
f(B|A)=g(bSD=aD)(1/V)N-|f|,
(10)
其中: 1/V為前景檢測閾值;g(bSD=aD)為高斯分布權值;D為更新率;SD為像素;b為高斯分布優先級;a為用戶自定義參數.
通過K-Means聚類方法對各人體SIFT特征提取圖像進行聚類, 其相近度用歐氏距離測量的圖像到聚類中心的間距描述. 人體側影的檢測包含SIFT特征智能提取及基于SIFT人體側影特性的檢測兩部分. 在人體運動動作序列數據庫[7]中運用SIFT特征智能提取圖像特征, 并在人體運動特征數據庫中保存SIFT特征.
基于獲取的人體肢體外觀模型, 采用序列影像輪廓線高精度提取當前運動圖像幀的輪廓線. 序列影像輪廓線決定運動姿態的精度[8], 本文將Canny算子作為檢測算子, 用Freeman碼表示獲得的輪廓線, 采用Douglas-Peucker法對輪廓線進行縮略. 序列影像輪廓線提取方式有粗提取和高精度提取. 粗提取包括灰度化、 二值化等方式, 主要作用于上一幅圖像, 采用Canny算子粗略采集輪廓線, 再使用閉運算解決外部輪廓線[9]. 高精度輪廓線提取作用于兩幅相接的圖像, 先對上一幅圖像進行粗提取后, 再采用序貫搜查法和梯度闕值確定上幅圖的輪廓點, 序列影像高精度輪廓提取算法的流程如圖3所示.

圖3 序列影像高精度輪廓提取算法流程Fig.3 Flow chart of high precision contour extraction algorithm for sequence images
拍攝連續的人體運動圖像, 獲取的目標序列影像中前后兩幀間目標的輪廓線關聯度較高, 則基于原人體運動姿態輪廓線的波動情況[10], 采用搜索方法獲取具有最高梯度的輪廓點, 即精確采集人體運動首幀目標輪廓線; 采用啟發式搜索方法獲取其他輪廓線. 基于采集的前幀輪廓線, 用如下過程實現即刻幀輪廓線的高精度提取.
1) 計算輪廓點的法線. 設置人體某一運動動作的輪廓線法線方向如圖4所示. 設目標輪廓點為p(x,y), 則輪廓點法線關系式為

圖4 目標部分輪廓線Fig.4 Contour line of target part
設θ表示直線的傾斜角, 距離點到p(x,y)的長度為S,S∈[-15,15], 則輪廓點的法向量如圖5所示. 由圖5可見, 先求出直線AB的法向量1和BC的法向量2, 根據向量的加減運算求出向量1和2之和即為B的法線.
2) 確定梯度閾值. 分別計算出點A,B,C的法線, 按圖6所示方法, 先沿每條法線的上下兩部分分別尋找15個點, 并計算出梯度值, 再利用梯度統計直方圖計算梯度值.
3) 確定當前幀的輪廓點. 對第一幅圖進行Fourier變換, 并對前一幅圖采用高斯低通濾波法減少噪聲. 在第一幅圖中, 尋找外法線上的某點計算出梯度閾值[11], 先對法線方向中的點實施檢索, 存儲首個高于梯度閾值的點, 同時將其視為即刻幀的新輪廓點, 最終獲取人體運動圖像的輪廓線[12].

圖5 輪廓點的法向量Fig.5 Normal vectors of contour points

圖6 沿法線方向上下各搜索15個點Fig.6 Search 15 points along normal direction
為了驗證本文方法的性能, 對比分析本文方法、 Data-MCMC 方法及最大熵HMM方法對人體運動不同動作的識別誤差[13]. 實驗環境為Intel Core Z 2.40 GHz CPU, 2 GB RAM的PC機, 編程語言采用VC++8.0. 收集某體育學院2010級新生的各項人體運動序列約200個, 每個子集的采樣姿勢為10種, 各種姿勢進行投影的方位為18個, 通過約20種基本運動如走、 跑、 跳、 踢腿以及拳擊等進行測驗, 結果列于表1. 由表1可見, 本文方法的識別誤差率最低.

表1 三類動作在不同方法中的識別誤差(%)Table 1 Identification error (%) of three types of actions in different methods
實驗檢測本文方法對于步行中人體肢體圖像的識別誤差, 結果列于表2. 由表2可見, 相對于其他兩種方法, 本文方法對于步行人體肢體圖像的識別誤差最低, 左右肢體誤差相近.

表2 不同方法識別步行中的人體肢體圖像誤差(%)Table 2 Identification error (%) of human limb image in walking by different methods
用本文方法識別小跑序列、 拳擊運動序列結果分別如圖7和圖8所示. 由圖7和圖8可見, 本文方法準確地提取了不同的人體運動姿態輪廓, 獲取的肢體位置準確率較高. 將識別拳擊運動中3幀圖像得到的三維人體肢體模型投影到4個位置[14], 結果如圖9所示. 由圖9可見, 本文方法對于質量較差的人體運動圖像同樣有較高的姿態提取效果, 魯棒性較強.

圖7 小跑序列識別效果Fig.7 Recognition effects of trotting sequence

圖8 拳擊運動序列識別效果Fig.8 Recognition effects of boxing sequences

圖9 拳擊運動序列識別產生的三維模型Fig.9 Three domensional model generated by boxing sequence recognition
實驗檢測本文方法對單幅影像姿態輪廓的提取性能, 設置某體操運動員的初始姿態和最終姿態由OpenGL三維模型產生, 旋轉、 跳躍及方向3個姿態的原始值為P(φ0,ω0,κ0), 檢測本文方法采集姿態從P0(5,5,5)到P1(7,7,7)時, 人體三維姿態誤差(Δφ,Δω,Δκ)的變化如圖10所示. 由圖10可見, 三維姿態變化誤差(Δφ,Δω,Δκ)呈現相同規律的平穩變化, 表明本文方法能實現單幅影像姿態輪廓的穩定提取.
實驗檢測本文方法對序列影像姿態輪廓提取時, 對每幀圖像的提取過程即為單幅影像的提取過程[15-18]. 假設體操運動員的空間位置不變, 將首幀設置為人體運動的原始姿態, 運算后續幀時都將前幀姿態視為即刻幀的原始值, 獲取的結果列于表3, 其中: (φ0,ω0,κ0)為實際值; (φ1,ω1,κ1)為獲取的結果; (Δφ,Δω,Δκ)為誤差.

表3 姿態求解結果Table 3 Solution results of attitude
本文方法提取的人體姿態誤差變化趨勢如圖11所示. 由圖11可見, 人體各姿態誤差雖出現一定的波動, 但都保持平穩變化, 并且誤差值始終低于0.2, 表明本文方法具有較高的精確度.

圖10 人體三維姿態變化誤差Fig.10 Error of human 3D attitude changes

圖11 姿態誤差變化趨勢Fig.11 Variation trends of attitude error
綜上所述, 本文提出了一種人體非剛性運動動作圖像姿態輪廓提取算法, 分別對步行、 跑步、 拳擊3種運動圖像進行研究, 通過構建人體肢體外觀模型, 基于該外觀模型采用序列影像高精度輪廓提取算法提取當前人體運動動作幀的輪廓線, 獲取人體運動姿態輪廓. 實驗結果表明:
1) 相對于Data-MCMC 方法和最大熵HMM方法, 本文方法對于步行人體肢體的識別誤差最低, 左右肢體誤差相近;
2) 本文方法對序列運動圖像姿態輪廓提取時, 提取的人體姿態誤差一直保持平穩變化, 誤差始終低于0.2, 具有較高的精確度;
3) 本文方法對于質量較差的人體運動圖像同樣具有較高的姿態提取效果, 魯棒性較強, 提高了人體運動圖像正確姿態輪廓提取的準確度和穩定性.