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