Profile - TW008


TW008

AR-based Virtual Fitting

國立台灣大學
電機工程學系


Finals


[print]


Project

Name of Project:AR-based Virtual Fitting

Contest Advisor

Name:簡韶逸

Members

No.Name
1蔡博安
2王鼎鈞
3郭育昕

Project Paper - view as Preliminary(2011/07/21), Final(2011/11/01), Draft, Latest

1. 設計介紹 (Preliminary Paper)

 

1.     前言
隨著3C產品的日益普遍,消費者的購物方式日新月異。一種完全不同類型,稱為「擴增實境」(Augmented Reality, AR)的使用者介面,對未來購物的發展以及我們與商品的互動,都將有更深遠的影響。AR指的是會把虛擬資訊加到使用者感官知覺上的電腦顯示器,將電腦的虛擬資訊疊合到現實世界,讓我們在正確的時間正確的地點取得〈感官的〉正確資訊。
 
目前已知的HMD〈光學式透視&視訊式透視〉,醫療影像投影,建築物標籤,地圖,遊戲〈採地雷/大富翁〉,設備維修,醫療輔助,救援系統,軍事,導覽,遊戲等等,然而AR應用在衣物消費介面上的卻少之又少,原因是人體細微的差異及其立體感不容易藉由單方向的攝影機來捕捉並辨識。未來消費者介面依舊將朝著擴增實境(Augmented Reality) 邁進,以帶給消費者嶄新的消費體驗與方便性。AR應用有:
2.     設計介紹
本產品藉由雙攝影機的方式,以達到讓使用者有別於以往傳統的試鞋過程,省去穿脫本身鞋子的時間與精力,就能夠看見自己試穿新上市鞋子的模樣。使用時消費者可從螢幕上看到可試穿的鞋款,藉由第一個鏡頭在前面捕捉人的動作,可以輕鬆的在遠端選鞋,且可在投影幕上看見自己穿上新鞋的模樣。第二鏡頭能從拍到的畫面辨識出鞋子的位置及腳的角度,依此對畫面做適當的改變,並可依消費者所需的場合更換背景並搭配鞋子的解說,以達到逼真且客製化的效果。更進一步的可以讓擁有本系統使用者在家裡就能夠換穿不一樣的鞋子,達到前所未有的消費者介面。     
 
3.      應用領域
實體銷售通路:
  一般實體銷售通路,如百貨公司的品牌商,可藉由本產品的輔助,減少櫃位的租用空間及倉儲空間,因為本產品佔用空間相對於一般商店而言來的少,故可帶來顯著的經濟效益。
 
虛擬銷售通路:
  本產品除了可應用於一般商店外,還可和網路購物結合,更進一步可與社群網站如Facebook等結合,使得使用者能夠在家裡試穿鞋子後並給予評價,也可即時得知商品的熱門程度、在周遭好友眼中的評價,甚至可觀看別人試穿的圖片或上傳自己的圖片,應用範圍廣泛。
 
廣告公關公司:
  藉由本產品的幫助,模特兒能輕易地換上不同廣告商品,自然地展現其特色,同時藉由背景與解說的輔助,許多需要後製的部分變得輕鬆許多。
 
4.      目標使用者
    從以上介紹可知,產品銷售商使用本產品可以省下許多鞋櫃與試衣間的空間,大幅減少商店的面積,使得空間的利用更有效率。對於喜愛網路購物的消費者,也可以此產品隨心所欲地試穿而不必至實體商店,讓購物的過程更加省時而便利。只要是需要購鞋的民眾,此產品定然在其生活中扮演不可或缺的角色。
 
5.使用Altera DE2 多媒體平台進行設計的原因     
a.      易於開發的平台:透過Quartus軟體,可以輕鬆利用硬體語言(verilog)來達成設計團隊所要的目標,同時能夠使用許多IP讓諸多功能得以實現。
b.      完善的硬體設備:擁有大容量的SDRAM、高速的SSRAM及具備電腦控制的FLASH讀寫介面,讓我們能有效率地管理及利用記憶體空間。再加上500萬畫素的高畫質鏡頭,讓我們天馬行空的設計得以實現。
c.       具有高效能的運算:AR的實現有賴於快速的辨識環境與使用者的變化以及準確的疊合資訊至正確位置,然這兩項要求都必須有快速的運算才能達成。Altera DE2提供高速運算的CycloneII core,讓AR嚴格的要求能夠達成。
 
