深度學習涉足美妝領域,網紅博主要失業?

https://mp.weixin.qq.com/s/sRwjpW8cYxd2lw2yZD-Mtwhtml

By 超神經

場景描述:風靡各大直播平臺的美妝博主,憑藉高超的化妝技術吸金無數。而人工智能也已經開始學習這一本領。利用深度學習與計算機視覺技術,僅僅根據人的眼睛特徵,就能給出適合用戶的美妝搭配。

關鍵詞:幾何變換 triplet 損失函數 遷移學習

近年來,網絡上涌現出愈來愈多的美妝博主,他們講解美妝技巧,分享化妝品試用效果,以此積累粉絲,與商家合做銷售產品。網絡

好比,前段時間大火的李佳琦,被稱爲「口紅魔鬼」的美妝博主。他曾瘋狂地在一次直播中一口氣試了 380 種口紅色號,並創下一分鐘內售出 14,000 支口紅的紀錄。
深度學習涉足美妝領域,網紅博主要失業?架構

然而,不少愛化妝的妹子應該早有領悟,明明買了和博主如出一轍的口紅,可畫出來效果卻不同。看到「李佳琦」們試用的色號很美很仙很貴氣,可到了本身嘴上怎麼就……機器學習

深度學習涉足美妝領域,網紅博主要失業?
口紅界的「賣家秀」和「買家秀」ide

沒錯,正是由於每一個人的臉型、膚色、脣形等等都不同,才致使了「賣家秀」和「買家秀」的結果。函數

那麼問題來了,怎樣才能知道最適合本身的美妝產品是哪款呢?一個叫作 Mira 的公司給出的答案是:用深度學習。學習

深度學習也愛漂亮妝

許多人印象中,人工智能、深度學習這些名詞和美妝應該八竿子打不着關係,但位於美國洛杉磯的創企 Mira 可不這麼想。優化

這家公司決定用人工智能技術幫助廣大愛漂亮女士,好比獲取化妝靈感,購買合適的美妝產品等。人工智能

深度學習涉足美妝領域,網紅博主要失業?
美妝先後,效果堪比換臉.net

在隨機和數十位美妝人士詳聊後,Mira 團隊瞭解到,目前女性消費者在尋找合適的化妝產品和美妝方法時,遇到的最大困難是,沒有權威且可信的聲音能針對她們我的的美容需求作出指導。

在本文咱們就聊聊 Mira 的技術團隊如何用深度學習和計算機視覺技術發現切中這個問題要害的實例:找到講解人類具體眼型和麪部膚色的美妝大咖、圖片和視頻等信息。

沿着這種方式, Mira 團隊藉助三個簡單但強大的知識——幾何變換、triplet 損失函數和遷移學習,只用最小限度的人類輸入數據就能解決種種困難的美妝推斷問題。

AI 幫你選擇最合適的眼妝

深度學習涉足美妝領域,網紅博主要失業?
眼部分類示意圖

愛化妝的女士都知道,找到適合本身眼睛的美妝產品和方法是很困難的——每一個人的眼型和麪部膚色都不同。

即使是同一種眼妝(好比煙燻妝),根據眼型不一樣,所用的化妝方法也大不相同。

雖然像 Birchbox 等推出了一些有用的化妝指南,但 Mira 團隊通過調查發現,美妝愛好者們一般仍是喜歡聽聽專業且可信的建議,尤爲是和本身眼型類似的人的化妝建議,她們對這些建議的重視程度甚至都超過了美容專家的意見。

深度學習涉足美妝領域,網紅博主要失業?

利用人工智能技術,如今咱們根據本身的眼部特徵,以及本身其它獨特的面部特徵,就能讓本身知道怎麼化妝、買什麼化妝品。

AI 美妝第一步:尋找類似性

咱們把問題形式化一下:根據一組面部照片,以及少量數量的人工標記的照片(標記了眼睛顏色、眼瞼形狀等),找到兩個眼睛之間的視覺類似性度量(《紅樓夢》中「這個妹妹我曾見過的」就是這個意思)。而後用分類器捕捉人工標記的屬性。

本文先重點講解如何肯定眼睛之間的類似度,後面會詳細解釋如何進行分類任務。

深度學習涉足美妝領域,網紅博主要失業?

原始圖像並非很適合計算視覺類似性或者進行分類任務。由於它們包含的不少類似性都是表面上的(好比畫的妝很類似,因爲強光才形成膚色看起來不一樣)。

而這些和人物真正的眼部結構及面部膚色並無關係。並且,原始圖像通常都處於高維空間,這就須要大量的有標記訓練數據用於分類任務。

深度學習涉足美妝領域,網紅博主要失業?

如上圖,若是僅直接比較圖像像素,人物的眼睛都高度類似,但仔細注意會發現,雖然人物的眼影、光線和視線方向一致,但她們的眼睛顏色和麪部膚色卻各不相同。

深度學習涉足美妝領域,網紅博主要失業?
處理原始圖像的困難所在:雖然上圖兩人的眼睛大不相同,但初始數據比較起來卻很類似

那麼 Mira 的首要任務就是:要得到眼部照片的低維和密集的數學表達形式,也就是咱們所說的「嵌套」(embeddings)。

它只會捕捉任務所需的圖像品質(嵌套是一種分類特徵,以連續值特徵表示。一般,嵌套是指將高維度向量映射到低維度的空間。)這樣一來,「嵌套」應當忽略這些信息:

  • 眼睛姿式/視線方向
  • 具體的光線情況(固然還有強大的濾鏡這些)
  • 不論是臉部畫了什麼樣的妝

深度學習涉足美妝領域,網紅博主要失業?
當用三重函數訓練眼睛嵌入時,系統學會了忽略不相關特徵

