天天看點

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

演講:黃慧娟、臨豐、唐堂

編輯:王強

揭秘快手、淘寶、火山引擎的美顔美體特效技技術。

在這波AI浪潮中,深度學習技術對計算機視覺帶來了巨大的變革,同時在圖像、視訊領域有着非常成熟的應用。

如在手機的各類拍攝App中,瘦臉、瘦腿等美顔特效已經非常普遍。同時,國内各大廠商也針對不同應用、場景,設計了不同的技術解決方案。

在機器之心最新一期技術分享中,機器之心機動組以「揭秘人體美化技術」為主題,邀請到了快手、淘寶、火山引擎的技術專家,為大家解密這些特效背後的相關技術。

以下為此次活動的演講内容,機器之心進行了不改變原意的編輯、整理:

AI技術在快手人像美化中的應用

我是來自快手的黃慧娟,目前是快手Y-tech算法專家,從事計算機視覺、視訊及圖像處理、人像美化等方向的研發工作。今天跟大家分享的主題是「AI技術在快手人像美化中的應用」。

什麼是人像美化

我們來看一下什麼是人像美化。大家都有拍視訊的經曆,當在視訊中使用美顔、妝容等特效,就會讓視訊中的人物呈現出整體好的狀态。愛美之心人皆有之,變好看之後也能充分激發使用者的拍攝欲望。這些能讓視訊中人物外貌、外形得到美化的技術就是人像美化技術。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們快手人像美化技術團隊沉澱了一套完善的人像美化解決方案,而且落地到了快手的各個産品中,比如快手APP、快手極速版、一甜相機、快影等等,而覆寫的應用場景包括拍攝、直播、修圖、電商導購等。

人像美化主要包含哪些功能?我們可以将其劃分為美顔、美型、美體、美妝、濾鏡5個方面。比如美顔,包括我們耳熟能詳的磨皮、美白等等,而美型包括瘦臉、捏鼻等。要實作這些效果所依賴的底層基礎技術有圖像處理、AI檢測定位、3D重建、跨平台渲染、手機端推理引擎,還有資料分析等等一系列基礎技術。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

人像美化技術現狀

我們看一下人像美化技術的現狀。對于一張使用者圖像,首先可以經過各種濾波器和LUT的組合來實作磨皮、美白等美顔效果(LUT是指顔色映射的查找表)。然後我們可以基于人臉關鍵點檢測等算法來實作瘦臉、小頭等美型效果。接下來疊加設計師設計好的一些LUT來實作各種風格的濾鏡,最後我們利用設計師提供的素材實作美妝的效果。現有的這套人像美化技術已經發展了很多年,趨于成熟,在使用者審美不斷提高,使用者開始追求更真實、更自然、更進階的美化效果情況下我們的人像美化技術該如何發展呢?

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

結合現在AI技術的蓬勃發展,我們有兩條技術路線可以走:

1.優化現有的技術。

優勢:疊代快,性能可控。

劣勢:效果上限不高,自适應能力比較差。

2.引入AI能力。這裡的AI能力不是指人臉檢測和人臉關鍵點等這些提供基礎資訊的AI,而是指直接面向人像美化效果層面的AI能力。

優勢:可以實作複雜進階的效果,自适應能力比較強。

劣勢:研發周期比較長,在手機端上相比于傳統方法來說,更耗性能。

現有的傳統美化技術我們已經非常成熟,我今天主要介紹一些美化的新技術,我先用實際項目來介紹一下,我們是如何結合AI技術來提升人像美化效果天花闆的。那麼将AI技術引入現有美化pipeline的難點是什麼?我們以快手APP美化功能為例,在拍攝過程中人像美化功能是一直開啟的,而且會疊加其他的效果,比如魔表和貼紙。另外使用者的手機也非常多樣,不同機型之間計算能力差異較大,而AI模型相比傳統濾波器更耗性能,是以總結起來難點就是AI人像美化需要在保證有顯著效果的情況下,還能符合手機端性能的要求。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

AI+人像美化:AI原膚

我介紹的第一個AI人像美化技術是AI原膚。使用者吐槽人像美化不真實的一個重要的點是美化後的皮膚比較假。讓我們看下圖的對比,左邊是原始圖像,中間是傳統方法磨皮的效果,在額頭和下巴的地方瑕疵沒有祛除幹淨,而且臉頰處的皮膚失去了紋理細節,皮膚質感比較差,而右邊AI原膚的效果很好的祛除了面部的瑕疵,并且皮膚質感和清晰度也沒有損失,皮膚整體呈現出了幹淨通透的感覺。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

那麼如何實作AI原膚效果?

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們首先看看專業的修圖人員會如何來修複瑕疵:

