跨物種造物,AI將長頸鹿圖片轉(zhuǎn)換為鳥,還騙過了人類與機器
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。
當人們研究人工智能生成和檢測圖像的方式時,都需要明確一個研究主題。近期康奈爾大學的三位研究人員 Daniel V. Ruiz,Gabriel Salomon,Eduardo Todt 決定訓練人工智能將長頸鹿的圖片轉(zhuǎn)化成鳥的圖片,用生成對抗網(wǎng)絡(luò)(GANs) 產(chǎn)生新數(shù)據(jù)來研究這種圖像到圖像轉(zhuǎn)換(image-to-image translation)。這篇論文還投中了 Computer on the Beach (COTB'20) 2020 會議。
論文地址:https://arxiv.org/abs/2001.03637
目前圖像到圖像轉(zhuǎn)換的應(yīng)用已經(jīng)比較廣泛,包括從衛(wèi)星圖像生成地圖到僅從輪廓生成完整的服裝圖像。這篇論文研究將長頸鹿轉(zhuǎn)變?yōu)轼B其實頗具挑戰(zhàn),因為兩種動物有不同的大小、紋理和形態(tài)。他們訓練了一個名為 InstaGAN 的無監(jiān)督跨域轉(zhuǎn)換模型,讓它接受了大量長頸鹿和鳥的圖片訓練。
InstaGAN 由韓國科學技術(shù)院和浦項科技大學的研究人員在 2019 年提出,相關(guān)論文《InstaGAN: Instance-Aware Image-to-Image Translation》還被 ICLR2019 接收。
最后鳥類成品保留原始圖片的布局和背景,只是將長頸鹿直接轉(zhuǎn)換成鳥類。需要強調(diào)的是,生成的鳥并不存在,這僅僅是 InstaGAN 生造的結(jié)果。
這次論文的創(chuàng)新點,用作者自己的話說就是,“我們這次沒有把蘋果變成橘子,而是把大象變成了香蕉”。因為之前無監(jiān)督的圖像到圖像轉(zhuǎn)換,例子大多是將站著的獅子轉(zhuǎn)換為趴著,將貓轉(zhuǎn)化為狗,馬變成斑馬等,但這些訓練在比例、形狀都很相似,所以難度有所差異。
他們具體是怎么做的呢?
用于訓練 GAN 和生成相關(guān)的圖像有兩個數(shù)據(jù)集:COCO(Common objects in Context) 和 Caltech-UCSD Birds 200。COCO 數(shù)據(jù)集有超過 91 種類型的 328000 張圖片,作者們從中選了 2546 張和 101 張的長頸鹿圖片分別用于訓練和驗證,又從另一個主要涵蓋 200 多個種類的鳥數(shù)據(jù)集 Caltech-UCSD Birds 200-2011 中,八二分,選擇 80% 也就是 9414 張的鳥類圖片用于訓練,20% 也就是 374 張用于驗證。
每張圖片都能看到長頸鹿和鳥的輪廓。AI 主要工作是兩塊,一是把長頸鹿變成鳥,另一部分是判斷它看到的圖片是真的鳥還是假的長頸鹿—鳥。
接下來開始訓練。大多數(shù)參數(shù)與 InstaGAN 初始論文中一樣。通過雙線性插值(bilinear interpolation)將長頸鹿和小鳥數(shù)據(jù)集的圖像大小調(diào)整為 256x256 ,GPU 訓練花費了將近 3 周時間(如果用 2 個英偉達 RTX 2080 GPU,時間能減少到一周半)。
InstaGAN 在訓練中使用的 loss functions 包括:Least-squares GAN loss,cycle loss,context loss 和 identity loss,根據(jù)它們在最終結(jié)果中的重要性進行加權(quán)。cycle loss 權(quán)重最高。LSGAN 也是如此,因為它改善了收斂性,減少了可能消失的梯度問題(vanishing gradient issues),這需要超過 100 個 epoch 來實現(xiàn)良好的視覺效果和損失最小化。
在三周的訓練結(jié)束后,他們得到一個人造鳥圖集 FakeSet 。下圖顯示了圖像到圖像轉(zhuǎn)換的一些例子。
可以看到原始圖像和蒙版,以及轉(zhuǎn)換之后的圖像和蒙版。請注意,姿勢、空間排列和背景是沒有改變的的。也就是說,InstaGAN 已經(jīng)相當好地學會了轉(zhuǎn)換圖像,這些圖像中,長頸鹿幾乎沒有遮擋,都是側(cè)身站立,而在相同的位置上如今也產(chǎn)生鳥類。有意思的是,InstaGAN 學到了一個有趣的“欺騙”方法——生成深色的鳥,與淺色背景形成對比,如此能更好地騙過人類、機器鑒別者。
接下來讓我們來看看 InstaGAN 生成的成品圖。
有些轉(zhuǎn)換的效果令人印象深刻。InstaGAN 學會了如何模糊頂部的風景,使它們看起來像微距鏡頭即使過渡的地方并不是十分絲滑,一只長頸鹿的肩膀還在,但是 AI 巧妙地把它處理成了一塊石頭,希望你不會注意到。
背景模糊效果還不錯,在處理前景時,InstaGAN 造了一根木頭作為鳥的棲息處,并突出了樹枝、巖石裂縫等細節(jié),也模糊了附近的鳥腳,整個效果比較自然。但有幾張圖片還能隱隱看到長頸鹿的肚子和腿,于是 InstaGAN 把它們變成了綠色,可能是希望能錯認是一片葉子之類的植物。
當然很多時候轉(zhuǎn)換效果并不好。由于可能受到不尋常背景的影響,人工智能沒有成功地改變圖像外觀。這里也很明顯,人工智能移除長頸鹿的一般策略是,將鳥的身體復(fù)制粘貼到長頸鹿的頭、脖子和肩膀部分,然后盡力隱藏長頸鹿的腿。如果帶著這樣的想法看上圖幾張照片,你會立刻發(fā)現(xiàn)長頸鹿的大長腿還在那里,模型的多次失敗都與難以掩蓋的長頸鹿的腿有關(guān)。
為了評估生成的圖像的真實性和質(zhì)量,作者進行了定性和定量分析。定性分析是,隨機挑選 FakeSet 335 張圖片去評估圖片,標準是轉(zhuǎn)換質(zhì)量、輪廓和紋理幾項,選項只有兩個——"Good 或者 "Bad 。每個屬性的最終分數(shù)是 335 張圖片的平均分,用 0 到 1 之間的分數(shù)表示( 0 表示質(zhì)量差,1 表示質(zhì)量好)。如果一個屬性的值等于 0.75 ,則意味著 3/4 的圖片在該屬性中表現(xiàn)良好,1/4 的圖片表現(xiàn)不佳。具體可見下表。
為了進行定量分析,他們使用了一個預(yù)先訓練好的 Mask R-CNN(Mask Region-based Convolutional Neural Network)新生成的數(shù)據(jù)集 FakeSet ,對 2546 張圖片進行分析,評估結(jié)果是,289 幅圖片是垃圾(甚至沒有檢測到鳥類存在),717 幅不令人滿意(常用指標 F-score 低于 0.8 ),1540 幅令人滿意。F-score 遵循一個偏斜的正態(tài)分布,傾向于最佳分數(shù)。
綜上,該論文結(jié)論是,F(xiàn)akeSet 實現(xiàn)了接近真實數(shù)據(jù)集的檢測和分割結(jié)果,雖然大多數(shù)圖像并不完全真實,但是正確轉(zhuǎn)化的比例也很高,檢測和分割結(jié)果也是高可信的(高于80%)。這說明生成的圖像足夠逼真,不管是肉眼難以察覺,也經(jīng)得起最先進的深層神經(jīng)網(wǎng)絡(luò)的檢驗。