影象和影片編輯操作通常依賴於準確的遮罩——定義前景和背景之間分離的影象。雖然最近的計算機視覺技術可以為自然影象和影片生成高質量的遮罩,允許現實世界的應用程式,例如生成合成景深、編輯和合成影象或從影象中刪除背景,但缺少一個基本部分:主體可能產生的各種場景效果,如陰影、反射或煙霧,通常會被忽視。
在CVPR 2021 上發表的“ Omnimatte:關聯物件及其在影片中的效果”中,Google描述了一種新的遮罩生成方法,該方法利用分層神經渲染將影片分成稱為Omnimatte的層,其中不僅包括主題,還包括所有在場景中與它們相關的效果。典型的最先進的分割模型為場景中的主體(例如人和狗)提取蒙版,而此處提出的方法可以隔離和提取與主體相關的其他細節,例如投射在地面。
最先進的分割網路(例如,MaskRCNN)採用輸入影片(左)併為人和動物(中)生成合理的面具,但錯過了它們的相關效果。Google的方法產生的遮罩不僅包括主體,還包括他們的陰影(右圖;人和狗的單獨通道被視覺化為藍色和綠色)。
同樣與分割蒙版不同的是,omnimattes 可以捕捉部分透明的柔和效果,例如反射、飛濺或輪胎煙霧。與傳統遮罩一樣,omnimattes 是RGBA 影象,可以使用廣泛可用的影象或影片編輯工具進行處理,並且可以在使用傳統遮罩的任何地方使用,例如,將文字插入煙跡下方的影片中。
影片的分層分解
為了生成全能圖,Google將輸入影片分成一組層:一個層用於每個移動的物件,一個附加層用於靜止的背景物件。在下面的示例中,人的一層,狗的一層,背景的一層。當使用傳統的alpha 混合合併在一起時,這些層會再現輸入影片。
除了再現影片外,分解還必須在每一層捕捉正確的效果。例如,如果人的影子出現在狗的圖層中,合併後的圖層仍然會重現輸入的影片,但是在人和狗之間插入額外的元素會產生明顯的錯誤。挑戰在於找到一個分解,其中每個主題的層僅捕獲該主題的效果,從而產生真正的全能。
Google的解決方案是應用Google之前開發的分層神經渲染方法來訓練卷積神經網路(CNN) 以將主體的分割掩碼和背景噪聲影象對映到一個全圖。由於其結構,CNN 自然傾向於學習影象效果之間的相關性,並且效果之間的相關性越強,CNN 就越容易學習。例如,在上面的影片中,人與其影子以及狗與其影子之間的空間關係在他們從右向左行走時保持相似。在關係之間的變化更大(因此,相關性較弱)的人與狗的影子,或者狗和人的影子. CNN 首先學習更強的相關性,從而導致正確的分解。
下面詳細展示了omnimatte系統。在預處理中,使用者選擇主題併為每個主題指定一個層。使用現成的分割網路(例如MaskRCNN)提取每個物件的分割掩碼,並使用標準相機穩定工具找到相對於背景的相機變換。隨機噪聲影象在背景參考幀中定義,並使用相機變換進行取樣以生成每幀噪聲影象。噪聲影象提供隨機但隨時間持續跟蹤背景的影象特徵,為 CNN 學習重建背景顏色提供自然輸入。
渲染 CNN 將分割掩碼和每幀噪聲影象作為輸入,並生成 RGB 彩色影象和 alpha 對映,它們捕獲每一層的透明度。這些輸出使用的是傳統的 alpha 混合來合併以生成輸出幀。CNN 從頭開始??訓練,透過查詢掩碼中未捕獲的效果(例如,陰影、反射或煙霧)並將其與給定的前景層相關聯來重建輸入幀,並確保主體的 alpha 大致包括分割掩碼。為了確保前景層只捕獲前景元素而沒有固定背景,還對前景 alpha 應用了稀疏損失。
為每個影片訓練一個新的渲染網路。由於網路只需要重建單個輸入影片,因此除了分離每個主題的效果外,它還能夠捕獲精細結構和快速運動,如下所示。在步行示例中,omnimatte 包括投在公園長椅板條上的陰影。在網球示例中,捕捉到了細小的陰影甚至網球。在足球示例中,球員和球的陰影被分解為適當的層(當球員的腳被球擋住時會出現輕微的錯誤)。
這個基本模型已經執行良好,但可以透過使用額外的緩衝區(如光流或紋理座標)增加 CNN 的輸入來改善結果。
應用程式
一旦生成了omnimattes,如何使用它們?如上所示,Google可以刪除物件,只需從組合中刪除它們的圖層即可。Google還可以透過在合成中重複物件層來複制物件。在下面的例子中,影片被“展開”成全景圖,馬被多次複製以產生頻閃的照片效果。請注意,馬投在地面和障礙物上的陰影被正確捕獲。
一個更微妙但功能更強大的應用是重定時主題。時間的操縱在電影中被廣泛使用,但通常需要為每個主題和受控的拍攝環境單獨拍攝。分解為omnimattes 使日常影片的重新定時效果成為可能,只需使用後處理,只需獨立更改每一層的播放速率即可。由於Omnimattes 是標準的RGBA 影象,因此可以使用傳統的影片編輯軟體來完成這種重新定時編輯。
下面的影片被分解成三層,每個孩子一層。孩子們最初的、不同步的跳躍透過簡單地調整他們的圖層的播放速率來對齊,為水中的飛濺和反射產生逼真的重新定時。
在原始影片(左)中,每個孩子在不同的時間跳躍。編輯完(右),大家一起跳。
重要的是要考慮到任何處理影象的新技術都應該負責任地開發和應用,因為它可能被濫用來產生虛假或誤導性資訊。Google的技術是根據Google的AI 原則開發的,只允許重新排列影片中已經存在的內容,但即使是簡單的重新排列也可以顯著改變影片的效果,如這些示例所示。研究人員應該意識到這些風險。
有許多令人興奮的方向可以提高omnimattes 的質量。在實用層面上,該系統目前僅支援可以建模為全景圖的背景,其中相機的位置是固定的。當相機位置移動時,全景模型無法準確捕捉整個背景,一些背景元素可能會雜亂前景層(有時在上圖中可見)。處理完全通用的相機運動,例如穿過房間或走在街上,需要 3D 背景模型。在存在移動物體和效果的情況下重建 3D 場景仍然是一項艱鉅的研究挑戰,但最近取得了令人鼓舞的進展。
在理論層面上,CNNs 學習相關性的能力是強大的,但仍然有些神秘,並且並不總是導致預期的層分解。雖然Google的系統允許在自動結果不完美時進行手動編輯,但更好的解決方案是充分了解 CNN 學習影象相關性的能力和侷限性。這種理解可能會導致改進去噪、修復和除層分解之外的許多其他影片編輯應用程式。