天天看點

優酷直播實時美顔技術實踐

作者| 阿裡文娛算法專家 彰三

一、背景

随着移動裝置的發展,美顔已成為多媒體内容生成鍊路中不可缺少的一種基本能力,尤其是在來瘋直播秀場業務的場景下,主播的顔值就意味着生産力,直接影響主播及平台的收入。

美顔的目的就是要讓人看起來更美,包括皮膚細膩、白皙、光滑,臉部各個器官及臉型可 以進行細緻的調整,通過美妝調節可以達到快速上妝的效果。為達成上述人臉美顔效果的訴求, 我們從技術上主要通過如下四個關鍵步驟來實作:

優酷直播實時美顔技術實踐

二、技術實作

1.擷取人臉關鍵點資訊

美顔處理依賴于人臉關鍵點,基于這些關鍵點,我們可以精準的知道臉部各個器官的位置 資訊,進而進行美化處理:

首先,我們基于 AliFace 實作人臉關鍵點基本資訊的擷取,主要包括眉毛、眼睛、鼻子、 嘴巴、臉部外輪廓這 106 個關鍵點;

其次,基于檢測出的 106 個關鍵點,我們需要對臉部關鍵點進行稠密化處理,插入額外的 關鍵點,如額頭區域和臉部外圍限制區域,使其能夠覆寫整個臉部區域;

最後,基于稠密化以後的人臉關鍵點,對其建構整張臉的三角網格,實作對整個臉部區域 的三角剖分(Delaunay Triangulation),三角剖分将人臉切分成多個無重疊的三角區域,進而可以 使用 openGL 或者 D3D 進行繪制渲染處理,進而實作對臉部器官的各種美化處理。基礎人臉關鍵點、稠密後人臉關鍵點、三角網格圖檔分别見下圖:

優酷直播實時美顔技術實踐

2. 皮膚美化處理

皮膚美化處理主要包括磨皮和美白,磨皮需要把臉部皮膚區域處理得細膩、光滑,美白則 需要将皮膚區域處理得白皙、紅潤。具體的處理子產品見下圖:

優酷直播實時美顔技術實踐

其主要包含如下幾個關鍵步驟:

1)圖像平滑 磨皮主要是通過使用保邊濾波器對臉部非器官區域進行平滑,達到臉部皮膚區域光滑的效果。一般來說常用的保邊濾波器主要有雙邊濾波、導向濾波、表面模糊濾波、局部均值濾波等,考慮到性能和效果的平衡,一般都采用雙邊濾波或者導向濾波。 雙邊濾波考慮了視窗區域内像素的歐式距離和像素強度差異這兩個次元,使得其在進行平滑時具有保護邊緣的特性。其優點是在 GPU 側計算量小,資源消耗低,其缺點是無法去除色差較大的孤立點,如痘痘、黑痣等,且磨皮後的效果較為生硬。 而導向濾波則是根據視窗區域内紋理的複雜程度來進行平滑程度的調節,在平坦區域趨近于均值濾波,在紋理複雜的區域則趨近于原圖,視窗區域内紋理的複雜程度跟均值和方差強相關,既能夠很好地處理平坦區域的各種噪點,又能較完整的儲存好輪廓區域的資訊,且在 GPU 側的計算并不複雜,是以結合我們的業務需求,我們采用了引導濾波作為磨皮處理的保邊濾波器。導向濾波(Guide Filter)的算法如下圖所示:

優酷直播實時美顔技術實踐

在磨皮這種場景下,導向濾波的引導圖即為原圖本身,并且其均值濾波的中間結果可用于 後續的銳化處理以提升性能。

2)人臉 ROI(Region of interest)處理 為了解決磨皮效果的精度和品質,我們标定了一個人臉美顔的遮罩圖檔,該圖檔的 rgb 三個通道分别對應臉部器官(眼睛、眉毛、鼻子、嘴等)區域的 Mask1,法令紋區域和眼袋區域的遮罩 Mask2,臉部高、低光區域的遮罩 Mask3,高、低光遮罩的 Mask3 如下圖所示:

優酷直播實時美顔技術實踐

通過人臉關鍵點資訊結合該遮罩圖檔,利用三角剖分的方法實時生成與目前人臉所對應的 臉部遮罩 Mask,對經過平滑後的圖像和原圖進行融合處理。Mask1 會保護臉部各個器官不被平 滑,保證了臉部磨皮區域的精準性,Mask2 增強了法令紋區域和眼袋區域的磨皮程度,達到去 除法令紋和眼袋的目的,Mask3 則通過高、低光的處理使得磨皮後的五官更為立體。

之是以将上述三個遮罩 mask 合并成一張圖檔,是為了降低在 GPU 側擷取像素值的頻次以 達到提升性能的目的。與此同時,在非臉部區域通過膚色檢測實作對膚色區域磨皮,不是膚色 的區域則拒絕被平滑,進而實作對整圖的磨皮處理。

