【蜂口 | AI人工智能】人臉美顏——龍鵬 深度學習與人臉圖像應用連載(八)

這次接着給大家帶來人臉圖像相關的分享。本次我們的分享是爲大家所熟悉的人臉美顏算法,內容將從以下三個方面給大家進行分享:

首先,我們會給大家介紹一下人臉美顏到底包含哪些內容?人臉美顏算法包含的內容非常的多,從我們所熟悉的磨皮祛斑算法,到大眼瘦臉算法,到美脣美髮,到我們沒有那麼熟悉的妝容遷移算法,它包含的內容非常的多。

其次,我們會對前面的這一些算法所涉及的核心技術給大家做一個簡單的介紹。主要包括圖像濾波的技術、圖像變形的技術、圖像分割等技術。

最後,我們會對整體的美顏做一個簡單的總結。

下面開始我們正式的分享內容。

我們以騰訊出品的天天P圖這樣的一個大家廣泛使用的一個圖像後處理軟件來給大家做展示,如下面兩幅圖:
在這裏插入圖片描述
圖1
在這裏插入圖片描述
圖2

天天P圖它包含了非常多的美容美妝的操作,我們可以看到從皮膚臉型等全局的操作,到眼睛眼皮睫毛嘴脣等局部的操作以及到頭髮等非常複雜的人臉圖像的操作等,都已經被產品廣泛的支持。

圖1展示的是一個美容的菜單,我們可以看到它主要包含了以下幾個內容;首先以磨皮美膚祛斑,這是與圖像濾波相關的一個算法;然後是五官重塑,瘦臉瘦身,這是與圖像的幾何變形操作有關的一些算法;當然它還包括了一些淡化筆、美膚筆等等一些算法,也是美容的操作。

我們再看看美妝的操作,如圖2。如果大家聽過我以前的一個分享系列內容叫做Caffe圖像分割實戰,大家應該還記得,像脣彩染髮這樣的兩個功能,背後都是圖像分割技術在進行支持。當然還包括了一些其他的眉毛粉底睫毛等等一些算法就不再一一介紹。

下面我們首先從美顏的磨皮算法的核心技術來給大家進行介紹:

磨皮的算法現在主要有兩種思路:

第一種思路是高反差保留的磨皮算法,就是來自於國外的一個工程師的算法。它的特點是圖像的細節保留的比較好,真實感比較強。所以它帶來的缺點就是當皮膚的瑕疵非常多的時候,算法沒有那麼強,它無法磨得非常乾淨。

這一類算法在國內以美顏相機等爲代表,所以這一類算法它追求的是一個真實性。

第二種思路是以保邊濾波器爲代表的磨皮算法。它的特點是皮膚可以磨的非常的平滑,非常的乾淨,但是它帶來的缺點就是無法保留真實感。也就是說很多的時候經過磨皮之後的圖片看起來非常的假、不自然,

這個算法以B612、Face U等APP爲代表。

我們以第二種算法,也就是濾波器的算法,來給大家做一個詳細的原理介紹:

我們選擇的濾波算法是雙邊濾波器。雙邊濾波器是在圖像降噪領域以及圖像濾波領域非常非常廣泛使用的一個方法。

假設我們的輸入的美顏的圖是f,美顏後的圖也就是我們的輸出圖是g,σr、σd分別是灰度和空間域的一個控制參數。

首先,我們求出灰度域的一個權值矩陣r,它是基於像素值f(i,j)、f(k,l)來進行計算。
在這裏插入圖片描述
然後,我們計算空間域的一個權值參數d,它就是以像素的具體的座標i,k,j,l來進行計算。
在這裏插入圖片描述
得到了這兩個權值矩陣之後,我們把這兩個權值矩陣相乘,就得到了我們最終的一個權值矩陣w。
在這裏插入圖片描述
得到最終的權值矩陣之後,我們就可以進行加權平均,得到了我們最後的一個結果g。👇
在這裏插入圖片描述
雙邊濾波器算法它的特點是它形式比較簡單,而且,它能夠在獲得比較好的濾波結果的同時,還能夠保持邊緣的銳化。

