未來男朋友測試小程序(這個對象生成器幫你看看未來對象長啥樣)
2023-11-10 04:17:21 3
不知道自己未來的老婆 or 老公長什麼樣?來,我們先用 AI 預測出一個。
單身多年的你,是否曾幻想另一半的模樣?最近,有這樣一個開源項目在深度學習社區火了起來——通過神經網絡生成你另一半的相貌。想知道自己會和什麼樣的人在一起嗎?已有網友嘗試了生成效果。
項目地址:https://github.com/irfanICMLL/CoupleGenerator
作者自己介紹,這是一個自 2017 年便開源了的項目,當時使用的是 TensorFlow,不過最近項目代碼改成了 PyTorch。
得到對象只需 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 的生成器架構。
那麼,應該怎麼使用這個項目呢?
使用方法
在項目中,作者提供了一些內容,包括:
CKPT 模型文件:https://cloudstor.aarnet.edu.au/plus/s/YHDWgez1g3RFc6oVGG 權重文件:https://github.com/machrisaa/tensorflow-vgg訓練數據:https://cloudstor.aarnet.edu.au/plus/s/VWZJaWfbla3kFch在使用的過程中,你需要下載 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 目錄下的圖像做測試,其中左側為兩組輸入圖像,右側為輸出圖像。從生成結果來看,不論性別,另一半的相貌總是能夠被生成出來的,還進行了一點磨皮。
如果我們只給一張人像呢?現在看起來,模型的生成規則是輸出輸入圖像中左側的人像,如果只輸入一張人像的效果可能會變差。為了驗證這個想法,我們將上述兩張圖都截成一個單一人像並輸入模型。正如所料,現在生成效果不太好。如下所示左側為兩組輸入樣本,右側為輸出效果。
如果數據不從測試數據集中獲得呢?在默認輸入規則為夫妻合照的情況下,我們再次進行了新的嘗試。通過輸入不在數據集中的夫妻人像樣本,並檢查模型的生成效果。如下圖所示,左側為輸入圖像,右側為輸出結果,生成的圖像較難識別。夫妻圖像來自網絡搜索結果。
誠然,利用現有數據預測未來對象的相貌這種想法是很不錯的,但是由於數據量太小,模型的泛化能力還沒有達到應有的要求。總的來說,單身狗還不能光靠這個生成一張自己對象的照片。
項目作者也表示,數據量比較少,效果也不太好,但是依然歡迎大家使用代碼和數據進行進一步的訓練,我們也會進一步關注項目的進展。
,