Faceoff : Automatic Facial Feature Detection & Replacement
文獻探討(Relate Work)
Image inpainting, 2000年
影像修補的技術一直是許多影像應用中的主要部份,在Image inpainting這篇提出了演算法去復原被破壞的圖片,使用者選擇要復原的部分後,演算法會自動用其旁邊的區域去填補欲被復原的部份,一開始先填補最外圍的部份,依序不斷的往內填補,一直到復原的部份完全被填補完為止。
Missing Data Correction in Still Images and Image Sequences, 2002年
利用Texture synthesis的方式去填補靜態的圖片以及一串影像,利用被破壞的部份的旁邊區域去找尋相似的區域來去填補被破壞的部份,一直到填補完為止,如果從旁邊區域無法找尋到相似的區域,則擴大到整張圖的搜尋,尋找一個最似合的區域。
Graphcut Textures: Image and Video Synthesis Using Graph Cuts. 2003年
Graph Cuts是一個影像無縫接合的技術,這篇利用Graph Cuts來做影像跟影片的合成,當一個sample image要轉貼到一個Output Image上,會在接縫處找到一條最適合的縫去裁切,並且產生出一個新的Output Image,在此適合的縫就是用Graph Cuts去找出來的。
Interactive Digital Photomontage 2004年
將一連串的影像合成為一張單一的合成影像,在影像處理上叫”Digital Photomontage”,在這篇中,使用者先選擇要合成的部份,再利用Graph-cut在一連串圖片中找到適合的縫,將許多照片合成一張照片,儘可能降低人為的切割,以免造成不連續的切割線。
Seamless Image Stitching in the Gradient Domain 2004年
圖像的接合品質主要取決在接合圖像間的相似度以及接合縫的可見度,為了獲得好的接合品質,這篇利用了數個cost function來去做接合品質的評價,而這些cost function定義了Gradient Domain,裡面包含了影像的相似程度以及接縫處的明顯度,希望藉由cost function找出一個最好的縫來讓兩張圖接合的品質達到最好。
Poisson Image Editing 2003年
這篇利用Poisson equations,提出一個不同的方法來做影像區域的無縫處理,允許透明及不透明的來源影像無縫的放入到目標圖像中,並利用一連串的數學工具去無縫的修改影像的外觀。
Drag-and-Drop Pasting 2006年
Poisson Image Editing的方法,當來源圖像遇到較突出的邊緣時可能會發生縫合怪異的情況,這篇提出改良的方法,在來源圖像的邊緣跟真實物件的邊緣中找出一條更適合的邊緣去做縫合,避免Poisson Image Editing造成怪異的接合。
Digital Face Beautification 2006年
美是一種普遍的概念,是跨文化跨國界的,這篇Sketch主要是希望提供一個新的方法來去做人臉的漂亮化,透過一些方式在很短的時間內來讓人臉變得更吸引人。
系統流程圖(System Flowchart)
使用者輸入一張想要整容的人臉影像,系統會自動偵測人臉影像,並定位出人的左右眼、鼻子、嘴巴,接著從Feature(部位)資料庫中找出一張自己想要的Feature(部位),使用者可以從Feature(部位)資料庫中找出一張自己想要的Feature(部位),也可以從外部匯入一張自己想整容的Feature(部位),接著系統便會執行Face Off的功能,將使用者想要的Feature(部位)整容到人臉上,如果使用者不滿意結果,可以藉由旋轉、縮放、移位去做調整,並再一次整容,一直到使用者對整容後的結果滿意為止。
System Flowchart
User Input Face Image
Automatic Face Detection
按下Face Detection On後,系統開始做人臉偵測,這是人臉偵測出來的結果,紅色框代表偵測到的部位,藍色點是調整點
Choose Feature
界面的下方是Feature的資料庫,可以經由選擇 Left Eye , Right Eye , Nose ,Mouth來找尋看看資料庫中有沒有符合使用者喜歡的Feature,點選某一個Feature,右下方的圖便會顯示這個部位是由哪一個sample中取出來的Feature。
若使用者不喜歡從資料庫中的Feature,也可以自己從外部載入,點選[File]下的[Load Feature]…便可以從自己的檔案中載入自己想要的Feature。(紅色框框代表自己匯入的Feature.
選好Feature後,按下FaceOff便可以讓系統幫使用者直接整容。
Face Off
在實作FaceOff時,我們是使用Poisson Image Editing這篇的方法去做整容的無縫貼圖,但是因為Feature的大小不一,如果大的Feature要貼到較小的人臉Feature上,通常是不會出現問題,可是如果小的Feature圖要貼到大的人臉Feature上,就會出現問題,所以我們會先解釋如何用Poisson Image Editing去套用在我們的系統上,再去處理小Feature貼到大Feature上的問題:
Poisson solution to guided interpolation
S跟Ω分別代表Face跟Feature的點,對於每一個在S點上的p,Np表示為p點的四個鄰居點集合,讓
指定為一組點,在此q就是在Np集合中的點,Ω的邊界
,讓fp表示在p點上的值,所以。
Poisson 的公式為
----(1)
在我們的系統中,Vpq=Gradient(p) – Gradient(q)
這個公式必須要滿足
----(2)
在minimum(1)的公式下,必須要滿足(2)的公式,接著不斷收斂,收斂到最後Feature便會無縫的貼在Face上面。
流程結果如下圖
小Feature貼到大Feature:
當要整容的Feature比原來在人臉上的Feature小時,因為無法直接做Face Off,我們的系統會先用一個白色的框把人臉上的Feature框住,做Face Off,經過第一次Face Off後,會將原來人臉上的Feature去掉(如下圖右二),接著再把本來想整容的Feature放上去做Face Off,就會得到想要的整容結果(右一)
Feature Adjust
經過Face Off後,我們可以得到整容後的結果,但是使用者可能不滿意Feature的大小、角度、加上人臉辨識會因為一些限制而受到影響,導致偵測的錯誤,所以在Face Off後,如果使用者仍想要做Feature的調整,系統也提供了縮放、位移、跟旋轉的調整,讓使用者能夠隨心所欲的控制Feature的位置、大小、跟旋轉方向,達到更完美的結果。
縮放
(插圖放在檔案夾中)
移位
旋轉
實驗環境(Experimental Environment)
作業系統
|
Windows XP
|
中央處理器
|
Intel Pentium4 2.8GHz
|
記憶體
|
760MB
|
開發軟體
|
Visual Studio .Net 2005 – Visual C#
Matlab 7.0版
|
資料庫(Feature DB)
目前在Feature的資料庫中,一共有32組的眼睛、鼻子、嘴巴可以讓使用者去選擇,我們將31張人臉照片放入人臉辨識中,並且取出人臉辨識定位後的結果,自動的將定位後的眼睛、鼻子、嘴巴分別放入不同的檔案庫中,不需要為了建龐大資料庫而花費過多的時間。
MATLAB與.Net2005的結合
Face Off系統的界面是由.Net 2005實作,而後端的人臉辨識以及Poisson Editing是用MATLAB Code開發,用MATLAB Code所寫的code會經由MATLAB的編譯器轉成DLL檔,然後再從.Net2005中去參考呼叫DLL,測試過後,發現時間上是可以達到與使用者互動的接受程度。
測試數據
-
測試項目
|
時間
|
人臉定位
|
約1秒(320 X 370 pixel)
|
Face Off
|
不到1秒(100 X 50 pixel)
|
實驗結果(Result)
(惡搞版本)
系統限制(Limitation)
-
在做人臉偵測時,是以huge作為取得臉的依據,但是因為受到光源的不同,因此會改變人臉的顏色,讓人臉偵測得到不好的結果。
-
要被Face Off的人臉如果配載上眼鏡,會因此變得難已偵測,而且在Face Off的過程中如果有眼鏡也會造成不好的效果。
-
Face Off的過程中,Feature的光源不同,解析度不一樣,也會造成整容上的問題,所以一般的Feature最好都是從正面打光,且解析度不要過低,整容效果會比較好。
-
因為強調的是即時且互動的系統,人臉辨識上並無法達到百分之百的正確率,但為求快速,我們提出的方法在我們測試的資料中準確度約九成左右,在即時跟準確度的拿捏中,不可否認的我們做了最好的取捨
結論 (conclusion)
我們提出了一套Face Off的系統,希望能即時,並且透過互動讓使用者隨心所欲的整容,我們提出了一個快速的人臉辨識,使用者只要透過一張照片或是一張影像,經過人臉特徵的定位後,從我們收集的資料庫,來去找尋喜歡的Feature(部位),達到Face Off的效果,也提供了讓使用者可以快速抹除Feature,並且可以做到Feature的旋轉、縮放、平移的功能,透過這套系統,使用者可以 所見即所得的得到自己整容後的效果。
未來展望( Future Work)
眼鏡的部份希望以後在整容的時候可以同時將想要的眼鏡放上去,讓使用者也可以看到自己整容後載上眼鏡的效果。
參考資料(REFERENCES)
-
Patrick Perez , Michel Gangnet , and Andrew Blake. 2003. Poisson image editing. Proceedings of ACM SIGGRAPH, 313–318.
-
Jiaya Jia, Jian Sun, Chi-Keung Tang, and Heung-Yeung Shum, Drag-and-Drop Pasting. ACM Trans. Graph. (TOG) 25(3):631-637 (2006).
-
Tommer Leyvand, Daniel Cohen-Or, Gideon Dror and Dani Lischinski, Digital Face Beautification. ACM SIGGRAPH 2006.
-
Mira Dontcheva, Maneesh Agrawala, Steven Drucker, Alex Colburn, Brian Curless, David Salesin, and Michael Cohen. Interactive Digital Photomontage, ACM Transactions on Graphics (Proceedings of SIGGRAPH 2004), 23(3), pp. 294-302, 2004.
-
M. Bertalmío, G. Sapiro, V. Caselles and C. Ballester. Image Inpainting. Proceedings of SIGGRAPH 2000, New Orleans, USA, July 2000.
-
Raphaél Bornard, Emmanuelle Lecan, Louis Laborelli, Jean-Hugues Chenot. Missing data correction in still images and image sequences. ACM Multimedia 2002: 355-361.
-
Vivek Kwatra, Arno Schödl, Irfan Essa, Greg Turk and Aaron Bobick . Graphcut Textures: Image and Video Synthesis Using Graph Cuts. ACM Trans. Graph. (TOG) 22(3):277-286 (2003).
-
Anat Levin, Assaf Zomet, Shmuel Peleg, Yair Weiss, Seamless Image Stitching in the Gradient Domain. ECCV 2004:377-389
|