分頻:專業的設計師會根據皮膚本身的特點來把皮膚進行分頻,得到對應的低頻和高頻圖像。

低頻顔色:低頻是皮膚顔色,低頻中那些大大小小的色塊就是我們需要祛除的瑕疵。設計師修圖時會根據經驗使用中性灰或者仿制圖章工具,來不斷的塗抹低頻區域,來祛除低頻區域中的色塊,進而達到磨皮的目的。

高頻紋理:高頻是皮膚紋理,展現為皮膚的細節,需要進行保留。設計師一般隻對其進行簡單修補。

通過這種手動的方式是可以将效果調得很好,但耗時耗力。通過借鑒設計師這種手動修圖的思路,我們自研的網絡架構如下圖所示,核心思想是對圖像進行分頻處理,不同的網絡負責不同的頻段,祛除對應的瑕疵,将不同頻段的結果再次進行組合,來得到我們最終想要的全頻結果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

在訓練過程中,我們采用了多尺度監督,重參數化、生成對抗訓練,學習殘差、頻率限制等方式,用來保證最終的效果和性能。

下面展示一下行業對比的結果,左邊是原始圖像,中間是我們AI原膚的效果,右邊是最佳的友商效果。通過對比可以明顯看到我們AI原膚在額頭和下巴處,瑕疵處理的更幹淨。經過内部評測,我們AI原膚效果目前是行業最佳。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

AI+人像美化:AI祛皺紋

下面介紹一下AI祛皺紋,皺紋是非常影響面部美觀的,皺紋較深或者較多時都會讓人很顯老。而傳統的祛皺方法大多是基于patch match的方法,容易出現比較多的僞紋理,而且祛除皺紋之後,皮膚紋理會比較糊,與旁邊皮膚融合也不夠自然。為了解決這個問題,我們團隊自研了一套祛皺紋的算法架構,可以實作高清高真實感的智能祛皺效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

算法的主要過程是對高清的人像資料首先做皺紋分割,來得到皺紋區域的mask,然後在非皺紋區域做随機塗抹以模拟實際皺紋,随機塗抹之後的圖像被作為網絡的輸入圖。

在網絡處理子產品,我們結合了圖像修複技術和基于語義的圖像編輯技術,對網絡的輸出進行一定的後處理,就可以得到我們最終的高清祛皺紋的結果。在網絡訓練的時候,我們采用了UNet-GAN、color校正和頻域拟合等方法,來保證祛除皺紋之後生成皮膚的真實性。

我們以祛頸紋為例來看一下效果,左邊這一列是使用者的原始圖像,右邊這一列是我們算法的結果,右邊這一列圖中已經看不到頸紋的痕迹,這說明我們的算法可以很好的祛除頸紋,而且祛除後生成的皮膚非常真實,與旁邊區域的皮膚融合過渡也是非常自然的。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

AI+人像美化:AI美白

下面介紹的第三個AI人像美化的技術是我們行業首發的AI美白技術。俗話說一白遮百醜,美白的意義就是要讓皮膚變白。傳統美白方法是通過将設計師手動設計的一個LUT應用到全圖來實作的(LUT是指顔色映射的查找表)。這樣的話全圖都會有顔色的變化。比如我們看第一行圖像,第一張是正常原始拍攝圖像,而第二張是用了傳統美白方法的結果,雖然皮膚變白了,但是背景中向日葵的顔色會變得非常失真。我們将AI能力引入到了美白中,實作了AI美白,結果如第三張圖,隻有皮膚區域會變白,背景區域中的向日葵顔色恢複了正常。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們實作的AI美白技術還具備強度自适應能力,就是說對于不同的場景美白程度是不同的。比如上圖中第二行的暗光圖像,如果應用傳統美白,那麼臉部皮膚的顔色會變得非常的奇怪,而用AI美白技術之後,臉部皮膚顔色恢複正常。再看上圖第三行,這張接近過曝的圖像,運用傳統美白之後,整幅圖像呈現死白的狀态,而用AI美白技術之後,則很好地避免了這種問題。

更多人像美化黑科技

1.美型/美體-背景扭曲矯正:大家吐槽照片p的痕迹太明顯的原因,除了前面所說的磨皮會導緻皮膚沒有質感之外,還有個重要原因是人像美化後背景被扭曲了,比如下圖左邊這張圖的背景。造成這種現象的原因是美型/美體類的算法原理是對像素做拉伸,在對人臉做拉伸的同時,背景就不可避免地也會産生扭曲現象。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

