Profile - TW009


TW009

Makeup Simulation System

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


Finals


[print]


Project

Name of Project:Makeup Simulation System

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)

A.      設計目的

建構一模擬化妝系統,使用者由相機輸入臉部素顏照片,經由系統的邊界偵測,定位出五官的位置,同時配合使用者微調,能精確存取臉部眉、眼、口、鼻的位置,接著使用者可以選擇自己想嘗試的化妝品型號與顏色,經由影像處理,模擬出上妝後的樣子。 

B.      應用領域

多數品牌化妝品專櫃投入大量人力,讓專櫃小姐為消費者上妝、提供試用,但這樣複雜的程序不免衍生出一些問題。本作品即是為解決這些問題而設計,主要用來替代化妝品專櫃繁雜的試用程序,進一步可以發展作為影像處理方面的應用,及客製化個人專屬彩妝模擬系統。

C.      目標使用者

本成品目標使用者為廣大的女性化妝品消費族群,其價值在於不必進行繁雜的化妝程序即可模擬出上妝後的樣子,對於消費者來說可以省去塗塗抹抹的時間及在臉上上妝卸妝的麻煩,對化妝品公司來說則能省下麻煩的試用程序進而節省人力資源及試用品的成本。其所支援的功能可以應用在各大百貨通路上的化妝品專櫃或是個人化彩妝模擬,經由各家廠商化妝品顏色的資料庫建立,便能發揮強大的功用。

 

(Revision: 6 / 2011-06-13 18:16:50)

2. 功能描述 (Final Project Paper)

Makeup Simulation System 此一系統利用D5M擷取人臉部影像之後進行影像處理,利用使用者手動設定臉部的定位點,再加上影像的邊界偵測,找出五官的位置,並提供使用者微調其結果;將此一資訊儲存之後,再與原圖影像作比較,輸出模擬的化妝結果圖。 各功能概述如下:

A.     相機擷取與影像儲存

根據使用者的設定選擇將CCD所擷取到的訊號串流送入SDRAM儲存。

為節省SDRAM空間,我們會將CCD所擷取到的RGB資訊壓縮後再儲存。

B.     影像讀取與顯示

SDRAM中的資料串流讀出並顯示於LTM上。

C.     觸控板螢幕及五官偵測

先讓使用者手動設定眼睛中心點、嘴唇上緣以及眉毛的位置,再加上經過邊緣偵測處理的資料判斷五官的位置並顯示於螢幕上,並提供使用者微調。

D.     五官資訊儲存與應用

將前一項所獲得的資訊儲存於SDRAM中以供影像處理時使用。

E.      資料讀取與結果輸出

根據所儲存的五官資訊去判斷各個部位的變色與否或者是要上的顏色,並將結果輸出於LTM

 

(Revision: 4 / 2011-06-13 18:31:51)

3. 效能參數 (Final Project Paper)

A.      編譯資訊

首先我們將我們所使用到之Logic elements個數以及相關編譯資訊列出,下圖為經由Quartus II 編譯後之系統資源使用情形:

B.      拍攝光線以及偵測臨界值調整對於五官邊界偵測之影響

 

       下圖為在昏暗光線下所拍攝之臉部照片,上排為在不同偵測臨界條件下所得到之面部邊界偵測結果,下排則是對應的五官邊界點偵測結果以及隨之畫出的拋物線。臨界條件值由左向右遞減,故最左圖幾乎很少區域符合臨界條件,呈現近乎白色,且下排之偵測結果為無法找尋到任何五官邊界點。由此可看出偵測臨界條件對於偵測結果之影響。

 

 

 

 下圖則是在較光亮光線下所拍攝之臉部照片,上排為在不同偵測臨界條件下所得到之面部邊界偵測結果,下排則是對應的五官邊界點偵測結果以及隨之畫出的拋物線,同樣臨界條件由左向右遞減。觀察下排邊界點偵測結果,可發現較明亮光線下之結果較準確

 

 

C.      記憶體使用情形

flash : 一張圖片800*480 pixel之圖片會使用flash 13.73%之容量,共寫進五張,故使用整體之68.65%記憶體容量。

SSRAM: 一張圖片800*480 pixel之圖片會使用SSRAM 73.24% 之容量,一次寫入一張,故使用整體之73.24% 記憶體容量。

 

 

(Revision: 4 / 2011-08-30 11:26:56)

4. 設計架構 (Preliminary Paper)

A.      硬體設計模擬方塊圖

 

本系統主要分為以下幾個區塊:

(a)   輸入端:

1.      Switch and Key

2.      LTM 觸控面板

3.      D5M 相機

(b)   輸出端:

1.      LTM LCD

2.      VGA

(c)    資料處理:

