訓練自動駕駛系統(tǒng)需要高精地圖,海量的數(shù)據(jù)和虛擬環(huán)境,每家致力于此方向的科技公司都有自己的方法,Waymo 有自己的自動駕駛出租車隊,英偉達創(chuàng)建了用于大規(guī)模訓練的虛擬環(huán)境 NVIDIA DRIVE Sim 平臺。近日,來自 Google AI 和谷歌自家自動駕駛公司 Waymo 的研究人員實踐了一個新思路,他們嘗試用 280 萬張街景照片重建出整片舊金山市區(qū)的 3D 環(huán)境。
通過大量街景圖片,谷歌的研究人員們構(gòu)建了一個 Block-NeRF 網(wǎng)格,完成了迄今為止最大的神經(jīng)網(wǎng)絡(luò)場景表征,渲染了舊金山的街景。
該研究提交到 arXiv 上之后,Jeff Dean 立即轉(zhuǎn)推介紹:
Block-NeRF 是一種神經(jīng)輻射場的變體,可以表征大規(guī)模環(huán)境。具體來說,該研究表明,當擴展 NeRF 以渲染跨越多個街區(qū)的城市場景時,將場景分解為多個單獨訓練的 NeRF 至關(guān)重要。這種分解將渲染時間與場景大小分離,使渲染能夠擴展到任意大的環(huán)境,并允許對環(huán)境進行逐塊更新。
該研究采用幾項架構(gòu)更改,使得 NeRF 對數(shù)月內(nèi)不同環(huán)境條件下捕獲的數(shù)據(jù)具有魯棒性,為每個單獨的 NeRF 添加了外觀嵌入、學習姿態(tài)細化和可控曝光,并提出了一種用于對齊相鄰 NeRF 之間外觀的程序,以便無縫組合。
《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》是 UC Berkeley 研究人員在 ECCV 2020 上的一篇論文,獲得了最佳論文提名。其提出一種隱式 3D 場景表征,不同于顯示場景表征(如點云、網(wǎng)格 mesh),其原理是求解穿過場景的任何光線的顏色,從而渲染合成新視角的 2D 場景圖片。
NeRF 在給定一組姿態(tài)相機圖像的情況下,實現(xiàn)了照片般逼真的重建和新型視圖合成。NeRF 早期的工作往往側(cè)重于小規(guī)模和以對象為中心的重建。盡管現(xiàn)在有些方法可以重建單個房間或建筑物大小的場景,但這些方法仍然范圍有限,不能擴展到城市規(guī)模的環(huán)境。由于模型容量有限,將這些方法應(yīng)用于大型環(huán)境通常會導致明顯的偽影和低視覺保真度。
重建大規(guī)模環(huán)境在自動駕駛、航空測量等領(lǐng)域具有廣泛應(yīng)用前景。例如創(chuàng)建大范圍的高保真地圖,為機器人定位、導航等應(yīng)用提供先驗知識。此外,自動駕駛系統(tǒng)通常通過重新模擬以前遇到的場景來進行評估,然而任何與記錄存在的偏差都可能改變車輛的軌跡,因此需要沿著路徑進行高保真的視圖渲染。除了基本的視圖合成,以場景為條件的 NeRF 還能夠改變環(huán)境照明條件,例如相機曝光、天氣或一天中不同的時間,這可用于進一步增強模擬場景。
如上圖所示,谷歌此次提出的 Block-NeRF 是一種通過使用多個緊湊的 NeRF 表征環(huán)境來實現(xiàn)大規(guī)模場景重建的方法。在推理時,Block-NeRF 無縫結(jié)合給定區(qū)域的相關(guān) NeRF 的渲染。上圖的示例使用 3 個月內(nèi)收集的數(shù)據(jù)重建了舊金山的阿拉莫廣場社區(qū)。Block-NeRF 可以更新環(huán)境的各個塊,而無需對整個場景進行重新訓練。
重建如此大規(guī)模的環(huán)境會帶來額外的挑戰(zhàn),包括瞬態(tài)物體(汽車和行人)的存在、模型容量的限制以及內(nèi)存和計算限制。此外,在一致的條件下,極不可能在一次捕獲中收集如此大環(huán)境的訓練數(shù)據(jù)。相反,環(huán)境不同部分的數(shù)據(jù)可能需要來自不同的數(shù)據(jù)收集工作,這會在場景幾何(例如,建筑工作和停放的汽車)以及外觀(例如,天氣條件和一天中不同的時間)中引入差異。
方法
該研究通過外觀嵌入和學習姿態(tài)細化來擴展 NeRF,以應(yīng)對收集到的數(shù)據(jù)中的環(huán)境變化和姿態(tài)錯誤,同時還為 NeRF 添加了曝光條件,以提供在推理過程中修改曝光的能力。添加這些變化之后的模型被研究者稱為 Block-NeRF。擴大 Block-NeRF 的網(wǎng)絡(luò)容量將能夠表征越來越大的場景。然而,這種方法本身有許多限制:渲染時間隨著網(wǎng)絡(luò)的大小而變化,網(wǎng)絡(luò)不再適合單個計算設(shè)備,更新或擴展環(huán)境需要重新訓練整個網(wǎng)絡(luò)。
為了應(yīng)對這些挑戰(zhàn),研究者提出將大型環(huán)境劃分為多個單獨訓練的 Block-NeRF,然后在推理時動態(tài)渲染和組合。單獨建模這些 Block-NeRF 可以實現(xiàn)最大的靈活性,擴展到任意大的環(huán)境,并提供以分段方式更新或引入新區(qū)域的能力,而無需重新訓練整個環(huán)境。要計算目標視圖,只需渲染 Block-NeRF 的子集,然后根據(jù)它們相對于相機的地理位置進行合成。為了實現(xiàn)更無縫的合成,谷歌提出了一種外觀匹配技術(shù),通過優(yōu)化它們的外觀嵌入,將不同的 Block-NeRF 進行視覺對齊。
圖 2:重建場景被分成了多個 Block-NeRF,每個 Block-NeRF 都在特定 Block-NeRF 原點坐標(橙色點)的某個原型區(qū)域(橙色虛線)內(nèi)的數(shù)據(jù)上進行訓練。
該研究在 mipNeRF 的基礎(chǔ)上構(gòu)建了 Block-NeRF 實現(xiàn),改善了因輸入圖像從許多不同距離觀察場景造成的損害 NeRF 性能的混疊問題。研究人員結(jié)合了來自 NeRF in the Wild (NeRF-W) 的技術(shù),該技術(shù)在將 NeRF 應(yīng)用于 Photo Tourism 數(shù)據(jù)集中的地標時,為每個訓練圖像添加一個潛在代碼以處理不一致的場景外觀。NeRF-W 從數(shù)千張圖像中為每個地標創(chuàng)建一個單獨的 NeRF,而谷歌的新方法結(jié)合了許多 NeRF,從數(shù)百萬張圖像中重建一個連貫的大環(huán)境,并結(jié)合了學習相機姿態(tài)細化。
圖 3. 新模型是 mip-NeRF 中提出的模型的擴展。
一些基于 NeRF 的方法使用分割數(shù)據(jù)來隔離和重建視頻序列中的靜態(tài)和動態(tài)對象(如人或汽車)。由于該研究主要關(guān)注重建環(huán)境本身,所以在訓練期間簡單地選擇屏蔽掉動態(tài)對象。
為了動態(tài)選擇相關(guān)的 Block-NeRF 進行渲染,并在遍歷場景時以平滑的方式進行合成,谷歌優(yōu)化了外觀代碼以匹配光照條件,并使用基于每個 Block-NeRF 到新視圖的距離計算的插值權(quán)重。
重建效果
鑒于數(shù)據(jù)的不同部分可能在不同的環(huán)境條件下被捕獲,算法遵循 NeRF-W 并使用生成式潛在優(yōu)化(Generative Latent Optimization,GLO)來優(yōu)化 perimage 外觀嵌入向量。這使得 NeRF 可以解釋幾個外觀變化的條件,例如變化的天氣和照明。同時還可以操縱這些外觀嵌入,以在訓練數(shù)據(jù)中觀察到的不同條件之間進行插值(例如多云與晴朗的天空,或白天和黑夜)。
圖 4. 外觀代碼允許模型展示出不同的照明和天氣條件。
整個環(huán)境可以由任意數(shù)量的 Block-NeRF 組成。為了提高效率,研究人員利用兩種過濾機制僅渲染給定目標視點的相關(guān)區(qū)塊,這里只考慮目標視點設(shè)定半徑內(nèi)的 Block-NeRF。此外,系統(tǒng)對于每個候選者都會計算相關(guān)的可見性。如果平均可見度低于閾值,則丟棄 Block-NeRF。圖 2 提供了一個可見性過濾的示例。可見性可以快速計算,因為它的網(wǎng)絡(luò)獨立于顏色網(wǎng)絡(luò),并且不需要以目標圖像分辨率進行渲染。過濾后,通常有 1 到 3 個 Block-NeRF 需要合并。
圖 5. 谷歌的模型包含曝光條件,這有助于解釋訓練數(shù)據(jù)中存在的曝光量變化,允許用戶在推理過程中以人類可解釋的方式更改輸出圖像的外觀。
為了重建整個城市場景,研究人員在錄制街景時捕獲長期序列數(shù)據(jù)(超過 100 秒),并在幾個月內(nèi)在特定目標區(qū)域重復(fù)捕獲不同序列。谷歌使用從 12 個攝像頭捕獲的圖像數(shù)據(jù),這些攝像頭共同提供 360° 視圖。其中 8 個攝像頭從車頂提供完整的環(huán)視圖,另外 4 個攝像頭位于車輛前部,指向前方和側(cè)面。每個相機以 10 Hz 的頻率捕獲圖像并存儲一個標量曝光值。車輛姿態(tài)是已知的,并且所有攝像機都經(jīng)過校準。
借助這些信息,該研究在一個共同的坐標系中計算相應(yīng)的相機光線原點和方向,同時將相機的滾動快門考慮在內(nèi)。
圖 6. 當渲染基于多個 Block-NeRF 的場景時,該算法使用外觀匹配來獲得整個場景的一致樣貌。給定一個 Block-NeRF(圖左)的固定目標外觀,算法會優(yōu)化相鄰 Block-NeRF 的外觀以匹配。在此示例中,外觀匹配了在 Block-NeRF 中產(chǎn)生一致的夜間外觀。
圖 7. 多段數(shù)據(jù)的模型消融結(jié)果。外觀嵌入有助于神經(jīng)網(wǎng)絡(luò)避免添加云霧幾何體來解釋天氣和光照等環(huán)境變化。移除曝光會略微降低了準確度。姿態(tài)優(yōu)化有助于銳化結(jié)果并消除重復(fù)對象的重影,如在第一行的電線桿上觀察到的那樣。
未來展望
谷歌研究人員表示,新方法仍然有一些問題有待解決,比如部分車輛和陰影沒有被正確移除,植被因為外觀隨季節(jié)變化而在虛擬環(huán)境中變得模糊。同時,訓練數(shù)據(jù)中的時間不一致(例如施工工作)無法被 AI 自動處理,需要手動重新訓練受影響的區(qū)域。
此外,目前無法渲染包含動態(tài)對象的場景限制了 Block-NeRF 對機器人閉環(huán)模擬任務(wù)的適用性。將來,這些問題或許可以通過在優(yōu)化過程中學習瞬態(tài)對象來解決,或者直接對動態(tài)對象進行建模。