眼見未必為實,Deepfake又來"作妖"了,發福「鋼鐵俠」,AI換臉好萊塢明星圓桌對話不忍直視!

  • 2019 年 11 月 25 日
  • 筆記

編輯:張佳

本文轉自公眾號:新智元

【導讀】被發福的「鋼鐵俠」嚇到了!近日,一個好萊塢明星圓桌對話的Deepfake視頻刷爆了油管。整個對話行雲流水,只不過「雙下巴」的小羅伯特·唐尼和瘦弱的湯姆·克魯斯讓人感覺怪怪的。原來,視頻使用名人模仿者提供名人的基本舉止表現和聲音,然後通過Deepfake覆蓋臉部偽造。

昨天晚上,閨蜜發來一個視頻把我嚇了一跳。視頻中,偶像小羅伯特·唐尼竟然發福了!

這怎麼可能!後來我才知道,這是人家Deepfake的一個視頻,把視頻中人物的臉和聲音替換了。

除了小羅伯特·唐尼,湯姆·克魯斯、喬治·盧卡斯、伊萬·麥格雷戈、傑夫·戈德布魯姆這些好萊塢明星都被Deepfake了,還組了個圓桌會議:(整個視頻只有主持人是本人)

視頻中,大家比較熟悉的「鋼鐵俠」小羅伯特·唐尼明顯發福,雙下巴都出來了;「返老還童」的湯姆·克魯斯太瘦弱,這哪裡是碟中諜里那個玩命的阿湯哥?而且,他們的聲音聽着也很奇怪:

這個視頻引發了網友熱議,很多人被這個以假亂真的視頻驚到了,搞不清到底誰是真的、誰是Deepfake。

自從拯救宇宙以來,Stark似乎吃了太多的芝士漢堡。

整個過程中我都像湯姆·克魯斯一樣大笑。

無論是誰在扮演傑夫·戈德布魯姆和湯姆·克魯斯,太贊了!

想像一下20年前、甚至10年前把這個給別人看,他們會很困惑的。

技術出神入化,Deepfake前後對比

這個Deepfake視頻由一個名叫Collider的電影網站製作,他們使用名人模仿者提供名人的基本舉止表現和聲音,然後通過Deepfake覆蓋臉部,這樣偽造的視頻乍一看很讓人信服。來見識一下偽造前後對比:

現在Deepfake就能做到這樣的水平了,再過兩年會不會肉眼根本無法分辨?

「出道」3年火遍全球,Deepfake被玩壞了

其實,Deepfake並不是非常新鮮的技術了,它已經存在了將近三年,並且變得越來越容易。此前便有朱茵變楊冪,海王變徐錦江的相關報道。

《射鵰英雄傳》中,朱茵變楊冪

海王變徐錦江

Deepfake真正走進大眾視野是在2017年年底。當時Reddit用戶將《神奇女俠》的女主角蓋爾·加朵、以及艾瑪沃森、斯嘉麗等眾多女明星的臉跟AV女優進行了交換,製作出足以以假亂真的愛情動作片。

國內也有過銀幕上的換臉。在2017年科幻喜劇《不可思異》中,當時由於演員的原因,片方不得不臨時換角,由大鵬代替杜汶澤所有戲份,進行了一次「特效換臉」手術。

但這次換臉,是用通過純手工的方式一幀幀地修改畫面,耗時將近6個月,才將影片中所有的鏡頭都換完。在價格上,可以說是「一秒千金」。

而AI換臉和後期換臉有着根本區別。後者還需要各種建模,以及一楨一楨的修改,前者在操作上只需要提供足夠多的素材讓機器學習。

另外,目前以fakeApp為代表的應用存在分辨率低、效果不穩定、渲染時間長的問題。QuantumLiu介紹,用AI和特效技術解決連續針斷點再融入難題,one shot面部自適應,機器自主學習光感和畫面匹配度,每一次的訓練都會自動疊帶,成功率,效果和渲染速度大幅提高,動態視頻的切換更加完美的匹配。目前已經取得了高分辨率光感匹配的突破和疊加式渲染的突破。已經可以在幾個小時內完成一整部片的替換,而且計算機學習的速度越來越快,時間周期還在不斷的縮短,品質不斷提高。

如何做到的?Deepfake技術詳解

Deepfake 使用生成對抗網絡(GAN),其中兩個機器學習模型進行了較量。一個ML模型在數據集上進行訓練,然後創建偽造的視頻,而另一個模型嘗試檢測偽造。偽造者創建假視頻,直到另一個ML模型無法檢測到偽造。訓練數據集越大,偽造者越容易創建可信的deepfake視頻。

上圖顯示了一個圖像(在本例中是一張臉)被輸入到編碼器(encoder)中。其結果是同一張臉的低維表示,有時被稱為latent face。根據網絡架構的不同,latent face可能根本不像人臉。當通過解碼器(decoder)時,latent face被重建。自動編碼器是有損的,因此重建的臉不太可能有原來的細節水平。

程序員可以完全控制網絡的形狀:有多少層,每層有多少節點,以及它們如何連接。網絡的真實知識存儲在連接節點的邊緣。每條邊都有一個權重,找到使自動編碼器能夠像描述的那樣工作的正確權重集是一個耗時的過程。

訓練神經網絡意味着優化其權重以達到特定的目標。在傳統的自動編碼器的情況下,網絡的性能取決於它如何根據其潛在空間的表示重建原始圖像。

訓練Deepfake

需要注意的是,如果我們單獨訓練兩個自動編碼器,它們將互不兼容。latent faces基於每個網絡在其訓練過程中認為有意義的特定特徵。但是如果將兩個自動編碼器分別在不同的人臉上訓練,它們的潛在空間將代表不同的特徵。

使人臉交換技術成為可能的是找到一種方法來強制將兩個潛在的人臉在相同的特徵上編碼。Deepfake通過讓兩個網絡共享相同的編碼器,然後使用兩個不同的解碼器來解決這個問題。

在訓練階段,這兩個網絡需要分開處理。解碼器A僅用A的人臉來訓練;解碼器B只用B的人臉來訓練,但是所有的latent face都是由同一個編碼器產生的。這意味着編碼器本身必須識別兩個人臉中的共同特徵。因為所有的人臉都具有相似的結構,所以編碼器學習「人臉」本身的概念是合理的。

生成Deepfake

當訓練過程完成後,我們可以將A生成的一個latent face傳遞給解碼器B。如下圖所示,解碼器B將嘗試從與A相關的信息中重構B。

如果網絡已經很好地概括了人臉的構成,那麼潛在空間將表示面部表情和方向。這意味着可以為B生成與A的表情和方向相同的人臉。

請看下面的動圖。左邊,UI藝術家Anisa Sanusi的臉被從一個視頻中提取並對齊。右邊,一個訓練好的神經網絡正在重建遊戲設計師Henry Hoffman的臉,以匹配Anisa的表情。

顯然,Deepfake背後的技術並不受人臉的限制。例如,它可以用來把蘋果變成獼猴桃。

重要的是,訓練中使用的兩個主體要有儘可能多的相似之處。這是為了確保共享編碼器能夠泛化易於傳輸的有意義的特性。雖然這項技術對人臉和水果都有效,但不太可能將人臉變成水果。

參考鏈接:

https://www.theverge.com/tldr/2019/11/18/20970280/deepfake-roundtable-impersonation-collider-tom-cruise-jeff-goldblum-robert-downey-jr