我們生活的地球擁有雄偉的山脈、壯麗的海洋和寧靜的森林。你能想象小鳥飛過這種細節豐富的三維景觀時所看到的景色嗎?計算機能學會合成這種視覺體驗嗎?顯然,這樣的能力可以為游戲和VR體驗提供新的內容。
在名為“Infinite Nature”的研究中,谷歌探索了可以根據靜止照片來學習生成這種Flythroughs飛行漫游視圖。這是前所未有的突破性能力。谷歌將潛在的研究問題稱為Perpetual View Generation持續視圖生成:給定一個場景的單個輸入視圖,如何合成一組對應于通過所述場景任意長度的、由用戶控制3D路徑的逼真輸出視圖?
Perpetual View Generation持續視圖生成非常具有挑戰性,因為系統必須在大型地標(例如山脈)的另一側生成新內容,并以高逼真度和高分辨率渲染新內容。
經過一番努力后,由谷歌、康奈爾大學、加利福尼亞大學伯克利分校組成的團隊于ECCV 2022展示的InfiniteNature Zero可以從單個種子圖像開始,使用僅以靜止照片訓練的系統產生高分辨率、高質量的Flythroughs飛行漫游視圖。如下面這個視頻所示:
*InfiniteNature Zero生成的Flythroughs飛行漫游視圖。它可以獲取自然場景的單個輸入圖像,并合成相應的飛行漫游路徑,從而生成新的場景內容。
背景:從視頻中學習3D飛行漫游視圖
實際上,谷歌早早就已經開始探索相關的方案。在2021 ICCV大會,團隊展示了自己的研究《Infinite Nature: Perpetual View Generation of Natural Scenes from a Single Image》。這是一種根據視頻學習的方案。他們收集了一組無人機從沿海岸線飛行拍攝的在線視頻,并由AI學習合成類似于所述真實視頻的Flythroughs飛行漫游視圖。
這組在線視頻稱為Aerial Coastline Imagery Dataset(ACID)。然而,為了學習如何合成動態響應任何所需3D camera路徑的場景,不能簡單地將所述視頻視為原始像素集合。團隊同時必須計算它們的基本3D幾何結構,包括每幀的camera位置。
研究的基本思想是,逐步學習生成Flythroughs飛行漫游視圖。給定一個起始視圖,如下圖中的第一幅圖像,團隊首先使用單圖像深度預測方法計算深度圖。然后,使用深度圖將圖像向前渲染到一個新的camera視點(如中間所示),并從所述新視點生成一個新圖像和深度圖。
然而,這個中間圖像存在一定的問題:我們可以看到物體后面的區域,但這種區域在起始圖像中不可見。另外,它十分模糊,因為我們現在更接近物體,而我們是在拉伸前一幀的像素以渲染現在近看更大的對象。
為了解決所述問題,谷歌訓練了一個獲取低質量的中間圖像,并輸出完整的高質量圖像和相應深度圖的神經圖像細化網絡。然后,可以重復步驟,以所述合成圖像作為新的起點。因為團隊對圖像和深度圖都進行了細化,所以這個過程可以根據需要重復多次。當camera進一步進入場景時,系統會自動學習生成新的風景,如山脈、島嶼和海洋。
谷將這種方法稱為“渲染-細化-重復”。接下來,谷歌使用ACID數據集訓練這種渲染-細化-重復合成方法。特別是,從數據集中采樣一個視頻,然后從所述視頻中采樣一幀。然后,使用所述方法渲染沿著與ground truth視頻相同的camera軌跡移動到場景中的新視圖,并將渲染幀與相應的ground truth幀進行比較,從而導出訓練信號。研究人員同時包括一個對抗性設置,將合成幀與真實圖像區分開來。
所以,系統可以生成出色的Flythroughs飛行漫游視圖,如項目網頁所示。與以往的視頻合成方法不同,這個方法允許用戶交互式地控制camera,并可以生成更長的camera路徑。
從靜止照片中學習Flythroughs飛行漫游視圖
尋找具有正確camera運動類型的高質量視頻是一項挑戰,并且單個視頻幀的質量通常無法與有意拍攝的自然照片相比較。所以在《InfiniteNature-Zero: Learning Perpetual View Generation of Natural Scenes from Single Images》這項研究中,由谷歌、康奈爾大學、加利福尼亞大學伯克利分校組成的團隊以上述渲染細化重復策略作為基礎,并設計了一種從靜態照片集合學習持續視圖合成的方法,無需任何視頻。他們將這種方法稱為InfiniteNature Zero,不需要任何視頻。
在一開始,這似乎是一項不可能完成的任務:都是孤立的照片,如何訓練模型生成場景的Flythroughs飛行漫游視圖呢?
為了解決這個問題,團隊提出了一個關鍵的見解:如果拍攝一張圖像并渲染一個形成cycle的camera路徑,亦即路徑循環返回,使得最后一個圖像與第一個圖像都來自同一個視點,這樣就能知道沿著所述路徑的最后一個合成圖像應該與輸入圖像相同。這種cycle一致性提供了一種訓練約束,可以幫助模型在視圖生成的每個步驟中學習填充缺失區域并提高圖像分辨率。
然而,使用這種camera cycle進行訓練不足以生成長而穩定的視圖序列,所以團隊納入了一種對抗策略,考慮了長而非循環的camera路徑。特別是,如果從開始幀渲染T幀,研究人員會優化渲染-細化-重復模型,以便鑒別器網絡無法區分哪個是開始幀,哪個是最終合成幀。最后,他們添加了一個經訓練以生成高質量天空區域的組件,從而提高結果的真實感。
有了上述見解,團隊使用可以從網絡大量獲取的風景照片來訓練InfiniteNature Zero。下面的視頻展示了InfiniteNature Zero的效果。可以看到,它可以沿著任意長的camera路徑生成美麗多彩的自然風光。谷歌指出,與先前的工作以及先前的視頻合成方法相比,InfiniteNature Zero的結果在內容質量和多樣性方面都有了顯著的改進。
結論
相關論文:InfiniteNature-Zero: Learning Perpetual View Generation of Natural Scenes from Single Images
團隊總結道,這項研究存在一系列令人興奮的未來方向。例如,所述方法目前僅基于前一幀及其深度圖合成場景內容,沒有持久的底層3D表示。所以,團隊接下來將研究可以生成完整的、逼真的、一致的3D世界的算法。