1.      FPGA板上的SDRAM:存取臉部相片、邊界偵測後之五官位置。

2.      FPGA板上的FLASH:存取系統開機介面以及選單圖片資訊。

3.      FPGA板上的SSRAM:依照需求將FLASH中資料讀出再傳給LTM。

3.      FPGA板上的CPU:用來進行邊界偵測、拋物線五官近似運算、色彩塗抹演算法、及其他影像處理。

 

 

硬體設計模擬方塊圖

B.      軟體流程圖

 

 

 

系統一開始的畫面以及最後妝容色彩選單的部分是一開始即存在flash內,經由ssram_controller在指定的時刻讀出並傳入touch_tcon以顯示在觸控螢幕上,並讓使用者可以經由觸控螢幕選擇需要的化妝品顏色。
 
   使用者影像經攝影機捕捉影像後,進入CCD_Capture module並經過RAW2RGB module將圖片轉為RGB 資料,並經由Sdram_Control_4Port sdram0存入SDRAM 0中。變數Read_DATA為SDRAM所儲存之資料,其中R,G,B資料分別傳入wDISP_R,wDISP_G,wDISP_B變數中,此資料為原圖,並經由觸控螢幕輸出。
 
    另一方面READ_DATA經由Sobel以及Dilation,會轉變成為僅有邊界且消除雜點之圖像,經過簡單的判斷簡化後會轉為資料black傳入touch,再經由尋找五官邊界點之演算法找出各邊界點,並由parabola module畫出經過各點之拋物線以作為五官之邊界線。
 
    使用者經由觸控螢幕所顯示之原圖以及五官邊界線,由於adc_spi_controller module能夠即時回傳使用者觸碰點之位置,此位置經由touch module可以改變觸控點位置進而改變五官邊界線形狀,故使用者可以微調觸控點,使邊界線符合五官輪廓。微調完成之資訊則傳入Sdram_Control_4Port sdram1,SDRAM 1 中所儲存之資料包括各pixel是否需更改以及變動方式。
 
    接著將wDISP_R,wDISP_G,wDISP_B傳入VGA_Controller呈現使用者素顏的面貌,使用者完成色彩選擇後,VGA_Controller則會讀取經過Smooth以及美白功能的資料讓使用者呈現較好的膚質,並加上由sdram1儲存的資料以判斷需要變動的pixel加以更動,模擬出使用者化妝後的面貌,成為make-up simulation最終之結果,並經由VGA輸出呈現給使用者。

 

 

 

(Revision: 3 / 2011-08-29 20:07:54)

5. 設計方法 (Final Project Paper)

 

A.      邊界偵測:

利用Sobel detectionDilation演算法進行邊界偵測,利用此兩種邊界偵測得出的結果來偵測出輪廓點,方法如下:

a.      首先使用者會先經由LTM進行概略的眼、唇、眉定位

b.      循所定位的線上開始找尋輪廓點,示意圖如下,將找到的點座標設定為各個輪廓的座標

 

B.      拋物線近似及輪廓各點微調

利用拋物線近似輪廓線條,如下圖,以橘色點為拋物線頂點,黃色點為拋物線上一點,代入LTM上的XY座標,計算  ,在LTM顯示器上顯示拋物線供使用者微調。

這部份我們提供使用者動態的微調,利用觸碰改變單點的位置,並由DE2-70及時計算出拋物線各參數,使拋物線能隨著點的位移一起改變,每兩點皆形成一拋物線,總供需支援10條拋物線的即時運算,這部分大量使用到DE2-70優良的計算能力。

 

 

C.      美白柔膚

依照RGB分佈,調整增加RGB值、將臉部依照顏色明暗分成多個不同區塊,顏色較深的區塊亮度增加較多,顏色較淺的部分亮度增加較少,這樣可以有效的減少膚色不均的問題,及改善皮膚光滑度。

D.      色塊區域

彩妝主要分成三個部分:眼妝、腮紅、唇彩。這三個部分都會依位置而有不同的色彩分布,我們將上妝部位切割成區塊,後面將一一介紹其切分方式及色彩分布。

每一個pixel會有一個16 bit的位置資訊分布如下:

 

 

此資訊會被存到SDRAM1,在上妝時此資訊會被讀出使用。

 

a.      眼線眼影

循著拋物線近似之弧度在垂直方向和水平方向各切割成七部分,每格會賦予它適當的色彩點密度、色彩亮度、透明度及眼影亮片分布。

下圖的數字為密度色彩點密度的示意圖,最底層為眼線的部分,其上開始為眼影,越靠近眼睛(數字越小)色彩點密度越高、顏色越深、透明度越低,呈現自然的眼妝效果。

 

 

 

 

b.      腮紅