經過實驗和觀察發現,人眼之是以能夠一眼看出背景扭曲,是因為背景中本該是直線的地方彎曲了,如果能夠保證美型後圖檔中的直線仍然是直線,那麼即使背景内容發生輕微的位移,也看不出背景扭曲的問題,是以就可以将此背景扭曲問題模組化為數學優化問題,優化的目标就是保持背景中直線的斜率不變。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們來看一下快手現在的美型效果,圖中上半部分左邊是原始圖像,中間是矯正之前用小頭的效果,紅色箭頭所指的區域有明顯的扭曲現象,而右圖是矯正之後的效果,可以看到整圖沒有背景扭曲的問題,圖像整體的真實感被大大提升。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們的算法對美體也有很好的效果。上圖左邊這張圖使用者是使用了瘦腿功能,做了腿部的拉伸,可以看到地面上的水泥路已經變彎曲了,而右邊圖像矯正之後已經不存在彎曲現象,整個美體的效果也非常真實。

2.美型-面部輪廓調整。面部輪廓調整一直是人像美化的剛需,但是現有的人像美化類APP沒有能一鍵調節人臉整個面部輪廓的産品,隻有調節面部某一位置的局部調整,比如說調整顴骨、調整太陽穴等,這種調節輪廓的小項主要有兩大問題:

使用者需要調節多個小項,操作複雜,不夠友好。

局部調整基本都是依賴于離散的臉部關鍵點,而由于點不夠稠密或者定位的誤差,有時候并不能得到比較好的調整效果。

我們團隊将傳統圖像方法和AI能力相結合解決了這個問題,行業首發實作了一鍵調整面部輪廓的方法。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

3.美妝-PBR渲染。我們在美妝中采用了PBR技術,PBR就是基于實體的渲染,通俗來說就是往一個材質上打燈光,此時材質上就會呈現真實的光照效果。

展望

人像美化未來發展主要是三個方向:千人千面,可以為使用者提供更适合自己的美化效果;審美優化,旨在為使用者提供超預期的美化效果;全球化,滿足全球所有使用者對美的追求。

手淘場景下的人臉AR美顔技術

我是來自阿裡巴巴淘寶技術部的多媒體算法團隊的臨豐,這裡跟大家分享手淘場景下的人臉AR美顔技術。

背景

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

淘寶直播:美化主播,同時還原商品本身顔色、細節等資訊。

手淘是一個電商場景,主要是以購物為主,是以第一個大的應用點的是淘寶直播,淘寶直播需要對主播進行美顔,這是一個剛需,希望讓主播做直播的時候,能随時随地進行個性化的美顔。

傳統的美顔方案主要是針對全圖的操作,比如美白,如果主播在介紹商品的時候,比如說賣翡翠,突然開了全局美白,把翡翠變成淡白的顔色,那樣跟它的真實感就會有偏差,就相當商品的材質改變了,這是我們不希望看到的。

是以淘寶直播的一個剛需,就是要基于人臉區域的美顔,同時還原商品的顔色細節等資訊,為什麼是還原?因為淘寶直播直播開播的時候,主播可能會處在各種各樣的環境中,如室内、室外等等,會有不同光照強度的變化造成過暗和過曝的情況,同時攝像頭的運動也會導緻一些物品出現模糊等等。是以我們希望通過對清晰度增強等算法進行商品細節、材質的還原,達到讓使用者擁有較好的觀看體驗。

人臉AR試狀:高精度真實的人臉上妝,滿足使用者“先試後買”的需求,提高商品購買轉化率。

人臉的AR試妝在手淘另一個比較大的應用。化妝品行業是手淘裡面的比較大的品類,以前使用者在手淘上購買化妝品時,最大的痛點是沒辦法去試,比如像口紅,使用者不知道它在我的嘴唇上的顔色是否合适,由于不能親自去體驗,就需要先買回來,或者是去線下店去體驗一下,才能知道是什麼樣的效果。

針對上面的問題驅使我們去做一個高精度的人臉的AR虛拟試妝。我們主要跟一些大的化妝品行業的品牌合作。我們把他們的化妝品的材質資訊進行量化,讓商家可以自由搭配各種型号的顔色資訊等進行素材生産,然後又通過AI上妝的算法,這樣使用者打開攝像頭就可以直接虛拟的體驗如這款型号的口紅塗在嘴唇上是什麼樣的,那款型号的美瞳戴在眼睛上是什麼樣子的。這就友善使用者體驗,不用非要跑到線下店,這樣提高使用者的購買體驗,同時也對手淘整體的購買轉化率也有較好的輔助。

互動娛樂:滿足使用者個性化美顔和玩法的需求。

互動娛樂也是很大的一個應用場景。這方面主要是滿足手淘短視訊場景使用者的個性化美顔的需求,另外就是淘寶直播跟粉絲互動的時候,我們會提供主播和粉絲一些互動玩法,比如像人臉的各種特效,是以我們在互動娛樂方面也進行了研發投入。