6.  市場同性質產品研究    
   在設計此產品的過程中,我們同時調查了市場上具有相對概念的商品,如ConverseI-phone上的APP,以及Android的部分APP。大部分的商品都是配合手持裝置來表現AR的概念,然而手持裝飾最大的缺點是其影像顯示沒有辦法達到等身比例的顯示,即無法表現試穿的感覺,同時手持裝置大多昂貴且運算多半不是花在功能的實現而是維護其作業系統效能。
   AR-based Virtual Fitting使用DE2-70DE2即能實現相同的功能與性能,且能配合投影機達到等身比例的試衣效果,這是因為我們的設計使用大量的硬體電路來提升效能與流暢度,同時DE2本身就支援VGA的顯示,故能與市場上商品做出區隔,開發出需求不同的使用者。
 
(Revision: 9 / 2011-08-26 15:45:48)

2. 功能描述 (Final Project Paper)

功能描述

 

這次所設計的產品主要可劃分成兩大區塊(A) DE2 (B) DE2-70以及溝通此兩塊板子的線路。DE2的部分支援了語音說明、影像辨識及環境校正功能,而DE2-70除了提供影像辨識及環境校正功能外,另外還多了記憶體的讀寫、VGA顯示和影像合成。

 

(A) DE2:

(1)影像辨識及校正:

利用位於試鞋台下方的鏡頭,捕捉在試鞋台上腳移動而跟著移動的紅色及藍色的貼紙,並隨著環境的不同,可以藉由Switch來對顏色做不同門檻值的調整,以正確的辨識出紅色及藍色,而辨識完畢後計算兩貼紙的相對位置,將計算的結果經由GPIO傳送到DE2-70做影像合成的依據。

 

 

 

        (2)語音說明:

        藉由DE2-70回傳使用者所選的鞋款後,將存放在FLASH中事先錄好的鞋子說明檔,利用

        FPGA上的Audio Codec將其播出,此部份是利用實驗中所設計的錄放音機加以更改而完成

        的,並隨著不同的鞋款播放適當的說明,此說明內包含了此雙鞋子的資訊,讓使用者在試

        穿的過程中,亦可以輕鬆地對此雙鞋有更多的了解,也使我們的產品達到User-friendly的概

        念。

 

 

 

 

(B) DE2-70:

        (1) 手部影像辨識:

        使用者在遠方利用手上的色紙,選取喜愛的鞋款,利用前方五百萬像素的鏡頭去捕捉使用

        者手上的色紙,辨識出所選定的鞋款為哪雙,而由於辨識的環境因地而異,故採用的色紙

        以較不常見的顏色作為辨識的對象,校正的方式同上述DE2的方式,最後將結果用GPIO

        傳至DE2以放出適當的說明

  

 (2)    記憶體的讀寫:

由於事先將鞋子的圖檔存入FLASHSD Card中,藉由手部影像辨識出哪雙鞋款後,將從這些記憶體中讀出該鞋款一系列不同角度的圖檔至SSRAM存放,並利用SSRAM高速的操作頻率,達到之後影像合成時所要求的real-time

 

(3) VGA顯示及影像合成:

利用前方的鏡頭,捕捉使用者試穿鞋子的畫面至VGA上顯示,而利用DE2所計算回傳的資訊,從SSRAM中挑選適當角度的鞋子做影像合成,而影像合成的基本原理即是將圖片跟鏡頭所拍攝的畫面做結合,但由於鞋子是不規則狀,所以除了我們用一個最小的矩形方塊來做合成外,在圖檔的處理過程中,我們利用1-bit來存是否有鞋子的存在,我們利用多出來的1-bit的真假值來告訴板子決定要不要做影像合成的動作。

 

 

 

 

 

(Revision: 5 / 2011-08-28 20:16:52)

3. 效能參數 (Final Project Paper)

效能參數

使用參數:

1.      顯示用VGA :
1280x1080 pixel, 16bit/pixel, 108Mhz clock rate, 40 frame/sec

2.      辨識用VGA :
640x480 pixel, 16bit/pixel, 25Mhz clock rate, 60 frame/sec

