冷新科, 姜輝軍
(1. 湖南大學(xué) 體育學(xué)院, 長(zhǎng)沙 410082; 2. 湖南第一師范學(xué)院 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院, 長(zhǎng)沙 410205)
基于視覺(jué)的人體動(dòng)作提取方法具有成本小及智能化等優(yōu)勢(shì), 從人體運(yùn)動(dòng)圖像序列內(nèi)提取人體姿態(tài)信息, 是運(yùn)動(dòng)捕捉領(lǐng)域的研究重點(diǎn), 在體育、 醫(yī)療和軍事等領(lǐng)域應(yīng)用廣泛[1]. 因?yàn)槿梭w運(yùn)動(dòng)呈非剛體運(yùn)動(dòng)狀態(tài), 存在較多的遮擋, 使得從視頻圖像內(nèi)提取的人體姿態(tài)輪廓具有較高的波動(dòng)性, 精確度較低. 傳統(tǒng)基于最大熵HMM(hidden Markov model)的人體姿態(tài)提取方法, 無(wú)法解決該問(wèn)題, 其要對(duì)各人體姿態(tài)節(jié)點(diǎn)實(shí)施歸一化操作, 僅能獲取局部最佳解, 存在較高的標(biāo)識(shí)錯(cuò)誤, 使提取的人體姿態(tài)輪廓有較大偏差[2]. 因此, 本文提出一種非剛性人體運(yùn)動(dòng)動(dòng)作圖像正確姿態(tài)輪廓提取算法, 以獲取準(zhǔn)確的人體運(yùn)動(dòng)姿態(tài)輪廓.
通過(guò)底層尺度不變特征變換(SIFT)表示人體運(yùn)動(dòng)圖像庫(kù)是對(duì)圖像特性進(jìn)行提取的目的, 具有SIFT特征的圖像有平移恒定、 尺度恒定及選擇恒定的特性, 該類圖像特征在匹配各視角下目標(biāo)對(duì)象時(shí)能達(dá)到較佳的效果. SIFT特征可辨別目標(biāo)對(duì)象, 通過(guò)在尺度空間中選擇高斯差分函數(shù)的極值明確特征點(diǎn). SIFT特征在旋轉(zhuǎn)及尺度方面是恒定的, 因此在變化的尺度和方向上具有魯棒性. 在算法初期, 建立關(guān)于輸入圖像的高斯尺度空間, 能在原始圖像中運(yùn)用高斯函數(shù)卷積獲取[3], 通過(guò)兩個(gè)卷積后的人體運(yùn)動(dòng)動(dòng)作圖像運(yùn)算獲得高斯差分函數(shù)為
D(x,y,σ)=L(x,y,kσ)-L(x,y,σ),
(1)
其中k表示尺度因子. 人體姿態(tài)圖像用L(x,y,σ)表示, 高斯函數(shù)G(x,y,kσ)卷積得出的結(jié)果用I(x,y)表示, 則
L(x,y,σ)=G(x,y,σ)*I(x,y),
(2)
其中:*表示卷積算子;
在人體姿態(tài)圖像L的不同尺度層次中提取圖像的梯度及方向, 實(shí)現(xiàn)抽取不同重要部位圖像特性的目的. 圖像差分獲得不同像素Lij的圖像梯度大小Mij及方向Rij分別為
(3)
(4)
抽取的SIFT特征圖如圖1所示.
圖1 人體SIFT特征提取圖像Fig.1 Human SIFT feature extraction images
基于獲取的人體側(cè)影SIFT特征提取圖像, 對(duì)人體運(yùn)動(dòng)動(dòng)作圖像姿態(tài)輪廓提取問(wèn)題進(jìn)行建模, 獲得的D維非線性時(shí)間序列建模為
xi+1=h(xi)+u,
(5)
(6)
獲得相關(guān)動(dòng)態(tài)核模型的核函數(shù). 其中:Tφ表示狀態(tài)轉(zhuǎn)移矩陣;μφ表示平移向量;vφ∈H表示高斯白噪聲.
圖2 人體運(yùn)動(dòng)序列網(wǎng)絡(luò)概率模型Fig.2 Network probabilistic model of human motion sequences
人體肢體檢測(cè)的極大概率方位是在關(guān)聯(lián)概率密度函數(shù)f(P,x,y,A,B)的極值處, 因此把隱變量與觀察變量之間的位置設(shè)為概率密度函數(shù)f(P,x,y,A,B), 人體肢體的方位用x描述, 檢測(cè)肢體的方位與速度用y描述, 人體肢體的外觀模具用Ai表示[4], 檢測(cè)到的外觀模具用Bi表示. 本文所用方法與圖模型學(xué)習(xí)相似, 概率圖模型的構(gòu)造如圖2所示.
整體變量P與各肢體的方位及速度(xi,i≠k)決定第k個(gè)肢體xk的方位及運(yùn)動(dòng)速度. 肢體xk的方位與速度影響著檢測(cè)到的肢體方位yj, 肢體部分的外觀模具Ai決定Bj. 從概率模型中可獲得聯(lián)合概率公式為
f(P,x,y,A,B)=f(y|x,B)f(B|A)f(A)f(P)f(x|P),
(7)
其中f(P)表示不同肢體的觀察概率. 運(yùn)動(dòng)過(guò)程中的人體不具有先驗(yàn)常識(shí), 所以要把不同肢體間存在的概率設(shè)定為互不干擾[5], 可得
(8)
f(x|P)=(1/N)M.
(9)
高斯分布是對(duì)其方位與速度建模進(jìn)行檢測(cè), 得到人體肢體的外觀模型[6], 公式為
f(B|A)=g(bSD=aD)(1/V)N-|f|,
(10)
其中: 1/V為前景檢測(cè)閾值;g(bSD=aD)為高斯分布權(quán)值;D為更新率;SD為像素;b為高斯分布優(yōu)先級(jí);a為用戶自定義參數(shù).
通過(guò)K-Means聚類方法對(duì)各人體SIFT特征提取圖像進(jìn)行聚類, 其相近度用歐氏距離測(cè)量的圖像到聚類中心的間距描述. 人體側(cè)影的檢測(cè)包含SIFT特征智能提取及基于SIFT人體側(cè)影特性的檢測(cè)兩部分. 在人體運(yùn)動(dòng)動(dòng)作序列數(shù)據(jù)庫(kù)[7]中運(yùn)用SIFT特征智能提取圖像特征, 并在人體運(yùn)動(dòng)特征數(shù)據(jù)庫(kù)中保存SIFT特征.
基于獲取的人體肢體外觀模型, 采用序列影像輪廓線高精度提取當(dāng)前運(yùn)動(dòng)圖像幀的輪廓線. 序列影像輪廓線決定運(yùn)動(dòng)姿態(tài)的精度[8], 本文將Canny算子作為檢測(cè)算子, 用Freeman碼表示獲得的輪廓線, 采用Douglas-Peucker法對(duì)輪廓線進(jìn)行縮略. 序列影像輪廓線提取方式有粗提取和高精度提取. 粗提取包括灰度化、 二值化等方式, 主要作用于上一幅圖像, 采用Canny算子粗略采集輪廓線, 再使用閉運(yùn)算解決外部輪廓線[9]. 高精度輪廓線提取作用于兩幅相接的圖像, 先對(duì)上一幅圖像進(jìn)行粗提取后, 再采用序貫搜查法和梯度闕值確定上幅圖的輪廓點(diǎn), 序列影像高精度輪廓提取算法的流程如圖3所示.
圖3 序列影像高精度輪廓提取算法流程Fig.3 Flow chart of high precision contour extraction algorithm for sequence images
拍攝連續(xù)的人體運(yùn)動(dòng)圖像, 獲取的目標(biāo)序列影像中前后兩幀間目標(biāo)的輪廓線關(guān)聯(lián)度較高, 則基于原人體運(yùn)動(dòng)姿態(tài)輪廓線的波動(dòng)情況[10], 采用搜索方法獲取具有最高梯度的輪廓點(diǎn), 即精確采集人體運(yùn)動(dòng)首幀目標(biāo)輪廓線; 采用啟發(fā)式搜索方法獲取其他輪廓線. 基于采集的前幀輪廓線, 用如下過(guò)程實(shí)現(xiàn)即刻幀輪廓線的高精度提取.
1) 計(jì)算輪廓點(diǎn)的法線. 設(shè)置人體某一運(yùn)動(dòng)動(dòng)作的輪廓線法線方向如圖4所示. 設(shè)目標(biāo)輪廓點(diǎn)為p(x,y), 則輪廓點(diǎn)法線關(guān)系式為
圖4 目標(biāo)部分輪廓線Fig.4 Contour line of target part
設(shè)θ表示直線的傾斜角, 距離點(diǎn)到p(x,y)的長(zhǎng)度為S,S∈[-15,15], 則輪廓點(diǎn)的法向量如圖5所示. 由圖5可見(jiàn), 先求出直線AB的法向量1和BC的法向量2, 根據(jù)向量的加減運(yùn)算求出向量1和2之和即為B的法線.
2) 確定梯度閾值. 分別計(jì)算出點(diǎn)A,B,C的法線, 按圖6所示方法, 先沿每條法線的上下兩部分分別尋找15個(gè)點(diǎn), 并計(jì)算出梯度值, 再利用梯度統(tǒng)計(jì)直方圖計(jì)算梯度值.
3) 確定當(dāng)前幀的輪廓點(diǎn). 對(duì)第一幅圖進(jìn)行Fourier變換, 并對(duì)前一幅圖采用高斯低通濾波法減少噪聲. 在第一幅圖中, 尋找外法線上的某點(diǎn)計(jì)算出梯度閾值[11], 先對(duì)法線方向中的點(diǎn)實(shí)施檢索, 存儲(chǔ)首個(gè)高于梯度閾值的點(diǎn), 同時(shí)將其視為即刻幀的新輪廓點(diǎn), 最終獲取人體運(yùn)動(dòng)圖像的輪廓線[12].
圖5 輪廓點(diǎn)的法向量Fig.5 Normal vectors of contour points
圖6 沿法線方向上下各搜索15個(gè)點(diǎn)Fig.6 Search 15 points along normal direction
為了驗(yàn)證本文方法的性能, 對(duì)比分析本文方法、 Data-MCMC 方法及最大熵HMM方法對(duì)人體運(yùn)動(dòng)不同動(dòng)作的識(shí)別誤差[13]. 實(shí)驗(yàn)環(huán)境為Intel Core Z 2.40 GHz CPU, 2 GB RAM的PC機(jī), 編程語(yǔ)言采用VC++8.0. 收集某體育學(xué)院2010級(jí)新生的各項(xiàng)人體運(yùn)動(dòng)序列約200個(gè), 每個(gè)子集的采樣姿勢(shì)為10種, 各種姿勢(shì)進(jìn)行投影的方位為18個(gè), 通過(guò)約20種基本運(yùn)動(dòng)如走、 跑、 跳、 踢腿以及拳擊等進(jìn)行測(cè)驗(yàn), 結(jié)果列于表1. 由表1可見(jiàn), 本文方法的識(shí)別誤差率最低.
表1 三類動(dòng)作在不同方法中的識(shí)別誤差(%)Table 1 Identification error (%) of three types of actions in different methods
實(shí)驗(yàn)檢測(cè)本文方法對(duì)于步行中人體肢體圖像的識(shí)別誤差, 結(jié)果列于表2. 由表2可見(jiàn), 相對(duì)于其他兩種方法, 本文方法對(duì)于步行人體肢體圖像的識(shí)別誤差最低, 左右肢體誤差相近.
表2 不同方法識(shí)別步行中的人體肢體圖像誤差(%)Table 2 Identification error (%) of human limb image in walking by different methods
用本文方法識(shí)別小跑序列、 拳擊運(yùn)動(dòng)序列結(jié)果分別如圖7和圖8所示. 由圖7和圖8可見(jiàn), 本文方法準(zhǔn)確地提取了不同的人體運(yùn)動(dòng)姿態(tài)輪廓, 獲取的肢體位置準(zhǔn)確率較高. 將識(shí)別拳擊運(yùn)動(dòng)中3幀圖像得到的三維人體肢體模型投影到4個(gè)位置[14], 結(jié)果如圖9所示. 由圖9可見(jiàn), 本文方法對(duì)于質(zhì)量較差的人體運(yùn)動(dòng)圖像同樣有較高的姿態(tài)提取效果, 魯棒性較強(qiáng).
圖7 小跑序列識(shí)別效果Fig.7 Recognition effects of trotting sequence
圖8 拳擊運(yùn)動(dòng)序列識(shí)別效果Fig.8 Recognition effects of boxing sequences
圖9 拳擊運(yùn)動(dòng)序列識(shí)別產(chǎn)生的三維模型Fig.9 Three domensional model generated by boxing sequence recognition
實(shí)驗(yàn)檢測(cè)本文方法對(duì)單幅影像姿態(tài)輪廓的提取性能, 設(shè)置某體操運(yùn)動(dòng)員的初始姿態(tài)和最終姿態(tài)由OpenGL三維模型產(chǎn)生, 旋轉(zhuǎn)、 跳躍及方向3個(gè)姿態(tài)的原始值為P(φ0,ω0,κ0), 檢測(cè)本文方法采集姿態(tài)從P0(5,5,5)到P1(7,7,7)時(shí), 人體三維姿態(tài)誤差(Δφ,Δω,Δκ)的變化如圖10所示. 由圖10可見(jiàn), 三維姿態(tài)變化誤差(Δφ,Δω,Δκ)呈現(xiàn)相同規(guī)律的平穩(wěn)變化, 表明本文方法能實(shí)現(xiàn)單幅影像姿態(tài)輪廓的穩(wěn)定提取.
實(shí)驗(yàn)檢測(cè)本文方法對(duì)序列影像姿態(tài)輪廓提取時(shí), 對(duì)每幀圖像的提取過(guò)程即為單幅影像的提取過(guò)程[15-18]. 假設(shè)體操運(yùn)動(dòng)員的空間位置不變, 將首幀設(shè)置為人體運(yùn)動(dòng)的原始姿態(tài), 運(yùn)算后續(xù)幀時(shí)都將前幀姿態(tài)視為即刻幀的原始值, 獲取的結(jié)果列于表3, 其中: (φ0,ω0,κ0)為實(shí)際值; (φ1,ω1,κ1)為獲取的結(jié)果; (Δφ,Δω,Δκ)為誤差.
表3 姿態(tài)求解結(jié)果Table 3 Solution results of attitude
本文方法提取的人體姿態(tài)誤差變化趨勢(shì)如圖11所示. 由圖11可見(jiàn), 人體各姿態(tài)誤差雖出現(xiàn)一定的波動(dòng), 但都保持平穩(wěn)變化, 并且誤差值始終低于0.2, 表明本文方法具有較高的精確度.
圖10 人體三維姿態(tài)變化誤差Fig.10 Error of human 3D attitude changes
圖11 姿態(tài)誤差變化趨勢(shì)Fig.11 Variation trends of attitude error
綜上所述, 本文提出了一種人體非剛性運(yùn)動(dòng)動(dòng)作圖像姿態(tài)輪廓提取算法, 分別對(duì)步行、 跑步、 拳擊3種運(yùn)動(dòng)圖像進(jìn)行研究, 通過(guò)構(gòu)建人體肢體外觀模型, 基于該外觀模型采用序列影像高精度輪廓提取算法提取當(dāng)前人體運(yùn)動(dòng)動(dòng)作幀的輪廓線, 獲取人體運(yùn)動(dòng)姿態(tài)輪廓. 實(shí)驗(yàn)結(jié)果表明:
1) 相對(duì)于Data-MCMC 方法和最大熵HMM方法, 本文方法對(duì)于步行人體肢體的識(shí)別誤差最低, 左右肢體誤差相近;
2) 本文方法對(duì)序列運(yùn)動(dòng)圖像姿態(tài)輪廓提取時(shí), 提取的人體姿態(tài)誤差一直保持平穩(wěn)變化, 誤差始終低于0.2, 具有較高的精確度;
3) 本文方法對(duì)于質(zhì)量較差的人體運(yùn)動(dòng)圖像同樣具有較高的姿態(tài)提取效果, 魯棒性較強(qiáng), 提高了人體運(yùn)動(dòng)圖像正確姿態(tài)輪廓提取的準(zhǔn)確度和穩(wěn)定性.