AI“復活”張國榮,逝去16年哥哥又重生!
[ 摘要 ]4月1日,張國榮“復活”了。網友用AI+特效技術,給張國榮換臉,並且演唱了兩首經典歌曲。6分鐘的“復活”視訊,紀念哥哥。
再次見到你,真好。
4月1日愚人節,也是張國榮的忌日。今天,在哥哥張國榮離開的第16個年頭,有網友用AI讓張國榮“復活”,並且演唱了經典歌曲《千千闕歌》、《玻璃之情》。
在視訊中,AI“復活”的哥哥正在錄音棚中錄著歌曲,開場一開口,從唱歌的表情、動作都與張國榮頗為神似。網友們不經大呼:“太像了”、“淚目”、“哭了”、“想你了,哥哥”。
張國榮是那般的傳奇,芳華絕代,儘管去世16年,但每年的4月1日,人們一直想努力把他的每一面都留下來,今年是AI。
視訊地址:https://www.bilibili.com/video/av47851389/?redirectFrom=h5(來自B站,複製瀏覽器中開啟或B站觀看)
AI“復活”張國榮6分鐘
這段視訊長達6分鐘,“張國榮”分別穿著兩套衣服唱完兩首歌,而這些鏡頭,也讓網友們不禁感慨:他 彷彿從未離開過 。
而在錄製第二首歌曲時,出現了一個特別有意思的鏡頭: 哥哥竟然在直播 !
新智元瞭解到,“復活”張國榮視訊的作者是來自B站的Up主 QuantumLiu (知乎“天清”),目前在國內視覺特效公司Studio51做技術。
據該Up主描述,張國榮的視訊使用了自主研發的AI換臉技術,清晰度、還原度均領先於業內其他使用Deepfakes的效果,張國榮視訊的解析度也達到了1080P。
QuantumLiu告訴新智元,換臉視訊中的男生跟張國榮長相差距很大,“是個北方漢子”,但是歌曲是“北方漢子”原聲,沒有用張國榮的原聲,也沒經過處理。
這個6分鐘左右的視訊,從拍攝和錄音、剪輯,前後花了一個多星期左右時間,積累的原素材大概是20分鐘,做換臉真正的運算時間只有8個小時左右。
“我們用的是變分自動編碼器,借鑑了deepfakes的思路,但是解決了很多問題,比如高質量資料,魯棒性,訓練速度,分散式訓練,還結合公司特效業務的經驗,優化了合成環節,讓放回視訊裡的人臉融合得更自然。相比於其他使用開源程式的愛好者,我們是一個即將商用的系統,高達1080p+的解析度是其他人做不到的。”
QuantumLiu說,下一步,公司會利用高清的優勢和在影視行業的業務,進軍影視級別高清換臉,並開發換臉開放平臺,讓所有人都可以玩轉視訊換臉。
朱茵變楊冪,解析度低好操作
其實,AI換臉並不是非常新鮮的技術了。前一陣子便有朱茵變楊冪,海王變徐錦江的相關報道。
《射鵰英雄傳》中,朱茵變楊冪
海王變徐錦江
這些技術的背後,是2017年年底的Deepfakes軟體帶來的結果。當時Reddit使用者Deepfakes,將《神奇女俠》的女主角蓋爾·加朵、以及艾瑪沃森、斯嘉麗等眾多女明星的臉跟AV女優進行了交換,製作出足以以假亂真的愛情動作片。
不過,QuantumLiu認為,目前的網上的作品都是用一個基礎fakeapp軟體去做的,純娛樂,所以只能找那些很低解析度的片段去更換(比如朱茵變楊冪)。
國內也有過銀幕上的換臉。在2017年科幻喜劇《不可思異》中,當時由於演員的原因,片方不得不臨時換角,由大鵬代替杜汶澤所有戲份,進行了一次“特效換臉”手術。
但這次換臉,是用通過純手工的方式一幀幀地修改畫面,耗時將近6個月,才將影片中所有的鏡頭都換完。在價格上,可以說是“一秒千金”。
而AI換臉和後期換臉有著根本區別。後者還需要各種建模,以及一楨一楨的修改,前者在操作上只需要提供足夠多的素材讓機器學習。
另外,目前以fakeApp為代表的應用存在解析度低、效果不穩定、渲染時間長的問題。QuantumLiu介紹,用 AI和特效技術 解決連續針斷點再融入難題,one shot面部自適應,機器自主學習光感和畫面匹配度,每一次的訓練都會自動疊帶,成功率,效果和渲染速度大幅提高,動態視訊的切換更加完美的匹配。目前已經取得了高解析度光感匹配的突破和疊加式渲染的突破。已經可以在幾個小時內完成一整部片的替換,而且計算機學習的速度越來越快,時間週期還在不斷的縮短,品質不斷提高。
Deepfakes技術詳解
QuantumLiu將在近期釋出張國榮“復活”視訊的具體實現方法,在他釋出之前,我們先來了解下Deepfakes的技術內容。
Deepfakes 使用生成對抗網路(GAN),其中兩個機器學習模型進行了較量。一個ML模型在資料集上進行訓練,然後建立偽造的視訊,而另一個模型嘗試檢測偽造。偽造者建立假視訊,直到另一個ML模型無法檢測到偽造。訓練資料集越大,偽造者越容易建立可信的deepfake視訊。
上圖顯示了一個影象(在本例中是一張臉)被輸入到編碼器(encoder)中。其結果是同一張臉的低維表示,有時被稱為latent face。根據網路架構的不同,latent face可能根本不像人臉。當通過解碼器(decoder)時,latent face被重建。自動編碼器是有損的,因此重建的臉不太可能有原來的細節水平。
程式設計師可以完全控制網路的形狀:有多少層,每層有多少節點,以及它們如何連線。網路的真實知識儲存在連線節點的邊緣。每條邊都有一個權重,找到使自動編碼器能夠像描述的那樣工作的正確權重集是一個耗時的過程。
訓練神經網路意味著優化其權重以達到特定的目標。在傳統的自動編碼器的情況下,網路的效能取決於它如何根據其潛在空間的表示重建原始影象。
訓練Deepfakes
需要注意的是,如果我們單獨訓練兩個自動編碼器,它們將互不相容。latent faces基於每個網路在其訓練過程中認為有意義的特定特徵。但是如果將兩個自動編碼器分別在不同的人臉上訓練,它們的潛在空間將代表不同的特徵。
使人臉交換技術成為可能的是找到一種方法來強制將兩個潛在的人臉在相同的特徵上編碼。Deepfakes通過讓兩個網路共享相同的編碼器,然後使用兩個不同的解碼器來解決這個問題。
在訓練階段,這兩個網路需要分開處理。解碼器A僅用A的人臉來訓練;解碼器B只用B的人臉來訓練,但是所有的latent face都是由同一個編碼器產生的。這意味著編碼器本身必須識別兩個人臉中的共同特徵。因為所有的人臉都具有相似的結構,所以編碼器學習“人臉”本身的概念是合理的。
生成Deepfakes
當訓練過程完成後,我們可以將A生成的一個latent face傳遞給解碼器B。如下圖所示,解碼器B將嘗試從與A相關的資訊中重構B。
如果網路已經很好地概括了人臉的構成,那麼潛在空間將表示面部表情和方向。這意味著可以為B生成與A的表情和方向相同的人臉。
請看下面的動圖。左邊,UI藝術家Anisa Sanusi的臉被從一個視訊中提取並對齊。右邊,一個訓練好的神經網路正在重建遊戲設計師Henry Hoffman的臉,以匹配Anisa的表情。
顯然,Deepfakes背後的技術並不受人臉的限制。例如,它可以用來把蘋果變成獼猴桃。
重要的是,訓練中使用的兩個主體要有儘可能多的相似之處。這是為了確保共享編碼器能夠泛化易於傳輸的有意義的特性。雖然這項技術對人臉和水果都有效,但不太可能將人臉變成水果。
若是你的記憶中也有哥哥的身影,那就分享這篇文章,讓更多的人看到哥哥的視訊吧!