除了上面三點,還有一個比較大的背景,手淘內建了大量的功能,如内容了解相關的算法、推薦算法等等。是以手淘的計算量是非常大的,是以留給人臉美顔等底層應用的資源是相對比較少,是以我們要去探索一套高性能,同時效果相對比較優的人臉AI美顔算法。

美顔技術體系

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

下面介紹手淘美顔算法體系架構:

基礎:底層最核心的是目标檢測和3D重建算法,如人臉關鍵點的檢測、人臉的3D重建等。因為速度要快,我們内部設計了較多高性能的移動端小模型網絡結構,同時研發了MNN推理引擎,目前在業界有比較大的影響力。

算法:在底層算法基礎上,我們做了很多基礎圖像處理算法:

圖像品質提升:圖像品質增強、圖像去噪去模糊等。

圖像形變:三角剖分網格、3D Mesh計算等等。

圖像/圖形渲染:3D渲染引擎、圖像融合渲染等算法。

功能:最上層是基于我們的算法做美膚、美形、美妝等具體效果功能的輸出。

底層相關算法

基礎算法-人臉關鍵點

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

無論是人臉美型還是美妝,最核心依賴的就是人臉關鍵點檢測。傳統的一些關鍵算法,可能計算量比較大、精度低,比如像手淘,手機機型覆寫比較廣,如果使用者手機是中低端機型的話,并且模型比較大,基本上是無法去做美妝等功能。

針對上面的問題,我們底層算法做了探索。這裡對我們的研究成果做簡單介紹,我們做了兩階段的人臉關鍵點的定位算法:

第一階段消除人臉姿态的影響,降低任務的複雜度。

第二階段對人臉的關鍵點的局部區域進行高精度的回歸。

該算法網絡結構采樣了我們自主設計的高性能小網絡模型,在低端機上面推理時間在2到4秒之間,高端機的能達到毫秒級。關鍵點算法回歸主要基于由粗到細的思想,就是先通過局部的106點再回歸高精度240點。我們算法輸出的眼睛、嘴巴等局部核心位置的關鍵點的精度是比較高的,是以後面對于做AR試妝的貼合度是比較好的,同時也較穩定。

基礎算法-3D人臉重建

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

業界包括目前相關論文的3D重建都是正交投影或弱透視投影,我們是業界首個提出基于透視投影的3D重建算法。這裡簡要補充一下透視投影跟正交投影的差别。正交投影是一個平行的成像,它沒有近大遠小的概念,就是說鏡頭拉近跟拉遠,成像是一樣的沒有差别;而透視投影(目前相機成像模式)則存在進度遠小的感覺,比如說打開前置攝像頭,鏡頭拉近的時候,隻看到我的臉,然後手機拿遠的時候,就能慢慢看我的耳朵。

是以如果拿正交投影的算法應用到針對相機透視投影這種場景來,會存在一定的問題。比如AI面具,正交投影會導緻AI面具與臉部區域尤其靠耳朵區域貼合的不是很緊緻。還有比如像道具的試戴,如眼鏡,鏡腿會往外掰,這樣會很影響使用者的體驗。

目前業界主要是用2D的關鍵點通過3DMM算法去做3D姿态估計(S、R、T)和比較粗糙的3D Mesh回歸,這種方法對不同姿态、不同遠近等情況的人臉來說魯棒性比較差的。

基于此我們提出基于深度學習的視覺透視投影的3D人臉重建算法(輸出人臉6DoF和3D Mesh資訊),可以保持我們3D Mesh在拉近拉遠的時候,它的一緻性也是保持的非常好,并且貼合度也比較高。這個算法主要的應用場景,是針對比如人臉的AR彩繪,基于人臉的AR眼鏡試戴等等一些互動玩法和商品AR試戴方面。算法的速度也較快,在iPhone7等中端機上能達到100fps。

美顔相關算法介紹

下面簡單的介紹一下,基于上面兩個底層算法做的人臉美膚、美型、美妝這三個場景的應用。

美膚:直接通過深度學習的方式去做人臉的美膚,雖然效果較好,但計算量比較大。是以我們采用了傳統的美膚流程,但我們對每個子產品進行了針對性的優化,通過對人臉進行人臉區域的觀察,對人臉區域進行拓撲結構的構造,然後對人臉五官進行分區域的不同程度的磨皮、銳化等,因為我們把銳化、五官磨皮算法等優化的到了極緻,是以計算資源占用比較小的情況下,達到了跟競品或深度學習相似的效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