3.      顯示用鏡頭 :
500 megapixel, 30 bit/pixel, 2560x2160 full resolution

4.      辨識用鏡頭 :
130 megapixel, 24 bit/pixel, 640x480 half resolution

5.      DE2-70 Memory :
Dram 1: 133Mhz clock rate, 32MB
SSram: 108Mhz clock rate, 2MB
Flash: 12.5Mhz clock rate, 8MB
SD card: 100Mhz clock rate, 4GB

6.      DE2 Memory :
Dram: 133Mhz clock rate, 16MB
Flash: 12.5Mhz clock rate, 2MB

7.      Compile result :

 

可達效能:

1.      鞋底辨識需時 = 辨識用VGA frame time = 0.0167 sec

2.      動態辨識需時 = 顯示用VGA frame time x 10 = 0.25 sec

3.      Refresh顯示需時 = 鞋底辨識需時 + 顯示用VGA frame time = 0.2667sec

4.    更換鞋款需時
(1.from Flash) = Flash 讀取2MB時間 +動態辨識需時 = 1.25 sec
(2.from SD Card) = SD card
讀取2MB時間 +動態辨識需時 = 0.75 sec

不同環境鞋底辨識效果比較:

 

我們以六張圖來檢視系統光源(平台下燈光)與環境光源(一般日光燈等)對辨識系統的影響

 

1. 平台系統光源的差異:

 

由左至右分別為正常系統光源、無系統光源、不均系統光源在正常環境光源的情況下

可以發現系統光源對於鞋底辨識系統影響非常大,如果沒有好的系統光源,鞋底辨識的部分幾乎沒有辦法正確的運作,是故本系統在使用前必須確定系統提供的光源與原本設計類似或相同,才能發揮其功能。

 

 

 

上圖由左至右分別為正常環境光源、不均環境光源、無環境光源在正常系統光源的情況。

比較後可發現本設計對於環境的依賴度極小,對於不一樣的環境均能表現出正常的辨識能力,進而維持整體系統功能。

 

 

(Revision: 7 / 2011-08-28 21:17:37)

4. 設計架構 (Preliminary Paper)

設計架構簡介

要達到虛擬試衣鏡的效果,至少要有下列四項功能:具有多樣的產品供選擇、辨識使用者的雙腳開合角度與位置、藉由雙腳開合角度與位置決定圖片表現的角度與大小、切割產品圖片並將其與使用者目前的樣子結合。
 
本產品的實體架構有一個試鞋台,消費者將在腳底貼上紅藍兩色的貼紙以供第二鏡頭辨識,再將腳放上試鞋台,底下的第二鏡頭藉由辨識出兩點的相對位置和在台上的位置,計算出腳旋轉的角度以及位置,藉由DE2GPIO將結果輸出至DE2-70上。而DE2-70根據使用者在觸碰面板上的選擇,將事先儲存在FLASHSD Card的同鞋款不同角度的事先處理的圖片存入SSRAM,利用DE2計算傳入的結果,適當的從SSRAM選擇圖片與第一鏡頭拍到的消費者正面照做最合適的結合。

圖一為使用者流程圖,圖二為系統流程圖,圖三為硬體架構圖。

                使用者流程圖                      

   圖一 


系統流程圖

                              DE2                              DE2-70   

 

            圖二

Recognition

辨識紅點與藍點的位置

Computation

計算腳的角度、位置

Audio Codec

播放鞋款解說

Hand Remote Control

選擇鞋款

 

 


 

硬體架構圖        

.

 

   圖三

 

 

 


(Revision: 12 / 2011-08-28 20:17:33)

5. 設計方法 (Final Project Paper)

設計方法:

 

一、實現設計步驟

 

1.      完成各硬體、記憶體模組driver

2.      完成鞋子外型的圖片與人物實境結合

3.      完成影像二值化與鞋底辨識模組

4.      藉由鞋底辨識模組的輸出進而存取正確的圖片

5.      完成動作偵測並將其運用在人機介面之上

6.      完成SD card driver以提供可以輕鬆改變內容的鞋子資料庫

7.      完成語音產品解說並與人機介面結合

 

二、各特殊功能實作方法詳述:

 

