蘇 卓,喻春陽
(東北大學 軟件學院,遼寧 沈陽 110819)
隨著虛擬現(xiàn)實的發(fā)展,虛擬試衣漸漸出現(xiàn)在人們的視野中,也出現(xiàn)了各種各樣的相關技術[1-2]。目前大多數(shù)虛擬試衣系統(tǒng)或算法是基于3D模型匹配人體[3-9]或是2D貼圖跟隨人體運動[10-11],前者很難對人體進行精確匹配,同時也面臨著物理效果模擬不佳的問題。國內(nèi)外許多學者提出將布料模擬[12-16]運用到該系統(tǒng)中,但是由于人體的肢體運動,并不能很好地實現(xiàn)。后者雖然運行效率高,但也存在前者的各種問題。
為了解決上述問題,文中提出了基于2D圖像變換的虛擬試衣算法。該算法通過獲取Kinect深度圖像、彩色圖像和人體關節(jié)點坐標,再提供衣服的圖像對應圖像上的關節(jié)坐標,將該衣服圖像匹配到人體圖像上。該算法主要將衣服圖像和人體圖像以相同的方法分割成多個模塊,并將人體圖像上這些對應的模塊逐塊填充。
通過Kinect SDK提供的接口可以比較容易地獲得彩色圖像、人體二值圖像和骨骼關節(jié)點坐標,這里的骨骼關節(jié)點坐標為三維坐標,需要使用SDK提供的映射函數(shù)轉換到人體圖像的屏幕坐標。
虛擬的衣服圖像采用讀取BMP文件的方式存儲,關節(jié)點坐標在文本文件中,直接讀取即可。
由于人體圖像和衣服圖像采用相同的方法進行分割,所以下述圖像分割(包括二級分割)均表示對二者圖像的分割操作。
一級分割首先將把人體的頸部、肩部、肘部、腕部進行切割。由圖像上這些關節(jié)點的坐標位置進行360°射線探測,直到遇到白色像素,各方向探測線長度記為L(i),0≤i<180,找到過該點最短的一條切割線,記得到的探測角度為A,以A方向和A+180°方向做分割線。A滿足:
L(A)+L(A+180)=min{L(i)+L(i+180)}
(1)
記錄分割線端點的坐標。
胯部中心采取與脊柱方向垂直的線段進行分割,這樣避免了腿部的影響。之后添加胸部到兩肩部的分割線和腹部到兩腋下的分割線。
人體圖像及衣服圖像一級分割效果如圖1所示。
圖1 一級分割結果
圖中,位置1~7為最短探測線分割,位置8為水平分割,位置9~12為骨骼節(jié)點到對應分割點的直接連接分割。
由一級分割結果得到14個一級模塊,如圖2所示。
圖2 一級模塊
每個模塊由兩個皮膚端點的坐標、兩個骨骼點坐標構成。其中3號模塊以右肩的分割線為皮膚邊界,4號模塊以左肩的分割線為皮膚邊界。
對每個一級模塊進行二分遞歸分割,具體方法如圖3所示。
圖3 二分法分割示意
圖中,計算遞歸模塊中的兩個皮膚端點K1,K2的中心點Km,兩個骨骼點S1,S2的中心點Sm。由骨骼中心點Sm向皮膚中心點Km方向進行射線探測,r為分割線,直至遇到白色像素,得到該骨骼中心點對應的實際的皮膚中心點坐標K3。以皮膚中心Km和新得到的骨骼中心Sm構造出兩個新的遞歸模塊K1S1SmKm和KmSmS2K2,繼續(xù)執(zhí)行上述操作。
這里的遞歸深度為4,也可以按照不同長度的骨骼進行不同深度的遞歸,但要保證人體二值圖像和衣服二值圖像對應一級模塊的遞歸深度相同。否則無法進行二級模塊的區(qū)域匹配。
在分辨率允許范圍內(nèi),遞歸的深度越多,衣服貼合人體的效果越好。人體圖像及衣服圖像的二級分割效果如圖4所示。
圖4 二級分割結果
由于上面處理的人體二值圖像和衣服二值圖像的分割結果具有相同的拓撲結構,遍歷對應的各個二級模塊,將皮膚二級模塊對應的衣服彩色圖像的逐像素顏色填充至人體對應二級模塊對應的彩色圖像上。僅針對一個二級模塊,具體步驟如下:
(1)將該模塊分為兩個三角形,如圖5所示。
圖5 二級模塊三角分割示意
其中,a、b為骨骼點,c、d為皮膚點。這里以abc、bdc作為兩個三角形。
(2)構造一個顏色矩陣M,該矩陣的行數(shù)、列數(shù)要較大于三角形的最小外接矩形,這里直接將三角形最長邊的1.2倍長度作為M的行數(shù)R、列數(shù)C。
(3)由該矩陣的坐標(C-1,0)、(C-1,R-1)、(0,0)及該衣服圖像二級模塊中abc的坐標,代入:
(2)
(4)三角形bdc同理。
(5)由M中坐標(C-1,0)、(C-1,R-1)、(0,0)及該人體圖像二級模塊中abc的坐標,求出仿射矩陣A2,遍歷M中坐標點P2,通過A2×P2得到人體圖像中的坐標,并以矩陣M所有元素的顏色值填充人體彩色圖像。
(6)三角形bdc同理。
由于需要使用圖像數(shù)據(jù),采用了逐像素填充的方法,CPU負擔會比較重。如果只用于顯示,也可以直接通過渲染三角形的方式,將衣服彩色圖像中三角形的坐標轉換為UV坐標,通過貼圖的方式即可實現(xiàn)。
實驗結果如圖6所示。
圖6 通過Kincet實時獲取人體圖像的填充結果
算法通過Kinect實時顯示了換衣的效果,虛擬衣服可以隨人體關節(jié)運動而比較契合地附著在人體圖像上。相比傳統(tǒng)基于3D模型匹配的方法更具有生動性,能較好地模擬衣服拉伸效果。由于填充部分完全獨立,適用于并行計算。對于不同一級模塊的遞歸分割可因一級模塊區(qū)域大小分配,避免不必要的開銷。對衣服的原始二值圖像進行拓展,即體現(xiàn)出頭部、手部、胯部等,可以更好地對圖像進行一級分割以及充分利用。
[1] 周 超,胥朝陽,余海麗.服裝網(wǎng)購中三維虛擬試衣問題研究[J].服飾導刊,2013(1):41-45.
[2] 田 泉,孔永鋒.淺述虛擬試衣[J].信息與電腦:理論版,2014(7):173-174.
[3] 楊晨暉,陳 辰.虛擬試衣系統(tǒng)中的模型變形[J].廈門大學學報:自然科學版,2014,53(1):46-51.
[4] 趙海媚,林振生,彥虹羽,等.基于Kinect的3D實時虛擬試衣系統(tǒng)的研究[J].電子技術與軟件工程,2015(20):69-71.
[5] 張曉麗,姚俊峰,黃 萍.基于Kinect的實時360度虛擬試衣[J].系統(tǒng)仿真學報,2016,28(10):2378-2384.
[6] 曾 云,陳盈盈,張 岳.基于人體識別的在線虛擬試衣系統(tǒng)[J].電視技術,2014,38(11):206-210.
[7] CORDIER F,SEO H,THALMANN N M.Made-to-measure technologies for online clothing store[J].IEEE Computer Graphics and Applications,2003,23(1):38-48.
[8] 韓 芳,李英琳.日趨實用化的三維虛擬服裝設計與試衣系統(tǒng)[J].山東紡織經(jīng)濟,2015(5):35-37.
[9] 徐雪麗.基于Android平臺的虛擬試衣關鍵技術研究[J].西安文理學院學報:自然科學版,2016,19(2):47-51.
[10] XIONG X Y,ZHU X J.ASM (Active Shape Model) modeling of the human body and its application in virtual fitting[C]//International conference on informatics,networking and intelligent computing.[s.l.]:[s.n.],2014:118-121.
[11] 張 智,曾 誠.基于RIA技術的在線試衣間系統(tǒng)的設計[J].計算機技術與發(fā)展,2011,21(10):143-146.
[12] CHOI K J,KO H S.Research problems in clothing simulation[J].Computer-Aided Design,2005,37(6):585-592.
[13] LIU Li,WANG Ruomei,SU Zhuo,et al.Mesh-based anisotropic cloth deformation for virtual fitting[J].Multimedia Tools and Applications,2014,71(2):411-433.
[14] 石 敏,毛天露,夏時洪,等.布料動畫方法研究進展及問題[J].計算機學報,2012,35(12):2446-2458.
[15] 呂夢雅,李發(fā)明,唐 勇,等.基于彈簧質(zhì)點模型的快速逼真的布料模擬仿真[J].系統(tǒng)仿真學報,2009,21(16):5236-5239.
[16] 李 健,崔棟梁.基于簡化的質(zhì)點彈簧模型的布料模擬[J].計算機工程與設計,2010,31(4):819-821.