第二部分我們給大家介紹塑形相關的算法,塑形相關的算法主要用於大眼瘦以及臉型的變化,甚至可以拉伸腿等等,這與ps裏面的液化工具相似。

塑形算法主要也包含兩個方面:

第一個是液化算法。這是一個比較經典的Interactive Image warping,這是來自於國外的一個碩士論文。

第二個是Moving Least Squares算法。這是基於關鍵點加上最小二乘法約束的一個算法。

再介紹具體的算法之前,我們可以先看一個演示。
在這裏插入圖片描述
這是來自於最新版的photoshop的一個液化工具,它已經實現了基於人臉識別的一個智能液化。

下面我們對Moving Least Squares算法做具體的介紹。這個算法的核心思想是:首先我們獲取到原始圖像中的一些關鍵點,然後我們定義的目標同樣的一種關鍵點,它要做的就是求取一個相似變換。

就是下面這樣的一個式子,它最終的目標是最小化這樣的一個重建誤差,這就是這個算法的核心。
在這裏插入圖片描述
我們可以看一下這個算法的結果的演示,可以看到算法的變形是非常的平滑。
在這裏插入圖片描述
第三部分是美妝算法。所謂美妝算法就是我們前面說的脣彩以及美髮的算法,它背後就是語義分割的技術。語義分割現在主流是以CNN等深度學習算法爲代表,輔以CRF這樣的一個後處理操作。其次在我們分割完,也就是得到嘴脣和美髮等區域之後,我們還要做一些簡單的圖像融合,以便使我們應用這些美妝算法之後,效果看起來更加自然,例如可以採用泊松融合等等一些同樣融合的算法。
在這裏插入圖片描述
上面這個圖是來自於谷歌的一個face parsing項目,也就是人臉各區域的一個分割的項目。我們可以看到他已經將人臉面部的各個區域都都進行了很精細的語義上的標註。目前最好的方法已經可以實現對這些區域進行實時的高精度的分割。這樣的技術是美妝算法背後的支撐。

最後我們給大家介紹一下妝容遷移的算法。何爲妝容遷移?我們首先看一張圖:
在這裏插入圖片描述
圖中上面這樣一張圖是我們要對它應用算法的圖。下面這張圖是我們的參考圖。那麼所謂的妝容遷移,就是說要把下面這樣一張圖的化妝的風格遷移到上面這樣一張圖。

這是以深度學習爲代表的一個框架。我們可以看到它的流程就是首先我們要對兩幅圖各自做一個語義上的parsing,也就是圖像分割操作。得到圖像分割操作的結果之後,我們會對人臉上的各個區域來進行重建,對結構進行一個保持,會定義一個智能的loss,然後進行融合,得到我們最終的結果。

大家如果對技術細節非常感興趣,可以去參考這篇文章:

Liu S, Ou X, Qian R, et al. Makeup like a superstar: deep localized makeup transfer network[C]// International Joint Conference on Artificial Intelligence. AAAI Press, 2016:2568-2575.

最後我們對整體的美顏算法做一個簡單的總結:

a.美顏算法內容非常豐富。我們前面可以看到對於人臉的各個區域,從眼睛睫毛鼻子嘴巴到髮型到臉型等等都已經有各種各樣的豐富的美顏操作。

b.傳統方法應用非常廣泛。我們前面可以看到美顏算法它現在仍然有非常非常多的傳統的方法在其中進行應用,甚至在很多的領域、在很多的方面,傳統方法都要優於現在的深度學習的方法。

c.現在深度學習方法快速的發展。我們在前面給大家展示的最後的一個應用,就是妝容遷移,這是一個智能妝容遷移的一個技術,它就利用到了深度學習的方法,來對各個子區域進行一個智能的妝容遷移。包括前面我們給大家展示的一個液化算法,它也是photoshop在人臉識別這樣的一個基礎上,建立的對人臉的各個區域進行智能的液化的操作。

關於美顏算法,這裏的分享只是一部分,實際上還包含了非常非常多的算法,大家如果對算法非常感興趣,可以去線下蒐集相關的資料,背後的一些具體的技術細節,大家都可以去留意。

感謝您的閱讀,更多精彩盡在蜂口小程序~瞭解一下?
獲取免費內容,歡迎V信fengkou-IT勾搭~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章