讓猛男嬌羞的AI算法

來源 |Jack Cui
大家好,我是 豬哥,今天看到一個(gè)非常有趣的AI特效,猛男都hold不住的特效,推薦給大家看看!
想像一下,魁梧的身軀,濃密的絡(luò)腮胡的猛男。

在AI特效的加持下,“華麗轉(zhuǎn)身”瞬間變成了一個(gè)可愛的“小胖子”。

AI如此多嬌,引得無數(shù)猛男競折腰(視頻可播放):
??????
其實(shí),這個(gè)去胡子特效算法很早就有了。
這些爆款的背后,都是早已發(fā)表的算法的應(yīng)用落地。
我們從不缺優(yōu)秀的算法,缺的是將算法巧妙用起來的idea,以及算法的快速落地能力。
去胡子特效就是人臉屬性編輯算法的巧妙應(yīng)用。
今天就帶大家回顧一下,去胡子特效的算法原理,以及如何玩轉(zhuǎn)這個(gè)算法!
No beard
猛男如果想要嘗試這「去胡子特效」,不想跑算法,可以直接用一款名為Snapchat的App。

在對話框里輸入no beard,選中下面第一個(gè)特效即可:

Snapchat這款A(yù)pp需要科學(xué)上網(wǎng),否則無法使用。
接下來說的就是我曾經(jīng)寫過的StyleFlow,胡須、頭發(fā)、光照角度、人臉角度、年齡、眼鏡、表情等多維角度都可以單獨(dú)調(diào)節(jié)(視頻可播放):
StyleFlow 就是基于StyleGAN的人臉屬性編輯算法。

思想就是,在隱空間(latent space)控制隱藏特征(latent code)來控制圖片的屬性。
簡單點(diǎn)解釋就是,一副人臉圖片,是由多維特征組成的,比如年齡、性別、光照、膚色、發(fā)質(zhì)等。
為了更好的對數(shù)據(jù)進(jìn)行分類或生成,需要對數(shù)據(jù)的特征進(jìn)行表示,但是數(shù)據(jù)有很多特征。
這些特征之間相互關(guān)聯(lián),耦合性較高,導(dǎo)致模型很難弄清楚它們之間的關(guān)聯(lián),使得學(xué)習(xí)效率低下,因此需要尋找到這些表面特征之下隱藏的深層次的關(guān)系,將這些關(guān)系進(jìn)行解耦,得到的隱藏特征,即latent code。
由latent code組成的空間就是latent space。
StyleFlow就做了這么一個(gè)事,解耦特征,控制特征。
算法在人臉和汽車數(shù)據(jù)集上,都取得了非常不錯(cuò)的效果。
算法測試
Github 項(xiàng)目地址:
https://github.com/RameenAbdal/StyleFlow
第一步:搭建測試環(huán)境。
需要安裝PyQt5、Tensorflow等第三方庫,根據(jù)requirements.txt安裝即可。
https://github.com/RameenAbdal/StyleFlow/blob/master/requirements.txt
此外,還需要配置StyleGAN2的環(huán)境。
項(xiàng)目地址:
https://github.com/NVlabs/stylegan2
為了方便大家下載,我從Google Drive下載了控制人臉的屬性的權(quán)重文件,放到了百度網(wǎng)盤(提取碼:jack):
https://pan.baidu.com/s/14F1Gww3b8S0Nabn4QTNjNg
更多的控制其他物體屬性的權(quán)重文件,可在從Google Drive下載。
https://drive.google.com/drive/folders/1QHc-yF5C3DChRwSdZKcx1w6K8JvSxQi7
第三步:在工程目錄,運(yùn)行程序。
python main.py
這個(gè)去胡子特效無非就是將,控制胡子的latent code單獨(dú)拿出來,做了一個(gè)端到端的效果。
為了保證效果的穩(wěn)定,還會(huì)做一些工程上的優(yōu)化,例如添加下巴區(qū)域的mask,只替換該區(qū)域。
話說這李逵沒了胡子,也蠻可愛??!

這么好玩的算法,不來個(gè)在看嗎?求在看,求轉(zhuǎn)發(fā)啦~

獲取更多優(yōu)質(zhì)文章,點(diǎn)擊關(guān)注豬哥
??????
