天天看點

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

單身多年的你,是否曾幻想另一半的模樣?最近,有這樣一個開源項目在深度學習社群火了起來——通過神經網絡生成你另一半的相貌。想知道自己會和什麼樣的人在一起嗎?已有網友嘗試了生成效果。

項目位址:

https://github.com/irfanICMLL/CoupleGenerator

作者自己介紹,這是一個自 2017 年便開源了的項目,當時使用的是 TensorFlow,不過最近項目有更新到GitHub。

得到對象隻需 8800 步訓練

項目使用了一百多位新婚夫婦的結婚照片,圖像是通過爬蟲從百度上爬取下來的。

這些結婚照都有着統一的模闆:喜慶而單一的紅色背景,清晰的人臉和五官,對模型訓練比較友好和友善。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

訓練樣本之一。爬取方法:

https://blog.csdn.net/qq_27879381/article/details/65015280#comments

在模型建構和訓練上,項目采用了 VGG 作為骨架網絡學習圖像特征。VGG 是一種常見的神經網絡架構,釋出于 2014 年,作者是 Karen Simonyan 和 Andrew Zisserman,該網絡表明堆疊多個層是提升計算機視覺性能的關鍵因素。VGGNet 包含 16 或 19 層,主要由小型的 3×3 卷積操作和 2×2 池化操作組成。

VGG 的優點在于,堆疊多個小的卷積核而不使用池化操作可以增加網絡的表征深度,同時限制參數的數量。例如,通過堆疊 3 個 3×3 卷積層而不是使用單個的 7×7 層,可以克服一些限制。

首先,這樣做組合了三個非線性函數,而不隻是一個,使得決策函數更有判别力和表征能力。第二,參數量減少了 81%,而感受野保持不變。另外,小卷積核的使用也扮演了正則化器的角色,并提高了不同卷積核的有效性。

在生成結果的過程中,模型使用 pix2pix 的方式。Pix2pix 是一種基于 GAN 架構的風格轉換模型,來自論文《Image-to-Image Translation with Conditional Adversarial NetWorks》,作者包括朱俊彥等,論文在 CVPR 2017 發表後,已有多種架構的實作。

Pix2pix 使用成對的圖檔資料,學習從一個圖像到另一個圖像的轉換方式,并生成能夠以假亂真的圖像。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

使用 pix2pix 實作不同風格和用途圖像的互相轉換。

在 Pix2pix 中,生成器采用 encoder-decoder 或 U-Net 的架構。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

兩種 Pix2pix 的生成器架構。

那麼,應該怎麼使用這個項目呢?

使用方法

在項目中,作者提供了一些内容,包括: 

在使用的過程中,你需要下載下傳 VGG 權重檔案和訓練資料,下載下傳代碼到運作環境中并運作 autotest.sh 檔案。

效果

在訓練 8800 步後,模型對給定的圖檔提供了生成結果,如下所示:

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

考慮到訓練資料并不算多,生成圖像的品質還有提高的空間。此外我們可以注意到,模型也學習了一些有趣的特征,比如右上角原始圖像中有結婚證,則生成的圖像中也保留了結婚證這一要素。

項目作者介紹

這個項目的作者是一位非常漂亮的小姐姐,目前在澳洲阿德萊德大學攻讀計算機科學博士學位,師從沈春華教授。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

Yifan Liu。

Liu 同學大學和碩士就讀于北京航空航天大學自動化科學與電氣工程學院,曾獲得 2016 年北京市優秀畢業生。在 2018 年 11 月進入阿德萊德大學攻讀博士學位之前,她曾是微軟亞研進階研究員、2018 年 ACM 傑出會員王井東教授的通路學生。

Liu 的主要研究方向是神經計算、模式識别等領域,包括圖像語義分割等。在學術研究方面,2017 至 2019 年,她作為一作或其他作者的多篇論文被 CVPR、ICCV、PAKDD、IEA/AIE、PACLING 等國際學術會議接收,有一些為 Oral 論文。

這是她的個人首頁:

https://irfanicmll.github.io/

實測效果怎麼樣

為了試一試項目的效果,我們也下載下傳了項目的預訓練權重(疊代 8800 次)以及 VGG16 的預訓練權重。因為資料集非常小,我們先用項目中的資料試一試效果。如下所示我們用項目 datasets 目錄下的圖像做測試,其中左側為兩組輸入圖像,右側為輸出圖像。從生成結果來看,不論性别,另一半的相貌總是能夠被生成出來的,還進行了一點磨皮。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

如果我們隻給一張人像呢?現在看起來,模型的生成規則是輸出輸入圖像中左側的人像,如果隻輸入一張人像的效果可能會變差。為了驗證這個想法,我們将上述兩張圖都截成一個單一人像并輸入模型。正如所料,現在生成效果不太好。如下所示左側為兩組輸入樣本,右側為輸出效果。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

如果資料不從測試資料集中獲得呢?在預設輸入規則為夫妻合照的情況下,我們再次進行了新的嘗試。通過輸入不在資料集中的夫妻人像樣本,并檢查模型的生成效果。如下圖所示,左側為輸入圖像,右側為輸出結果,生成的圖像較難識别。夫妻圖像來自網絡搜尋結果。

拯救單身狗:這個對象生成器幫你看看未來對象長啥樣

誠然,利用現有資料預測未來對象的相貌這種想法是很不錯的,但是由于資料量太小,模型的泛化能力還沒有達到應有的要求。總的來說,單身狗還不能光靠這個生成一張自己對象的照片。

項目作者也表示,資料量比較少,效果也不太好,但是依然歡迎大家使用代碼和資料進行進一步的訓練,我們也會進一步關注項目的進展。

機器之心 AAAI 2020 論文分享進行到了第三期,本期我們邀請到了加州大學伯克利分校 Zhewei Yao 博士,他的論文《Q-BERT: Hessian Based Ultra Low Precision Quantization of BERT》被 AAAI 2020 所接收。在這期分享中,他将介紹把二階方法用于訓練深度神經網絡的最新結果。

繼續閱讀