美型:傳統美型,主要針對如臉型、眼睛、鼻子等各種子產品簡單的調整群組合。我們提出了個性化人臉美型的方案,其主要思想是對人臉臉型進行簡單的臉型分類比如我們定義了6種臉型,然後對使用者輸入的人臉圖像借助3D人臉重建算法的結果計算6種臉型的權重系數。比如使用者自拍的時候,臉型分類算法對他的臉型進行分類,然後計算出它占6種臉型的占比的系數,通過這組系數對這6種臉型權重,最終得到了使用者的個性化美型的參數,達到不同使用者千人千面的美型的效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

美妝:美妝其實主要是一個拓撲結構的定義。試妝主要是眼妝、唇妝、美瞳和整妝這4種類型。主要的思想是UV貼圖,根據人臉2D關鍵點或3D Mesh資訊進行三角剖分去做紋理的映射。最核心是使用者對妝容的各種體驗,比如各種姿态下妝容具有較強的魯棒性。使用者會期望各種姿态下,去看口紅在我嘴唇上的貼合度等效果,同時看會不會有閃爍,自然度如何等,美瞳在眨眼的時候會不會會不會貼到眼睛上等,這是我們需要去解決的問題,對提升使用者體驗具有重要的意義。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

圖像清晰度增強

最後補充的技術點是圖像的清晰度增強。手淘包括各種短視訊場景,使用者可能會上傳各種品質的視訊,如使用者所處的場景可能會導緻直播品質或者圖檔品質比較差。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

針對這個問題,我們研發了一款基于移動端的hdr-net的圖像清晰度增強算法。該算法是基于深度學習的方案,通過CNN去輸出一個顔色查找表,同時我們通過CNN網絡預測出梯度圖,然後通過在查找表跟梯度圖的聯合提升視訊畫質品質。這個方法在中低端機手機上也能達到實時。

未來展望

最後跟大家分享一些未來工作的展望:

妝容遷移:在AR場景,最難的是把妝容定義解析出來。我們希望通過比如說GAN等相關的技術,通過照片把使用者妝容解析出來,然後可以應用到其他使用者身上,達到妝容複用的效果,這樣會降低妝容制作成本。

光場重建:因為AR會有各種各樣的場景,有可能在暗光有可能在亮光,會導緻口紅的材質會發生偏差,跟實際的材質會有不一緻的地方,是以我們希望把使用者拍攝的光場資訊進行重建,提高使用者的體驗。

火山引擎AI人體人像美化技術的最佳實踐

我是來自火山引擎的資深視覺技術專家唐堂。很榮幸受機器之心邀請來做這次的技術分享。

關于火山引擎

首先介紹一下火山引擎,火山引擎大家可能也都有所了解,它是位元組旗下的ToB的技術品牌。火山引擎有項擅長的技術是圍繞視訊内容打造智能創作類的産品,我們的願景是希望用AI能夠幫助到更多的企業,通過激發使用者的無限創意來實作業務增長。

下面這張圖全景展示了火山引擎的技術産品和應用場景,火山引擎希望通過提供技術底座,幫助使用者能夠改善他們場景應用中使用者體驗,進而賦能廣大的企業。人體人臉美化技術也是其中重要的一類的産品能力。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

總體介紹

對于人體人像美化技術上大家都不陌生,如今不論是我們的拍攝,還有短視訊應用還是直播社交應用,隻要是打開APP啟動相機,能夠看到各式各樣的這種人體影像的美化功能。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

人體人像美化的流行,主要有兩方面的原因:

提升改善個人形象的願望:這是廣泛存在的,尤其對于女性使用者,特别是國内的女性使用者應該說屬于剛需了,愛美之心人皆有之。實際上我們看到人體美化功能在真實世界中其實都早已有一些其他技術所對應,說明這個需求是長期而且強烈的;

智能手機和移動網際網路的滲透、AI技術的發展:這使得人們可以在這個數字影像上能在較短的時間内以較低的成本設計美化個人形象,同時也便捷地分享出去。得益于此人體人像的美化技術,近年來得到快速的發展以及應用上的普及。

下面這張圖展示了火山引擎的人像AI美化技術的比較完整,但是比較概括的一個技術棧。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

從産品能力上來講,火山引擎提供各式各樣的人體美化能力,基本上涵蓋了美顔美妝、美體塑形、美發、美甲等這些主要的美體功能範疇。為這些美體效果提供直接支援的就是我們的特效引擎,這其中包含多種的CG算法以及圖像處理算法。

再下面一層就是基礎算法套件、AI算法套件,包括大家比較熟悉的人臉基礎算法、人體分割算法、也包括我們的圖像生成類算法。每個算法其實都提供了很多的子功能,然後為我們特效引擎提供足夠的而人體相關的資訊,最終生成美化的效果。

