衛(wèi)星圖片重建舊金山3D模型,效果就像谷歌地球,港中大團(tuán)隊提出CityNeRF
來自港中大林達(dá)華團(tuán)隊
曉查 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
看到下面這張動圖,你會想到什么?是谷歌地球,還是蘋果自帶的3D地圖?
其實都不是,它是用衛(wèi)星和航拍圖片直接渲染生成的舊金山。
很難想象,如此精細(xì)的城市3D模型,竟然是用幾張不同角度和高度的2D圖片重建的。
這項研究來自香港中文大學(xué)多媒體實驗室團(tuán)隊,叫做CityNeRF。
說到這里,有人應(yīng)該想到了這兩年大熱的“神經(jīng)輻射場”(NeRF),它可以用多張角度照片重建3D對象,性能出色。量子位之前對此進(jìn)行了相關(guān)報道和解讀。
NeRF雖然恢復(fù)室內(nèi)場景效果驚艷,但是直接用到城市級的衛(wèi)星地圖上,卻面臨著巨大的挑戰(zhàn)。
首先是拍攝相機(jī)有很大的運動自由度。隨著相機(jī)的上升,場景中的地物外觀越來越粗糙,幾何細(xì)節(jié)越來越少,紋理分辨率越來越低。
同時,隨著空間覆蓋范圍的擴(kuò)大,來自外圍區(qū)域的新對象會加入到視圖中。
相機(jī)在這個一系列場景中,產(chǎn)生了具有不同細(xì)節(jié)級別和空間覆蓋范圍的多尺度數(shù)據(jù)。
如果使用原來的NeRF渲染,那么生成的遠(yuǎn)景往往不完整,周邊場景區(qū)域存在偽影,近景總是具有模糊的紋理和形狀。
什么原理?
針對上述問題,作者提出了采用多階段漸進(jìn)式學(xué)習(xí)范式的CityNeRF。
作者根據(jù)相機(jī)距離將整個訓(xùn)練數(shù)據(jù)集劃分為預(yù)定義數(shù)量的尺度。從最遠(yuǎn)的尺度開始,每個訓(xùn)練階段逐漸將訓(xùn)練集擴(kuò)大一個更近的尺度,并同步增長模型。
通過這種方式,CityNeRF可以穩(wěn)健地學(xué)習(xí)跨場景所有尺度的表示層次結(jié)構(gòu)。
CityNeRF引入了兩個特殊的設(shè)計:
1、具有殘差塊結(jié)構(gòu)的生長模型:
在每個訓(xùn)練階段附加一個額外的塊來擴(kuò)展模型。每個塊都有自己的輸出head,用于預(yù)測連續(xù)階段之間的顏色和密度殘差,促使塊在近距離觀察中關(guān)注新興細(xì)節(jié);
2、包容的多級數(shù)據(jù)監(jiān)督:
每個塊的輸出head由從最遠(yuǎn)尺度到其對應(yīng)尺度的圖像聯(lián)合監(jiān)督。
換句話說,最后一個塊接受所有訓(xùn)練圖像的監(jiān)督,而最早的塊只暴露于最粗尺度的圖像。通過這樣的設(shè)計,每個塊模塊都能夠充分利用其能力,在更近的視圖中對復(fù)雜的細(xì)節(jié)進(jìn)行建模,并保證尺度之間一致的渲染質(zhì)量。
總體來說,CityNeRF是一種漸進(jìn)式學(xué)習(xí)范式,可同步增長NeRF模型和訓(xùn)練集。從用淺基塊擬合遠(yuǎn)景開始,隨著訓(xùn)練的進(jìn)行,添加新的塊以適應(yīng)越來越近的視圖中出現(xiàn)的細(xì)節(jié)。
該策略有效地激活了位置編碼中的高頻通道,并隨著訓(xùn)練的進(jìn)行展開更復(fù)雜的細(xì)節(jié)。
簡而言之,使用基本神經(jīng)網(wǎng)絡(luò)多層感知器的權(quán)重,NeRF將提前處理所有圖像,知道其觀點位置。NeRF將使用相機(jī)的光線找到每個像素的顏色和密度。
因此,它知道相機(jī)的方向,并可以同時使用所有數(shù)組來了解深度和相應(yīng)的顏色。然后,使用損失函數(shù)優(yōu)化了神經(jīng)網(wǎng)絡(luò)的收斂性,
模型訓(xùn)練數(shù)據(jù)數(shù)據(jù)來自Google Earth Studio中的12個城市圖像。結(jié)果顯示在幾種常見重建模型中達(dá)到了最佳的效果。
最后,作者又將該模型用于重建無人機(jī)拍攝的空中圖像,依然收到了更佳的效果。
團(tuán)隊簡介
本篇論文的兩位一作是來自香港中文大學(xué)MMLab的兩位博士生相里元博和徐霖寧。前者曾有一篇論文被ICLR 2020收錄,后者有多篇論文被CVPR、ICCV等頂會收錄。
通訊作者是以上兩位的導(dǎo)師林達(dá)華。
林達(dá)華是香港中文大學(xué)信息工程系副教授,也是港中大-商湯科技聯(lián)合實驗室主任。
論文地址:
https://arxiv.org/abs/2112.05504
項目地址:
https://city-super.github.io/citynerf/