《星球大戰(zhàn)》的衍生劇《波巴·費特之書》中有一集引發(fā)了粉絲們激烈的討論。原因是,年輕版Mark Hamill由工業(yè)光魔公司雇傭deepfakes從業(yè)者Shamook制作而成。
盡管AI換臉方法在2020年CGI技術的基礎上有很大進步,而且總體上符合當前AI換臉的上佳視覺標準,但部分粉絲認為,《星球大戰(zhàn)》中“Young Luke Skywalker”的新造型與前一部相比有一定缺陷。
例如最明顯的問題是,在以Skywalker為主角的長鏡頭中人物缺乏表現力和細膩真切的情感,這是運用AI換臉的典型結果,比CGI特效更明顯。The Verge網站認為,Boba Fett的AI換臉結果像“1983年Mark Hamill那張神秘且毫無表情的冰塊臉”。
但不管工業(yè)光魔公司背后到底運用的是什么技術,AI換臉現階段存在著難以傳達細膩情感的根本性問題。
無論是通過改變架構還是改進原始訓練素材,都很難解決這個問題。
不過viral deepfakers方法在選擇目標視頻時通常會更加謹慎,從而可以規(guī)避這一問題。
面部對齊的局限性
比較常用的兩個AI換臉開源代碼庫是DeepFaceLab(DFL)和FaceSwap,它們都脫胎于2017年。DFL盡管功能有限,但在視覺特效(VFX)行業(yè)擁有巨大的領先優(yōu)勢。
這些代碼的最初任務是從原始素材(即視頻幀或靜態(tài)圖像)中提取人臉特征點。
正在運行的面部定位網絡(FAN)
DFL和FaceSwap都運用了面部定位網絡(FAN),FAN可以為提取出來的人臉創(chuàng)建2D和3D特征點(如上圖所示)。3D特征點可以廣泛感知人臉的方向,包括側面的輪廓和比較尖銳的角度。
下面是一種非常基本的評估像素準則:
來自FaceSwap的面部輪廓的粗略標準
該標準需要考慮面部最基本的線條:例如眼睛和下巴可以擴大和縮小,嘴巴的基本形狀(如微笑、皺眉等)也可以被追蹤和調整。從相機的角度來看,面部可以向任意方向旋轉200度左右。
而這些粗糙的像素邊界位置,是整個AI換臉過程中唯一精確的面部準則。訓練時也只是與對應像素或周圍像素進行比較,然后選擇對應的處理方法。
DeepFaceLab中的訓練示例
由于沒有面部子區(qū)域的拓撲結構(包括臉頰的凹凸度、年齡細節(jié)、酒窩信息等),所以想嘗試在匹配原始人物(你想改變的臉)和目標人物(你想復制的臉)中保持“細膩”的特征是不太可能的。
利用有限的數據
訓練AI換臉模型需要獲取兩個人物之間的匹配數據,但這并不容易。需要匹配的角度越特殊,你就越有可能在人物A和人物B之間的(特殊角度)匹配上做出妥協:保持相同的表情。
人臉數據并不完全匹配。
如上圖所示,這兩個人物的面部結構非常相似,但仍不能達到完全匹配,而這已經是數據集中匹配度最高的結果了。
不過上圖中依然存在明顯的差異:角度、鏡頭和燈光沒有完全匹配;人物A(左圖)沒有像人物B(右圖)一樣完全閉上眼睛;人物A的圖像質量和壓縮率更差;人物B看起來比A更快樂。
雖然有以上種種差異,但我們只能依靠這些已有素材對AI換臉模型進行訓練。
因為出現A與B完全匹配的情況很少,同樣訓練集中也很少有類似的匹配。因此訓練常常會發(fā)生欠擬合和過擬合現象。
欠擬合:如果某些特殊角度的匹配數據較少(即數據集中數據量比較大,但該角度的匹配圖像對較少),那它與更“簡單普遍”的匹配數據相比將不會得到有效訓練。因此,AI換臉模型就不能對這個特殊的角度或表情進行很好地表達。
過擬合:由于缺乏足夠的匹配數據,AI換臉模型有時會復制多次數據集中的匹配數據,以便在最終模型中獲得更好的結果。但這可能會導致過擬合,用這種模型制作的AI換臉視頻很可能會對兩張照片的不匹配之處進行復制,例如眼睛的閉合程度。
如下圖所示,是用DeepFaceLab開源方法將弗拉基米爾普京(Vladimir Putin)訓練為凱文史派西(Kevin Spacey)的樣子,進行了16萬次迭代訓練。
大部分人看到上面的圖片后,可能認為Putin在這些換臉測試中的結果比Spacey更具空間感。下面我們介紹一下在線表情識別程序是如何處理表情不匹配問題的:
根據這個比DFL和Faceswap更詳細的面部特征分析,我們發(fā)現Spacey的換臉結果中很少有Putin那樣的憤怒、厭惡和輕蔑的表情。
這些不同的表情分類是entangled包中的一部分,因為常用的AI換臉應用程序沒有匹配表情或情緒的能力。
對我們來說,這些表情間差異很大。我們很小的時候就將閱讀面部表情作為一種基本的生存技巧,并在成年后繼續(xù)依賴這種技巧來與社會融合、實現進步以及交配,并將其作為一種持續(xù)的威脅評估方法。所以我們對微表情非常敏感,所以AI換臉技術終需對微表情表達進行處理。
事與愿違
雖然AI換臉技術革命帶來了在現代電影和電視中插入“經典”電影明星的可能性,但人工智能無法以更兼容的定義和質量來拍攝之前的經典作品,而這對用戶來說也很重要。
假設重現Boba Fett中的Hamill形象就需要一個訓練好的AI換臉模型,那么就需要利用Hamill在制作《絕地歸來》時,30歲出頭樣子附近的片段作為訓練數據。
這部影片采用伊士曼彩色負片250T 5293/7293膠片拍攝,當時被認為較好的中等偏細顆粒度的250ASA乳劑,在80年代末就已經從清晰度、顏色范圍和保真度等方面被超過。在當時的經典之作《絕地歸來》中,甚至連主角的特寫鏡頭都沒有,這使得圖片顆粒度問題更加重要。
Hamill在《絕地歸來》(1983)中的一些鏡頭。
此外,我們通常會對以Hamill為主角的視覺特效鏡頭通過光學打印機處理,來增加膠片的顆粒度。盧卡斯影業(yè)也已經通過在檔案館中處理保存原始底片和幾個小時未運用的原始鏡頭,解決了顆粒度問題。
同時為了豐富和多樣化AI換臉數據集,我們通常會搜尋演員一個時間段內的所有作品。而Hamill在1977年經歷車禍后外貌有所變化,并且在參演完《絕地歸來》后幾乎立即開始了他作為著名配音演員的第二職業(yè),這就導致其數據素材過少,無法得到性能較好的AI換臉模型。
表情范圍是否有限制
如果你想要AI換臉模型完成演員的夸張表情,那你需要廣泛收集這些不常見面部表情的原始鏡頭。但很有可能在與年齡相匹配的鏡頭中不包含這種夸張表情。
例如,當《絕地歸來》開始主線劇情時,Hamill已經可以基本掌握自己的情緒了。如果這時你想用《絕地歸來》的數據訓練一個Hamill的AI換臉模型,你就需要一些限定范圍內的情緒數據和不常見的面部表情,而不是他出演的那些早期作品。
你可能認為在《絕地歸來》中Skywalker遇到巨大壓力時,會提供比較夸張、有效的表情素材。但實際上這些場景中的臉部表情素材轉瞬即逝,并且還受動作場面的運動模糊和快速剪輯的影響,導致素材無法得到有效運用。
概括:表情的融合
如果真的用AI換臉模型完成Boba Fett中Skywalker角色,那么他只能表現有限的表情范圍,這不只是因為原始素材的缺少。AI換臉模型在編碼器-解碼器訓練過程中尋求一種通用模型,該模型能夠從成千上萬幅圖像中成功提取重要特征,并嘗試獲得AI換臉數據集中沒有或少見的面部角度。
如果AI換臉模型不具備這種靈活性,那它只能在每幀畫面的基礎上進行復制和粘貼,無法考慮時間上的連續(xù)性或背景信息。
而且該技術的發(fā)展可能會犧牲表情的真實性,任何“細膩”的表情都有可能不是真實的。我們的臉像100個設備精良的管弦樂隊一樣配合演奏,而AI換臉軟件至少缺少了里面的弦樂部分。
情緒的表達差異
并不是所有的面部動作及其對我們的影響都是統(tǒng)一的,例如在羅杰·摩爾身上看起來漫不經心的挑眉動作,在賽斯·羅根身上就顯得不太老練。如果將瑪麗蓮·夢露的迷人魅力,利用AI換臉模型強加到一個充滿“憤怒”和“不滿”情緒的角色(例如Aubrey Plaza在Parks and Recreation第七季中扮演的角色)上時,就會傳達出消極情緒。
因此,在A、B人臉數據之間的相同像素并不一定對模型表達相同的情緒起作用,但這是訓練先進的AI換臉開源模型的前提。
我們期望的AI換臉模型,不僅能夠識別表情并推斷情緒,而且能夠表現諸如憤怒、迷人、無聊、疲憊等高層次概念,并將這些情緒及相關表情在兩個身份中進行不同表達,而不是單純在嘴巴或眼睛的位置上進行復制。