徐鳳儀, 王萍, 黎博文, 于昊冉
(東華大學(xué), 信息科學(xué)與技術(shù)學(xué)院, 上海 201620)
虛擬試穿系統(tǒng)結(jié)合了先進(jìn)的虛擬現(xiàn)實、計算機(jī)視覺、深度學(xué)習(xí)等人工智能技術(shù),提供一種交互式、沉浸式的服裝虛擬體驗,成為服裝高端定制數(shù)字化、個性化發(fā)展中的重要一環(huán)。虛擬試穿的技術(shù)類型主要分為二維試穿與三維試穿兩種[1]。其中,二維試穿的前沿技術(shù)主要是采用機(jī)器學(xué)習(xí)的方法來預(yù)測并保留服裝特征信息,比如:剪裁、顏色、尺寸、圖案等。例如:亞馬遜公司建立的Outfit-VITON[2]虛擬試穿系統(tǒng),利用了一種神經(jīng)網(wǎng)絡(luò)智能學(xué)習(xí)方法來生成接近真實的二維虛擬圖像,從而最大程度地保留服裝紋理、標(biāo)識等精細(xì)的特征;張習(xí)文等[3]提出的DensePoseRCNN模型能夠精確預(yù)測服裝紋理數(shù)據(jù),建立人體特征與服裝紋理的映射關(guān)系,實現(xiàn)二維服裝紋理特征的轉(zhuǎn)移。雖然,二維虛擬試衣技術(shù)可以模擬出真實紋理,但就立體度而言,三維虛擬試衣技術(shù)的表現(xiàn)更加優(yōu)越。比如,得物公司[4]的虛擬試衣系統(tǒng)、Total Immersion[5]公司的試衣鏡。
隨著互聯(lián)網(wǎng)時尚消費的快速發(fā)展,人們對互聯(lián)網(wǎng)時尚消費體驗需求越來越高,交互式、個性化、逼真的虛擬試穿技術(shù)受到廣泛關(guān)注。同時,旗袍作為中國傳統(tǒng)服飾,是一種具有民族文化特征、風(fēng)格多樣、個性化豐富、典型的高定時尚類型。為了提升交互式、個性化、逼真的3D旗袍虛擬試穿體驗效果,試衣人貼體的3D模型數(shù)字化旗袍模型扮演著重要角色。當(dāng)前,數(shù)字化服裝模型生成方式主要有兩種。
其一,基于計算機(jī)仿真的3D數(shù)字化服裝建模。這類方法是通過物理建模法、幾何建模法或者混合建模法進(jìn)行服裝建模,還可以采用紋理映射、碰撞檢測或者渲染等仿真技術(shù)仿真服裝的細(xì)節(jié)[6]。比如:較為流行的韓國軟件CLO3D、Marvelous Designer ;此外,國內(nèi)水平較高的仿真設(shè)計軟件Style3D可以設(shè)計出高度逼真的3D服裝,并進(jìn)行時裝的虛擬展示。以旗袍數(shù)字化服裝建模為例,胡佳琪等[7]利用CLO3D的虛擬縫合功能將預(yù)先設(shè)計好版型尺寸的二維衣片縫合成三維旗袍,穿在仿真的3D虛擬模特上,以輔助設(shè)計師的打板設(shè)計。為了獲取精確的旗袍樣板,研究[8]提出基于標(biāo)準(zhǔn)人體模型的多特征參數(shù)化設(shè)置方法,或采用三維人體掃描儀自動選取關(guān)鍵點采集人體數(shù)據(jù)。然而,上述服裝仿真建模軟件都需要導(dǎo)入人體的三維測量數(shù)據(jù),通常采用專業(yè)的三維激光掃描測量儀來獲取的人體特征,但周期長、成本高,多用于專業(yè)型的旗袍設(shè)計制造,不適于實時交互式體驗的虛擬試穿場景。
其二,基于深度相機(jī)點云數(shù)據(jù)的3D建模。在計算機(jī)視覺應(yīng)用領(lǐng)域中,大規(guī)模點云數(shù)據(jù)實時建模方法基于一種深度相機(jī)采集的深度信息,具有靈活性和交互性,被廣泛應(yīng)用。RGB-D深度相機(jī)利用視覺SLAM[10]原理可以表達(dá)出相機(jī)視場中的3D物體表面。比如:微軟公司的交互式體感游戲產(chǎn)品Kinect相機(jī)[10],可以采用Kinect Fusion[11]算法處理點云數(shù)據(jù),并利用TSDF距離函數(shù)重建出物體表面;Elastic Fusion[12]算法則使用Surfel面元表示方法,通過點云配準(zhǔn)以及Surfel融合等處理,重建出3D物體表面。國內(nèi)對于SLAM的研究起步較晚。張震等[13]提出了一種結(jié)合ORB特征與視覺詞典的SLAM算法,首先提取了相鄰圖像的ORB特征,然后利用k近鄰匹配找到對應(yīng)的最鄰近與次鄰近匹配,最后采用改進(jìn)的PROSAC-PnP算法得到對相機(jī)位姿的高精度估計;2020年,谷曉琳等[14]提出了一種基于半直接視覺里程計的RGB-D SLAM,其定位階段采用直接法估計相機(jī)的初始位姿,然后通過特征點匹配和最小化重投影誤差進(jìn)一步優(yōu)化位姿,處理了稀疏紋理、光照變化、移動物體等難題。
近來,基于深度相機(jī)的點云數(shù)據(jù)建模技術(shù)在虛擬服裝領(lǐng)域的研究已有很多進(jìn)展。雖然成本低、現(xiàn)場交互性好,但是由于旗袍虛擬試穿對貼身度要求高、對人體特征依賴性高,深度相機(jī)的人體三維重建精度仍然面臨挑戰(zhàn)。比如,當(dāng)Kinect對試衣人進(jìn)行連續(xù)環(huán)繞采集時,需要將不同角度視場里的人體點云數(shù)據(jù)轉(zhuǎn)換到同一坐標(biāo)系下,而相機(jī)連續(xù)移動易造成位姿估計波動、精度下降、誤差累計或漂移等問題,導(dǎo)致表面重建精度降低,影響旗袍虛擬試穿效果。此外,實時交互、真人的旗袍個性化虛擬試穿還鮮見公開報道。
為了更好地促進(jìn)3D旗袍虛擬試穿技術(shù)的普及與應(yīng)用,實現(xiàn)交互式、個性化、貼體逼真的旗袍虛擬試穿體驗,同時結(jié)合深度相機(jī)感測數(shù)據(jù)的低成本優(yōu)勢,本文圍繞虛擬3D旗袍建模中高精度、實時的人體點云數(shù)據(jù)三維重建問題,研究提出一種Surfel-BA相機(jī)跟蹤與稠密重建優(yōu)化算法,通過提高相機(jī)連續(xù)移動過程中Surfel面元融合的穩(wěn)定性,從而快速地生成貼合試衣人的人體點云三維重建模型,并在TUM數(shù)據(jù)集上進(jìn)行了精度性能比測分析;然后,利用服裝建模軟件Marvelous Designer設(shè)計構(gòu)建了相應(yīng)的數(shù)字化人臺以及虛擬3D旗袍模型,并在Unity交互環(huán)境下實現(xiàn)了虛擬旗袍試衣預(yù)覽;最后,試衣人面對Kinect相機(jī)進(jìn)行了旗袍模型的現(xiàn)場虛擬試穿體驗,驗證所提出建模方法的有效性和逼真的虛擬試穿體驗效果。
視覺SLAM是指用深度相機(jī)解決視覺場的定位和建圖問題,屬于一種機(jī)器視覺技術(shù)。為了重建出三維物體的表面,深度相機(jī)在移動中不斷對連續(xù)幀的RGB信息與深度信息進(jìn)行特征提取與匹配,建立起一個視角場中的3D點云特征,同時估計自己的運(yùn)動位姿,融合由位姿估計定位的新表面并進(jìn)行更新。
通常,三維重建[15]主要包括以下步驟:其一,預(yù)處理深度圖,去除圖像噪聲;其二,相機(jī)位姿估計和點云配準(zhǔn),將不同位姿下的圖像信息與點云數(shù)據(jù)建立起統(tǒng)一的對應(yīng)關(guān)系;其三,表面融合,將當(dāng)前深度圖像融合到已經(jīng)重建的表面,生成完整的三維重建模型。
依據(jù)深度相機(jī)三維重建原理,三維物體表面可采用一種Surfel面元表述方法來描述。 一個Surfel可以理解成物體表面的一個小面元,如圖1所示。Surfel屬性諸如空間點坐標(biāo)、空間法向量、顏色、權(quán)重/置信度、時間戳等。深度相機(jī)的三維重建過程如同一個個新面元沿著相機(jī)視角軌跡動態(tài)生長并自洽融合。于是,Surfel面元與深度圖融合即可構(gòu)建出三維模型表面。因此,相機(jī)跟蹤與稠密重建是視覺SLAM的關(guān)鍵。然而,在實際應(yīng)用中,深度相機(jī)移動中會引起位姿估計誤差積累、飄移等各種問題,極易降低Surfel表面的精度和穩(wěn)定性,影響大規(guī)模點云建模的質(zhì)量。
圖1 Surfel面元表述模型
作為一款普通消費級的交互式體感設(shè)備,Kinect搭載彩色相機(jī)、紅外激光發(fā)射器和深度相機(jī),其工作原理采用了基于TOF飛行法獲取深度信息。工作時,利用紅外激光發(fā)射器向被測物體發(fā)射紅外激光,物體反射的光脈沖被相機(jī)接收。通過探測光脈沖的飛行往返時間可以計算被測物體離相機(jī)的距離。
Surfel點云數(shù)據(jù)三維重建系統(tǒng)基于視覺SLAM原理,對深度相機(jī)感測獲得的RGB-D數(shù)據(jù)進(jìn)行實時3D點云數(shù)據(jù)建模處理。首先,深度相機(jī)采集RGB-D信息流并進(jìn)行RGB-D幀注冊。彩色圖像通過ORB(oriented fast and rotated brief)特征提取與匹配算法進(jìn)行檢測和匹配,深度圖像通過ICP(iterative closest point)配準(zhǔn)算法進(jìn)行位姿估計;然后,位姿估計與Surfel面元進(jìn)行集成融合、投影生成3D模型表面。
當(dāng)深度相機(jī)環(huán)人體進(jìn)行移動感測時,相機(jī)跟蹤的位姿會不斷變化,系統(tǒng)對輸入連續(xù)幀的RGB-D信息進(jìn)行點云數(shù)據(jù)處理,諸如特征提取匹配、點云配準(zhǔn)等。如果每一幀的相機(jī)跟蹤的位姿估計出現(xiàn)波動或偏差,幀位姿估計誤差被帶入到新建的Surfel流中進(jìn)行后續(xù)的Surfel融合處理。于是,表面重構(gòu)誤差會隨著連續(xù)移動而偏離相機(jī)軌跡,不斷積累。人體3D模型精度低將影響之后試衣人的數(shù)字化人臺效果。
為了避免深度相機(jī)移動引起的位姿估計精度與表面穩(wěn)定性下降,提出了Surfel-BA高精度3D人體建模方法:在Surfel面元重建基礎(chǔ),引入全局BA優(yōu)化對全局地圖的位姿進(jìn)行校正。其工作原理如圖2所示。Surfel面元融合是形成全局地圖的關(guān)鍵步驟,將當(dāng)前幀的Surfel面元融合到已有的3D模型表面中。由于位姿估計誤差導(dǎo)致的全局地圖可能含有多個幀的位姿估計累計誤差,通過全局反饋提升全局地圖估計位姿的精度,則可消除位姿估計誤差引起的Surfel面元融合質(zhì)量的下降。
圖2 Surfel-BA高精度3D人體建模原理圖
接下來,對RGB-D幀注冊過程中采用的ORB和ICP位姿估計算法、全局BA優(yōu)化算法分別進(jìn)行詳細(xì)設(shè)計。
匹配點對是相機(jī)跟蹤過程的關(guān)鍵之一。當(dāng)相機(jī)在移動過程中獲取的彩色圖像視角不斷移動變化,圖像中物體的灰度值也在變化。此時,通過對物體特征提取與匹配確定不同視角場中的同一個物體。
ORB是將FAST特征檢測和BRIEF特征描述子結(jié)合在一起的關(guān)鍵點檢測與匹配算法,具有旋轉(zhuǎn)不變性與噪聲抑制,受相機(jī)移動或光線影響小,且速度較快。定義FAST特征檢測的圖像塊的矩為
(1)
其中,I(x,y)表示像素灰度值。令m00表示關(guān)鍵點(x,y)的領(lǐng)域內(nèi)所有像素灰度值之和,m10和m01分別表示關(guān)于x和y的一階矩,則該圖像塊的質(zhì)心C為
(2)
特征點的方向θ為特征點與圖像塊質(zhì)心的夾角:
θ=arctan(m01,m10)
(3)
以BRIEF描述子向量描述關(guān)鍵點周圍的像素(p,q):
(4)
點云配準(zhǔn)是指通過一個變換T使得目標(biāo)點云P和源點云Q的變換結(jié)果T(P)和T(Q)盡可能重合。通過點云配準(zhǔn)將在不同視角中感測到的點云數(shù)據(jù)準(zhǔn)配到同一個坐標(biāo)系中。
ICP是一種點云精配準(zhǔn)算法。對于剛性變換,點云配準(zhǔn)可以描述為一個目標(biāo)函數(shù)優(yōu)化問題。利用最小二乘法計算出匹配最優(yōu)的參數(shù)旋轉(zhuǎn)矩陣R和平移矩陣t,使得目標(biāo)誤差函數(shù)最小,從而獲得從源點云Q到目標(biāo)點云P的最佳剛性變換R和t。目標(biāo)誤差函數(shù)公式如下:
(5)
其中,(pi,qi)是最鄰近點。
RGB-D幀與Surfel數(shù)據(jù)流融合集成到局部地圖時, Surfel根據(jù)其時間戳分為active區(qū)域和inactive區(qū)域。在相機(jī)跟蹤與稠密重建過程中,局部地圖中active區(qū)域通過反饋與新的RGB-D幀融合,不斷更新局部地圖。
Surfel集成塊將新的RGB-D幀與active區(qū)域的Surfel集成在一起。之后,Surfel投影塊里active區(qū)域中的圖像生成點、法線和顏色。將新幀與局部地圖投影圖像進(jìn)行比較,如果位置和法線的值足夠接近,則根據(jù)以下公式更新局部地圖中的表面:
(6)
(7)
(8)
通常,回環(huán)檢測可以在一定程度上校正對當(dāng)前關(guān)鍵幀的處理誤差,有效生成Surfel表面模型。但實際上,關(guān)鍵幀Surfel表面仍可能有累計誤差存在。因此,本文引入全局BA優(yōu)化方法,優(yōu)化全局地圖的關(guān)鍵幀位姿和地圖點坐標(biāo)。
BA(bundle adjustment)優(yōu)化屬于非線性優(yōu)化,是計算機(jī)視覺領(lǐng)域常用的一種位姿優(yōu)化的圖優(yōu)化方法。假定空間點p經(jīng)過一個內(nèi)參矩陣為K、外參為(R,t) 的針孔相機(jī)投影,在像素平面上得到p的像素坐標(biāo)為z,則根據(jù)針孔相機(jī)成像原理可知,z與p滿足:
sz=K(Rp+t)
(9)
誤差函數(shù)e實際上是重投影誤差:
(10)
其中,s為尺度因子,ξ∧為相機(jī)外參(R,t) 對應(yīng)李代數(shù)的反對稱矩陣,(p,1)T為空間點p的齊次坐標(biāo)表示。
對上述重投影誤差求和以構(gòu)建出一個最小二乘問題然后通過L-M方法求解,得到最優(yōu)解,目標(biāo)函數(shù)為
(11)
深度相機(jī)位姿估計精度影響虛擬試穿的3D人臺建模精度,最終將影響旗袍虛擬試穿的貼身體驗。本文采用ATE絕對位姿誤差和RPE相對位姿誤差描述位姿估計精度。其中,ATE是估計位姿與真實位姿之間差值,用于直觀地反應(yīng)算法精度和軌跡全局一致性。RPE主要描述的是兩幀之間位姿差別,反應(yīng)在Kinect采集中位姿估計的漂移情況。
假定:算法估計位姿為P1,…,Pn∈SE(3),真實位姿為Q1,…,Qn∈SE(3),從估計位姿到真實位姿的轉(zhuǎn)換矩陣為S∈SE(3) ,則第i幀的ATE誤差分布矩陣Fi以及統(tǒng)計特性RSME分別定義如式(12)、式(13):
(12)
(13)
其中,trans(Fi)代表平移部分的絕對誤差。
第i幀的RPE誤差分布矩陣Ei以及統(tǒng)計特性RSME分別定義如式(14)、式(15):
(14)
(15)
其中,Δ是時間間隔,trans(Ei)代表平移部分的絕對誤差。
基于感測的個性化3D旗袍建模流程如圖3所示,主要包括Kinect深度相機(jī)感測、高精度Surfel-BA 三維實時重建,以及3D數(shù)字化旗袍建模3個功能部分組成。其中,上述提出的Surfel-BA三維實時重建技術(shù)在CPU i7-8750H 8G、顯卡為GTX 1060 6G的電腦與Ubuntu18.04運(yùn)行環(huán)境下,采用C++語言編程設(shè)計實現(xiàn)。3D數(shù)字化旗袍建模利用建模軟件工具M(jìn)arvelous Designer設(shè)計完成。
圖3 數(shù)字化3D旗袍建模
系統(tǒng)工作時,首先,Kinect深度相機(jī)對真實的試衣人進(jìn)行實時采集,獲取試衣人的RGB-D人體感測點云數(shù)據(jù);接著,Surfel-BA三維實時重建單元負(fù)責(zé)將人體點云數(shù)據(jù)建模生成一個高精度的3D人體點云模型;再由點云處理軟件Meshlab進(jìn)行點云修建與表面重建,生成一個基于感測的數(shù)字化3D人臺,為接下來建立試衣人合體的旗袍模型提供了支撐;最后,3D數(shù)字化旗袍建模單元負(fù)責(zé)在數(shù)字化3D人臺上生成一個試衣人的三維旗袍模型。具體地,使用了Marvelous Designer軟件的虛擬縫合功能,將旗袍二維衣片版圖通過縫合與碰撞檢測生成3D虛擬旗袍模型。其中,縫合原理是利用彈簧質(zhì)點模型來模擬衣片的服裝物理性質(zhì),并通過指定的縫合點對衣片施加縫合力使衣片縫合成為三維旗袍。碰撞檢測原理則可以判斷衣片與數(shù)字人臺網(wǎng)格是否符合正確的空間幾何關(guān)系,從而保證三維旗袍模型附著于3D人臺上?;谠囈氯烁袦y數(shù)據(jù)得到的數(shù)字化人臺以及三維旗袍建模過程如圖4所示。
圖4 感測的數(shù)字化人臺與三維旗袍建模
使用TUM測試數(shù)據(jù)集來測評相機(jī)軌跡跟蹤的位姿精度。TUM數(shù)據(jù)集包含多個由 Kinect v1相機(jī)采集的真實場景 RGB-D幀序列數(shù)據(jù),所有深度和彩色圖像都經(jīng)過校正,提供相機(jī)軌跡真值?,F(xiàn)有2種流行的RGB-D SLAM方法與本文方法進(jìn)行比測,一種是利用Surfel重建的ElasticFusion,另一種是基于TSDF表面融合的Kintinous。采用一個評估里程計SLAM算法的位姿軟件evo工具進(jìn)行性能評測。
表1給出了相應(yīng)的每幀ATE動態(tài)分布統(tǒng)計參數(shù)對比結(jié)果,包括Max(最大值)、Min(最小值)、RMSE、SSE(和方差)、STD(標(biāo)準(zhǔn)差)等指標(biāo)。圖5給出3種算法的RPE相對位姿誤差測試結(jié)果。對比可見,本文Surfel-BA算法的ATE統(tǒng)計特性參數(shù)值均最小,RPE波動小。因此,本文提出的Surfel-BA位姿估計精度更高、更可靠。此外,3種算法的RPE有時突然增加,核對數(shù)據(jù)集是由于視頻序列采集過程抖動引起的。下一步將該系統(tǒng)用于實現(xiàn)試衣人的人體建模,以實現(xiàn)真人的高精度數(shù)字化人臺模型。
表1 位姿估計ATE統(tǒng)計特性比較
首先,依據(jù)3D旗袍建模方法和步驟構(gòu)建試衣人的3D旗袍模型,圖6分別給出試衣人的3D人體重建點云模型、數(shù)字化人臺以及不同風(fēng)格的三維虛擬旗袍模型;然后,在多平臺交互式開發(fā)環(huán)境Unity3D中建立起一個交互式虛擬試衣間,導(dǎo)入虛擬旗袍模型,便可在數(shù)字化人臺上預(yù)覽3D虛擬旗袍模型的效果,如圖6(c)、圖6(d)所示??梢?,試衣人的虛擬旗袍模型與數(shù)字人臺均能反應(yīng)出試衣人的人體特征,符合度良好。
(a) Surfel-BA
(a) 人體點云重建模型
依據(jù)文獻(xiàn)[16]搭建服裝虛擬試穿交互式試驗環(huán)境,如圖7所示,包括Kinect和主機(jī)。實驗時,試衣人面對Kinect體感設(shè)備,通過人機(jī)界面UI選擇擬試穿的虛擬旗袍模型,通過主機(jī)上多平臺交互式開發(fā)環(huán)境Unity3D的發(fā)布畫面,試衣人可看到自己虛擬試穿該旗袍模型,也可進(jìn)行現(xiàn)場交互式體驗,如圖8所示。實驗結(jié)果表明,試衣人可以體驗本文設(shè)計的數(shù)字化3D虛擬旗袍模型,虛擬試穿效果逼真,具有良好的貼體效果。
圖7 虛擬試穿體驗實驗環(huán)境
圖8 現(xiàn)場真人體驗虛擬旗袍模型試穿效果
本文針對個性化旗袍虛擬試穿系統(tǒng)中人體3D點云模型精度受相機(jī)移動引起的位姿估計誤差與表面融合下降等問題影響,研究提出了一種基于全局BA反饋的Surfel-BA三維重建全局優(yōu)化算法,在Ubuntu18.04等開發(fā)運(yùn)行環(huán)境下,采用C++語言編程實現(xiàn)了基于感測的個性化3D旗袍建模?;赥UM數(shù)據(jù)集進(jìn)行了Surfel-BA算法優(yōu)化與位姿精度性能比測,所得ATE誤差統(tǒng)計特性更佳、RPE誤差得到有效抑制;在Kinect與Unity集成環(huán)境下進(jìn)行了真人現(xiàn)場交互式旗袍虛擬試穿實驗,驗證了新的3D旗袍建模方法能獲得貼體、逼真的虛擬體驗,快速便捷,交互性良好,在互聯(lián)網(wǎng)數(shù)字時尚領(lǐng)域具有良好的應(yīng)用前景。