當前位置:
首頁 > 知識 > 16×16 圖像放大 8 倍還不糊!這個機器學習模型是怎麼辦到的?

16×16 圖像放大 8 倍還不糊!這個機器學習模型是怎麼辦到的?

最近看到了一個比較好玩的項目,號稱可以將非常小的圖片表情恢復原狀。通過一個機器學習模型對面部的標誌進行漸進式的超分辨,訓練後的網路可以輸入小至16×16像素的圖像進行面部圖像的重建,並重新縮放到128×128像素大小作為輸出圖像,以下是他們給出的例子:

相關論文介紹

該機器學習模型來自論文:Progressive Face Super-Resolution viaAttention to Facial Landmark(https://arxiv.org/abs/1908.08239),論文提出了一種新的人臉識別方法,用這個方法可生成逼真的8倍超解析度的人臉圖像的同時,完全保留其面部細節。該神經網路的訓練方法是漸進式的,通過將網路分割成連續的步驟,使訓練穩定下來,每一步輸出的解析度都在不斷提高。論文還提出了一種新的面部注意力丟失方法,並將其應用於每一步的訓練中,通過增加像素差和熱圖值來更詳細地恢復面部屬性。最後,論文還提出一個壓縮版本的人臉對齊網路(FAN)的標誌熱圖提取。利用所提出的FAN,可以提取出適合於人臉SR的熱圖,並減少了整體訓練時間。實驗結果證明,該方法在定性和定量測量方面都優於目前最先進的方法,尤其是在面部感知質量方面。

然而,論文中有一個沒被提及的細節,就是最後輸出的圖片帶有疤痕的比例非常高,活脫脫都變成了哈利波特呢。

左:真人,中:原輸入表情,右:輸出結果

仔細一看右圖還真的怪嚇人的,幸好農曆七月已經過去了

另外,該模型的最佳訓練場景是輸入的圖像大小應該為16×16像素,並且需要使用與訓練和測試模型完全相同的代碼。

如果原圖像不是16×16像素的呢?

如上圖所示,在Twitter上有一組大小正好為16×16像素的表情符號(大家也可以自行到Twitter表情的Github項目查看:https://github.com/twitter/twemoji),作者利用這些表情進行了測試,結果可以看下圖:

以上8組表情的的左側都是原圖,右側則是輸出結果,這訓練出來的結果也太老齡化了吧,面部全部都滿臉皺紋,連披薩都烤的毫無食慾(還是叫個必勝客的披薩吃吧,推特牌就算了)。

現在有了新的進展!因為這個模型是專門用於尋找面部標誌的,所以任何一個標誌都可以在一個像素上畫出眼睛和鼻孔。作者表示非常肯定義大利辣香腸披薩就是模仿人類的嘴唇製成的…

下面的樣本是經過精心挑選的,然而許多輸出的結果都不是很理想。作者也花了很大力氣鼓勵模型對面部特徵做出積極的猜測。例如,雖然推特的圖像已經是16×16像素,但如果首先通過傳統的大小調整將其從16×16像素的輸入調整到128×128像素,然後再降低到16×16像素,通常會得到更好的結果。這顯然增加了很多模糊,但似乎為模型提供了更多創造性的空間來解釋某個事物。作者還將預測的圖像作為輸入發送回模型進行迭代(迭代次數多達10次),其中有許多輸入圖像都是來自後來迭代生成的結果。然而,在10次迭代中只有3次可以看到人的眼睛。

作者還非常喜歡這個綠色的很像龍(或者像蛇)的表情。除了一隻眼睛以外,它從來沒有真正擁有過人類的特徵,但生成圖片的人造風格令作者非常喜歡。

當你放大或縮小一個StyleGAN面部模型時,作者聯想到這篇Gan可操控性論文(https://arxiv.org/pdf/1907.07171.pdf)。

以下是用Face Super-Resolution模型縮放的圖像結果:

該動圖無法上傳,敬請移步到原文查看:https://iforcedabot.com/photo-realistic-emojis-and-emotes-with-progressive-face-super-resolution/。

Twitch表情的輸出效果如何?

令人驚訝的是,只需要一點點調整,爬行動物圖片的輸出結果,面部看起來更像人類了!說好的建國以後動物不能成精呢?

Twitch表情並不完全適用於16×16,其中一些具有高解析度版本,而另一些則沒有。作者嘗試了所有種類,因此對於以下的某些圖片,輸入的時候已經是高解析度,但在進入模型之前被調整為16×16像素大小。圖片輸出結果也在下方,因為與真正的高解析度表情經常有一種有趣的對比。

最後來看看遊戲精靈們的生成結果

由於篇幅有限,作者沒有拿更多的精靈進行測試,不過可以期待作者之後的更新~

進一步探索

我認為可以做更多的事情來鼓勵模型在應用人類特徵方面具有創造性 —— 目前我只是嘗試對管道進行一些調整并迭代,幾乎沒有做其他的事情。使用其他模型的可能性是無窮無盡的。作者立即聯想到StyleGAN編碼:https://twitter.com/jonathanfly/status/1138236372572135424

在 https://selfie2anime.com/ 上也有一個快速測試,可以告訴你在動漫里長什麼樣子,輸出的結果會發送到郵箱中。

更新1:更多Minecraft

我被要求嘗試用更多的Minecraft紋理去進行測試,當然是以16×16像素的圖片作為樣本。結果很顯然,絕大多數的樣本並沒有真正發揮作用......

完整數據集地址:https://drive.google.com/open?id=1kzmgMAshMeO8dOs6gnr0IzHWHsn_MBux

面部特徵通常非常微妙,實際上會比明顯的面部特徵更令人毛骨悚然。想像一下在玩遊戲的時候,隱隱約約感覺看到了一張臉,但是又不能對這張圖像做出什麼操作......

更新2:不能停止嘗試的事情

為了尋找更多可以用來進行測試的像素圖像,作者在這顆恆星的圖像上嘗試了 Face Super-Resolution 訓練。只花了大約40次迭代,(輸出的圖像)就揭示它實際上是一個可愛的小外星人的形象。很確定天文學是如何運作的?https://t.co/dUQjERGllq

更新3:視頻的 Face Super-Resolution

繼續用Face Super-Resolution神經網路對一個16x16像素的視頻進行超分辨,結果大家也都看到了,Face Super-Resolution 基本上把它變成了DeepFake里的魔鬼。

YouTube視頻:https://youtu.be/H8qH_mdceNM

最後,對 Face Super-Resolution 感興趣的同學,可以到Colab進行嘗試。如果大家知道為什麼會出現如此恐怖的現象,也可以在留言區進行留言~

https://gist.github.com/JonathanFly/80b669a72bf624d17b56a1cfec742588#file-progressivefacesuperresolutiondemo-ipynb

快速在線體驗地址:

https://colab.research.google.com/gist/JonathanFly/80b669a72bf624d17b56a1cfec742588/progressivefacesuperresolutiondemo.ipynb

彩蛋時間到

以下是小編自己在Colab上測試的結果,圖片都是在網路找的,只需要在代碼中修改網路圖片的地址即可運行。具體效果如何,請大家自行感受吧(不能讓我一個人辣眼睛)

via https://iforcedabot.com/photo-realistic-emojis-and-emotes-with-progressive-face-super-resolution/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

使用以 Tensorflow 為後端的 Keras 構建生成對抗網路的代碼示例
數據挖掘面試題之:生成模型 VS 判別模型

TAG:AI研習社 |