国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于體模型優(yōu)化的虛擬試衣算法

2019-05-07 11:45李曉璇伍新華
傳感器與微系統(tǒng) 2019年5期
關(guān)鍵詞:試衣人體模型碰撞檢測

李曉璇, 伍新華, 劉 鋼

(武漢理工大學(xué) 計算機學(xué)院,湖北 武漢 430000)

0 引 言

計算機電子商務(wù)迅速發(fā)展起來后,網(wǎng)上交易己經(jīng)成為服裝業(yè)的熱門銷售方式。為了與電子商務(wù)發(fā)展相適應(yīng),方便人們網(wǎng)上購買服裝合體美觀,需要真人三維模型的服裝展示,方便快速地看到試衣效果。應(yīng)用于虛擬試衣的真人三維模型需要通過三維人體表面重建[1~3]獲得。

有些基于軟件的人體建模是根據(jù)人體體型特征,利用通用建模軟件3Dmax[4],楊魯?shù)热薣5]構(gòu)建標準化三維人體模型。呂珍等人[6~8]利用OpenGL結(jié)合Delphi讀取現(xiàn)有三維軟件3Dmax中的人體與服裝三維數(shù)據(jù)3 DS文件,進行人體模型的簡單服裝試穿,減少了實現(xiàn)的復(fù)雜度。還有些是基于人體照片信息的人體建模,利用拍攝人物的二維圖像,通過提取人體輪廓線、特征尺寸等快速生成三維個性化人體模型[9,10]。Geisen G R等人[11]采用神經(jīng)網(wǎng)絡(luò)系統(tǒng)與圖像識別方法檢測頭部關(guān)鍵特征點,通過標定點定位其他特征點。這兩類方法能快速構(gòu)建的人體模型,但不夠精確,應(yīng)用場合有限。

基于三維掃描的人體建模是利用三維人體掃描設(shè)備掃描人體獲得人體表面的點云數(shù)據(jù),通過對點云數(shù)據(jù)進行降噪、精簡、孔洞修補、表面重建等構(gòu)建個性化的三維人體模型。應(yīng)用該方法構(gòu)建的三維人體模型精確,應(yīng)用場合廣泛,但由于在進行三維重構(gòu)時大多數(shù)都涉及到點云計算和點云拼接,而生成點云的計算量相當大,三維重構(gòu)的時間長度。

為了提高重建人物模型的精度和速度,提出了基于Kinect[12,13]的人體模型構(gòu)建方法。利用Kinect采集的圖像信息構(gòu)建三維試穿者模型,并提出使用體素八叉樹[14]存儲體模型,以及布料與此人體模型的碰撞算法及布料自碰撞算法。體素八叉樹的結(jié)構(gòu)可以提升查詢速度,減少內(nèi)存消耗,同時此樹形結(jié)構(gòu)在虛擬試衣的布料與人體模型的碰撞階段,也可以顯著減少人體與布料的碰撞測試的數(shù)量,節(jié)省虛擬試衣響應(yīng)時間。

1 構(gòu)建體素八叉樹

體素八叉樹采用空間分解法建樹并用葉節(jié)點保存體素信息,所有的節(jié)點操作都可以簡化為對樹結(jié)構(gòu)的遍歷。構(gòu)建過程中利用如圖1(a)所示的體緩存的特殊結(jié)構(gòu),其長、寬、高與場景全局坐標系x,y,z坐標軸平行,左下角和右上角兩點坐標決定了一個區(qū)域,用點序列表達為〈A,G〉=〈(x,y,z),(x′,y′,z′)〉,其中,x

圖1 構(gòu)建流程

2 基于體素八叉樹的體重構(gòu)方法

Hoppe等人通過構(gòu)造點到物體表面的符號距離函數(shù) (signed distance function,SDF)來重建物體表面。因此,可以用SDF表達物體的3D幾何結(jié)構(gòu),SDF為0的體素即為物體所在處。本文將SDF定義為每一個體素的中心點到模型表面對應(yīng)點的有向距離值。

本文設(shè)計的體緩存為8×8×8的體素塊,每個體素有一個索引坐標:(0,0,0)~(7,7,7)。由于體素塊與坐標軸對齊,因此,由索引坐標為(0,0,0)的體素的中心點的坐標po和體素的邊長r,可計算索引(x,y,z)的坐標oi

(1)

獲取到深度圖像后,為了根據(jù)當前深度圖計算SDF值,需要先找到每個體素中心點在當前深度圖中的投影點,然后結(jié)合投影點深度值計算投影點的三維點坐標,最后精確計算出體素中心點與投影點之間的距離即可求出每個體素中心點到當前幀深度圖像所觀察到的表面的距離。

圖2 體素中心點到表面距離

以一個體素為例,如圖2所示,對假定的體素,可以獲得其在三維空間的坐標xG,并根據(jù)當前的攝像機的姿態(tài)即旋轉(zhuǎn)和平移量R,t(已經(jīng)通過光流法計算得到較為準確值),則該體素的中心點C在當前幀坐標系下對應(yīng)的坐標為

