專利名稱:虛擬試衣系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及數(shù)字化設備領域,尤其涉及一種虛擬試衣系統(tǒng)。
背景技術:
人們在商場購買服裝時,往往會反復試穿,以滿足自己的審美需求。但是,這樣不僅會造成顧客時間的浪費和購物效率的降低,而且冬季冷、夏季熱,給顧客帶來諸多不便。隨著電子商務和計算機科學的發(fā)展,網(wǎng)上服裝店嘗試采用虛擬三維試衣系統(tǒng)來進行虛擬試衣,這種方式有效的解除了顧客對網(wǎng)購衣服不合身的憂慮。然而,目前在實體購物商場中,還沒有出現(xiàn)完善的虛擬試衣系統(tǒng)供顧客進行快捷、有效的試衣。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是提供一種虛擬試衣系統(tǒng),使得虛擬衣物能夠精準的匹配到用戶的移動影像上,讓試穿衣服的效果達到百分之百的真實,便于顧客在實體購物商場中進行快捷、有效地試衣。另外,還可以通過此試衣系統(tǒng)進行商品展示。為了實現(xiàn)上述目的,本發(fā)明采用的技術方案是一種虛擬試衣系統(tǒng),包括體感設備,用于實時獲取用戶的標識信息;體感設備控制器,從體感設備中獲取實時數(shù)據(jù),對該數(shù)據(jù)進行處理,并將識別到的人物信息以骨骼的形式返回;姿勢識別模塊,獲取從體感設備控制器返回的骨骼信息,根據(jù)姿勢識別算法,分析出用戶在體感設備前做出的各種靜態(tài)動作;手勢識別模塊,通過從體感設備控制器返回的連續(xù)數(shù)據(jù),分析出用戶在體感設備前做出的動態(tài)動作;骨骼綁定模塊,將虛擬衣物上的關鍵點與用戶骨骼信息一一對應,以獲得虛擬試衣的效果;深度匹配模塊,控制虛擬衣物與體感設備彩色數(shù)據(jù)的壓蓋關系,以獲得真實的視覺表現(xiàn);邏輯模塊,為用戶提供操作指示和反饋用戶界面;渲染模塊,負責向外部顯示器輸出信號。所述姿勢識別模塊獲得骨骼數(shù)據(jù)后,遍歷所有的姿勢,在遍歷每一個姿勢時,首先初始化變量,設置成功匹配的骨骼數(shù)為零,然后依次遍歷該姿勢中所有的骨骼,在遍歷過程中通過點乘用戶當前骨骼向量與姿勢骨骼向量,得到骨骼夾角數(shù)據(jù),如果夾角在該姿勢定義的誤差范圍內(nèi),并在姿勢定義的時間內(nèi)保持此姿勢,視為這根骨骼匹配成功;該姿勢中所有骨骼都遍歷完畢后,則檢測成功匹配的骨骼數(shù)是否等于需要匹配的骨骼數(shù),如果是則表示當前姿勢通過檢測,跳出姿勢檢測程序,否則表示檢測失敗,此時進入下一個姿勢的遍歷。所述姿勢識別模塊對姿勢的定義包括姿勢名稱,其用于區(qū)分不同的姿勢;必須通過的骨骼列表,當列表中的所有骨骼全部通過,則檢測通過;必須不通過的骨骼列表,列表中的所有骨骼全部沒有通過,則檢測通過;保持時間,在該姿勢定義的匹配時間以上檢測通過,則檢測通過。所述手勢識別模塊通過連續(xù)檢查最近20個緩存的手掌所在點的數(shù)據(jù),如果發(fā)現(xiàn)匹配則觸發(fā)識別事件并清空所有緩存點數(shù)據(jù)。
所述手勢識別模塊對手勢的定義包括手掌位置列表和識別間隔。所述手勢識別模塊通過遍歷緩存點數(shù)據(jù),并逐一檢測每個點的方向、位移、時間差是否符合要求,如果不符合則設置起始檢測位置為當前不符合要求的點的位置;如果符合要求,則從起始檢測位置遍歷到當前點位置,并逐一比較遍歷的兩點之間的長度與時間差,如果有任意一組匹配成功,則表示手勢檢測成功,退出程序,否則繼續(xù)遍歷后續(xù)的緩存點數(shù)據(jù)。所述骨骼綁定模塊對虛擬衣物的定義包括3D衣物模型,體感骨骼名稱-模型骨骼名稱映射表,衣物類別和模型肩寬,根據(jù)用戶左肩到右肩的距離來決定3D衣物模型的縮放,從而實現(xiàn)適應不同體型的人群。所述深度匹配模塊根據(jù)深度緩沖技術,比較每個像素的顏色信息和深度信息的值的大小,從而處理前后遮擋的順序。本發(fā)明帶來的有益效果為(I)產(chǎn)品體積適中,與傳統(tǒng)廣告箱大小類似,便于在商場、寫字樓、會所等公共場合使用。(2)采用姿勢識別和手勢識別系統(tǒng),用戶無需接觸設備即可完成各種操作,增強設備的使用安全性和耐久性。(3)系統(tǒng)界面設計合理,符合用戶一般操作習慣,能適應不同身高和體型的用戶。(4)軟件有很強的擴展性,方便商家進行信息的擴展和更新。(5)在商店使用虛擬試衣系統(tǒng),減少傳統(tǒng)試衣的繁瑣程序,提高了試衣的效率。(6)可以為商家提供更多的產(chǎn)品展示機會。將傳統(tǒng)的被動展示轉換為用戶主動參與,提高了展示的效果。
圖1表示虛擬試衣系統(tǒng)的結構;
圖2表示姿勢識別算法流程示意 圖3表示揮手識別算法流程示意 圖4為深度匹配算法流程 圖5為本實施方案中的一個典型界面;
圖6為骨骼位置和名稱示意 圖7為本實施方案中的系統(tǒng)王界面;
圖8為本實施方案中的操作動作的識別。
具體實施例方式下面結合附圖及具體實施例對本發(fā)明作進一步的詳細說明。本實施例的虛擬試衣系統(tǒng)由一個體感攝像頭和一套軟件系統(tǒng)組成。如圖1所示,虛擬試衣系統(tǒng)由以下部分構成體感設備,體感設備控制器;負責處理用戶動作識別的姿勢識別檢測和手勢識別檢測模塊;負責提供數(shù)據(jù)合成的深度匹配和骨骼綁定模塊;為用戶提供操作指示和反饋的用戶界面邏輯模塊;負責向外部顯示器輸出信號的渲染模塊。下面對各個模塊做詳細說明。(一)體感設備
體感設備采用體感攝像頭,體感攝像頭與傳統(tǒng)攝像頭有很大的區(qū)別,它包含一個普通攝像頭和一個由CMOS紅外傳感器組成的深度攝像頭。普通攝像頭提供和傳統(tǒng)攝像頭一樣的彩色視頻數(shù)據(jù)。而深度攝像頭通過黑白光譜的方式來感知環(huán)境純黑代表無窮遠,純白代表無窮近。黑白間的灰色地帶對應物體到傳感器的物理距離。它收集視野范圍內(nèi)的每一點,并形成一幅代表周圍環(huán)境的深度圖像。攝像頭以每秒30幀的速度生成深度圖像流,實時再現(xiàn)周圍環(huán)境。(二)圖像處理
體感設備控制器負責與外部體感設備建立連接,從體感設備中獲取實時的視頻數(shù)據(jù)和空間數(shù)據(jù),并對該數(shù)據(jù)進行初步處理,去除背景雜亂的數(shù)據(jù),將識別到的人物信息以骨骼的形式返回。該模塊負責處理從攝像頭獲取的深度圖像流,并尋找圖像中較可能是人體的移動物體。接下來處理模塊會對深度圖像進行像素級評估,來辨別人體的不同部位。由于計算量巨大,這一過程使用了預處理技術來縮短響應時間。處理的第一階段需要將人體從背景環(huán)境中區(qū)分出來,即從噪音中提取出有用信號,系統(tǒng)可以同時追蹤最多兩個使用者的全身骨骼信息。為了減輕后續(xù)計算的工作量,從深度圖中只提取與兩個使用者相關的深度數(shù)據(jù),其余背景數(shù)據(jù)將不再處理。第二階段是把前一階段提取的數(shù)據(jù)中的每一個像素都傳送進一個辨別人體部位的機器學習系統(tǒng)中。隨后該系統(tǒng)將給出了某個特定像素屬于哪個身體部位的可能性。比如,一個像素有80%的幾率屬于腳,60%的幾率屬于腿,40%的幾率屬于胸部。處理流程的最后一個階段是使用之前階段輸出的結果,評估每一個像素最終的歸屬來確定關節(jié)點。最終可以追蹤到14個人體的關節(jié),并生成一幅骨骼系統(tǒng)。另外在最終匹配階段還做了 一些附加輸出濾鏡來平滑輸出等特殊工作。(三)動作識別
姿勢和手勢是用戶與系統(tǒng)交互的主要方法,系統(tǒng)利用這兩個識別模塊實現(xiàn)系統(tǒng)輸入的功能。姿勢是指用戶在攝像頭前做出的某種靜態(tài)動作,比如左手上舉、右手平舉或雙手上舉等。姿勢識別是指利用姿勢識別模塊獲取從體感設備控制器返回的骨骼信息,根據(jù)姿勢識別算法,從數(shù)據(jù)中分析出用戶在攝像頭前做出的各種姿勢。手勢識別是分析從體感設備控制器返回的連續(xù)數(shù)據(jù),從這些數(shù)據(jù)中分析出用戶在攝像頭做出的動態(tài)動作,比如揮右手或揮左手等。其中,姿勢識別的原理為
一個姿勢通常是由多根骨骼組成的,所以骨骼識別是姿勢識別的基礎。通過點乘用戶骨骼向量與骨骼匹配向量,可以得到骨骼夾角數(shù)據(jù)。如果夾角在誤差范圍內(nèi),并且保持一定時間,就可以視為這根骨骼匹配成功。當姿勢需要的所有骨骼都匹配成功,則表示此姿勢匹配成功。判斷某根骨骼是否識別,由以下幾個數(shù)據(jù)決定1.數(shù)據(jù)可信度。體感設備傳入的骨骼數(shù)據(jù)可信度,在一定范圍內(nèi)則檢測通過。2.誤差區(qū)間。骨骼標準朝向與實際骨骼朝向之間的夾角在一定范圍內(nèi)則檢測通過。3.保持時間。在一定時間內(nèi)保持以上檢測都通過,則檢測通過。姿勢的定義如下1.姿勢名稱。用于區(qū)分不同的姿勢。2.必須通過的骨骼列表。列表中的所有骨骼全部通過,則檢測通過。
3.必須不通過的骨骼列表。列表中的所有骨骼全部沒有通過,則檢測通過。4.保持時間。在一定時間內(nèi)以上檢測都通過,則檢測通過。為了便于靈活添加新的姿勢,可以把以上數(shù)據(jù)以XML的形式來描述?!碢ose name=〃姿勢名稱〃 time=〃保持時間〃 break=〃是否打斷后續(xù)姿勢〃〉 〈!一必須通過的骨骼列表一>
〈Compatible〉
〈Bone name=〃骨骼名稱〃 axisX=〃骨骼標準朝向X〃 axisY=〃骨骼標準朝向γ〃axisZ="骨骼標準朝向Z〃 maxErr="誤差最大值〃 minErr="誤差最小值〃 conf=〃可信度
閥值〃 />
〈!一其他骨骼...—>
〈/Compatible〉
〈!一必須不通過的骨骼列表-_>
<NotCompatible>
〈Bone name=〃骨骼名稱〃 axisX=〃骨骼標準朝向X〃 axisY=〃骨骼標準朝向γ〃axisZ="骨骼標準朝向Z〃 maxErr="誤差最大值〃 minErr="誤差最小值〃 conf=〃可信度
閥值〃 />
〈!一其他骨骼...—>
</NotCompatible>
</Pose>
圖2表示姿勢識別算法流程示意圖。程序獲得體感設備傳入的數(shù)據(jù)后,更新當前捕獲的用戶,并獲得其骨骼矩陣數(shù)據(jù)。然后遍歷所有姿勢,初始化變量,設置成功匹配的骨骼數(shù)為零,接著遍歷姿勢中所有骨骼,使用點乘得到當前骨骼向量與姿勢骨骼向量的夾角。判斷這個夾角值是否在允許范圍內(nèi),以及當前骨骼數(shù)據(jù)可信度是否符合要求。如果不符合要求則跳出當前遍歷,并遍歷下一個姿勢,否則置成功匹配的骨骼數(shù)加一。如果所有姿勢及其骨骼都遍歷完畢,則檢測成功匹配的骨骼數(shù)是否等于需要匹配的骨骼總數(shù),如果是則表示當前姿勢通過檢測,此時可以跳出姿勢檢測程序。如果不相等的話則表示有骨骼檢測失敗了,此時進入下一個姿勢的遍歷。如果所有姿勢都遍歷完畢且沒有匹配的骨骼,則表示沒有檢測到任何匹配的姿勢,此時退出姿勢檢測程序并進入下一個檢測環(huán)節(jié)。揮手識別原理
姿勢識別在大多數(shù)情況下是非常有效的,但是缺點在于用戶必須在一定時間內(nèi)保持一種姿勢,在某些情況下不是很符合人的操作習慣。揮手識別就是用來解決這一問題的。揮手識別是通過揮動手掌來觸發(fā)識別事件,其核心技術就是不停地檢查最近η個緩存的手掌所在點的數(shù)據(jù),如果發(fā)現(xiàn)匹配則觸發(fā)識別事件并清空所有緩存點數(shù)據(jù)。我們定義了以下數(shù)據(jù)來進行揮手識別的檢測1.手掌位置列表。緩存了最近20個手掌位置數(shù)據(jù)。2.識別間隔。在觸發(fā)了一次識別后,通常需要間隔很短的事件才允許下一次識別,目的是防止連續(xù)觸發(fā)識別事件。
揮手的軌跡一般為近似的直線段,所以揮手姿勢由方向和速度兩個關鍵數(shù)據(jù)來決定,通過求向量夾角以及兩個點之間的距離和時間差,就可以判斷該點是否通過檢測,這就是單點檢測函數(shù)。不同揮手姿勢主要由不同的單點檢測函數(shù)來決定。以下是檢測揮手的步驟
1.設置“起始位置”為首位置;
2.從第二個節(jié)點開始,往后遍歷手掌位置列表,檢查每一個遍歷的節(jié)點;
3.檢測當前節(jié)點方向和速度是否匹配;
4.如果檢測通過則跳到第6步,否則跳到第5步;
5.設置“起始位置”為當前位置,并跳到第2步;
6.從“起始位置”開始遍歷手掌位置列表,一直到當前位置,并檢測當前位置與起始位置的距離和時間差,如果匹配則算揮手檢測通過。圖3表示揮手識別算法流程示意圖。遍歷緩存點數(shù)據(jù),并逐一檢測每個點的方向、位移、時間差是否符合要求。如果不符合則設置起始檢測位置為當前不符合要求的點的位置。如果符合要求,則從起始檢測位置遍歷到當前點位置,并逐一比較遍歷的兩點之間的長度與時間差。如果有任意一組匹配成功,則表示手勢檢測成功,退出程序。否則繼續(xù)遍歷后續(xù)的點數(shù)據(jù)。如果所有點都遍歷完畢還未匹配,則手勢檢測失敗?;谏鲜黾夹g定義以下幾種操作方式確定、返回、揮手選擇和懸停選擇。這幾個動作是使用體感攝像頭操作的基本動作。觸發(fā)確定動作表示用戶確認當前選擇,并觸發(fā)系統(tǒng)執(zhí)行用戶的選擇操作。觸發(fā)返回動作表示用戶取消當前的操作,并觸發(fā)系統(tǒng)返回前一個操作狀態(tài)或界面。選擇動作表不用戶在多個選擇項中標識出選中的一項。揮手和懸停選擇是兩種選擇的方式。揮手選擇時,系統(tǒng)在選項上提供一個選擇框,當用戶觸發(fā)揮手選擇動作后,系統(tǒng)將根據(jù)用戶的動作來移動選擇框。選擇框所在的選項就是用戶選擇的選項。懸停選擇是一種靈活和直觀的選擇方式,界面上提供可供用戶選擇的選項,當用戶把手移動到該選項上并觸發(fā)懸停選擇操作時,系統(tǒng)將執(zhí)行該選項對應的命令。操作動作的識別
確定與返回當用戶做出右手上舉的姿勢并保持O. 5秒,則觸發(fā)“確定”動作;當用戶做出左手上舉的姿勢并保持O. 5秒,則觸發(fā)“返回”動作。揮手選擇用戶揮手共有八種方式左手左揮、左手右揮、左手上揮、左手下?lián)]、右手左揮、右手右揮、右手上揮和右手下?lián)]。當用戶做出動作后,系統(tǒng)依賴揮手識別技術,從上述八種揮手中識別出用戶最終做出的動作。懸停選擇當用戶手掌移動到可選擇區(qū)域,在I秒內(nèi)保持不離開,將觸發(fā)懸停選擇動作。(四)骨骼綁定
用戶站在體感攝像頭前,數(shù)據(jù)由體感攝像頭獲取,經(jīng)過分析獲得用戶的骨骼信息,為了實現(xiàn)虛擬衣物能準確匹配到用戶骨骼信息之上,系統(tǒng)使用了骨骼綁定技術。該技術將虛擬衣物上的關鍵點與用戶骨骼信息一一對應,用戶在攝像頭前移動時,對應的虛擬衣物也會隨之移動,利用這種方法獲得虛擬試衣的效果。骨骼綁定是把3D衣物模型綁在人體骨骼上的技術,它允許衣物隨著身體的運動而運動,并且根據(jù)用戶肩寬來決定3D模型的縮放,從而實現(xiàn)適應不同體型的人群。通過“體感骨骼名稱-模型骨骼名稱映射表”,把體感骨骼的朝向、位置數(shù)據(jù),一一對應到模型骨骼。使模型骨骼與體感骨骼的矩陣相同,在圖像上得以與身體重疊,從而實現(xiàn)骨骼的綁定。體感骨骼名稱-模型骨骼名稱映射表如下所示
權利要求
1.一種虛擬試衣系統(tǒng),其特征在于,包括 體感設備,用于實時獲取用戶的標識信息; 體感設備控制器,從體感設備中獲取實時數(shù)據(jù),對該數(shù)據(jù)進行處理,并將識別到的人物信息以骨骼的形式返回; 姿勢識別模塊,獲取從體感設備控制器返回的骨骼信息,根據(jù)姿勢識別算法,分析出用戶在體感設備前做出的各種靜態(tài)動作; 手勢識別模塊,通過從體感設備控制器返回的連續(xù)數(shù)據(jù),分析出用戶在體感設備前做出的動態(tài)動作; 骨骼綁定模塊,將虛擬衣物上的關鍵點與用戶骨骼信息一一對應,以獲得虛擬試衣的效果; 深度匹配模塊,控制虛擬衣物與體感設備彩色數(shù)據(jù)的壓蓋關系,以獲得真實的視覺表現(xiàn); 邏輯模塊,為用戶提供操作指示和反饋用戶界面; 渲染模塊,負責向外部顯不器輸出信號。
2.根據(jù)權利要求1所述的虛擬試衣系統(tǒng),其特征在于所述姿勢識別模塊獲得骨骼數(shù)據(jù)后,遍歷所有的姿勢,在遍歷每一個姿勢時,首先初始化變量,設置成功匹配的骨骼數(shù)為零,然后依次遍歷該姿勢中所有的骨骼,在遍歷過程中通過點乘用戶當前骨骼向量與姿勢骨骼向量,得到骨骼夾角數(shù)據(jù),如果夾角在該姿勢定義的誤差范圍內(nèi),并在姿勢定義的時間內(nèi)保持此姿勢,視為這根骨骼匹配成功;該姿勢中所有骨骼都遍歷完畢后,則檢測成功匹配的骨骼數(shù)是否等于需要匹配的骨骼數(shù),如果是則表示當前姿勢通過檢測,跳出姿勢檢測程序,否則表示檢測失敗,此時進入下一個姿勢的遍歷。
3.根據(jù)權利要求2所述的虛擬試衣系統(tǒng),其特征在于所述姿勢識別模塊對姿勢的定義包括姿勢名稱,其用于區(qū)分不同的姿勢;通過檢測的骨骼列表,當列表中的所有骨骼全部通過,則檢測通過;不能通過檢測的骨骼列表,列表中的所有骨骼全部沒有通過,則檢測通過;保持時間,在該姿勢定義的匹配時間以上檢測通過,則檢測通過。
4.根據(jù)權利要求1所述的虛擬試衣系統(tǒng),其特征在于所述手勢識別模塊通過連續(xù)檢查最近20個緩存的手掌所在點的數(shù)據(jù),如果發(fā)現(xiàn)匹配則觸發(fā)識別事件并清空所有緩存點數(shù)據(jù)。
5.根據(jù)權利要求4所述的虛擬試衣系統(tǒng),其特征在于所述手勢識別模塊對手勢的定義包括手掌位置列表和識別間隔。
6.根據(jù)權利要求5所述的虛擬試衣系統(tǒng),其特征在于所述手勢識別模塊通過遍歷緩存點數(shù)據(jù),并逐一檢測每個點的方向、位移、時間差是否符合要求,如果不符合則設置起始檢測位置為當前不符合要求的點的位置;如果符合要求,則從起始檢測位置遍歷到當前點位置,并逐一比較遍歷的兩點之間的長度與時間差,如果有任意一組匹配成功,則表示手勢檢測成功,退出程序,否則繼續(xù)遍歷后續(xù)的緩存點數(shù)據(jù)。
7.根據(jù)權利要求1所述的虛擬試衣系統(tǒng),其特征在于所述骨骼綁定模塊對虛擬衣物的定義包括3D衣物模型,體感骨骼名稱-模型骨骼名稱映射表;衣物類別和模型肩寬,根據(jù)用戶左肩到右肩的距離來決定3D衣物模型的縮放,從而實現(xiàn)適應不同體型的人群。
8.根據(jù)權利要求1所述的虛擬試衣系統(tǒng),其特征在于所述深度匹配模塊根據(jù)深度緩沖技術 ,比較每個像素的顏色信息和深度信息的值的大小,處理前后遮擋的順序。
全文摘要
本發(fā)明公開了一種虛擬試衣系統(tǒng),它包括體感設備,體感設備控制器;負責處理用戶動作識別的姿勢識別檢測和手勢識別檢測模塊;負責提供數(shù)據(jù)合成的深度匹配和骨骼綁定模塊;為用戶提供操作指示和反饋的用戶界面邏輯模塊;負責向外部顯示器輸出信號的渲染模塊。本發(fā)明能夠使虛擬衣物精準的匹配到用戶的移動影像上,讓試穿衣服的效果達到百分之百的真實,便于顧客在實體購物商場中進行快捷、有效地試衣。另外,還可以通過此試衣系統(tǒng)進行商品展示。
文檔編號G06F3/01GK103049852SQ20121055387
公開日2013年4月17日 申請日期2012年12月19日 優(yōu)先權日2012年12月19日
發(fā)明者唐亮 申請人:武漢世紀炎龍網(wǎng)絡科技有限公司