上面所有這些基礎算法又是以我們的底層AI技術為依托,這其中有很強的共用性,包括通用的目标檢測、關鍵點檢測、通用分割,以及GAN類這種圖像生成算法。3D姿态估計、3Dmesh估計、AutoML類算法以及我們算法平台的支援。

美顔美妝

人臉2D的美顔美妝,是我們日常生活中最常見到的一類人像美化的功能,整體流程是比較簡單的,首先算法會輸出2D的關鍵點,基于2D的關鍵點,我們可以作為參考點,然後對目标區域進行形變拉伸,以這種方式我們可以實作一些比較簡單的大眼瘦臉效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

我們要實作更複雜更精細的美妝效果,就需要依賴于mesh資訊,也就是基于我們的 2D關鍵點的去計算UV圖,然後根據素材 UV圖去做映射,然後對素材進行形變,最終和原圖進行混合。比如我們想要畫眼妝或者做睫毛,其實依賴的就是類似于這樣的一種方案。

接下來介紹一下3D的美妝方案,3D的美顔美妝實際上是2D美顔美妝方案的更新,大體流程是類似的,隻不過算法輸出的不再是2D資訊,而是揭示3D姿态參數主要是人臉的參數以及mesh資訊。

根據3D mesh資訊,我們就可以直接對3D素材做形變,可以對素材進行進一步的驅動,最終渲染混合,得到我們所需要的美體美妝效果。為了提升妝容真實感,我們也會在隐形側采用實時光照計算的算法,使得美妝的觀感更為自然。既然有2D的美顔美妝,也有3D美顔美妝,它們的使用場景實際上是會有不同的區分。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

2D美顔美妝的優缺點:

優點:性能是消耗比較低;素材易于生産的。

缺點:從效果上來講,大角度姿态下的效果差。

3D美顔美妝的優缺點:

優點:整體的真實感立體感好。

缺點:性能消耗也是相對高;素材生産相比于2D本高。

所有的這些不管2D也好、3D也好,人臉美化能力依托的,其實都是我們的底層的人臉sdk和基礎的人臉算法。

這裡簡單展示整體的流程圖,大緻分為人臉檢測、人臉跟蹤分割、關鍵點檢測、3D估計這些基礎子產品。人臉檢測是通過人臉檢測和人臉跟蹤,去對人臉去做大緻定位,然後從中去做局部裁剪。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

在裁剪的基礎上,我們利用分割算法、關鍵點模型以及參數估計模型,得到所需要的分割關鍵點以及3D姿态和mesh參數。對于3D的參數,為了提升它的精度,我們會用到2D的關鍵點資訊,對它去做進一步的線上的Refine。作為最為基礎使用最為廣泛的人臉CV算法,其實是需要滿足很高的要求的,包括對它的實時性、高精度、穩定性的要求。

盡管人臉算法已經發展很多年,已經有比較成熟的效果,但它依然面臨很多挑戰,比如遮擋、大角度姿态、遠距離情況,都會産會産生一些bad case。為了解決這些問題,最核心的是需要訓練足夠精确并且足夠穩定的基礎網絡。

在基礎網絡訓練上,我們從資料生成、訓練算法的優化,從網絡結構上做了長時間的打磨。這裡以3D人臉算法,人臉網絡訓練為例,對于3D網絡的訓練非常重要的一環.其實一個重要前提就是高精度的3D人臉資料的生成,為此我們搭建了一整套離線資料生成的完整的pipeline。這裡用到了我們自研的一些3DMM的人臉模型,它會根據我們的人臉分割結果、人臉關鍵點結果等,然後我們去做3D參數或者3DMM的拟合。為了更好的表達人臉的細節,我們在上面做一些局部的形變,最終得到貼合性比較好的高精度的的人臉mesh。有了這樣一個mesh,就可有效地訓練我們高精度3D人臉的網絡。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

下面簡要展示一些我們已經落地的美顔美妝效果,包括技術美顔,也包括2D3D美妝效果。總體效果上說,現有的這些美顔美妝效果其實已經做的是比較完善,不論是從真實感還是自然度上,都會給使用者帶來比較好的體驗。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

形體編輯

形體編輯流程:形體編輯要實作對人的身體去做形變美化,近年來的應用也十分的廣泛,跟美顔美妝相比,目前形體編輯還是處于一個技術在不斷發展疊代更新的階段。現在比較成熟的方案,還是基于2D點來做,基于3D人體模組化的方法,我們也正在研發當中,也有一些比較不錯的結果出來,但從通用性來上來講,還是基于2D點這樣的人體美化技術為主。

