王巧麗, 徐増波, 楊思
(上海工程技術(shù)大學(xué) 紡織服裝學(xué)院,上海 201620)
三維虛擬試衣使消費(fèi)者能夠提前感知服裝穿在身上的實(shí)際效果,該技術(shù)的應(yīng)用可提高消費(fèi)者的購(gòu)物效率,有利于消費(fèi)者購(gòu)買到適合自己體型的服裝,從而提高消費(fèi)者滿意度[1]。然而,在服裝網(wǎng)絡(luò)銷售系統(tǒng)中,服裝展示多是二維圖片的形式,并不能全面展示服裝各角度的信息,且三維服裝建模的復(fù)雜性導(dǎo)致服裝模型數(shù)據(jù)量少。因此,需要一種可以快速構(gòu)建三維服裝模型的方法來(lái)解決這一系列問(wèn)題。
目前,三維服裝建模技術(shù)主要分為服裝物理建模、幾何建模和混合建模。服裝物理建模的基本方法是通過(guò)服裝衣片建模、虛擬縫合技術(shù)和碰撞檢測(cè)技術(shù)[2]對(duì)衣片模型進(jìn)行構(gòu)建與縫合,形成三維服裝模型[3]。這種方法構(gòu)建的服裝模型通??钍奖容^簡(jiǎn)單,視覺(jué)效果不夠真實(shí)。服裝幾何建模是通過(guò)三維模型表面各種幾何拓?fù)浣Y(jié)構(gòu)的變化生成服裝模型,常見的有4種類型:參數(shù)化曲面建模、二維手繪草圖建模、基于現(xiàn)有模型生成新模型、基于三維掃描的服裝建模。服裝混合建模結(jié)合了物理建模和幾何建模的優(yōu)點(diǎn),計(jì)算時(shí)間短、仿真效果好,但算法復(fù)雜,有待改善。
在服裝物理建模方面,方貴盛[4]發(fā)現(xiàn)一種以草繪圖為基礎(chǔ)的衣片構(gòu)建方法,該方法主要針對(duì)衣片輪廓線進(jìn)行處理,實(shí)現(xiàn)衣片的交互式設(shè)計(jì),從而豐富服裝模型的款式。UMETANI N等[5]開發(fā)了服裝交互式建模與編輯的服裝設(shè)計(jì)工具,得到虛擬縫合后服裝模型的特殊效果,更直觀地呈現(xiàn)服裝的三維效果。孟田翠[6]建立了一個(gè)虛擬試衣服裝布料仿真系統(tǒng),可利用人體包圍盒將三維布料轉(zhuǎn)換為多種款式的服裝,且能對(duì)服裝的褶皺和懸垂特性進(jìn)行仿真。在幾何建模方面,BROUET R等[7]通過(guò)對(duì)衣片頂點(diǎn)的調(diào)節(jié)實(shí)現(xiàn)服裝模型各部位的形變,但這需要對(duì)大量頂點(diǎn)信息進(jìn)行儲(chǔ)存與計(jì)算,因此效率很低。顏家峰[8]提出一種基于樣式維持的服裝生成算法,通過(guò)已有的服裝樣式生成基本維持原有樣式且適合人體模型的三維服裝模型。在混合建模方面,WANG C等[9]通過(guò)計(jì)算服裝張力在人體上的分布情況,控制縫合時(shí)模型在張力下的變形效果,提高服裝模型的仿真效果。OSHITA M等[10]使用幾何建模在稀疏粒子上生成褶皺細(xì)節(jié),并使用文獻(xiàn)[11]提出的PN三角化生成平滑的類織物曲面,但生成的褶皺會(huì)受給定圖片的影響,織物的仿真效果還有很大提升空間。
目前,三維服裝建模方法普遍較復(fù)雜,由于服裝款式繁多且更替速度較快,為快速構(gòu)建三維服裝模型,文中提出一種優(yōu)化用戶體驗(yàn)的服裝建模方法,強(qiáng)調(diào)操作簡(jiǎn)便,不需要過(guò)多的專業(yè)知識(shí)及操作過(guò)程便能完成服裝建模。
上海工程技術(shù)大學(xué)與東方國(guó)際集團(tuán)有限公司聯(lián)合研發(fā)的服裝智能定制3D測(cè)體儀如圖1所示。該設(shè)備基于Kinect攝像技術(shù)捕獲目標(biāo)的點(diǎn)云數(shù)據(jù),生成三維人體點(diǎn)云模型。
圖1 服裝智能定制3D測(cè)體儀Fig.1 3D measuring instrument of clothing intelligent customization
基于點(diǎn)云重建的服裝建模方式屬于幾何建模的范疇,為了使服裝模型在虛擬試穿后具有自然褶皺等穿著真實(shí)感,需要將服裝點(diǎn)云從人體上分割提取出來(lái)。在對(duì)散亂點(diǎn)云進(jìn)行分割前,需要建立數(shù)據(jù)之間的拓?fù)潢P(guān)系,以便快速獲取領(lǐng)域信息。文中利用KD樹對(duì)點(diǎn)云數(shù)據(jù)構(gòu)建拓?fù)浣Y(jié)構(gòu)。KD樹是一種可以在K維空間劃分?jǐn)?shù)據(jù)點(diǎn)的二叉樹結(jié)構(gòu),其基本原理是不斷地用垂直于坐標(biāo)軸的超平面將K維空間進(jìn)行劃分,從而形成一系列K維超矩形區(qū)域[12]。三維空間中,KD樹空間劃分示意如圖2所示。
圖2 KD樹空間劃分示意Fig.2 KD tree space division diagram
由于原始點(diǎn)云中上身服裝區(qū)域與人體有明顯的顏色區(qū)別,為了從人體與服裝的整體中提取服裝點(diǎn)云數(shù)據(jù),采用基于顏色的區(qū)域增長(zhǎng)算法進(jìn)行分割。服裝區(qū)域點(diǎn)云分割前后效果對(duì)比如圖3所示。圖3(a)為采用服裝智能定制3D測(cè)體儀采集的服裝點(diǎn)云數(shù)據(jù),圖3(b)是經(jīng)過(guò)基于顏色的區(qū)域增長(zhǎng)算法得到的服裝區(qū)域點(diǎn)云。
由三維掃描儀獲取的點(diǎn)云數(shù)據(jù)在網(wǎng)格重建前通常需要預(yù)處理,以優(yōu)化重建網(wǎng)格模型的質(zhì)量。針對(duì)原始點(diǎn)云數(shù)據(jù)存在的離群點(diǎn)、冗余點(diǎn)、混雜點(diǎn)等現(xiàn)象,分別進(jìn)行點(diǎn)云去噪、點(diǎn)云精簡(jiǎn)和點(diǎn)云平滑處理。
使用常見的3種點(diǎn)云去噪算法(統(tǒng)計(jì)濾波、半徑濾波、直通濾波)對(duì)服裝點(diǎn)云數(shù)據(jù)進(jìn)行去噪,去噪效果分別見圖4、圖5和圖6。去噪后的點(diǎn)云數(shù)量及算法運(yùn)行時(shí)間見表1。
圖3 服裝區(qū)域點(diǎn)云分割前后效果對(duì)比Fig.3 Effect comparison before and after point cloud segmentation in clothing area
圖4 統(tǒng)計(jì)濾波去噪前后效果對(duì)比Fig.4 Effect comparison before and after statistical outlier removal
圖 5 半徑濾波去噪前后效果對(duì)比Fig.5 Effect comparison before and after radius outlier removal
原始點(diǎn)云在肩部、袖口、背部等輪廓邊緣有大量離散點(diǎn),因此主要比較這些部位的去噪效果。由圖4~圖6以及表1可以看出,統(tǒng)計(jì)濾波去噪效果良好,運(yùn)算速度較快;半徑濾波運(yùn)行速度快,但圓的半徑和圓內(nèi)點(diǎn)的數(shù)目需要人工指定,不夠便捷;直通濾波基本沒(méi)有去噪效果,且濾波范圍的劃分要求嚴(yán)格。因此,本文選擇統(tǒng)計(jì)濾波作為離散點(diǎn)的去噪算法。
點(diǎn)云濾波后服裝邊緣仍存在少量離散點(diǎn),需要進(jìn)行點(diǎn)云精簡(jiǎn)去除。隨機(jī)下采樣、平均網(wǎng)格法、非均勻網(wǎng)格采樣法計(jì)算簡(jiǎn)單,且能使點(diǎn)云密度更加均勻,因此本文對(duì)比這3種算法的點(diǎn)云精簡(jiǎn)效果。采用隨機(jī)下采樣對(duì)服裝點(diǎn)云進(jìn)行精簡(jiǎn)時(shí),percentage參數(shù)為需要精簡(jiǎn)的點(diǎn)云數(shù)占比,分別取0.1,0.3和0.5;采用平均網(wǎng)格法對(duì)服裝點(diǎn)云進(jìn)行精簡(jiǎn)時(shí),gridStep參數(shù)為指定3D選框的大小,分別取0.10,0.15和0.20;通過(guò)非均勻網(wǎng)格采樣法對(duì)服裝點(diǎn)云進(jìn)行精簡(jiǎn)時(shí),maxNumPoints參數(shù)為網(wǎng)格框中的最大點(diǎn)數(shù),分別取6,12和18。點(diǎn)云精簡(jiǎn)后的效果見圖7,精簡(jiǎn)后點(diǎn)云的數(shù)量見表2。
表2 點(diǎn)云數(shù)量對(duì)比
點(diǎn)云精簡(jiǎn)程度越大,留下的細(xì)節(jié)特征越少,因此需要在去除大量冗余點(diǎn)的同時(shí),保留能夠反映模型特征的數(shù)據(jù)點(diǎn)。對(duì)比各算法取不同參數(shù)時(shí)的點(diǎn)云精簡(jiǎn)結(jié)果,隨機(jī)下采樣在參數(shù)取0.3、平均網(wǎng)格參數(shù)取0.10與非均勻網(wǎng)格參數(shù)取6時(shí)的細(xì)節(jié)特征不相上下,但隨機(jī)下采樣法與平均網(wǎng)格法比非均勻網(wǎng)格法的點(diǎn)云分布更規(guī)則,更適合對(duì)稱性的服裝;再對(duì)比點(diǎn)云數(shù)量,平均網(wǎng)格比隨機(jī)下采樣少了近三分之一,因此選擇平均網(wǎng)格參數(shù)為0.10時(shí)的精簡(jiǎn)結(jié)果供后續(xù)處理。
為了建立光滑完整的模型必須對(duì)服裝表面進(jìn)行平滑處理和孔洞修復(fù),采用移動(dòng)最小二乘法可以實(shí)現(xiàn)點(diǎn)云平滑。移動(dòng)最小二乘法在擬合函數(shù)的建立中用系數(shù)向量和基函數(shù)代替了傳統(tǒng)的多項(xiàng)式或其他函數(shù),能夠緩解或解決傳統(tǒng)曲線曲面在擬合過(guò)程中存在的困難;在影響區(qū)域定義權(quán)函數(shù),不同的權(quán)函數(shù)可以改變擬合曲面的光滑度。點(diǎn)云平滑后的服裝表面見圖8。
圖8 點(diǎn)云平滑F(xiàn)ig.8 Point cloud smoothing
結(jié)合區(qū)域生長(zhǎng)算法和Delaunay三角剖分算法,以無(wú)向點(diǎn)云為輸入,通過(guò)三角剖分形式生成插值曲面的算法進(jìn)行服裝模型重建。以點(diǎn)云重建的Delaunay四面體作為輸入點(diǎn)種子三角形的開始,將與初始前沿邊連接的Delaunay三角形逐個(gè)相加,逐步形成曲面。在曲面生長(zhǎng)過(guò)程中,通過(guò)改變?nèi)切蔚倪x擇準(zhǔn)則和調(diào)整三角形的添加順序,可以減少由于添加不合適的三角形而產(chǎn)生的拓?fù)湔`差和孔洞數(shù)量。具體步驟如下:
Step 1 通過(guò)對(duì)服裝散亂點(diǎn)云進(jìn)行Delaunay三角剖分[13]得到三角形集TZ;
Step 2 在輸入點(diǎn)的良好采樣區(qū)域選擇種子三角形作為初始曲面區(qū)域,種子三角形的3條邊構(gòu)成網(wǎng)格生長(zhǎng)區(qū)域的初始前沿邊(位于三角形區(qū)域與四邊形區(qū)域分界線上的邊。);
Step 3 對(duì)每個(gè)前沿邊執(zhí)行迭代三角形加法策略,用于網(wǎng)格增長(zhǎng);
Step 4 當(dāng)曲面上沒(méi)有前沿邊或前沿邊都找不到適合生長(zhǎng)的候選三角形時(shí),算法停止。
種子三角形的選擇是區(qū)域生長(zhǎng)方法中的一個(gè)重要步驟,正確地選取種子三角形是高質(zhì)量曲面重建的前提。找到正確的種子三角形的關(guān)鍵是確保選定的三角形是曲面三角形。文中提出了一種高精度、低復(fù)雜度的種子三角形選擇策略。圖9為種子三角形的選取示意,具體步驟如下:
Step 1 從輸入的散亂點(diǎn)云集中隨機(jī)選擇一個(gè)點(diǎn)v,然后從集合TZ中找到與v點(diǎn)相連的最小外接圓的三角形,假設(shè)找到的三角形是t。
Step 2 設(shè)t的三條邊分別為e1,e2和e3,從TZ中找出與e1,e2和e3相連的外接圓最小的3個(gè)三角形,分別稱為t1,t2和t3。如果t和t1,t2,t3之間的最大角度θ小于θseed(θseed的建議值為20°),則進(jìn)入Step 3;否則,選擇另一個(gè)點(diǎn)作為v并重新進(jìn)入Step 1。
Step 3 為了確保三角形位于曲面上,需要驗(yàn)證穿過(guò)三角形頂點(diǎn)且其軸平行于三角形法線的圓柱體在三角形外側(cè)為空,換言之,此圓柱體中包含的點(diǎn)必須全部位于三角形上方或下方,則種子三角形選擇完成[14];否則,選擇另一個(gè)點(diǎn)作為v并返回Step 1。
圖9 種子三角形的選取Fig.9 Candidate triangle selection
對(duì)于每個(gè)前沿邊,需要從集合TZ中選擇候選三角形,以滿足當(dāng)前網(wǎng)格的增長(zhǎng)。曲面重建的結(jié)果受所選三角形的影響很大。為了使重構(gòu)后的曲面與盡可能多的非噪聲輸入點(diǎn)相連接,減少生成曲面上的孔洞,候選三角形的選取應(yīng)滿足曲面拓?fù)錀l件、相鄰三角形的角度條件和三角形不相交條件。圖9中,令曲面三角形的集合為TS,前沿邊的集合為Ef。對(duì)于任意e∈Ef,假設(shè)TZ中有m個(gè)三角形與e相連。在這些三角形中,只有一個(gè)三角形te∈TS,除te外,集合TE包含m-1個(gè)三角形,TE={t1,t2,…,tn,…,tm-1|tn≠te,1≤n≤m-1}。對(duì)于任意三角形tn,tn在e上的兩個(gè)頂點(diǎn)是va和vb,另一個(gè)頂點(diǎn)稱為vn。除e外,tn的邊稱為e1n和e2n。
3.2.1曲面拓?fù)錀l件 ①三角形tn的頂點(diǎn)vn不是內(nèi)點(diǎn);②三角形tn的三條邊(e,e1n,e2n)都不是內(nèi)邊。
3.2.2相鄰三角形的角度條件tn與te之間的夾角應(yīng)小于常數(shù)值θsliver(θsliver的建議值為150°)。
3.2.3三角形不相交條件 對(duì)于三角形tn,若能找到除tn以外與e相連的三角形tn′∈TE,同時(shí)滿足以下3個(gè)條件:①tn′的頂點(diǎn)vn′不是內(nèi)點(diǎn);②過(guò)點(diǎn)vn′向tn引垂線,與tn平面交于點(diǎn)vh,則三角形相交,若使tn添加至網(wǎng)格會(huì)導(dǎo)致其他一些點(diǎn)無(wú)法連接到網(wǎng)格。
通過(guò)控制網(wǎng)格生長(zhǎng)數(shù)量,可以看到服裝點(diǎn)云網(wǎng)格化的過(guò)程,如圖10所示,圖中綠色邊線的三角形為種子三角形,由種子三角形的3條前沿邊開始,向外蔓延添加候選三角形,再?gòu)暮蜻x三角形的前沿邊繼續(xù)添加候選三角形。
圖10 服裝點(diǎn)云網(wǎng)格化過(guò)程Fig.10 Clothing point cloud gridding process
使用泊松法和貪婪投影三角化法以及文中算法對(duì)同一服裝點(diǎn)云數(shù)據(jù)進(jìn)行重建,以三視圖形式展示其效果,具體如圖11所示。
圖11 曲面重建結(jié)果ⅠFig.11 Surface reconstruction results Ⅰ
圖11(a)中,貪婪投影三角化重建能夠很好地還原點(diǎn)云原有的形狀,應(yīng)有的開口孔洞也得到了很好的保留,但由面片圖可以發(fā)現(xiàn),貪婪投影三角化重建的服裝模型表面的三角面片起伏不平,衣片不夠平滑。圖11(b)中泊松法重建的網(wǎng)格均勻質(zhì)量較好,面片顯示效果相對(duì)平整,衣服原有的褶皺也得到了保留。但由俯視圖可以看出,泊松重建對(duì)原本應(yīng)保留的領(lǐng)部開口的孔洞進(jìn)行了自動(dòng)填補(bǔ),底部下擺開口和袖口也是同樣的問(wèn)題;在邊界進(jìn)行補(bǔ)點(diǎn)和過(guò)度平滑,如在衣袖與衣身之間進(jìn)行了補(bǔ)點(diǎn),使衣袖與衣身出現(xiàn)連結(jié)現(xiàn)象;衣袖內(nèi)部的干擾點(diǎn)也進(jìn)行了過(guò)度重建,使衣袖上出現(xiàn)孔洞現(xiàn)象。圖11(c)中所使用的重建方法,同時(shí)具備泊松法和貪婪投影三角法的優(yōu)點(diǎn),得到的34 960個(gè)三角形網(wǎng)格分布均勻、基本無(wú)錯(cuò)亂,面片光滑,同時(shí)保留了服裝點(diǎn)云原有的形狀,服裝點(diǎn)云原有的開口也很好地予以保留。
為驗(yàn)證算法的普適性,對(duì)另外兩組不同款式的服裝點(diǎn)云數(shù)據(jù)進(jìn)行了同樣的重建結(jié)果對(duì)比,具體如圖12所示。3種算法重建結(jié)果的特征與上文分析的類似,表明文中算法有更好的重建效果。
圖12 曲面重建結(jié)果ⅡFig.12 Surface reconstruction results Ⅱ
文中通過(guò)對(duì)實(shí)體服裝進(jìn)行點(diǎn)云的采集及預(yù)處理,對(duì)服裝點(diǎn)云進(jìn)行曲面重建實(shí)現(xiàn)了三維服裝建模,并將該法與貪婪投影三角化重建、泊松重建進(jìn)行了對(duì)比。結(jié)果顯示:文中算法重建效果更好,服裝網(wǎng)格分布均勻,面片光滑,且保留了服裝原有的形狀。該算法在盡可能保證服裝還原度與運(yùn)算速度的基礎(chǔ)上,強(qiáng)調(diào)操作簡(jiǎn)便,不需要過(guò)多專業(yè)知識(shí)及操作過(guò)程便能完成服裝建模。