圓栗子 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

英偉達家的新AI,可以把視頻里的一隻金毛,迅速變成貓鼬。

重點是,不用多少數據。只要給AI看兩張貓鼬的靜態圖:

在看到這兩張圖之前,AI從來沒有見過貓鼬這種動物,訓練集里沒有。

AI沒見過的動物還有很多,只要給它一兩張照片熟悉一下,就可以把金毛換成它們的臉。

比如,兇猛的大型貓科動物:

這樣說來,金毛的親戚如哈士奇等輩,更加不在話下:

雖說同是圖到圖的翻譯,同是無監督,這隻AI和馬變斑馬的前輩非常不同。前輩只能在自己見過的動物之間做翻譯。訓練的時候,看過許多馬,也看過許多斑馬;

而英偉達的新選手,相當於訓練中從沒見過斑馬。訓練集里沒有的動物,只要測試的時候能看到一兩張圖,就夠了。

小樣本學習 (Few-Shot Learning) 演算法,對訓練數據的要求大大大大大大降低了。

團隊把演算法開源了,還上線了一鍵換臉Demo。所以,先玩耍一下再講原理。

錯誤與正確的打開方式

在下雞凍地嘗試了Demo

第一題,把一隻高冷的喵傳了上去,用方框選中頭部。

△ 鳴謝我司夏老司

於是,各種動物都獲得了半側面的冷峻

第二題,把一隻雷布斯傳了上去,也是半側面:

意想不到,生成了貴族氣息的半獸人

AI的藝術天分撲面而來,不過還是要鄭重提醒各位:

Demo應用叫做寵物換臉 (PetSwap) ,請選擇正確的打開方式,下面是正確示範。

第三題,衝破次元壁。去吧,大偵探皮卡丘:

大家都戴上了福爾摩斯的帽子,不過只有右上角的獵犬,解鎖了性感的腮紅

真是一個優雅又充實的早晨。

玩夠,該看原理了。

為什麼只要看一眼?

就像開頭講到的,這是一個小樣本翻譯器。它要把內容圖 (Content Image) 如金毛,換成類別圖 (Class Image) ,如哈士奇或者美洲獅

模型分為三個部分:

一是內容編碼器 (Content Encoder) ,粉色部分。它把輸入的內容圖 (金毛) ,映射到一個內容潛碼 (Content Latent Code) 上。

二是類別編碼器 (Class Encoder) ,綠色部分。先把每張類別圖 (哈士奇) 映射到一個潛碼上。然後取個平均,就得到整個類別的潛碼了。三是解碼器 (Decoder) ,藍色部分。先把類別潛碼映射到adaIN參數上,然後把內容潛碼做個解碼,來生成翻譯的結果圖。

訓練的時候,數據集里有金毛也有哈士奇。AI就在這些見過的類別之間,修鍊換臉技能:

可是,訓練集里沒有美洲獅。測試的時候,要生成美洲獅怎麼辦呢?

秘密就在這裡:當類別圖和內容圖長得一樣的時候,就讓模型生成一個重構 (Reconstruction) 。

這樣,只要在測試的過程中,臨時看一張美洲獅 (或者幾張) ,就能把沒見過的瞬間變為見過的。AI把訓練集里的狗,翻譯美洲獅,也就不難了:

大功告成。

你也快去玩啊

這樣 (優) 秀的AI,你一定也想調教一下。

代碼、Demo、論文,都在這裡了:

Demo傳送門:

nvlabs.github.io/FUNIT/

論文傳送門:

arxiv.org/abs/1905.0172

代碼傳送門:

github.com/nvlabs/FUNIT

主頁傳送門:

nvlabs.github.io/FUNIT/

量子位 · QbitAI

?? ? 追蹤AI技術和產品新動態

戳右上角「+關注」獲取最新資訊↗↗

如果喜歡,請分享or點贊吧~比心?

推薦閱讀:

相关文章