臉頰腮紅以同心圓方式由圓心向外區分成17個區塊,中央為色彩最深透明度最低的地方,向外依序使顏色變淺,並增加其透明度。

 

 

 

c.      唇彩

為了讓唇彩邊界部分線條柔和自然,在嘴唇外圍加了四層透明度向外漸增的區塊,其中,在光澤感的部分,我們設定一個恰當的臨界值,讓原本唇色較亮的地方RGB改為白色,營造出唇彩完美的光澤感。

 

(Revision: 6 / 2011-08-30 10:37:16)

6. 設計特點 (Preliminary Paper)

A.      呈現真實彩妝效果

為了提供與一般市面上模擬彩妝商品不同的彩妝模擬體驗,我們致力於呈現彩妝的真實性,但這樣的真實效果不是輕易在指定範圍中填色就能夠完成。為了增進此彩妝模擬系統的真實性,在彩妝填色方式研究階段,我們分別拍攝同一人化妝前以及化妝後的臉部特寫照片,並且將照片轉換為RGB資料,分別將眼睛、臉頰、雙唇部分進行妝前妝後的比較,以其找出最能夠呈現真實彩妝之填色方式。此外,我們提供使用者調整其希望的彩妝濃度,為了呈現適當而自然的彩妝色彩,我們也分別研究較濃彩妝以及較淡彩妝在臉部各局部彩妝的比重是否相同(例如眼妝變淡的程度應較唇蜜來的明顯)、比例該如何調整,而非由某種濃度,在各個臉部區域直接線性加深或變淺。

B.      個人化量身訂做

本彩妝模擬系統之使用方式為使用者拍攝臉部照片,並依據自己五官及臉型調整螢幕上所呈現的五官邊界,之後便可以依照使用者的臉型、五官進行彩妝模擬,即每一位使用者能夠得到量身訂作之彩妝位置定位,而得到最理想、符合個人的彩妝效果。而若欲將本系統做為個人專屬之彩妝模擬平台,本系統也支援記憶功能,使用者可以持續使用第一次拍攝且微調完成之照片,即可省去每次反覆調整之麻煩,兼具便利性及實用性。

 

C.      個人需求彈性調整

除了個人化的五官定位,我們還提供人性化的彩妝選擇,使用者可以自由選擇哪些部分要畫、調整各部分之彩妝顏色以及妝容的濃淡,以其達到使用者之需求。

D.     自動偵測,以減少使用者調整麻煩

為了精準定位使用者臉部五官位置,我們必須進行使用者定位臉部五官邊界之程序,但為了減少使用者在使用時調整所花費之時間,我們請使用者手動定位前,便先行對照面進行五官定位偵測,並將結果顯示在螢幕上再供使用者進行微調,如此所需調整之部分便能大大減少,以增進本系統使用的便利性及效率。然而在自動偵測部分,容易受到照片雜點之影響,而使得結果不準確甚至造成很大之差異,因此偵測時,各項條件都需仔細考量,且進一步利用自行建構之圖像平滑功能來減少雜點,以增進偵測之準確度,以期提高整體系統之便利性。

E.      利用DE2-70效能

由於本系統目的在於處理面部細節,需要大量曲線計算,而DE2-70所具有的大量運算單元,能夠讓我們得到良好的運算結果,必須要使用DE2-70。而為了讓使用者有方便的使用者介面,必須有簡單使用且即時反應之人機介面,LTM觸控面板套件讓使用者可以用觸控式螢幕與系統溝通,再藉由DE2-70提供之VGA介面將過程及結果顯示提供給使用者。

 

(Revision: 2 / 2011-06-13 18:24:43)

7. 總結 (Final Project Paper)

很開心能夠參加ALTERA今年所舉辦的創新設計大賽,這一路走來從對ALTERA產品DE2等完全陌生,到現在能夠完成我們的作品,我們不斷地在學習成長。在決定參加比賽後,掙扎了好久才決定好這個題目---化妝模擬系統,不過這個題目真的非常適合我們三個女生的組合,相信在這樣一個男性遠多於女性的領域中,應該可以造成一點驚豔。

在實作這個系統的時候,真的遭遇到許多困難,雖然過程有點辛苦,但是能從解決問題的過程中學習也的確是十分珍貴的經驗,真心認為當初決定要報名Innovate Asia是一項非常正確的決定,相信這個經驗將對我們未來無論在做任何決定或面對任何問題都會有所幫助,最後感謝一路走來所有幫助過我們的老師、助教、同學,也感謝ALTERA能提供這樣難得的機會。

 

(Draft / 2011-08-30 10:03:47)
t; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin">能提供這樣難得的機會。

 

(Draft / 2011-08-30 10:03:47)