1.      圖片貼合:
為了將一張方形的圖片只留下鞋型貼上實體影像中,我們將圖片的格式先做了前製,一般的.raw檔的圖片每一個pixel格式為:[RRRRRRGGGGGBBBBB]16bit,而我們將第一個 R改成了代表是否為為鞋子圖片的booleanT,其每一個pixel的格式為[TRRRRRGGGGGBBBBB],舉例而言,如下圖:


 

      紅色的部分booleanT就會為false,鞋子的部分booleanT就會為true
這樣的做法可以讓圖片在貼合的時候,根據 T的值來決定輸出到VGA的內容,以此達成鞋子圖與人的合成,其概念如下圖MUX

2.      鞋底辨識:
要能夠即時的根據使用者的動作不同,顯示出不同的鞋型圖來合成,就必須要能夠辨識出目前使用者腳擺放位置。我們的做法是讓使用者腳踏著一張鞋型的紙片,紙片前後各有一張紅、藍色貼紙,只要我們能夠辨識出色貼紙的位置,就能夠相對應的推算出腳目前的擺放位子。
而辨識色貼紙的位置的方法因為我們以硬體的方式實做,就必須考慮圖片資料是sequentialinput,其演算法如下:
將所有的pixel mapping40x30格的counter中,每一格有16x16pixel,當sequentialpixel超過我們所訂下的threshold,就讓該格的counter加一,等到一個frame跑完之後,找出最大的counter即找到該顏色貼紙所在的位置。概念圖如下:

 

3.      遠端虛擬觸碰選單:
遠端虛擬觸碰選單的呈現方式,是將可供選擇的鞋子的側面圖放在顯示螢幕的左方跟右方,以不遮蔽使用者為原則。當使用者的手移動到該鞋的位置,系統就會知道使用者想要試穿此雙鞋,並改變使用者正在試穿鞋型。概念如下:

 

 

而遠端虛擬觸碰選單的辨識方式有兩個,一個是基於色塊辨識(如鞋底辨識),另一個則是動態偵測。色塊辨識的做法與前面相同,故不贅述,動態偵測的演算法則是將兩個連續的frame儲存起來,然後經過侵蝕、膨脹後將鄰近的區域連續比對,若是比對全為不同,則當作是有動作。若是在放置選單的位置偵測到動作,就當作是使用者選擇了這雙鞋。

 

三、SOPC設計原因

 

1.      SOPC的重塑性:本設計發展性強,無論是圖庫更新、人機介面優化、支援不同的輸入裝置等未來可能的附加功能,都必須仰賴SOPC的重塑性,才能支援使用者回饋以及未來產業轉變等迫使產品做更新的動力。

 

2.      SOPC的整合性:本設計主要目的在完成AR-based的使用者體驗,然而要完成這種功能,必須同時擁有大量運算、快速存取記憶體、周邊硬體配合等多樣需求。SOPC的概念使得我們能夠將硬體drivercontrollerDSP全部整合在一個chip中,進一步讓許多功能得以快速又確實的實現。

 

 

(Revision: 4 / 2011-08-28 20:18:07)

6. 設計特點 (Preliminary Paper)

1. 擴增實境的達成:

   目前虛擬實境在虛擬購物方面依然無法達成真正的即時性,所欲試穿的商品圖片多半是固定在畫面中某處,需要使用者自己去配合靜態定死的圖,圖片本身不會根據使用者自身的獨特性或在畫面中的移動做任何調整,使得整個選擇的過程十分虛假,比不上真正試穿的效果。我們所希望達到的是真正能模擬試穿程的過程,根據一般使用者試穿時動作設計出近似真正感覺以期達到取代試穿實物的必要性。

 

        擴充實境為本產品核心概念,其首要目的在於能精確定位使用者的鞋子於畫面中的位置,並依此於豐富的角度圖片庫中選出不同角度鞋子的圖片進行貼圖,以達到逼真的效果。此外,為了能更真實符合即時畫面的場景,本產品會自我修正貼上之鞋子圖片的亮度與貼合位置,帶給使用者身歷其境的感受。

 

