在姿態(tài)估計(jì)中使用的骨架平滑方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及姿態(tài)估計(jì)技術(shù),更具體地說,涉及一種對在姿態(tài)估計(jì)中得到的骨架進(jìn) 行平滑的方法和設(shè)備。
【背景技術(shù)】
[0002] 姿態(tài)估計(jì)(PoseEstimation,PE)是一種近年來的熱門技術(shù),在機(jī)器人視覺、動作 跟蹤和單照相機(jī)定標(biāo)等很多領(lǐng)域都有應(yīng)用。利用此技術(shù),可以將圖像里面的人的姿態(tài)估計(jì) 出來,從而進(jìn)一步用于對人體姿態(tài)的識別和評價(jià),
[0003]以及對虛擬模型的控制等等。人體姿態(tài)估計(jì)是指從圖像中檢測人體各部分的位置 并計(jì)算其方向和尺度信息。而往往簡單估計(jì)出來的姿態(tài)會有因?yàn)橛^測或者算法導(dǎo)致的一些 誤差,影響輸出姿態(tài)的效果。因此,平滑技術(shù)常用于姿態(tài)估計(jì)的后處理階段。
[0004] 然而,傳統(tǒng)的平滑技術(shù)主要是對于關(guān)節(jié)點(diǎn)的平滑,點(diǎn)與點(diǎn)之間是相互獨(dú)立的或者 是有一些簡單的限制條件的,例如,限制兩點(diǎn)之間有一個(gè)固定長度,這樣最后的平滑結(jié)果會 缺乏一些常識性的限制,例如,對真實(shí)的骨骼長度的限制。
[0005] 例如,一種傳統(tǒng)的平滑技術(shù)在提取骨架之后,針對每一個(gè)關(guān)節(jié)點(diǎn)的三維位置分別 進(jìn)行平滑。而這樣基于獨(dú)立點(diǎn)平滑的系統(tǒng)很難滿足作為人體的一些物理限制:比如身體各 部分骨骼基本保持不變。該方法很難適用于一些特殊復(fù)雜姿態(tài)的情況,比如雙手交叉于胸 前。其它一些傳統(tǒng)的平滑技術(shù)也有類似的問題,都是基于骨骼關(guān)節(jié)點(diǎn)來進(jìn)行平滑的,雖然使 用了一些簡單的物理限制來限制,也無法達(dá)到預(yù)想的效果。
[0006] 另一種傳統(tǒng)的平滑技術(shù)考慮到上述問題,使用了無損卡爾曼濾波器(UKF)和一個(gè) 完整的骨骼模型來進(jìn)行骨架的提取和平滑,但使用反向動力學(xué)來進(jìn)行計(jì)算,即通過獲得肢 端的位置信息來反推骨骼的狀態(tài),從而得到所有關(guān)節(jié)點(diǎn)的位置,速度很慢很難適應(yīng)于實(shí)時(shí) 系統(tǒng),并且匹配效果較差。另外最重要的是,該技術(shù)使用了完整的骨骼系統(tǒng),但是卻是一個(gè) 固定長度的系統(tǒng),比如說固定的骨骼長度或者固定的骨骼比例關(guān)系。這樣的固定模型很難 適用于不同用戶的情況,就不能成為適用于任意用戶的系統(tǒng)。
[0007] 因此,需要一種能夠?qū)崟r(shí)輸出更加精確合理的平滑骨架并能夠適用于不同用戶的 方法和設(shè)備。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于至少解決上述問題,并至少提供下述優(yōu)點(diǎn)。本發(fā)明的一方面在 于提供一種在姿態(tài)估計(jì)中使用的骨架平滑方法和設(shè)備,所述骨架平滑方法和設(shè)備通過使用 與骨架中的關(guān)節(jié)點(diǎn)相應(yīng)的骨骼長度和骨骼旋轉(zhuǎn)角度的信息動態(tài)地約束骨架中的關(guān)節(jié)點(diǎn)的 位置,來對骨架中的關(guān)節(jié)點(diǎn)的位置進(jìn)行平滑。
[0009] 根據(jù)本發(fā)明的一方面,提供了一種姿態(tài)估計(jì)設(shè)備,包括:圖像獲取單元,獲取拍攝 的圖像;用戶區(qū)域提取單元,通過用戶區(qū)域分析來從拍攝的圖像中提取用戶區(qū)域;骨架提 取單元,通過使用骨架提取技術(shù)來從用戶區(qū)域提取骨架圖像;骨架模型設(shè)置單元,設(shè)置包括 多個(gè)關(guān)節(jié)點(diǎn)的骨架模型,其中,所述多個(gè)關(guān)節(jié)點(diǎn)包括根節(jié)點(diǎn),根節(jié)點(diǎn)是位于骨盆中的用于表 示人體在世界坐標(biāo)系中的位置的假設(shè)點(diǎn);骨架平滑單元,從骨架圖像中獲得所述多個(gè)關(guān)節(jié) 點(diǎn)中除根節(jié)點(diǎn)之外的其余關(guān)節(jié)點(diǎn)的位置信息,從所述位置信息中計(jì)算根節(jié)點(diǎn)的位置以及與 所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼長度和骨骼旋轉(zhuǎn)角度的信息,通過使用與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng) 的骨骼長度和骨骼旋轉(zhuǎn)角度的信息動態(tài)地約束所述多個(gè)關(guān)節(jié)點(diǎn)的位置,來對所述多個(gè)關(guān)節(jié) 點(diǎn)的位置進(jìn)行平滑;骨架輸出單元,輸出平滑后的骨架圖像。
[0010] 根據(jù)本發(fā)明的另一方面,提供了一種對姿態(tài)估計(jì)中的骨架圖像進(jìn)行平滑的設(shè)備, 包括:骨架模型設(shè)置單元,設(shè)置包括多個(gè)關(guān)節(jié)點(diǎn)的骨架模型,其中,所述多個(gè)關(guān)節(jié)點(diǎn)包括根 節(jié)點(diǎn),根節(jié)點(diǎn)是位于骨盆中的用于表示人體在世界坐標(biāo)系中的位置的假設(shè)點(diǎn);骨架平滑單 元,從骨架圖像中獲得所述多個(gè)關(guān)節(jié)點(diǎn)中除根節(jié)點(diǎn)之外的其余關(guān)節(jié)點(diǎn)的位置信息,從所述 位置信息中計(jì)算根節(jié)點(diǎn)的位置以及與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼長度和骨骼旋轉(zhuǎn)角度的 信息,通過使用與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼長度和骨骼旋轉(zhuǎn)角度的信息動態(tài)地約束所述 多個(gè)關(guān)節(jié)點(diǎn)的位置,來對所述多個(gè)關(guān)節(jié)點(diǎn)的位置進(jìn)行平滑,從而獲得平滑的骨架圖像。
[0011] 所述多個(gè)關(guān)節(jié)點(diǎn)還可包括頭部節(jié)點(diǎn)、頸部節(jié)點(diǎn)、左肩節(jié)點(diǎn)、右肩節(jié)點(diǎn)、左肘節(jié)點(diǎn)、右 肘節(jié)點(diǎn)、左腕節(jié)點(diǎn)、右腕節(jié)點(diǎn)、左臀節(jié)點(diǎn)、右臀節(jié)點(diǎn)、左膝節(jié)點(diǎn)、右膝節(jié)點(diǎn)、左踝節(jié)點(diǎn)、右踝節(jié) 點(diǎn),其中,將肘部和膝部的關(guān)節(jié)點(diǎn)設(shè)置為鉸鏈關(guān)節(jié),僅在一個(gè)固定平面內(nèi)旋轉(zhuǎn),其它關(guān)節(jié)點(diǎn) 任意旋轉(zhuǎn),通過每個(gè)關(guān)節(jié)點(diǎn)為原點(diǎn)的坐標(biāo)系的旋轉(zhuǎn)量來表示骨骼的旋轉(zhuǎn)方向。
[0012] 骨架平滑單元可包括:初始化單元,在獲得第一幀骨架圖像時(shí),對平滑所需的數(shù)據(jù) 進(jìn)行初始化,其中,平滑所需的數(shù)據(jù)包括觀測量Z、狀態(tài)量《、觀測誤差V和操作誤差W;平滑 操作單元,在獲得第一幀骨架圖像之后的每一幀骨架圖像時(shí),根據(jù)操作誤差w和觀測誤差v 來獲得預(yù)測的狀態(tài)量和預(yù)測的觀測量,并根據(jù)預(yù)測的狀態(tài)量和預(yù)測的預(yù)測量來獲得平滑的 狀態(tài)量,根據(jù)平滑的狀態(tài)量來獲得平滑的觀測量,從而從平滑的觀測量獲得平滑后的骨架 圖像。
[0013] 初始化單元可使用對從第一幀骨架圖像獲得的所述多個(gè)關(guān)節(jié)點(diǎn)中除根節(jié)點(diǎn)之外 的其余關(guān)節(jié)點(diǎn)的位置信息來初始化觀測量Z,使用對第一幀骨架圖像的觀測量Z計(jì)算的根 節(jié)點(diǎn)的位置以及與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼長度和骨骼旋轉(zhuǎn)角度的信息來初始化狀態(tài) 量w,初始化觀測誤差v和操作誤差w,其中,觀測誤差v和操作誤差w分別是由獲得觀測量 Z而產(chǎn)生的誤差和計(jì)算狀態(tài)量W而產(chǎn)生的誤差,觀測誤差V和操作誤差W滿足正態(tài)分布,通 過分別初始化觀測誤差的方差和操作誤差的方差PPMC;6SS來初始化觀測誤差V和操作 誤差W。
[0014] 平滑操作單元可包括操作誤差更新單元、狀態(tài)量預(yù)測單元、觀測量預(yù)測單元、狀 態(tài)量平滑單元、觀測量平滑單元、觀測誤差更新單元,其中,對于第一幀骨架圖像之后的每 一幀骨架圖像:初始化單元獲得當(dāng)前幀的觀測量Zk,初始化單元根據(jù)當(dāng)前幀的觀測量Zk來 判斷用戶是否更換,如果用戶更換,則對觀測量Z、狀態(tài)量《、觀測誤差V和操作誤差W重 新初始化,如果用戶未更換,則進(jìn)行下面的步驟,操作誤差更新單元通過根據(jù)從當(dāng)前幀的 觀測量Zk計(jì)算的與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼旋轉(zhuǎn)角度來更新操作誤差的方差PpMC_, 從而更新當(dāng)前幀的操作誤差wk,狀態(tài)量預(yù)測單元通過公式X'k=f(Xh)+wk來獲得當(dāng)前幀的 預(yù)測的狀態(tài)量X'k,其中,函數(shù)f是通過先驗(yàn)知識設(shè)定的用于狀態(tài)轉(zhuǎn)移的操作函數(shù),Xh是 前一幀的狀態(tài)量,觀測量預(yù)測單元通過公式Z'k=h(X' k) +vk來獲得預(yù)測的觀測量z'k,其中, 函數(shù)h是基于正向動力學(xué)原理的將狀態(tài)量中包含的骨骼長度以及骨骼旋轉(zhuǎn)角度轉(zhuǎn)換為觀 測量中的各關(guān)節(jié)點(diǎn)的位置的觀測函數(shù),Vk是當(dāng)前幀的觀測誤差,狀態(tài)量平滑單元通過公式 xk=x'k+K(zk-z' k)來獲得平滑的狀態(tài)量xk,并將平滑的狀態(tài)量xk作為當(dāng)前幀的狀態(tài)量,其 中,K是根據(jù)狀態(tài)量的方差以及觀測誤差的方差和操作誤差的方差Pp_6SS而計(jì)算的 增益值,觀測量平滑單元通過公式zk()Ut=h(Xk)來獲得平滑的觀測量zk()Ut,從而獲得平滑后 的骨架圖像,觀測誤差更新單元從平滑的觀測量zk()Ut計(jì)算與所述多個(gè)關(guān)節(jié)點(diǎn)相應(yīng)的骨骼旋 轉(zhuǎn)角度,并根據(jù)計(jì)算的骨骼旋轉(zhuǎn)角度來更新觀測誤差的方差,作為下一幀的觀測誤差 的方差P〇b serve °
[0015] 初始化單元可將當(dāng)前幀的觀測量z與前一幀的觀測量z進(jìn)行比較,如果當(dāng)前幀的 觀測量Z與前一幀的觀測量Z之間的差超出預(yù)定閾值,則判斷用戶更換,如果當(dāng)前幀的觀測 量Z與前一幀的觀測量Z之間的差未超出預(yù)定閾值,則判斷用戶未更換。
[0016] 初始化單元可根據(jù)第一幀骨架圖像的數(shù)據(jù)或者根據(jù)經(jīng)驗(yàn)數(shù)據(jù)來初始化觀測誤差 的方差和操作誤差的方差Pp_ss。
[0017] 操作誤差更新單元可通過公式
【主權(quán)項(xiàng)】
1. 一種姿態(tài)估計(jì)設(shè)備,包括: 圖像獲取單元,獲取拍攝的圖像; 用