下面以長腿為例,簡要的介紹整體算法流程,跟2D的美顔美妝也是類似的。首先我們得到人體上的一些關鍵點,既包括我們的人體關節點,有的時候也會包括我們的人體輪廓點。

基于這些點,對于長腿這樣算法來講,我們會去對他的腿部的長腿中心點去做一個定位,然後确定它的整個長腿所要改變産生形變的一個區域。

我們根據預先設定好的形變函數,确定它所要這做拉伸形變之後所對應的區域,那麼從原區域和到目标區域之間,就是一一映射的這樣的一個關系。有了這個映射,我們就能快速的高效的去實作圖像的變換。

人體關鍵點算法的挑戰:要把人體形變效果做好,依賴的依然是基礎的人體關鍵點。相比于人臉來說,人體應該說相關的問題是更具有挑戰性,這個挑戰性來自于多方面,包括人體姿态的多變性、服飾多樣性、複雜背景幹擾、光照拍攝角度等等。總體上來說,人體的挑戰要比人臉還是要大很多。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

人體關鍵點檢測的方法架構一般分為以下兩類:

Bottom-up的檢測方案,先檢測出關鍵點,同時也有一些人體聚合的資訊,基于關鍵點和這樣的人體聚合資訊,我們把這些關鍵點組合成這樣獨立的人體關鍵點,有人體關鍵點所構成的這樣的獨立的目标,就是一個Bottom-up方案;

Top-down方案,首先要檢測出人體的位置,然後再局部去做單個人的關鍵點檢測。

兩種方法也會有優劣,Bottom-up方案效率比較高的,對于多人的場景來說,因為它是整體是一個FCN(全卷積)網絡,處理的是全圖,不論人是多少,隻要跑一次就好,隻有在後處理步驟上,才跟人是相關的。

Top-down的方案的優勢在于它的精度是比較高,因為會把人摳出來,是以資訊是更加集中,它的技術挑戰也是比較小,效果上是比較好,但是有多個人的時候它的性能消耗是比較高。

為了同時兼顧性能和效果,我們其實在端上的人體關鍵點上,兩種方案都有實作,同時這兩組網絡兩個方案之間會進行一個動态的切換,這樣就做到了效果精度與Top-Down方案保持一緻,多人性能基本上是接近于單人的情況。

人體局部美化

美甲:局部美化首先像美甲是我們經常在業務場景當中會遇到需求。其實要想實作美甲,我們既要有關鍵點的結果,也需要分割結果。首先對關鍵點我們會進行素材的挂載,然後為了讓它的貼合性更好,我們會進一步的根據分割區域對素材進行一定的裁剪,來提升整體效果的真實感。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

美甲是有一些非常獨特的難點,比如手部露出有可能不完整、在快速運動的時候,指甲很容易看不清等等。同時僅僅去對指甲進行分類也是非常困難的,為此我們研發了一套專用的美甲算法pipeline。

算法整體流程跟人臉的檢測定位、關鍵點分割的算法類似,但細節上做了針對性改進,比如針對手部露出不完整的問題,我們是基于分割結果去實作初定位;針對運動模糊問題,我們使用光流做估計,這樣我們充分利用前驅幀的結果在網絡失效的情況下做新的一幀的結果的預測。

對于指甲分類困難問題,我們主要利用全局資訊做分類,在檢測定位的同時我們是直接輸出一個分類的結果。下面展示我們線上的一些美甲效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

美發美膚:美發美膚也是大家比較普遍的需求,這類功能一般是需要依賴于我們的分割以及圖像生成/inpainting等多種算法相結合去實作。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

如果我們隻是換色或勻膚,那麼隻要基于分割就可以得到一個基礎版本。它主要是把頭發和皮膚區域去分割出來,再做圖像處理,就可以得到想要的結果。

對于更複雜的效果,比如我們想要做祛痘祛斑,這時除了分割之外,還要用圖像生成/inpainting的方式把扣掉的部分做補全。

另外如果我們想做像右圖所展示的這種長發變短發的效果,那麼它的整體的pipeline會更複雜一些,需要借助分割、圖像生成、inpainting三個算法的結合。主要是因為圖像區域比較大的時候,它生成結果是比較模糊的,我們需要借助于inpainting檢測算法做結果的精修,才能得到比較理想的長發變短發的效果。

下圖展示的是部分美膚的效果:膚色變換、勻膚。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

通用技術建設

前面從幾個方面介紹了我們現有的一些人體人像美化技術,從前面描述也可以看出,這些技術它的底層技術的複用性通用性是很強的。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

