【技术综述】人脸妆造迁移核心技术总结
美顏和美妝是人臉中很常見的技術,在網絡直播以及平常的社交生活中都有很多應用場景。常見的如磨皮,美白,塑形等美顏技術我們已經比較熟悉了,而本文重點介紹的是人臉妝造遷移的核心技術及其相關資源。
作者&編輯 | 言有三
1. 什么是人臉妝造遷移
所謂妝造遷移算法,指的是將一張人像的妝容遷移到任意一張人像照片中,這是美顏算法中比較復雜的技術,示意圖如下:
圖(a)是原圖,圖(b)是妝造風格圖,圖(c)就是將圖(b)中的妝造遷移到圖(a)中。
下面我們就來剖析傳統的妝造遷移算法和基于深度學習的妝造遷移算法。
2. 傳統妝造遷移算法
根據對數據集要求的不同可以分為兩類,第一類是需要成對的妝造前后的圖作為訓練集,即有監督的模型;第二類則不需要成對的妝造前后對比圖作為訓練集,即無監督的模型。
2.1 基于梯度約束和成對數據的算法
基于成對圖的算法,它需要同一個人臉圖像妝造前后的對比圖作為訓練集,對數據集的要求很高,以《Example-Based Cosmetic Transfer》算法為例。
假如A和A*是成對的無妝造和有妝造的圖,B是需要進行妝造遷移的圖,B*是最終的效果,如下圖所示:??
該方法通常包括3個步驟:
第一步是面部區域定位和對齊。首先需要完成人臉的檢測,眉毛和睫毛,嘴唇等需要妝容遷移的區域的檢測,對妝造遷移算法會產生干擾的固有皮膚特征,如雀斑、痣或瑕疵的去除。然后需要對面部幾何形狀進行變形,獲得標準的正臉,從而使得所有的操作可以在該空間中進行。
第二步是妝容映射(cosmetic map)算法。該算法中將人臉圖像分解為顏色和光照兩部分的乘積,通過計算一個妝造前后的光照密度對比圖cp來完成遷移,計算方法如下:
其中ap*就是妝造后圖像,ap就是妝造前的圖像。得到cp后使用一個加權操作將該對比圖應用到圖B中,即:
γ是一個加權系數,越大則遷移效果越明顯。
第三步是外觀修正。上式只有當樣例圖和目標圖有完全相同的幾何結構和光照,并且精確對齊時才能成立,而這基本上是不可能的,因此還需要對它進行局部幾何變換修正,即將樣例圖的二階laplacian信息映射到目標圖中,其估計方法如下:
由于右邊是確定的值,β是一個權重參數,所以我們只需要對bp進行更新使其滿足上式,這通過iterative Gauss-Seidel solver算法來實現。
對于眼睛和睫毛部分,可以使用更加復雜的變換,睫毛和眉毛的濃妝效果需要更精細的處理,包括毛發的長度、顏色和密度。
該方法有幾個重大的局限性:
(1) 要求膚色相近,背景單一,這限制了應用場景。
(2) 無法適應比較大的幾何變換。
(3) 需要成對的妝造對比圖進行訓練,獲取這樣的數據需要很高的成本。
2.2 基于物理模型和非成對數據的算法
成對的妝造對比圖獲取代價高昂,《Digital Face Makeup by Example》方法則提出了人臉分層模型,不需成對的樣本圖,只需要輸入兩張圖片,一張是目標圖片I,一張是參考的樣例化妝圖片ε,其流程如下圖。
該方法主要分為四步。
第一步:將I和ε進行人臉對齊。因為我們是在像素點級別進行遷移,所以人臉的對齊是很有必要的。文中人臉對齊采用了薄板樣條函數(Thin Plate Spline,簡稱TPS), 這是一種在圖像配準中很常見的插值方法。文中使用了ASM算法來定位關鍵點,為了提高準確性還進行了人工調整,并增加了十個額頭控制點,最終得到了83個關鍵點。
第二步:對I和ε分別進行分解。文中將圖片轉換到CIELAB顏色空間,然后對圖像進行了分層建模。L層被認為是光照層(lightness layer),可以被分解為粗粒度臉部結構層(Face Structure)和細粒度皮膚細節層(Skin Detail),具體的實現其實就是將lightness layer執行一個邊緣保持的濾波操作(edge-preserving smoothing)得到large-scale layer,然后將lightness layer減去large-scale layer得到detail layer。剩下的兩個通道a*和b*則被認為是顏色層。
第三步:將分解后的圖像進行不同的處理,兩幅皮膚細節層(Skin Detail)直接相加,顏色層使用一個alpha blending進行融合,對人臉結構中的高光和陰影部分則使用梯度進行遷移。
第四步:將得到的三部分組合到一起。注意到嘴唇化妝和臉部是很不一樣的。在物理化妝中,嘴唇上的化妝品(如口紅)通常會保留或突出嘴唇的質感,而不是像在面部皮膚上那樣隱藏,處理方法是對原始圖I中的每一個像素,從妝造圖中搜索匹配的像素進行替換,此時會同時用到L通道的像素值和空間位置信息。
該方法原理清晰,不需要使用成對的數據,且不需要進行訓練,但是需要輸入圖和妝造圖進行精確的對齊,這限制了該類方法的實用性。實際上,傳統的妝造遷移算法都無法避免這樣的問題,它們對輸入圖的姿態以及光照非常敏感。
[1] Tong W S, Tang C K, Brown M S, et al. Example-based cosmetic transfer[C]//15th Pacific Conference on Computer Graphics and Applications (PG'07). IEEE, 2007: 211-218.
[2] Guo D, Sim T. Digital face makeup by example[C]//2009 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2009: 73-79.
3. 深度學習妝造遷移算法
深度學習算法利用深度學習技術來自動完成妝造遷移,框架流程都更加簡單,是當前主流的研究思路,目前主要包括基于數據庫匹配的算法和基于GAN等生成式模型的算法。
3.1 基于匹配的妝造算法
論文《Makeup like a superstar: Deep localized makeup transfer network》主要是對人像進行五官分析,獲取膚色,眉毛顏色,唇色等信息后,進行不同妝容的最佳匹配推薦,最后上妝,其算法的完整流程如下圖:
風格推薦是從已上妝人臉數據庫中挑選與當前素顏人臉最相近的圖片。具體方法是使用一個人臉識別網絡,選取該網絡輸出的人臉特征的歐氏距離最小者作為推薦結果。
然后是人臉分割,主要是進行五官提取,采用全卷積圖像分割網絡完成。對于已上妝數據集中的眼影部分妝造,素顏圖片沒有對應的原則,則根據眉眼特征點定位給出眼影區域。由于妝容分割的前景部分相對于背景更重要,網絡對這兩部分的損失進行了加權。
最后是妝容遷移,妝容包括粉底(對應面部),唇彩(對應雙唇),眼影(對應雙眼)。
粉底遷移和唇彩遷移的原理類似,需要考慮顏色和紋理,文中利用了風格化網絡來實現,使用參考圖和目標圖的Gram矩陣作為損失函數,風格化網絡直接參考Gaty等人提出的模型。
而眼影的遷移略有不同,因為它不是直接改變雙眼像素,而是要給眼睛部位添加眼影,必須同時考慮眼睛的形狀和顏色。考慮到參考圖的眼睛掩膜和內容圖的眼睛掩膜,兩者具有不同的大小和形狀,但是經過變形到目標圖中后,兩者具有相同的大小和形狀。眼影遷移就是要將參考圖掩膜處的眼影特征遷移到目標圖中,因此實現不在原圖中,而是在特征空間中進行約束,這里使用了conv1_1的特征,完整的優化目標如下:
其中A是結果圖,R是參考圖,sr是參考圖的掩膜,sb是經過仿射變換后的待上妝圖的掩膜,它們的尺度大小相等。sr'和sb'是sr和sb的卷積結果圖,因為卷積降低了維度,所以通常來說就是一個比例縮放。因此上面的代表的是結果圖掩膜部分,代表的是參考圖掩膜部分,P表示人臉分割網絡模型,提取出特征后最小化兩者之間的L2損失。
為了讓結果更好,還添加了全微分(total variance)損失和全圖的結構損失,通過更改其中的權重變量,可以控制妝造的程度,比如讓眼影變得更深。
3.2 基于GAN的妝造遷移算法
以商湯提出的BeautyGAN為代表,它輸入兩張人臉圖片,一張無妝圖,一張有妝圖,模型輸出換妝之后的結果,即一張上妝圖和一張卸妝圖。
BeautyGAN采用了經典的圖像翻譯結構,生成器G包括兩個輸入,分別是無妝圖Isrc、有妝圖Iref,通過編碼器(encoder)、若干個殘差模塊(residual blocks)、解碼器(decoder)組成的生成器G 得到兩個輸出,分別是上妝圖IBsrc、卸妝圖IAref,結構示意圖如下圖。
BeautyGAN使用了兩個判別器DA和DB,其中DA用于區分真假無妝圖,DB用于區分真假有妝圖。
除了基本的GAN損失之外,BeautyGAN包含了3個重要的損失,分別是循環一致性損失Cycle consistency loss,感知Perceptual loss,妝造損失Makeup loss,前兩者是全局損失,最后一個是局部損失。
為了消除遷移細節的瑕疵,將上妝圖IBsrc和卸妝圖IAref再次輸入給G,重新執行一次卸妝和上妝,得到兩張重建圖Iresrc和卸妝圖Ireref,此時通過循環損失(cycle consistency loss)約束一張圖經過兩次G變換后與對應的原始圖相同。因為生成器的輸入包含了一對圖,所以與CycleGAN的不同之處在于這里使用了同一個生成器G,該損失用于維持圖像的背景信息,具體的損失定義與CycleGAN相同,不再贅述。
上妝和卸妝不能改變原始的人物身份信息,這可以通過基于VGG模型的Perceptual loss進行約束,定義如下:
其中Cl,Hl,Wl分別是網絡第l層的通道數,特征圖高度和寬度。
為了更加精確的控制局部區域的妝造效果,BeautyGAN訓練了一個語義分割網絡提取人臉不同區域的掩膜(mask),使得無妝圖和有妝圖在臉部、眼部、嘴部三個區域需滿足妝造損失(makeup loss),妝造損失通過直方圖匹配實現,其中一個區域的損失定義如下:
item可以分別表示臉部、眼部、嘴部三個區域,HM是一個直方圖匹配操作,M就是圖對應的掩膜,表示逐個像素相乘。
整個makeup損失定義如下:
完整的BeautyGAN生成器損失為:
下面就是一些效果圖:
[3] Liu S, Ou X, Qian R, et al. Makeup like a superstar: Deep localized makeup transfer network[J]. arXiv preprint arXiv:1604.07102, 2016.?
[4] Li T, Qian R, Dong C, et al. Beautygan: Instance-level facial makeup transfer with deep generative adversarial network[C]//Proceedings of the 26th ACM international conference on Multimedia. 2018: 645-653.
4. 展望
由于GAN等技術的成熟,人臉的妝造遷移算法得到了長足的進步,不過在實際落地中仍然會面臨著一些難題,如大姿態和大表情的妝造遷移問題,后續的一些研究者們也基于此做出了一些工作,比如Pose-Robust Spatial-Aware GAN[5]。
該方法包括三個模塊,即Makeup Distillation Network (MDNet),Attentive Makeup Morphing (AMM) module以及De- makeup Re-makeup Network (DRNet)。
Makeup distillation network是一個編碼器模塊,它從參考的妝造圖y中提取特征Vy,然后使用1×1卷積變換為兩個矩陣γ和β, 它們是大小都為1×H×W的特征圖,它編碼了從內在的面部特征,比如面部形狀,眼睛大小到與化妝相關的特征,比如唇彩,眼影之間的關系。
原圖像同樣會經過Makeup distillation network得到特征Vx,但是因為原圖像和妝造圖有很大的表情和姿態差異,所以γ和β不能直接應用于Vx得到最終妝造結果,而Attentive makeup morphing module這個模塊則在原圖和參考圖的逐像素差異的約束下計算出變形矩陣A,它的大小是HW×HW,這兩個attention矩陣用于將γ和β進行變形得到γ’和β’,使其可以用于原圖。
變形矩陣A的計算考慮了兩方面的信息,第一個是Makeup distillation network提取的特征V,大小是C×H×W,第二個是幾何信息P,這是為了保證x和y的妝造像素位置的對應,它的每一個特征圖的元素計算了與68個人臉關鍵點的位置差,因此大小是136×H×W,P的計算如下,其中分別表示取x和y坐標,即第i個人臉關鍵點。
A的計算如下:
其中mxi表示原圖像x的第i個像素的人臉分割掩膜結果,myj表示妝造圖y的第j個像素的人臉分割掩膜結果,當兩者同屬于某一個語義區域比如嘴唇時,I(mxi=myi)等于1,否則為0。
得到A之后,就可以對γ和β進行變換,計算方法如下:
之后將γ'和β'沿著通道維度擴充后得到,它們的大小都是C×H×W。
De-makeup & Re-makeup network是一個編解碼結構,編碼器部分與Makeup distillation network是相同的結構,不過不共享參數。提取出來的特征與矩陣進行仿射變換得到,計算方式如下:
Vx'作為De-makeup & Re-makeup network的解碼器部分的輸入,完成妝造遷移。
下面展示了一些和BeautyGAN的對比結果,證明大姿態下的優勢。
[6]?Jiang W, Liu S, Gao C, et al. PSGAN: Pose-Robust Spatial-Aware GAN for Customizable Makeup Transfer[J]. arXiv preprint arXiv:1909.06956, 2019.
5. 人臉妝造數據集
研究人臉化妝問題自然需要相應的數據集,而且抗妝造干擾的人臉識別也是一種具有挑戰性的問題,具有較大的研究意義,下面我們簡單介紹一下已有的妝造數據集。
5.1. 妝造數據集
數據集地址:http://www.antitza.com/makeup-datasets.html。
發布于2012年,這是一個女性面部化妝數據集,可用于研究化妝對面部識別的影響。總共包括4個子數據集:
YMU(YouTube化妝):這是從YouTube視頻化妝教程中獲取的面部圖像,YouTube網址為http://www.antitza.com/URLs_YMU.txt。
VMU(虛擬化妝):這是將從FRGC數據庫中采集的高加索女性受試者的面部圖像,使用
公開的軟件來合成的虛擬化妝樣本,軟件來自www.taaz.com。
MIW:從互聯網獲得有化妝和沒有化妝的受試者的前后對比面部圖像。
MIFS:化妝誘導面部欺騙數據集:這是從YouTube化妝視頻教程的107個化妝視頻中獲取。每一組包含3張圖片,其中一張圖片是目標的化妝前的主體圖像,一個是化妝后的,另一個是其他人化同樣的妝試圖進行欺騙的圖片。
2. 妝造遷移數據集
數據集地址:http://liusi-group.com/projects/BeautyGAN。
發布于2018年,包括3834張女性人臉圖,其中1115張無妝造人臉,2719張有妝造人臉。妝造類型包括不同程度的煙熏妝(smoky-eyes makeup style)、華麗妝(flashy makeup style)、復古妝(Retro makeup style)、韓式妝(Korean makeup style)及日式妝(Japanese makeup style)。
6. 如何長期學習以上算法
在上面我們介紹了人臉妝造遷移的核心技術,涉及人臉圖像的各種算法,生成對抗網絡,如果想要長期進行學習,可以參考有三AI秋季劃的人臉算組,GAN組,可分別學習相關內容。
詳情可以閱讀下文介紹:
【通知】如何讓你的2020年秋招CV項目經歷更加硬核,可深入學習有三秋季劃4大領域32個方向
如果你對以上人臉數據集感興趣,在有三AI知識星球的數據集板塊中,我們提供了以上數據集的詳細解讀以及下載方式,有需要的同學可以加入。
而人臉相關的算法,也有諸多介紹。
總結
本次我們給大家介紹了人臉妝造遷移相關核心技術和數據集,人臉圖像屬于最早被研究的一類圖像,也是計算機視覺領域中應用最廣泛的一類圖像,其中需要使用到幾乎所有計算機視覺領域的算法,可以說掌握好人臉領域的各種算法,基本就玩轉了計算機視覺領域。
如何學習人臉圖像算法
如果你想系統性地學習各類人臉算法并完成相關實戰,并需要一個可以長期交流學習,永久有效的平臺,可以考慮參加有三AI秋季劃-人臉圖像算法組,完整的介紹和總體的學習路線如下:
轉載文章請后臺聯系
侵權必究
往期精選
【雜談】2020年如何長期、系統,全面地學習深度學習和計算機視覺,這是有三AI的完整計劃
【總結】有三AI秋季劃圖像質量組3月直播講了哪些內容,為什么解決好底層圖像處理問題那么重要
【總結】有三AI秋季劃人臉算法組3月直播講了哪些內容,計算機視覺你不可能繞開人臉圖像
【總結】有三AI秋季劃模型優化組3月直播講了哪些內容,為什么每一個從事深度學習的同學都應該掌握模型優化的內容
【技術綜述】人臉風格化核心技術與數據集總結
【總結】最全1.5萬字長文解讀7大方向人臉數據集v2.0版,搞計算機視覺怎能不懂人臉
【雜談】計算機視覺在人臉圖像領域的十幾個大的應用方向,你懂了幾分?
【雜談】GAN對人臉圖像算法產生了哪些影響?
總結
以上是生活随笔為你收集整理的【技术综述】人脸妆造迁移核心技术总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每周CV论文】初学GAN图像风格化必须
- 下一篇: 【信息抽取】如何使用循环神经网络进行关系