3)紋理增強及膚色映射 磨皮後的圖像在整體上被模糊化處理,使得整個圖像不夠通徹透亮,是以需要再對其進行銳化處理。為提升性能,我們結合導向濾波過程中的均值濾波結果和人臉 ROI 區域 mask,采用近似USM 銳化的方式對圖像進行增強,進而實作對紋理細節的凸顯。 為實作膚色美白,我們通過采用顔色查找表的方式來将膚色映射到理想的顔色範圍。顔色查找表基本原理如下所示:

優酷直播實時美顔技術實踐

其本質上相當于一個離散函數 ,給定任意的rgb 顔色值 ,都可以在顔色查找表圖檔中找到對應的顔色值内插出相應的轉換結果 。美白顔色查找表的生成需要設計師根 據膚色所處的大緻顔色範圍 ,基于基準顔色查找表經過一系列的色彩調整後生成一張新的顔色查找表的圖檔 ,如下圖所示左邊為基準顔色查找表 ,右邊為調色後的膚色美白顔色查找表

優酷直播實時美顔技術實踐

上述就是皮膚美化的幾個重要步 驟 ,經過皮膚美化後的 效果對比圖如下 :

優酷直播實時美顔技術實踐

3.臉部器官美型處理

臉部美型處理主要包括臉型調整和臉部器官調整,實作上述功能的核心步驟是基于人臉關 鍵點通過圖像形變的形式來實作臉部各個器官的形狀調整。我們所采用的圖像形變算法主要是 局部扭曲算法和三角剖分,局部扭曲算法一般包括局部縮放、局部平移、局部旋轉等,如大眼 功能即可通過局部縮放來實作。三角剖分的方法則是通過對三角網頂點進行平移,再将平移後 的頂點更新到對應的紋理坐标,通過 openGL 或者 D3D 進行繪制渲染,進而實作整個關聯三角 網的變形。具體的臉部美型效果如下圖所示:

優酷直播實時美顔技術實踐

4.美妝處理

美妝效果的好壞強依賴于素材模闆精準的标定資料和準确的人臉關鍵點資料,具體的實作 流程主要包括如下幾個步驟:

1)妝容素材的管理及解析。結合各種妝容及貼紙素材,我們建構了一套完整的繪制機制,根據對妝容效果描述檔案(Json)的解析,結合頂點繪制規則對各個類型的素材進行繪制處理及融合。

2)素材模闆和目前人臉器官進行對齊。素材的描述檔案中存有相應的标定資訊,結合目前 圖像的人臉關鍵點,采用三角剖分的方式實作對素材模闆的變形,達到與目前人臉器官對齊的目的。

3)不同器官的定制化處理。由于不同器官的處理流程不一樣,需要針對不同的器官采用不 同的處理方式。如美齒時需要結合牙齒區域的 mask 模闆通過美齒顔色查找表實作牙齒區域顔 色的調整;眉毛的處理則需先将目前圖像的眉毛結合目前眉毛模闆的素材進行眉毛區域的形變 調整,同時将目前圖像的眉毛部分進行減弱,再和對齊後的眉毛模闆進行融合。

4)圖像融合。由于素材模闆和臉部器官的差異性,我們需要采取不同的融合方式來實作圖 層的融合處理。如腮紅我們可以直接基于素材的半透明通道進行融合,修容處理則需采用高反差算法進行融合處理。

當然,上述美妝處理的流程也适用于人臉 2D 貼紙。

三、結果及落地

性能方面,在 iphone6p 等中低端機型上,可實作 720p 24fps 實時人臉美顔;效果方面,通 過對皮膚的處理,可使人臉皮膚達到白皙細膩的效果,同時主播可按照自己的喜好對臉部的任意器官進行調整。目前人臉美顔功能已在來瘋直播(移動端和 PC 端)、優來播移動端及淘寶直 播 PC 端落地,來瘋移動端主播日均開播人數實作一倍增長。具體的人臉美顔效果如下圖所示:

優酷直播實時美顔技術實踐

四、一些思考

1)結合業務特性,建立“美”的标準。什麼是“美”,在人類的普世觀裡面是有個基礎标 準的,但針對不同的曆史時期、地域、場景會有所差别,例如,東方人的審美觀點集中在:“三 庭五眼”“四高三低”“中軸豐字布局”等,而在表演類的秀場場景下,則更會突出:“大眼”“瘦 臉”“尖下巴”“膠質感皮膚”等,是以,結合我們的業務場景,用數學的方式定義“秀場”類 的“美學”标準客觀評價體系,一方面幫助我們的使用者更簡單、快捷的進行美化處理。另一方 面,為我們後續的疊代優化、完善研發工作提供資料支撐。

2)妝容遷移。目前的美妝都是基于多個素材來實作,其開發成本相對較高。而妝容遷移可 脫離對美妝素材的強依賴,降低開發成本。使用者隻需選取一張好看的效果圖即可實作美妝,這 是我們後續努力的方向。

參考文獻

[1]

https://www.ti.inf.ethz.ch/ew/Lehre/CG13/lecture/Chapter%206.pdf

[2]

http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_

Filtering.html

[3]

http://kaiminghe.com/eccv10/index.html

繼續閱讀