為了更好的提升各類特定應用場景下的技術效果,同時也為了降低相關技術落地的成本。我們一直在推動通用技術方案的建設。比如圖像生成技術的應用是非常廣泛的。這裡給出一些例子,比如左邊的淡妝效果,實際上是基于圖像生成實作的風格變換遷移;中間的去胡子是圖像内容擦除補全也就是inpainting;右邊的祛斑祛痘前面也提到會遇到局部圖像的生成的算法問題。

移動端圖像生成技術架構

所有上面列舉的圖像生成算法能力,我們可以用一套比較通用的算法架構來生産出來。這裡簡要介紹架構的一個pipeline。總體上架構的訓練分為三部分:

非配對資料的訓練。

配對資料的訓練。

移動端模型的蒸餾訓練。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

通過非配對資料訓練,我們可以獲得大量的候選的資料。這個步驟我們采用像CycleGAN、StyleGAN或者一些比較新GAN的生成訓練架構來實作。但是非配對資料訓練方式所生産出來的圖像,它的品質往往是沒有保證的。

是以在接下來的配對資料的訓練過程當中,我們會人工去進行篩選。結合業務需求,針對圖像的品質,我們會去做圖像資料的清理,由此我們可以得到一些高品質的配對資料,然後我們繼續以配對資料,對模型有監督訓練方式去做模型訓練疊代。

通過反複的多次疊代,最終得到效果令人滿意的模型,然後我們會用它做蒸餾訓練,得到最終移動端模型。我們在資料生産、模型訓練、移動端優化這些環節當中,都做了長期的疊代,尤其是像真實感資料生成、模型效果評估,都是我們非常關注的問題,它們對最終生成效果起非常關鍵性的作用。

除了GAN訓練、圖像生成技術之外,像模型的壓縮、AutoML也是我們比較關注的一類通用技術。相關領域我們也做了一些技術探索,下圖展示的是我們在ICCV2021年的一篇工作:線上多粒度蒸餾(OMGD)。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

實際上它是針對GAN類型的輕量級網絡的訓練架構,總體而言,它把剛才所介紹的架構當中的teacher的GAN訓練網絡以及蒸餾訓練合二為一。我們想要訓練輕量級的網絡,并不直接對它進行GAN形式的訓練,而是讓它以一組teacher網絡的輸出作為監督信号,做有監督的訓練。

同時監督信号來自于不同的特征層級,這一系列的teacher網絡,它們是有差別的,有的是深一些的網絡,有的則是寬一些的網絡,這些網絡的訓練是參照标準的GAN的訓練方法去進行疊代訓練。在整體的訓練過程當中,我們把teacher網絡GAN訓練和 student網絡、蒸餾訓練合并到一起,最終這樣的架構也得到非常不錯的效果。

從下面展示的結果能看出來,在計算量大幅度減少的情況之下,依然得到了很好的效果。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

除了通用技術的實作之外,我們也做了很多通用技術平台搭建的任務.我們現有的這些算法,從pipeline上來講,有些地方的重合度是比較高的,比如前面的檢測、跟蹤以及大量的分類任務。這些通用的算法子產品,我們希望能夠在統一的算法平台上,能夠進行針對特定場景的定制化。然後對于不同的場景,我們隻需要做資料的變更,隻需要做參數的簡單的調整,我們就能得到一套完整的基礎的pipeline。

為此我們搭建了相應的模型訓練平台,這個工作其實也為我們整體技術棧的豐富完善起到了非常重要的作用。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

人體美化技術展望

人體美化技術在近十幾年得到比較長足的進步,從最早一鍵修圖到後來的十級美顔再到現在超清原生感、自然感的追求。那麼未來大家對它期待是什麼樣的?

可能大家會把現有的美化技術和整容對标起來。在之前可能我們把美顔看作是一種化妝的替代,那麼以後的美顔是否能夠變為整容的替代,我覺得這個其實是大家所期待的。整容替代從整個圖檔的觀感上來講,它不光光是做簡單的膚質紋理的變換,它更多的是想展現出一種人的形體變化,對于整個人的氣質的提升,那麼這樣的要求其實就對算法提出了更高的要求。

瘦臉、瘦腿太初級,揭秘“亞洲秘術”美顔美體特效

從應用業務需求上來講,我們希望做到更個性化、精細化、智能化和專業化。技術需求上來講,這些效果的實作有賴于高精人體模組化,技術完善。同時也需要具有更強複用性的CV算法架構,同時也需要尋找實作更高品質渲染效果的方法。此外支撐這一切的基礎,還是需要靠新一代硬體平台。

硬體疊代更新對于軟體算法的效果提升,是比較決定性的作用。現在移動端裝置不論從計算性能還是它的傳感器的豐富程度,它的不斷更新必然對人體美化技術帶來極大的幫助。以上就是我分享的全部内容。

繼續閱讀