基于旋轉(zhuǎn)雙曲面的虛擬人肢體建模方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于旋轉(zhuǎn)雙曲面的虛擬人肢體建模方法,用于感知接口,運動分析和虛擬現(xiàn)實等應(yīng)用領(lǐng)域,在醫(yī)學(xué)圖像、生物醫(yī)學(xué)、手勢識別、視頻會議、視頻游戲、自動新聞播放、電影制作、材料變形、圖像壓縮等方面都有實際應(yīng)用價值。屬于計算機視覺和計算機圖形學(xué)領(lǐng)域。
【背景技術(shù)】
[0002]運動分析領(lǐng)域的研究對象主要分為剛性物體、連接剛體和非剛性物體等。計算機視覺中的運動分析研究均主要集中在對剛體運動的研究,且學(xué)者們已取得了一系列的成果,并建立了較為完善的理論框架,但是,在現(xiàn)實世界中大多是非剛體運動。人體屬于非剛體。
[0003]在過去的十幾年中,可變形的人體建模已經(jīng)取得了一些成績。Nahas等使用了 B樣條曲面表示人身體和臉部的柔軟的運動。Petland等介紹了一種基于有限元的方法模型。Terzopoulos等介紹了表達成一個超橢球形式的全局形狀參數(shù)和樣條形式的局部自由度相結(jié)合的可變形的超二次曲面的模型。Min等使用三種基本軟體來對各種形狀的人體上肢和肩部肌肉建模,一個點基元產(chǎn)生一個橢圓體,一組連接的線段產(chǎn)生一個圓柱體,一個三角網(wǎng)格產(chǎn)生一個復(fù)雜的形狀。Sminchisescu等提出了一種人體模型,它由運動骨架和肌肉構(gòu)成,連接的節(jié)點構(gòu)成的骨架由節(jié)點的角度參數(shù)控制,并覆蓋了包含輔助錐化和彎曲參數(shù)的超二次橢圓面構(gòu)成的肌肉。模型包含30個節(jié)點參數(shù)和8個內(nèi)部比例參數(shù),并且每個肢體又包含9個變形參數(shù)。Plankers等把一種稱為元球或軟體的隱式曲面附在人體的連接骨架上并按照解剖學(xué)的近似程度來排列這些元球。這個人體模型共使用了 230個元球,并使用B樣條曲面片進行蒙皮。還可以用blobby分子、軟體、卷積曲面等各種隱式曲面進行人體建模。但這些方法都采用較為復(fù)雜的非剛體運動模型,控制參數(shù)較多,不能很好的滿足輪廓表示的評價標(biāo)準(zhǔn):即表示的簡潔性和適合于后處理階段的計算。所以這些模型在表示人體輪廓方面缺乏實用性。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于針對現(xiàn)有虛擬人模型代表皮膚變形參數(shù)過多的不足,提出一種基于旋轉(zhuǎn)雙曲面的虛擬人肢體建模方法,每個虛擬人肢體只需調(diào)整兩個變形參數(shù)就能反映出人肢體皮膚變形,降低運動分析的計算量,適合于各種彈性連接剛體的建模。
[0005]為實現(xiàn)這樣的目的,本發(fā)明的技術(shù)方案中,采用旋轉(zhuǎn)雙曲面建立人肢體模型,提出的模型分為兩層:骨架層和皮膚層,骨架層代表人肢體的骨架結(jié)構(gòu),由關(guān)節(jié)點和連接這些關(guān)節(jié)點的線段組成;皮膚層采用一種旋轉(zhuǎn)雙曲面表示,每個肢體只需調(diào)整兩個變形參數(shù)就能反映出人肢體皮膚變形。首先使用相機拍攝人肢體擺姿勢的圖像,在圖像中采用圖像分割技術(shù)檢測出人肢體在圖像上的輪廓信息,采用曲線擬合技術(shù)用雙曲線擬合圖像上的各個肢體邊緣輪廓,求出代表各個肢體輪廓的雙曲線方程的系數(shù)。然后采用根據(jù)圖像平面的二維雙曲線方程求出對應(yīng)的旋轉(zhuǎn)雙曲面方程,即通過二維雙曲線繞肢體骨架直線旋轉(zhuǎn)求出旋轉(zhuǎn)雙曲面方程,最后采用三個圓球體和兩個旋轉(zhuǎn)雙曲面繪制虛擬人肢體模型。
[0006]本發(fā)明的建模方法具體包括以下幾個步驟:
1.采用圖像分割技術(shù)檢測出人肢體在圖像上的邊緣輪廓信息采用相機對人肢體所擺姿勢進行拍攝,得到一幅圖像,然后采用圖像分割技術(shù)檢測并得到人肢體在圖像上的邊緣輪廓信息。
[0007]2.二維雙曲線擬合圖像上各個肢體的輪廓
本發(fā)明采用曲線擬合技術(shù)用二維雙曲線擬合步驟1得到的圖像上各個肢體的邊緣輪廓,提取圖像上所要擬合肢體輪廓線的兩個端點A、B的像素坐標(biāo)并變換成在圖像上的平面坐標(biāo),在兩端點形成的直線上方設(shè)定一點0,以0點為坐標(biāo)系原點確定經(jīng)過點A、B的二維雙曲線;由此根據(jù)所要擬合輪廓線上的所有像素點坐標(biāo)值求出圖像上代表各個肢體輪廓的二維雙曲線方程的變形參數(shù)a、A的值。
[0008]3.提取人體骨架位置信息
根據(jù)邊緣輪廓信息采用中軸變換方法求出圖像平面上各個肢體的中軸線,把此中軸線作為圖像平面上各個人肢體的骨架位置信息。
[0009]4.求出旋轉(zhuǎn)雙曲面的方程
將步驟2得到的二維雙曲線繞步驟3得到的骨架直線旋轉(zhuǎn),得到代表肢體皮膚的旋轉(zhuǎn)雙曲面方程。每個旋轉(zhuǎn)雙曲面代表一個肢體的皮膚。
[0010]5.模型繪制
本發(fā)明使用OpenGL程序采用平行投影方法繪制得到虛擬人肢體模型,采用三個圓球體代表jl、j2、j3三個關(guān)節(jié)點,采用求得的兩個旋轉(zhuǎn)雙曲面方程繪制出的曲面來代表肢體皮膚,連接這三個圓球體和兩個曲面構(gòu)成人肢體模型。
[0011]本發(fā)明方法簡單,實現(xiàn)容易。建立的模型使用了非常少的參數(shù)就可以代表人肢體皮膚的變形,每個肢體只需兩個變形參數(shù),具有高層次描述和預(yù)測遮擋的能力。本發(fā)明方法適合于許多彈性連接剛體的模型建立。實驗采用便宜、容易安裝的視頻攝像頭來采集數(shù)據(jù),不需要附加設(shè)備,代表皮膚變形的旋轉(zhuǎn)雙曲面方程和求解算法簡單,大大降低了運動分析的計算復(fù)雜性。
【附圖說明】
[0012]圖1為本發(fā)明采用的雙曲線。
[0013]圖1中,點0為坐標(biāo)系原點,點A、B為雙曲線兩個頂點,通過這兩個頂點坐標(biāo)確定雙曲線方程。
圖2為手臂的骨架結(jié)構(gòu)。
[0014]圖2中,jl、j2、j3是關(guān)節(jié)點,連接這些關(guān)節(jié)點的線段代表手臂的兩個部分:上臂和前臂。
[0015]圖3為本發(fā)明的旋轉(zhuǎn)雙曲面構(gòu)成示意圖。
[0016]圖3中,L是代表人肢體骨架的線段,S是雙曲線,S繞L旋轉(zhuǎn)一周形成旋轉(zhuǎn)雙曲面,點0為坐標(biāo)系原點,點A、B是雙曲線S的兩個端點,點\、是線段L的兩個端點。
[0017]圖4為本發(fā)明基于圖像輪廓建模的實驗結(jié)果。
[0018]圖4中,(a)是相機拍攝的圖像,(b)、(c)是與(a)圖像對應(yīng)的邊緣檢測和曲線擬合的結(jié)果,(d)是對應(yīng)于(a)、(b)、(c)的反映肢體皮膚變形的模型表達。
【具體實施方式】
[0019]為了更好地理解本發(fā)明的技術(shù)方案,以下結(jié)合附圖和實施例作進一步的詳細描述。實施例具體針對附圖4 (a)圖像(相機拍攝)進行虛擬人肢體建模過程的描述。
[0020]1.首先采用相機對人肢體所擺姿勢進行拍攝,得到一幅圖像,圖4 (a)即為相機拍攝的右手臂姿勢圖像。然后采用圖像分割技術(shù)(如canny邊緣算子)檢測手臂在圖像上的邊緣輪廓信息,得到與圖4 (a)圖像對應(yīng)的邊緣檢測結(jié)果,如圖4 (b)所示。
[0021]2.采用曲線擬合技術(shù)用二維雙曲線擬合圖像上各個肢體的邊緣輪廓。如圖4(b),提取所要擬合右手上臂輪廓的兩個端點像素坐標(biāo)A (357,248), B (485,175),通過相機標(biāo)定技術(shù)求出圖像像素坐標(biāo)與平面坐標(biāo)的變換公式為:
[x, 1]τ= [0.0086,0,-3.2055; 0,0.0083,-2.5023; 0,0,1;][",κ, 1]τ通過上述公式求出端點Α、Β在圖像上的平面坐標(biāo)A (-0.1353,-0.4439),B(0.9655,-1.0498)。在端點A、B形成的直線的上方設(shè)定一點0為χ-j坐標(biāo)系的原點,如圖1所示。
[0022]確定經(jīng)過點A、B的二維雙曲線方程//#=1,雙曲線隱函數(shù)表達式為:C{x, y) =x2/a2-//#-l=0。提取邊緣輪廓線上所有的像素(共#點),這些像素的二維平面坐標(biāo)為:(;,力),i = 1?λ。把這些坐標(biāo)值代入方程Σ f (χΛ y^>,通過求/?勺最小值解出兩個變形參數(shù)a、A的值,求出的這兩個變形參數(shù)就代表了右手上臂在此時刻皮膚的變形。
[0023]3.提取人體骨架位置信息。如圖2,人肢體骨架模型包含關(guān)節(jié)點jl、j2、j3和連接這些關(guān)節(jié)點的線段(上臂、前臂)。根據(jù)上述得到的邊緣輪廓信息采用中軸變換方法求出圖像平面上各個肢體的中軸線,把此中軸線作為圖像平面上人肢體的骨架位置信息。求得圖像上骨架端點的二維像素坐標(biāo)為Al (373.5,291)、Bl (526.5,203.5),如圖3,就可得骨架的位置信息。根據(jù)點角定骨架直線離坐標(biāo)系原點0的距離難]值。使X坐標(biāo)軸與骨架直線行,使r坐標(biāo)軸與骨架直線A山[垂直。
[0024]4.求出旋轉(zhuǎn)雙曲面方程。如圖3,通過二維雙曲線繞骨架直線旋轉(zhuǎn)求出旋轉(zhuǎn)雙曲面方程為:x2 / a- [ {y~d) 2+/]/A2=1o
[0025]采用同樣的方法可求得代表右手前臂皮膚的旋轉(zhuǎn)雙曲面方程。
[0026]5.模型繪制。如圖4 (d)所示,使用OpenGL程序采用平行投影方法繪制得到右臂模型,使用三個半徑分別為45、42、30的圓球體代表j 1、j2、j3三個關(guān)節(jié)點,采用求得的兩個旋轉(zhuǎn)雙曲面方程繪制出的曲面來代表右手上臂和前臂的皮膚,連接這三個圓球體和兩個曲面構(gòu)成虛擬人肢體模型。
【主權(quán)項】
1.一種基于旋轉(zhuǎn)雙曲面的虛擬人肢體建模方法,其特征在于包括如下具體步驟: 1)采用相機對人肢體所擺姿勢進行拍攝,得到一幅圖像,然后采用圖像分割技術(shù)檢測并得到人肢體在圖像上的邊緣輪廓信息; 2)提取圖像上所要擬合肢體輪廓線的兩個端點A、B的像素坐標(biāo)并變換成在圖像上的平面坐標(biāo),在兩端點形成的直線上方設(shè)定一點O為坐標(biāo)系原點,確定經(jīng)過點A、B的二維雙曲線;由此根據(jù)所要擬合輪廓線上的所有像素點坐標(biāo)值求出圖像上代表各個肢體輪廓的二維雙曲線方程的變形參數(shù); 3)根據(jù)邊緣輪廓信息采用中軸變換方法求出圖像平面上各個肢體的中軸線,把此中軸線作為圖像平面上人肢體的骨架位置信息; 4)將步驟2得到的雙曲線繞步驟3得到的骨架直線旋轉(zhuǎn),得到代表肢體皮膚的旋轉(zhuǎn)雙曲面方程,每個旋轉(zhuǎn)雙曲面代表一個肢體皮膚; 5)使用OpenGL程序采用平行投影方法繪制得到虛擬人肢體模型,采用三個圓球體代表三個關(guān)節(jié)點,采用求得的兩個旋轉(zhuǎn)雙曲面方程繪制出的曲面來代表肢體皮膚,連接這三個圓球體和兩個旋轉(zhuǎn)雙曲面構(gòu)成虛擬人肢體模型。
【專利摘要】一種基于旋轉(zhuǎn)雙曲面的虛擬人肢體建模方法,采用旋轉(zhuǎn)雙曲面建立虛擬人肢體模型,由關(guān)節(jié)點和連接關(guān)節(jié)點的線段組成骨架層來代表虛擬人肢體的骨架結(jié)構(gòu),皮膚層用旋轉(zhuǎn)雙曲面表示,每個肢體只需調(diào)整兩個變形參數(shù)就能反映出人肢體皮膚變形。首先從采用相機拍攝的人肢體圖像中提取出人肢體的邊緣輪廓信息,采用二維雙曲線擬合圖像上各個肢體的輪廓并求出各個二維雙曲線方程的變形參數(shù),將二維雙曲線繞骨架直線旋轉(zhuǎn)求出旋轉(zhuǎn)雙曲面方程,采用三個圓球體和兩個旋轉(zhuǎn)雙曲面繪制人肢體模型。本發(fā)明方法簡單、實現(xiàn)容易,解決了虛擬人體模型代表皮膚變形參數(shù)過多的問題。
【IPC分類】G06T17/00
【公開號】CN105336000
【申請?zhí)枴緾N201510899333
【發(fā)明人】張鳳芝, 葛志勇, 唐名洋, 潘海朗
【申請人】新疆華德軟件科技有限公司
【公開日】2016年2月17日
【申請日】2015年12月9日