場景描述:風靡各大直播平臺的美妝博主,憑借高超的化妝技術吸金無數。而人工智能也已經開始學習這一本領。利用深度學習與計算機視覺技術,僅僅根據人的眼睛特征,就能給出適合用戶的美妝搭配。
關鍵詞:幾何變換 triplet 損失函數 遷移學習
近年來,網絡上涌現出越來越多的美妝博主,他們講解美妝技巧,分享化妝品試用效果,以此積累粉絲,與商家合作銷售產品。
比如,前段時間大火的李佳琦,被稱為「口紅魔鬼」的美妝博主。他曾瘋狂地在一次直播中一口氣試了380 種口紅色號,并創下一分鐘內售出14,000 支口紅的紀錄。
然而,很多愛化妝的妹子應該早有領悟,明明買了和博主一模一樣的口紅,可畫出來效果卻不一樣??吹健咐罴宴箓冊囉玫纳柡苊篮芟珊苜F氣,可到了自己嘴上怎么就……
口紅界的「賣家秀」和「買家秀」
沒錯,正是因為每個人的臉型、膚色、唇形等等都不一樣,才導致了「賣家秀」和「買家秀」的結果。
那么問題來了,怎樣才能知道最適合自己的美妝產品是哪款呢?一個叫做 Mira 的公司給出的答案是:用深度學習。
深度學習也愛美妝
許多人印象中,人工智能、深度學習這些名詞和美妝應該八竿子打不著關系,但位于美國洛杉磯的創企 Mira 可不這么想。
這家公司決定用人工智能技術幫助廣大愛美女士,比如獲取化妝靈感,購買合適的美妝產品等。
美妝前后,效果堪比換臉
在隨機和數十位美妝人士詳聊后,Mira 團隊了解到,目前女性消費者在尋找合適的化妝產品和美妝方法時,遇到的最大困難是,沒有權威且可信的聲音能針對她們個人的美容需求做出指導。
在本文我們就聊聊 Mira 的技術團隊如何用深度學習和計算機視覺技術發現切中這個問題要害的實例:找到講解人類具體眼型和面部膚色的美妝大咖、圖片和視頻等信息。
沿著這種方式, Mira 團隊借助三個簡單但強大的知識——幾何變換、triplet 損失函數和遷移學習,只用最小限度的人類輸入數據就能解決種種困難的美妝推斷問題。
AI 幫你選擇最合適的眼妝
眼部分類示意圖
愛化妝的女士都知道,找到適合自己眼睛的美妝產品和方法是很困難的——每個人的眼型和面部膚色都不一樣。
即便是同一種眼妝(比如煙熏妝),根據眼型不同,所用的化妝方法也大不相同。
雖然像 Birchbox 等推出了一些有用的化妝指南,但 Mira 團隊經過調查發現,美妝愛好者們通常還是喜歡聽聽專業且可信的建議,尤其是和自己眼型相似的人的化妝建議,她們對這些建議的重視程度甚至都超過了美容專家的意見。
利用人工智能技術,現在我們根據自己的眼部特征,以及自己其它獨特的面部特征,就能讓自己知道怎么化妝、買什么化妝品。
AI 美妝第一步:尋找相似性
我們把問題形式化一下:根據一組面部照片,以及少許數量的人工標記的照片(標記了眼睛顏色、眼瞼形狀等),找到兩個眼睛之間的視覺相似性度量(《紅樓夢》中「這個妹妹我曾見過的」就是這個意思)。然后用分類器捕捉人工標記的屬性。
本文先重點講解如何確定眼睛之間的相似度,后面會詳細解釋如何進行分類任務。
原始圖像并不是很適合計算視覺相似性或者進行分類任務。因為它們包含的很多相似性都是表面上的(比如畫的妝很相似,由于強光才造成膚色看起來不同)。
而這些和人物真正的眼部結構及面部膚色并沒有關系。而且,原始圖像一般都處于高維空間,這就需要大量的有標記訓練數據用于分類任務。
如上圖,如果僅直接比較圖像像素,人物的眼睛都高度相似,但仔細注意會發現,雖然人物的眼影、光線和視線方向一致,但她們的眼睛顏色和面部膚色卻各不相同。
處理原始圖像的困難所在:雖然上圖兩人的眼睛大不相同,但初始數據比較起來卻很相似
那么 Mira 的首要任務就是:要獲得眼部照片的低維和密集的數學表達形式,也就是我們所說的「嵌套」(embeddings)。
它只會捕捉任務所需的圖像品質(嵌套是一種分類特征,以連續值特征表示。通常,嵌套是指將高維度向量映射到低維度的空間。)這樣一來,「嵌套」應當忽略這些信息:
眼睛姿勢/視線方向
具體的光線狀況(當然還有強大的濾鏡這些)
不管是臉部畫了什么樣的妝
當用三重函數訓練眼睛嵌入時,系統學會了忽略不相關特征
AI 美妝第二步:投影變換進行圖像歸一化
我們可以通過一個簡單的預處理步驟——投影變化刪除一整個類別的表面相似性。
雖然裁減過的眼部照片會出現很多明顯的結構性差異(比如眼睛不在照片中心,或者由于頭部傾斜的原因出現旋轉等),但投影變化能讓我們「扭曲」照片,這樣就能保證相同的眼部標志處于相同的坐標。
借助一丁點的線性代數原理,我們就可以將一張圖像「扭曲」,這樣一組點會映射為一個新的理想的形狀。旋轉和拉伸圖像的過程如下所示:
使用投影變化,可以將上面的圖像進行扭曲處理,上圖中的 4 個紅點會組成一個矩形,從而將紅點圍住的文本「拉直」。Mira 團隊在將眼部照片進行正?;幚頃r,應用了同樣的方法。
研究人員接用 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. 預訓練模型的方法
-
人工智能
+關注
關注
1791文章
47350瀏覽量
238754 -
深度學習
+關注
關注
73文章
5504瀏覽量
121222
原文標題:深度學習涉足美妝領域,網紅博主要失業?
文章出處:【微信號:TheBigData1024,微信公眾號:人工智能與大數據技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論