x=(x,y,z)T=RT(xG-t)

(2)

而將三維空間上的點C=[(x,y,z)]T投影到二維圖像平面得到的相應(yīng)的點的坐標為

(3)

式中fx,fy為相機在x軸和y軸方向上的焦距,cx,cy表示偏移值。結(jié)合式(2)和式(3),將該體素在當前幀坐標系下對應(yīng)的坐標點投影到二維圖像平面的坐標為

(i,j)T=π(x)

(4)

像素點(i,j)T在當前的攝像機姿態(tài)形成的坐標系下的深度zd,此時該投影點在三維坐標系下的坐標為

(5)

體素中心點到表面的距離即為體素中心點與點在當前坐標系中的距離為

(6)

此時,負值表示體素在表面因為距離表面越近的體素對重構(gòu)的影響更大,所以希望距離表面越近的體素有更高的權(quán)重,而距離表面越遠的體素權(quán)重可以較低,因此需要對不同的體素設(shè)置不同的權(quán)重。使用的權(quán)重函數(shù)為

w=(v·n)2

(7)

式中v為視線方向單位向量,n為像素中心點的法向量,w值越小表示誤差越小。

基于每幀深度圖像計算得到的SDF合成為一個SDF,所有體素的合成可并行進行。

假設(shè)所有的距離測量都是正態(tài)分布的,將每幀深度圖像計算得到的SDF值合成的一個SDF值即為對SDF函數(shù)Ψ觀察數(shù)據(jù)的似然最大時的解

(8)

即最優(yōu)的ψ是所有測量的加權(quán)平均,D(x)即當前幀圖像合并成的一個SDF值,這個值和權(quán)重可隨著新的深度圖的加入增量式更新

(9)

Wi+1(x)=Wi(x)+wi+1(x)

(10)

式中di(x)和wi(x)為第i幀圖像求得的SDF值和權(quán)重值。

最后根據(jù)三原色(RGB)圖像和計算出的權(quán)重值進行色彩融合,估計出模型的彩色紋理,并使用Marching cubes[15]算法得到等值面的點面信息,并在人體模型與布料的碰撞檢測中用到該數(shù)據(jù),最后進行三維立體的渲染并將結(jié)果顯示出來。

3 碰撞檢測與響應(yīng)

在虛擬試衣過程中,由于重力等各種外力的作用,為了有效避免布料“穿透”人體模型或布料相互“穿透”,必須在虛擬試衣過程中對布料裁片和人體模型以及裁片自身進行碰撞檢測及響應(yīng)。根據(jù)前面構(gòu)建的體模型的八叉樹結(jié)構(gòu),提出將布料進行三角剖分后對布料裁片構(gòu)建AABB包圍盒八叉樹,對裁片—人體模型碰撞以及裁片自碰撞進行檢測,可以有效提高碰撞檢測速度。

3.1 碰撞檢測

本文采用AABB層次包圍盒法,對布料裁片構(gòu)建AABB八叉樹,對裁片—人體模型的碰撞區(qū)域進行檢測,并及時響應(yīng)處理。其具體過程為:

1)在對虛擬物體進行碰撞檢的時候,首先檢查這兩個模型的層次包圍盒樹根結(jié)點是否發(fā)生相交,若沒有,則可斷定兩個物體間沒有發(fā)生碰撞,如果兩個根節(jié)點包圍盒發(fā)生了相交,暫時還不能斷定在兩物體間一定有碰撞發(fā)生,有待對子樹結(jié)點進行進一步碰撞檢測。

2)如果在某個結(jié)點上,兩個物體的包圍盒不相交,那么以此結(jié)點為根結(jié)點的所有子樹就不再需要進行相應(yīng)的碰撞檢測??梢源蟠鬁p小檢測次數(shù),提高仿真速度。

3)如果結(jié)點相交,就繼續(xù)遍歷,最后在葉節(jié)點進行體素與布料三角片的相交測試。

在由八叉樹結(jié)構(gòu)確定了可能發(fā)生碰撞的包圍盒節(jié)點后,采用《實施碰撞測試算法技術(shù)》[16]一書中所提到的三角片與三角片求交測試來具體進一步判斷包圍盒中的物體是否發(fā)生碰撞。

3.2 自碰撞算法

在虛擬試衣過程中,除了2D裁片與人體模型之間的碰撞外,由于裁片的動態(tài)變形,使得裁片間也有碰撞發(fā)生,因此必須進行裁片的自碰撞檢測。

本文通過計算2D裁片相鄰三角形法線夾角來對裁片自碰撞檢測進行處理。通過分析,只有當裁片的相鄰三角形法線的夾角較大時才有可能發(fā)生碰撞。建立2D裁片表面三角形鄰域內(nèi)的三角形列表,計算相鄰三角形法線的夾角。設(shè)置角度閾值p,只有當三角形法線夾角大于p時,才進行碰撞檢測,有效減少參與檢測的碰撞元素,提高了檢測效率。