2.雙鏡頭達成辨識與疊合圖片:

  我們將最重要的兩個功能:辨識與疊合,分別在不同的FPGA上完成,以減少計算的latency並達到最快的運算速度。另外,不同鏡頭完成不同功能也讓辨識功能更準確與迅速,因為辨識鏡頭環境較單純,能夠輕易將圖片做三值化進而完成辨識,不用擔心環境差異或使用者差異造成的辨識困難,同時能夠給予第一鏡頭疊合位置的資訊。疊合的部分,則是會使用第一鏡頭拍到的影像算出平均亮度,再將鞋子的影像根據平均亮度作微調,增加逼真度。

 

3.全硬體語言實現高效運算:

  本系統使用的運算量適中但卻最需要real time來達到AR的概念,除了上述的辨識與疊合之外,從Flash memory或SD Card讀出圖片至SSRAM,更是需要快速的讀寫。為了完成此運算量並達到real time,我們採用全硬體語言來控制FPGA板上的IC元件。

 

4.遠端選單與解說功能:

  本產品注重使用者感受,故使用者在試穿的過程中,能在鏡頭捕捉的畫面中,直接遠端的用手來選取其他鞋款,使人機介面的呈現更為自然,同時在使用者試穿鞋子的過程中,根據使用者試穿鞋款的不同,會播放鞋子的解說,使得整個消費的過程顯得更加親切而周到。

  

如何使用DE2來實現設計特點:

        預先將大量的鞋子圖片以RAW檔形式存入Flash或SD Card中,並再使用者以手勢選擇鞋款後將對應的鞋款圖存入SSRAM以供VGA讀出。由於DE2具備高速的運算能力,使得辨識的過程十分迅速而能達到real time輸出。搭配的解說也需要audio codecDAC ADC來做數位音訊與類比音訊的轉換。以上諸多功能都恰巧需要DE2上擁有的完善功能,是故使用DE2完成本系統是最有效率的方式。

(Revision: 5 / 2011-08-25 23:43:15)

7. 總結 (Final Project Paper)

        從今年的三月開始修習系上所開設的數位電路實驗,並且決定報名由Altera所舉辦的亞洲創新設計大賽(Innovate Asia) 到現在進入複賽也已經過了將近快半年的時間,這半年的時間我們在這門實驗學到了許多,也非常感謝這次比賽帶給我們比其他同時修課的同學多一些的動力及衝勁。

        還記得一開始剛拿到DE2的時候,完全不知道這塊板子能提供我們怎樣的功能,又一想到在六月就要提出比賽proposal,更是徬徨無助。幸好隨著規劃的課程,我們一步一步的學習如何使用這塊板子,從一開始最簡單的操控LED燈的閃爍,到最後可以藉由看datasheet來控制板子上的一些IC,前前後後花了兩個月的時間,de了不少的bug並且將其記錄下來,以防之後再設計我們的產品時也會發生一樣的bug,我們也在實驗室度過了無數的夜晚,看了不少次的日出,在這期間我們除了依照規定的時間完成所規定的實驗,我們也會多去試試看這塊板子上其他的功能,並且跟隊友們腦力激盪出參加比賽的題目。

        跟其他的組別一樣,我們也想了許許多多天馬行空的產品,經過跟隊友們的評估,刪了不少的題目,最後集結我們三個人各自想要呈現這塊FPGA板子的功能,將其結合起來,產生出我們最後的題目。 雖然有了之前的訓練,但要實現出我們的產品也幾乎是從零開始,看了好多板子上ICdatasheet,寫了不少的Controller,也改了好幾次的設計架構,不外乎就是要讓我們的產品更加的完善,經過了一兩個月的衝刺,目前我們的產品AR-based Virtual Fitting即將完成,雖然跟一開始那樣天馬行空的想像還有段差距,但是對我們來說,這個產品已經實踐了我們所要表現的概念了。
 
        最後,我們非常的感謝能有機會參加這次的比賽,在這不僅讓我們的作品有了認同,在過程中,也讓我們同組的組員感情更好,更學會要如何的團隊合作,創造出在大學時期一同比賽的珍貴回憶。
(Revision: 4 / 2011-08-25 23:59:08)
�加這次的比賽,在這不僅讓我們的作品有了認同,在過程中,也讓我們同組的組員感情更好,更學會要如何的團隊合作,創造出在大學時期一同比賽的珍貴回憶。
(Revision: 4 / 2011-08-25 23:59:08)