AI 美妝第二步:投影變換進行圖像歸一化

咱們能夠經過一個簡單的預處理步驟——投影變化刪除一整個類別的表面類似性。

雖然裁減過的眼部照片會出現不少明顯的結構性差別(好比眼睛不在照片中心,或者因爲頭部傾斜的緣由出現旋轉等),但投影變化能讓咱們「扭曲」照片,這樣就能保證相同的眼部標誌處於相同的座標。

藉助一丁點的線性代數原理,咱們就能夠將一張圖像「扭曲」,這樣一組點會映射爲一個新的理想的形狀。旋轉和拉伸圖像的過程以下所示:

深度學習涉足美妝領域,網紅博主要失業?

使用投影變化,能夠將上面的圖像進行扭曲處理,上圖中的 4 個紅點會組成一個矩形,從而將紅點圍住的文本「拉直」。Mira 團隊在將眼部照片進行正常化處理時,應用了一樣的方法。

研究人員接用 dlib 檢測出臉部標記(若是你對 dlib 感興趣,能夠在如下連接中瞭解:http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html)。

剪裁照片中的眼部部位,將其「扭曲」處理,確保它們對齊和一致。這步操做能讓他們專一於讓「嵌套」不受人物頭部姿式和傾斜角度的影響。

深度學習涉足美妝領域,網紅博主要失業?

接着進行圖像歸一化:檢測出面部標誌,剪裁眼部圖像,而後用投影轉換將眼部圖像「扭曲」至標準位置。

深度學習涉足美妝領域,網紅博主要失業?
圖像預處理流程中的圖像樣本

AI 美妝第三步:用 triplet 損失函數進行表示學習

「扭曲」處理後的圖像進行直接比較時,仍會表現出一些表面類似性,包括視線方向和類似的化妝等。深度學習技術就是解決這個問題的藥方。

研究人員訓練了一個卷積神經網絡,用眼部照片輸入它後會輸出向量,相比不一樣人之間,同一我的眼部照片輸出的向量更具類似性。神經網絡會學習輸出每一個人眼在不一樣環境下的穩定持續的表示形式。

固然,這裏因此靠的正是前面所說的 triplet 損失函數,其公式以下所示:
深度學習涉足美妝領域,網紅博主要失業?

這詳細說明了當函數將具體個體(錨點和正樣本)的兩個「嵌套」放置的位置比錨點和無關個體(負樣本)的位置更近時,模型的損失和優化目標會遞減。

深度學習涉足美妝領域,網紅博主要失業?
模型架構示意圖

當研究人員將眼部照片應用到模型中時,他們發現生成的「嵌套」很好地指出了具備類似眼部結構和麪部膚色的兩張照片。

深度學習涉足美妝領域,網紅博主要失業?
眼部嵌套類似的照片示例

這裏所用的方法其實和谷歌的 FaceNet 很像,也就是經過對照片進行「扭曲」和一致性處理,應用 triplet 損失函數,生成臉部級別的圖像嵌套。

AI 美妝第四步:合併嵌套

研究人員對生成的嵌套進行了簡單調試,讓其一樣適用於支持人級(Person-level)的眼部表示——提取出每一個幀的所有噪聲數據。

經過使用上面神經網絡的預訓練權重,研究人員又採用了新的損失函數,該函數將多組嵌套的平均值放在極爲相近的位置(相對於無關個體),以下所示:

深度學習涉足美妝領域,網紅博主要失業?

使用先前神經網絡的預訓練權重,研究人員可讓網絡可以以求平均值的方式將眼部嵌套合併在一塊兒,能看到模型快速收斂。這個過程就是常說的遷移學習。

遷移學習讓嵌套可以合併爲一個個體眼睛的更爲總體的表示。雖然此時神經網絡架構很是複雜了,但模型因爲採用了遷移學習的緣由可以快速收斂。

最終,研究人員用數據集對模型進行了驗證,發現模型生成的嵌套可以捕捉個體之間的很細微的類似性,以下所示:

深度學習涉足美妝領域,網紅博主要失業?
每一行人物的眼部嵌套之間很是類似

看你一眼,就給出完美妝容建議

經過得到單張照片中人眼的高質量數學表示,研究人員就能找出人物眼睛構造的類似性,這就爲只根據人的眼睛,爲他/她匹配合適的眼妝風格打下了基礎。

Mira 技術團隊表示接下來的任務是應用幾種監督式學習方法(分類眼型、迴歸眼睛顏色等),以及一些分析方法,搭建出能爲人們提供化妝建議的 AI 模型。

也就是說,將來,妹子們沒必要再發愁畫什麼樣的妝最適合本身的眼睛和膚色了,更沒必要機械地參考標準化妝指南和美妝博主試色效果,AI 會爲你推薦更適合你本身的美妝術。

如此一來,美妝博主們恐怕要被搶飯碗了?不過,李佳琦也不用再那麼辛苦地,在一次直播中試色 380 次了。

注:本文全部代碼和結果的實現用到了 NumPy,SciPy,Matplotlib,Chainer,dlib 和 SqueezeNet 架構。

超神經百科

遷移學習

遷移學習是一種機器學習方法,就是把爲任務 A 開發的模型做爲初始點,從新使用在爲任務 B 開發模型的過程當中。

深度學習中,在計算機視覺任務和天然語言處理任務中,將預訓練的模型做爲新模型的起點是一種經常使用的方法,一般這些預訓練的模型在開發神經網絡的時候已經消耗了巨大的時間資源和計算資源,遷移學習能夠將已習得的強大技能遷移到相關的的問題上。

如下是兩個經常使用的方法:

  1. 開發模型的方法
  2. 預訓練模型的方法
    深度學習涉足美妝領域,網紅博主要失業?
相關文章
相關標籤/搜索