張藝穎 馮茹夢(mèng) 閆文莉 李千惠 代穩(wěn)
摘要:隨著時(shí)代與科技的發(fā)展,越來越多的科技元素融入到我們的生活中來。在人機(jī)交互方面,虛擬試衣系統(tǒng)為人們提供了便捷可靠的全新試衣模式,免去了在購(gòu)物時(shí)的不便與煩瑣。本文回顧了到目前為止國(guó)內(nèi)外最新的虛擬試衣技術(shù),并在此基礎(chǔ)上展開自己對(duì)所完成的虛擬試衣系統(tǒng)的技術(shù)點(diǎn)的論述。
關(guān)鍵詞:深度攝像頭;虛擬試衣;人機(jī)交互
中圖分類號(hào):G642.0 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1674-9324(2015)35-0212-02
一、緒論
(一)項(xiàng)目提出的背景及研究意義
就目前而言,人們大多采用的試衣方式是:先在店中選中自己喜歡的衣服而后逐一試穿,試衣者耗費(fèi)了大量體力和時(shí)間?,F(xiàn)如今凡事都追求快速高效,若是能在更少的時(shí)間內(nèi)達(dá)成自己的訴求,必會(huì)獲得廣大消費(fèi)者的青睞。
隨著類似于微軟Kinect等可以檢測(cè)出深度的攝像頭的出現(xiàn)以及三維建模技術(shù)的成熟,為虛擬試衣系統(tǒng)的誕生提供了可能。該系統(tǒng)界面簡(jiǎn)潔友好,使消費(fèi)者不用閱讀說明書就能較快上手,完成自己的試衣。
(二)國(guó)內(nèi)外研究及應(yīng)用現(xiàn)狀
虛擬試衣最先是以網(wǎng)頁2D虛擬替身類型出現(xiàn)的,這種類型的特點(diǎn)是成本低、開發(fā)時(shí)間短、技術(shù)手段相對(duì)成熟,僅需對(duì)真實(shí)模特和服裝的照片或者效果圖進(jìn)行簡(jiǎn)單處理即可。2D類型的虛擬試衣雖然操作簡(jiǎn)單,對(duì)網(wǎng)絡(luò)帶寬和終端設(shè)備要求較低,一般僅能提供虛擬替身正面與背面兩組視角的試穿效果,因此對(duì)于服裝上身效果的細(xì)節(jié)并不能很細(xì)致地體現(xiàn)。
而之后發(fā)展出來的3D虛擬試衣在操作方式上與2D類似,都需要在試衣前選擇并設(shè)置用戶替身的身材比例,然后從網(wǎng)頁列表中選取并試穿服裝或者配飾后在預(yù)覽窗口中進(jìn)行瀏覽。所有的服裝模型均為三維模型,因此可提供360度全方位的視圖瀏覽。它的視角比2D虛擬試衣更為靈活,但是就用戶真實(shí)度和體驗(yàn)感來說而言仍是差強(qiáng)人意,原因是在3D虛擬試衣中每件服裝、配飾和虛擬模特都要進(jìn)行三維構(gòu)建。其次,三維服裝屬于柔體模型,易變形,達(dá)不到體驗(yàn)者對(duì)美觀的要求。
基于增強(qiáng)現(xiàn)實(shí)AR(Augmented Reality)技術(shù)的服裝虛擬試衣是目前最新的應(yīng)用類型,其高效、直觀、真實(shí)的優(yōu)勢(shì)十分明顯,也是沉浸感和體驗(yàn)效果最優(yōu)的一種虛擬試衣體驗(yàn)類型。
二、基于深度攝像設(shè)備的人體姿態(tài)的捕捉與識(shí)別
(一)彩色視頻流的獲取
首先進(jìn)行人體信息的提取。Kinect有兩類攝像頭,近紅外攝像頭和普通的視頻攝像頭。視頻攝像頭提供了一般攝像頭類似的彩色影像。這種數(shù)據(jù)流是三種數(shù)據(jù)流中使用和設(shè)置最簡(jiǎn)單的。因此我將他作為Kinect數(shù)據(jù)流介紹的例子。
使用Kinect數(shù)據(jù)流也有三步。首先是數(shù)據(jù)流必須可用。一旦數(shù)據(jù)流可用,應(yīng)用程序就可以從數(shù)據(jù)量中讀取數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理和展現(xiàn)。一旦有新的數(shù)據(jù)幀可用,這兩個(gè)步驟就會(huì)一直進(jìn)行。我們使用Kinect彩色視頻攝像頭獲取視頻流信息,即看到的人像與背景。使用紅外攝像頭來獲取人體的骨骼信息與深度信息。
為了實(shí)現(xiàn)實(shí)時(shí)播放視頻流數(shù)據(jù),在Kinect_ColorFrameReady方法中,我們首先通過打開或者獲取一個(gè)frame來提取Frame數(shù)據(jù)。ColorImageFrameReadyEventArgs對(duì)象的OpenColorImageFrame屬性返回一個(gè)當(dāng)前的ColorImageFrame對(duì)象。這個(gè)對(duì)象實(shí)現(xiàn)了IDisposable接口。調(diào)用CopyPixelDataTo方法可以填充像素?cái)?shù)據(jù),然后將數(shù)據(jù)展示到image控件上。這樣在屏幕上就會(huì)出現(xiàn)一個(gè)實(shí)時(shí)錄制現(xiàn)實(shí)場(chǎng)景的視頻。
(二)手勢(shì)識(shí)別
對(duì)于Kinect來說,目前可以使用的有8個(gè)通用的手勢(shì):揮手(wave)、懸浮按鈕(hover button)、磁吸按鈕(magnet button)、推按鈕(push button)、磁吸幻燈片(magnetic slide)、通用暫停(universal pause)、垂直滾動(dòng)條(vertical scrolling)和滑動(dòng)(swipping)。我們的系統(tǒng)里采用了push button,vertical scrolling和swipping。
打開程序,進(jìn)入界面,在kinect攝像頭前揮手,機(jī)器自動(dòng)識(shí)別出手勢(shì)并映射在界面上。此時(shí)不進(jìn)行任何操作。
1.確認(rèn)選擇的Push Button。下壓按鈕(Push Button)。手掌張開向前,在形式上有點(diǎn)像動(dòng)態(tài)鼠標(biāo)。下壓命令執(zhí)行的結(jié)果就是用戶選擇的衣服將試穿在用戶身上。
2.用于瀏覽的Vertical Scrolling與Swip。左邊衣物選擇欄使用的是垂直滾動(dòng)條(Vertical Scrolling)。當(dāng)抬起或者放下手臂時(shí)會(huì)使得屏幕的內(nèi)容垂直滾動(dòng),滾動(dòng)的方向和大小由手臂和水平方向的夾角來確定。
使用劃動(dòng)手勢(shì)(Swip)進(jìn)行操作。SwipeTime和SwipeDeviation分別提供了劃動(dòng)手勢(shì)經(jīng)歷的時(shí)間和劃動(dòng)手勢(shì)在y軸上的偏移閾值,在一定閾值范圍內(nèi)對(duì)手部骨骼數(shù)據(jù)進(jìn)行實(shí)時(shí)跟蹤。檢測(cè)出劃動(dòng)手勢(shì)時(shí)滾動(dòng)條將進(jìn)行相應(yīng)的響應(yīng)。(如圖1)
3.用于抓取的握拳手勢(shì)。當(dāng)使用者在瀏覽衣櫥的時(shí)候,需要上拉或者下拽。在使用者將手握拳抬起或者放下手臂時(shí)會(huì)使得屏幕的內(nèi)容垂直滾動(dòng),是便于使用者確定瀏覽抓取點(diǎn)的設(shè)計(jì)。
三、虛擬衣物模型的建立
(一)衣物模型的選擇與建立
將衣物進(jìn)行分類,分為上裝、下裝和全身裝?;疽挛锏慕_^程如下:
一些簡(jiǎn)單的無袖裙裝、高跟鞋、短褲等,可以先建立一個(gè)類似的長(zhǎng)方體,根據(jù)具體需要修改參數(shù)(包括長(zhǎng)、寬、高,以及長(zhǎng)寬高上的分段數(shù)),然后將整體轉(zhuǎn)化為可編輯多邊形;之后選中不需要的面片刪掉,剩下的即基本形狀。然后用合適的、方便操作的選取方法選中所需要調(diào)整的關(guān)鍵點(diǎn),進(jìn)行位移上的推拉。除此之外,還可以使用修改器中的球形化、擠出、彎曲、扭曲、噪波等。
修改器調(diào)整好整體形狀以后,需要通過細(xì)化、網(wǎng)格平滑、nurms細(xì)分等來使得對(duì)象更加平滑,適當(dāng)?shù)卦黾拥螖?shù)可以達(dá)到更加滿意的效果,但迭代次數(shù)太高會(huì)導(dǎo)致電腦功率加大造成負(fù)擔(dān);最后可以適當(dāng)?shù)卦谌寡b上采用松弛修改器來增加垂墜感。
(二)解決衣物與試衣者緊密貼合問題
在使用者試衣的過程中,一定會(huì)移動(dòng)或者旋轉(zhuǎn)身體來體驗(yàn)所試的衣服穿上身的效果。所以衣物與身體的貼合度的解決方案是將所建的模型進(jìn)行截圖,并按照旋轉(zhuǎn)角度分幀來進(jìn)行圖片的保存。在與Kinect結(jié)合的時(shí)候預(yù)先對(duì)使用者的身體轉(zhuǎn)向進(jìn)行判斷,然后使用相對(duì)應(yīng)的圖片對(duì)使用者相應(yīng)的身體部位進(jìn)行貼圖處理。(如圖2)
四、基于深度攝像頭的虛擬試衣系統(tǒng)的設(shè)計(jì)
(一)衣物的分類及它們與控件之間的對(duì)應(yīng)關(guān)系
首先將衣服分為三類:TOPS,PANTS,TOPS,分別表示裙裝、下裝、上裝。KinectRegion里面不同的KinectTileButton代表不同的衣服,通過按鈕上的LABEL屬性獲取當(dāng)前用戶選擇的衣服類型,三種不同的衣服屬性分別對(duì)應(yīng)三張待替換的圖片IMAGE控件。
(二)衣服與待替換的圖片的關(guān)系
PANTS以hipcenter的坐標(biāo)為參考點(diǎn),即PANTS圖片的左上角與hipcenter的映射坐標(biāo)對(duì)齊。
TOPS和DRESS以shoulderLeft的坐標(biāo)為參考點(diǎn),即TOPS和DRESS圖片的左上角與shoulderLeft的映射坐標(biāo)對(duì)齊。
另外,當(dāng)選中某一衣服時(shí),程序通過獲取屬性類型,調(diào)用后臺(tái)準(zhǔn)備好的相應(yīng)的衣物說明信息,當(dāng)用戶試穿該衣服時(shí),衣服信息將通過WPF相關(guān)組件的功能顯示在屏幕右方的一塊panel上。至此為止衣物信息獲取結(jié)束。
(三)用戶狀態(tài)信息獲取
當(dāng)前用戶狀態(tài)的判斷方法:Joint類型可以獲取用戶骨骼的坐標(biāo)信息。
根據(jù)左右肩膀骨骼Z值,來判斷此時(shí)人體究竟是左側(cè)更靠近屏幕還是右側(cè)更靠近屏幕,即向右轉(zhuǎn)還是向左轉(zhuǎn)。判斷結(jié)果將影響我們從界面里看到的所試穿衣服的角度。
當(dāng)用戶選擇要試用的衣物時(shí),衣服就會(huì)以適當(dāng)?shù)慕嵌葴?zhǔn)確舒適地貼合人體,達(dá)到良好的試衣效果(如圖3)。
五、總結(jié)與展望
隨著科技的進(jìn)一步發(fā)展與人們更快節(jié)奏的生活,我們項(xiàng)目小組的同學(xué)都認(rèn)為虛擬試衣這個(gè)課題還有很大的發(fā)展空間。為人們提供更加高效便捷的購(gòu)物環(huán)境與全新的生活方式。
參考文獻(xiàn):
[1]余濤.Kinect應(yīng)用開發(fā)實(shí)戰(zhàn):用最自然的方式與機(jī)器對(duì)話[M].北京:機(jī)械工業(yè)出版社.