4 實 驗

如圖3所示為本文提出的虛擬試衣算法的流程。首先,使用體素八叉樹表示人體模型,并利用體感傳感器Kinect完成人體模型的構(gòu)建與更新;隨后使用質(zhì)點—彈簧模型進行衣物模擬;最后利用體素八叉樹與質(zhì)點彈簧模型實現(xiàn)對人體試衣的虛擬模擬。

圖3 本文算法流程

通過手持Kinect攝像機圍繞三維模型旋轉(zhuǎn)1周獲取三維模型的深度和彩色圖像數(shù)據(jù)。在實驗中掃描三維模型大約需要150 s,共采集到了2 400多幀數(shù)據(jù)。經(jīng)過實驗發(fā)現(xiàn),保留220~260幀圖像數(shù)據(jù)既可以有效地減少耗時也可以滿足三維模型重構(gòu)的精確度。

圖4(a)為當前幀深度圖像;圖4(b)為當前幀深度圖像;圖4(c)中數(shù)據(jù)表示在體素化過程中每個體素中存儲的占有該體素的對應(yīng)物體點的顏色和SDF值。因為當前幀圖像為第一幀,體素中的數(shù)據(jù)只是第一幀的圖像信息;圖4(d)表示為根據(jù)圖4(c)中的數(shù)據(jù)重構(gòu)到該幀圖像時得到的三維模型。

圖4 第1幀圖像的深度圖像、RGB圖像、屬性值和重構(gòu)結(jié)果

不同幀之間圖像根據(jù)相機姿態(tài)計算得到兩幀圖像之間的重合部分,將兩幀圖像重合部分進行融合,將融合后的結(jié)果進行重構(gòu),得到清晰完整真實的三維人體模型。采用流行的彈簧—質(zhì)點模型來進行布料的模擬。對于受力分析得到的常微分方程采用Verlet算法進行積分,并將網(wǎng)格劃分為三角片。圖5是用一個40×40的網(wǎng)格進行下落模擬的效果圖。

圖5 布料下落與人體的碰撞

布料在下落的過程中和與人體模型觸后,形狀隨著時間變化而改變,不停留在人體上方。實驗結(jié)果顯示使用此體重構(gòu)算法實現(xiàn)了顯示逼真性的要求。

另外,本文對基于OBB包圍盒和基于八叉樹碰撞檢測的實驗數(shù)據(jù)進行對比,實驗表明,對同一實驗?zāi)P?,OBB包圍盒的創(chuàng)建時間是本算法的3.44倍,由實驗結(jié)果可知,八叉樹精確劃分包圍盒的簡單性優(yōu)于OBB,而OBB包圍盒樹中各結(jié)點上包圍盒的方向任意性使得其需要更多的存儲空間。

對兩種算法的碰撞檢測的各項指標進行了比較,八叉樹精確劃分包圍盒的整體性能要好于OBB,其碰撞檢測的速度約是OBB的1.475倍。該算法在速度上較OBB方法有所提高,為解決各種復(fù)雜環(huán)境中的碰撞檢測問題提供了一條有效的途徑,在虛擬試衣中多次換裝的情況下極有優(yōu)勢。

5 結(jié)束語

本文以Kinect為傳感器,實現(xiàn)基于體素八叉樹的虛擬試衣人體模型的重建,并提出了基于此體模型的布料碰撞算法。實驗結(jié)果表明,運用本文的方法,在提高重構(gòu)的人體精度的同時,可以有效縮短碰撞檢測的時間。

猜你喜歡
試衣人體模型碰撞檢測
全新預(yù)測碰撞檢測系統(tǒng)
基于大數(shù)據(jù)虛擬試衣系統(tǒng)的研究
基于BIM的鐵路信號室外設(shè)備布置與碰撞檢測方法
零下20℃
基于單片機控制的網(wǎng)購試衣機器人
自動試衣器
空間遙操作預(yù)測仿真快速圖形碰撞檢測算法
BIM技術(shù)下的某辦公樓項目管線碰撞檢測
基于乘員體型的車輛安全性研究
Family makes 45—foot icicle in front yard
武川县| 安徽省| 海丰县| 将乐县| 长治市| 宾川县| 乐昌市| 台湾省| 泗洪县| 北流市| 工布江达县| 龙游县| 乐昌市| 杂多县| 辽阳县| 唐山市| 阜新| 澎湖县| 延川县| 浪卡子县| 临沧市| 怀集县| 海门市| 应用必备| 唐海县| 唐河县| 凤城市| 琼结县| 长葛市| 台南县| 临沭县| 页游| 蓝山县| 大同县| 沅江市| 台南县| 松原市| 江西省| 响水县| 梅河口市| 家居|