本發(fā)明涉及機器學(xué)習(xí)技術(shù)領(lǐng)域,特別是涉及一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法及其裝置。
背景技術(shù):
機器學(xué)習(xí)是人工智能的一個重要分支,機器學(xué)習(xí)就是讓機器通過已知的樣本來學(xué)習(xí)樣本間的內(nèi)在規(guī)律。
在機器學(xué)習(xí)的應(yīng)用中,利用人體姿態(tài)數(shù)據(jù)樣本來進(jìn)行人體行為識別、人體骨架線識別等操作的應(yīng)用越來越多。由于常用的機器學(xué)習(xí)至少需要幾十萬的樣本集,如此多的樣本,若僅通過人工構(gòu)造的話,耗時耗力,且效率低下。
因此,如何提供一種提高樣本構(gòu)造效率的構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法及其裝置是本領(lǐng)域技術(shù)人員目前需要解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法及其裝置,能夠通過建立的骨骼模型生成大量的人體姿態(tài)數(shù)據(jù)樣本,節(jié)省人力,構(gòu)造效率高。
為解決上述技術(shù)問題,本發(fā)明提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法,包括:
步驟s101:依據(jù)預(yù)設(shè)參數(shù)構(gòu)建骨骼模型;
步驟s102:構(gòu)建所述骨骼模型內(nèi)關(guān)節(jié)間的若干個運動模型,每個所述運動模型對應(yīng)一種預(yù)設(shè)的人體動作,且所述運動模型包括其對應(yīng)的人體動作下各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系;
步驟s103:依據(jù)所述運動模型渲染骨骼動畫,得到各種所述預(yù)設(shè)的人體動作下的動畫圖像;調(diào)整觀察視野,重復(fù)本步驟的操作,得到所述骨骼模型在各個觀察視野下的動畫圖像并保存;
步驟s104:調(diào)整所述骨骼模型的參數(shù),返回步驟s102,直至得到全部預(yù)設(shè)參數(shù)下的骨骼模型對應(yīng)的動畫圖像后進(jìn)入步驟s105;
步驟s105:依據(jù)獲得的動畫圖像提取真值數(shù)據(jù),所述真值數(shù)據(jù)及所述動畫圖像即為人體姿態(tài)數(shù)據(jù)樣本。
優(yōu)選地,所述步驟s101的過程具體為:
構(gòu)建人體模型;
設(shè)置所述人體模型中的人體骨骼參數(shù);
建立所述人體模型與骨骼間的蒙皮關(guān)系,得到所述骨骼模型。
優(yōu)選地,步驟s102的過程具體為:
確定所述骨骼模型內(nèi)各個關(guān)節(jié)的聯(lián)動關(guān)系;
確定各個所述關(guān)節(jié)的自由度;
依據(jù)所述自由度和所述聯(lián)動關(guān)系,確定每種所述預(yù)設(shè)的人體動作對應(yīng)的各個所述關(guān)節(jié)的旋轉(zhuǎn)矩陣t;
將臀部關(guān)節(jié)作為根關(guān)節(jié),確定各個所述關(guān)節(jié)之間的父子關(guān)系;
依據(jù)所述旋轉(zhuǎn)矩陣以及所述父子關(guān)系計算各種所述預(yù)設(shè)的人體動作前后各個所述關(guān)節(jié)的絕對坐標(biāo)。
優(yōu)選地,步驟s103中,所述依據(jù)所述運動模型渲染骨骼動畫,得到各種所述預(yù)設(shè)的人體動作下的動畫圖像的過程具體為:
依據(jù)所述預(yù)設(shè)的人體動作前后各個所述關(guān)節(jié)的絕對坐標(biāo),確定所述預(yù)設(shè)的人體動作過程中各個所述關(guān)節(jié)的變化角度范圍;
依據(jù)所述變化角度范圍,將預(yù)設(shè)角度的變化作為一幀,確定每個所述關(guān)節(jié)在所述預(yù)設(shè)的人體動作過程中的幀數(shù);
依據(jù)各個所述關(guān)節(jié)的父子關(guān)系,在每個父關(guān)節(jié)更新一幀后,遍歷所述父關(guān)節(jié)對應(yīng)的子關(guān)節(jié)的全部幀圖像;
將遍歷后得到的全部圖像進(jìn)行匯總,得到所述預(yù)設(shè)的人體動作下的動畫圖像;重復(fù)上述操作,得到各種所述預(yù)設(shè)的人體動作下的動畫圖像。
優(yōu)選地,所述觀察視野包括所述初始人體姿態(tài)模型的前方視野、后方視野、左側(cè)視野、右側(cè)視野、上方視野和下方視野。
為解決上述技術(shù)問題,本發(fā)明還提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的裝置,包括:
骨骼構(gòu)建模塊,用于預(yù)設(shè)參數(shù)構(gòu)建骨骼模型;
運動模型構(gòu)建模塊,用于構(gòu)建所述骨骼模型內(nèi)關(guān)節(jié)間的若干個運動模型,每個所述運動模型對應(yīng)一種預(yù)設(shè)的人體動作,且所述運動模型包括其對應(yīng)的人體動作下各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系;
動畫生成模塊,用于依據(jù)所述運動模型渲染骨骼動畫,得到各種所述預(yù)設(shè)的人體動作下的動畫圖像;調(diào)整觀察視野,重復(fù)上述渲染操作,得到所述骨骼模型在各個觀察視野下的動畫圖像并保存,觸發(fā)骨骼參數(shù)調(diào)整模塊;
所述骨骼參數(shù)調(diào)整模塊,用于調(diào)整所述骨骼模型的參數(shù),觸發(fā)所述骨骼構(gòu)建模塊,直至得到全部預(yù)設(shè)參數(shù)下的骨骼模型對應(yīng)的動畫圖像后觸發(fā)真值提取模塊;
所述真值提取模塊,用于依據(jù)獲得的動畫圖像提取真值數(shù)據(jù),所述真值數(shù)據(jù)及所述動畫圖像即為人體姿態(tài)數(shù)據(jù)樣本。
優(yōu)選地,所述骨骼構(gòu)建模塊具體包括:
初始構(gòu)建單元,用于構(gòu)建人體模型;
參數(shù)調(diào)整單元,用于設(shè)置所述人體模型中的人體骨骼參數(shù);
蒙皮建立單元,用于建立所述人體模型與骨骼間的蒙皮關(guān)系,得到所述骨骼模型。
優(yōu)選地,所述運動模型構(gòu)建模塊具體包括:
關(guān)節(jié)鏈確定單元,用于確定所述骨骼模型內(nèi)各個關(guān)節(jié)的聯(lián)動關(guān)系;
自由度確定單元,用于確定各個所述關(guān)節(jié)的自由度;
旋轉(zhuǎn)矩陣確定單元,用于依據(jù)所述自由度和所述聯(lián)動關(guān)系,確定每種所述預(yù)設(shè)的人體動作對應(yīng)的各個所述關(guān)節(jié)的旋轉(zhuǎn)矩陣t;
關(guān)節(jié)結(jié)構(gòu)確定單元,用于將臀部關(guān)節(jié)作為根關(guān)節(jié),確定各個所述關(guān)節(jié)之間的父子關(guān)系;
絕對坐標(biāo)計算單元,用于依據(jù)所述旋轉(zhuǎn)矩陣以及所述父子關(guān)系計算各種所述預(yù)設(shè)的人體動作前后各個所述關(guān)節(jié)的絕對坐標(biāo)。
優(yōu)選地,所述動畫生成模塊具體包括:
變化范圍確定單元,用于依據(jù)所述預(yù)設(shè)的人體動作前后各個所述關(guān)節(jié)的絕對坐標(biāo),確定所述預(yù)設(shè)的人體動作過程中各個所述關(guān)節(jié)的變化角度范圍;
幀率分配單元,用于依據(jù)所述變化角度范圍,將預(yù)設(shè)角度的變化作為一幀,確定每個所述關(guān)節(jié)在所述預(yù)設(shè)的人體動作過程中的幀數(shù);
遍歷單元,用于依據(jù)各個所述關(guān)節(jié)的父子關(guān)系,在每個父關(guān)節(jié)更新一幀后,遍歷所述父關(guān)節(jié)對應(yīng)的子關(guān)節(jié)的全部幀圖像;將遍歷后得到的全部圖像進(jìn)行匯總,得到所述預(yù)設(shè)的人體動作下的動畫圖像。
本發(fā)明提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法及其裝置,建立骨骼模型以及骨骼模型中關(guān)節(jié)間的運動模型后,依據(jù)人體動作下各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系,渲染得到在各種人體動作下的動畫圖像,然后調(diào)整觀察視野以及骨骼模型的參數(shù)重復(fù)上述操作,從而得到不同人體動作下、不同觀察視野以及不同體型的骨骼模型的動畫圖像,之后將該動畫圖像以及從該動畫圖像內(nèi)提取的真值數(shù)據(jù)作為人體姿態(tài)數(shù)據(jù)樣本??梢姡景l(fā)明不需要人工構(gòu)造,且能夠一次建立大量的數(shù)據(jù)樣本,節(jié)省人力,構(gòu)造效率高。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對現(xiàn)有技術(shù)和實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法的過程的流程圖;
圖2為本發(fā)明提供的一種具體的骨骼模型示意圖;
圖3為本發(fā)明提供的一種人體上肢關(guān)節(jié)自由度分析中坐標(biāo)軸的設(shè)置示意圖;
圖4為本發(fā)明提供的一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的裝置的結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明的核心是提供一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法及其裝置,能夠通過建立的骨骼模型生成大量的人體姿態(tài)數(shù)據(jù)樣本,節(jié)省人力,構(gòu)造效率高。
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法,參見圖1所示,圖1為本發(fā)明提供的一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法的過程的流程圖;該方法包括:
步驟s101:依據(jù)預(yù)設(shè)參數(shù)構(gòu)建骨骼模型;
可以理解的是,這里的骨骼模型指的是由相互連接的骨骼組成的骨架結(jié)構(gòu),包括人體骨骼與人體蒙皮以及蒙皮關(guān)系。這里可以通過3dmax或makehuman等軟件工具生成人體模型。
具體的,步驟s101的過程具體為:
構(gòu)建人體模型;
設(shè)置人體模型中的人體骨骼參數(shù);
建立人體模型與骨骼間的蒙皮關(guān)系,得到骨骼模型。
另外,由于骨骼越接近于人體骨骼,當(dāng)骨骼運動時,蒙皮會越真實;但與此同時也有一些弊端,骨骼的數(shù)據(jù)越多,設(shè)計骨骼運動時,蒙皮產(chǎn)生的畸變越嚴(yán)重。因此建立骨骼模型時,盡量只保留大骨;當(dāng)建立人體的局部細(xì)節(jié)時,如建立手勢的模型時,可以多增加一些手指的關(guān)節(jié)。參見圖2所示,圖2為本發(fā)明提供的一種具體的骨骼模型示意圖。
步驟s102:構(gòu)建骨骼模型內(nèi)關(guān)節(jié)間的若干個運動模型,每個運動模型對應(yīng)一種預(yù)設(shè)的人體動作,且運動模型包括其對應(yīng)的人體動作下各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系;
步驟s103:依據(jù)運動模型渲染骨骼動畫,得到各種預(yù)設(shè)的人體動作下的動畫圖像;調(diào)整觀察視野,重復(fù)本步驟的操作,得到骨骼模型在各個觀察視野下的動畫圖像并保存;
步驟s104:調(diào)整骨骼模型的參數(shù),返回步驟s102,直至得到全部預(yù)設(shè)參數(shù)下的骨骼模型對應(yīng)的動畫圖像后進(jìn)入步驟s105;
由于實際情況中,人的體型千差萬別,因此需要設(shè)計不同的人體模型,最好包括:男、女、老、少、青年等各種組合下的人體模型。該目的可通過調(diào)整骨骼模型的參數(shù)實現(xiàn)。
步驟s105:依據(jù)獲得的動畫圖像提取真值groundtrue數(shù)據(jù),真值數(shù)據(jù)及動畫圖像即為人體姿態(tài)數(shù)據(jù)樣本。
其中,groundtrue數(shù)據(jù)的提取具體根據(jù)不同的識別應(yīng)用需要進(jìn)行,例如:人體骨架線提取中,可獲取每幅圖像的人體骨架數(shù)據(jù);在人體行為識別中,可獲取每幅圖像的行為標(biāo)簽;在人體姿態(tài)識別中,可獲取每幅圖像的姿態(tài)數(shù)據(jù)。
具體的,步驟s102的過程具體為:
步驟s201:確定骨骼模型內(nèi)各個關(guān)節(jié)的聯(lián)動關(guān)系;
步驟s202:確定各個關(guān)節(jié)的自由度;
步驟s203:依據(jù)自由度和聯(lián)動關(guān)系,確定每種預(yù)設(shè)的人體動作對應(yīng)的各個關(guān)節(jié)的旋轉(zhuǎn)矩陣t;
步驟s204:將臀部關(guān)節(jié)作為根關(guān)節(jié),確定各個關(guān)節(jié)之間的父子關(guān)系;
步驟s205:依據(jù)旋轉(zhuǎn)矩陣以及父子關(guān)系計算各種預(yù)設(shè)的人體動作前后各個關(guān)節(jié)的絕對坐標(biāo)。
其中,這里的旋轉(zhuǎn)矩陣即指的是步驟s102中提到的相對旋轉(zhuǎn)關(guān)系。
可以理解的是,運動學(xué)是一種較好的控制技術(shù),通過把運動骨骼作為剛體,改變不同部分的狀態(tài),就可以對運動加以控制。在動畫控制技術(shù)中,正向運動學(xué)和反向運動學(xué)運用相當(dāng)廣泛,是一種控制骨骼運動的有效方法。其中,本發(fā)明步驟s102中優(yōu)選采用正向運動學(xué),正向運動學(xué)是通過設(shè)置不同骨骼的旋轉(zhuǎn)角,得到各個肢體的位置。其核心是:父關(guān)節(jié)帶動子關(guān)節(jié)運動,即父關(guān)節(jié)旋轉(zhuǎn)后,其子關(guān)節(jié)一定會旋轉(zhuǎn)和父關(guān)節(jié)相同的角度。
人體骨骼運動時,只有相連的骨骼才會相互影響。步驟s201中,根據(jù)人體的常見的運行,可以將人體骨骼模型分為6個部分:頭部運動+四肢運動+腰部運動,建立關(guān)節(jié)之間的聯(lián)動關(guān)系,即關(guān)節(jié)鏈如下:
頭部運動:head(頭部)->neck(脖子)->spine(脊椎上部分);
腰部運動:spine1(脊椎下部分)->lowerback(肚子)->hips(臀部);
左上肢運動:left_hand(左手)->left_forearm(左前臂)->left_arm(左上臂)->left_shoulder(左肩膀);
右上肢運動:right_hand(右手)->right_forearm(右前臂)->right_arm(右上臂)->right_shoulder(右肩膀);
左下肢運動:left_foot(左腳)->left_leg(左小腿)->left_upleg(左上腿)->left_hips(左臀);
右下肢運動:right_foot(右腳)->right_leg(右小腿)->right_upleg(右上腿)->right_hips(右臀)。
當(dāng)然,關(guān)節(jié)之間的聯(lián)動關(guān)系是基于骨骼模型的具體結(jié)構(gòu)以及關(guān)節(jié)間的父子關(guān)系建立的,以上僅為一種具體的實現(xiàn)方式,本發(fā)明并不限定關(guān)節(jié)間的具體聯(lián)動關(guān)系的內(nèi)容。
步驟s202中,為了很好的表達(dá)關(guān)節(jié)鏈的運動,我們設(shè)計各個關(guān)節(jié)的自由度。根據(jù)實際情況,人體關(guān)節(jié)應(yīng)該只可以進(jìn)行旋轉(zhuǎn)變換,不可以進(jìn)行平移變換。因此各個關(guān)節(jié)最多有3個自由度,并且全部是旋轉(zhuǎn)自由度。具體可采用euler’srotation(歐拉旋轉(zhuǎn))來表達(dá)關(guān)節(jié)的自由度。
在自由度的確定過程中,具體可設(shè)置坐標(biāo)軸為右手坐標(biāo)系,即沿骨骼方向為y方向;旋轉(zhuǎn)順序為:eulerxyz。參見圖3所示,圖3為本發(fā)明提供的一種人體上肢關(guān)節(jié)自由度分析中坐標(biāo)軸的設(shè)置示意圖。
步驟s203中,為方便理解,以人體上肢為例。由于肩膀只有3個自由度,肘彎有1個自由度,手腕有3個自由度。假設(shè)肩膀的自由度為,(αs,βs,γs)胳膊肘的自由度為(0,βe,0),手腕的自由度為(αw,βw,γw),則其旋轉(zhuǎn)矩陣分別為ts,te,tw。其中:
其中,其他關(guān)節(jié)可類比上述旋轉(zhuǎn)矩陣的獲得方式。
需要注意的是,本步驟中的動作模型需要盡可能涵蓋全部人類常見的動作,例如,彎腰、蹲下、坐、站立等。每個人體動作均對應(yīng)關(guān)節(jié)的一組旋轉(zhuǎn)矩陣,不同的人體動作對應(yīng)的關(guān)節(jié)的旋轉(zhuǎn)矩陣不同。
另外,由于人體模型中,各個關(guān)節(jié)是呈樹狀形式的,即:整個人體模型有一個根節(jié)點,即hips(臀部),圍繞此節(jié)點,產(chǎn)生子節(jié)點,子節(jié)點再產(chǎn)生自身子節(jié)點。如:hips(臀部)節(jié)點產(chǎn)生lefthips(左臀部)、righthips(右臀部)和lowerback(肚子);其中l(wèi)efthips(左臀部)產(chǎn)生節(jié)點leftupleg(左上腿);righthips(右臀部)產(chǎn)生節(jié)點right_upleg(右上腿)。當(dāng)計算各個關(guān)節(jié)的絕對坐標(biāo)時,需要先計算其父節(jié)點的絕對坐標(biāo)。
步驟s204中,以圖2的人體上肢為例,假設(shè)運動前,肩膀的絕對坐標(biāo)為xs,胳膊肘的絕對坐標(biāo)為xe,手腕的絕對坐標(biāo)為xw,運動后,肩膀的絕對坐標(biāo)為xs’,胳膊肘的絕對坐標(biāo)為x’e,手腕的絕對坐標(biāo)為x’w,則:
x’e=xe
x’e=ts*xe+xs
x’w=te*x’e+x’s
依據(jù)上述方式,類比可得到全部關(guān)節(jié)的在相應(yīng)的人體動作前后的絕對坐標(biāo),依據(jù)該絕對坐標(biāo),可以得到各種人體動作前后的靜態(tài)圖像以及各個關(guān)節(jié)的角度變化范圍。
進(jìn)一步可知,步驟s103中,依據(jù)運動模型渲染骨骼動畫,得到各種預(yù)設(shè)的人體動作下的動畫圖像的過程具體為:
步驟s301:依據(jù)預(yù)設(shè)的人體動作前后各個關(guān)節(jié)的絕對坐標(biāo),確定預(yù)設(shè)的人體動作過程中各個關(guān)節(jié)的變化角度范圍;
步驟s302:依據(jù)變化角度范圍,將預(yù)設(shè)角度的變化作為一幀,確定每個關(guān)節(jié)在預(yù)設(shè)的人體動作過程中的幀數(shù);
步驟s303:依據(jù)各個關(guān)節(jié)的父子關(guān)系,在每個父關(guān)節(jié)更新一幀后,遍歷父關(guān)節(jié)對應(yīng)的子關(guān)節(jié)的全部幀圖像;
步驟s304:將遍歷后得到的全部圖像進(jìn)行匯總,得到預(yù)設(shè)的人體動作下的動畫圖像;重復(fù)上述操作,得到各種預(yù)設(shè)的人體動作下的動畫圖像。
可以理解的是,想要得到人體姿態(tài)數(shù)據(jù)樣本,不能僅依據(jù)動作前后的靜態(tài)圖像,而是要生成骨骼動畫。生成骨骼動畫的過程中,由于每個關(guān)節(jié)均有一個角度變化的范圍,例如-30°~50°,則此時若將8°的變化作為一幀圖像的話,可將該關(guān)節(jié)在上述人體動作中的移動分解為10幀圖像,即該關(guān)節(jié)在上述人體動作中的幀數(shù)為10,同理,可得到全部關(guān)節(jié)的幀數(shù),并完成全部關(guān)節(jié)的幀數(shù)分解。由于關(guān)節(jié)間具有父子聯(lián)動關(guān)系,故需要依據(jù)父子關(guān)系進(jìn)行聯(lián)動遍歷。例如,以左上肢為例來說明,假設(shè)肩膀的幀數(shù)為10,胳膊肘的幀數(shù)為10,手腕的幀數(shù)為10,若當(dāng)前肩膀更新一幀,則胳膊肘的10幀需要全部遍歷一遍,在此過程中,胳膊肘每更新一幀,手腕也要全部遍歷一遍,具體的,假設(shè)當(dāng)前幀為第n幀,則:
當(dāng)前左上肢的幀數(shù)narm=n%(10*10*10);
當(dāng)前肩膀的幀數(shù)nshoulder=narm/(10*10);
當(dāng)前胳膊肘的幀數(shù)為nelbow=(narm%(10*10))/10;
當(dāng)前手腕的幀數(shù)為nwrist=(narm%(10*10))%10。
另外,為了確保獲得動畫圖像的完整性,需要調(diào)整觀察視野,盡量均勻的在骨骼模型的各個方位采集圖像并保存,作為優(yōu)選地,觀察視野包括初始人體姿態(tài)模型的前方視野、后方視野、左側(cè)視野、右側(cè)視野、上方視野和下方視野。
本發(fā)明提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的方法,建立骨骼模型以及骨骼模型中關(guān)節(jié)間的運動模型后,依據(jù)人體動作前后的各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系,渲染得到在各種人體動作下的動畫圖像,然后調(diào)整觀察視野以及骨骼模型的參數(shù)重復(fù)上述操作,從而得到不同人體動作下、不同觀察視野以及不同體型的骨骼模型的動畫圖像,之后將該動畫圖像以及從該動畫圖像內(nèi)提取的真值數(shù)據(jù)作為人體姿態(tài)數(shù)據(jù)樣本??梢姡景l(fā)明不需要人工構(gòu)造,且能夠一次建立大量的數(shù)據(jù)樣本,節(jié)省人力,構(gòu)造效率高。
本發(fā)明還提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的裝置,參見圖4所示,圖4為本發(fā)明提供的一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的裝置的結(jié)構(gòu)示意圖。該裝置包括:
骨骼構(gòu)建模塊1,用于預(yù)設(shè)參數(shù)構(gòu)建骨骼模型;
運動模型構(gòu)建模塊2,用于構(gòu)建骨骼模型內(nèi)關(guān)節(jié)間的若干個運動模型,每個運動模型對應(yīng)一種預(yù)設(shè)的人體動作,且運動模型包括其對應(yīng)的人體動作下各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系;
動畫生成模塊3,用于依據(jù)運動模型渲染骨骼動畫,得到各種預(yù)設(shè)的人體動作下的動畫圖像;調(diào)整觀察視野,重復(fù)上述渲染操作,得到骨骼模型在各個觀察視野下的動畫圖像并保存,觸發(fā)骨骼參數(shù)調(diào)整模塊4;
骨骼參數(shù)調(diào)整模塊4,用于調(diào)整骨骼模型的參數(shù),觸發(fā)骨骼構(gòu)建模塊1,直至得到全部預(yù)設(shè)參數(shù)下的骨骼模型對應(yīng)的動畫圖像后觸發(fā)真值提取模塊5;
真值提取模塊5,用于依據(jù)獲得的動畫圖像提取真值數(shù)據(jù),真值數(shù)據(jù)及動畫圖像即為人體姿態(tài)數(shù)據(jù)樣本。
其中,骨骼構(gòu)建模塊1具體包括:
初始構(gòu)建單元,用于構(gòu)建人體模型;
參數(shù)調(diào)整單元,用于設(shè)置人體模型中的人體骨骼參數(shù);
蒙皮建立單元,用于建立人體模型與骨骼間的蒙皮關(guān)系,得到骨骼模型。
作為優(yōu)選地,運動模型構(gòu)建模塊2具體包括:
關(guān)節(jié)鏈確定單元,用于確定骨骼模型內(nèi)各個關(guān)節(jié)的聯(lián)動關(guān)系;
自由度確定單元,用于確定各個關(guān)節(jié)的自由度;
旋轉(zhuǎn)矩陣確定單元,用于依據(jù)自由度和聯(lián)動關(guān)系,確定每種預(yù)設(shè)的人體動作對應(yīng)的各個關(guān)節(jié)的旋轉(zhuǎn)矩陣t;
關(guān)節(jié)結(jié)構(gòu)確定單元,用于將臀部關(guān)節(jié)作為根關(guān)節(jié),確定各個關(guān)節(jié)之間的父子關(guān)系;
絕對坐標(biāo)計算單元,用于依據(jù)旋轉(zhuǎn)矩陣以及父子關(guān)系計算各種預(yù)設(shè)的人體動作前后各個關(guān)節(jié)的絕對坐標(biāo)。
作為優(yōu)選地,動畫生成模塊3具體包括:
變化范圍確定單元,用于依據(jù)預(yù)設(shè)的人體動作前后各個關(guān)節(jié)的絕對坐標(biāo),確定預(yù)設(shè)的人體動作過程中各個關(guān)節(jié)的變化角度范圍;
幀率分配單元,用于依據(jù)變化角度范圍,將預(yù)設(shè)角度的變化作為一幀,確定每個關(guān)節(jié)在預(yù)設(shè)的人體動作過程中的幀數(shù);
遍歷單元,用于依據(jù)各個關(guān)節(jié)的父子關(guān)系,在每個父關(guān)節(jié)更新一幀后,遍歷父關(guān)節(jié)對應(yīng)的子關(guān)節(jié)的全部幀圖像;將遍歷后得到的全部圖像進(jìn)行匯總,得到預(yù)設(shè)的人體動作下的動畫圖像。
本發(fā)明提供了一種構(gòu)造人體姿態(tài)數(shù)據(jù)樣本的裝置,建立骨骼模型以及骨骼模型中關(guān)節(jié)間的運動模型后,依據(jù)人體動作前后的各個關(guān)節(jié)的相對旋轉(zhuǎn)關(guān)系,渲染得到在各種人體動作下的動畫圖像,然后調(diào)整觀察視野以及骨骼模型的參數(shù)重復(fù)上述操作,從而得到不同人體動作下、不同觀察視野以及不同體型的骨骼模型的動畫圖像,之后將該動畫圖像以及從該動畫圖像內(nèi)提取的真值數(shù)據(jù)作為人體姿態(tài)數(shù)據(jù)樣本。可見,本發(fā)明不需要人工構(gòu)造,且能夠一次建立大量的數(shù)據(jù)樣本,節(jié)省人力,構(gòu)造效率高。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句"包括一個......"限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。