⑴ 「技術」Google Map幹掉傾斜攝影了
相信這兩天大家朋友圈都被Google Map新功能演示刷屏了,視頻中介紹說Google Map將在一些城市實現實景渲染,在手機中能夠就從不同視角能逼真地瀏覽城市場景,甚至還能實現從室外到室內的無縫融合。
這個視頻引發很多討論,看明白的、看不明白的都在各抒己見,真的非常有意思。有人看到視頻中從室外飛到室內,就聯想到國內房地產行業做的一些賣房應用,直言岩沖房地產公司已經吊打穀歌;也有人看到視頻中圍繞著威斯敏特大教堂轉一圈,就覺得這不就是傾斜攝影,早就爛大街的東西。
那正在看這篇文章的讀者,你的心裡又是什麼看法呢?
究竟是不是谷歌不行了呢?
02
Block-NeRF是什麼?
偉人說過,沒有調查就沒有發言權。想搞清楚這背後的技術細節,最好的辦法就是去看文獻。剛好在CVPR 2022會議上就有一篇Google員工發表的論文《 Block-NeRF: Scalable Large Scene Neural View Synthesis 》,該論文就是Google Map這次產品更新背後的實現技術。
單看論文題目,可以知道這篇文章主要介紹一種叫做Block-NeRF的新方法,這個方法可以進行大場景神經視圖合成。
視圖合成,簡單來說就是根據已有的視圖(也就是圖片)來合成一張不同視角下的新圖片。舉個不恰當的例子,你站在一個人左側拍了一張照片,又站在一個人的右側拍了一張照片,這時候你想知道站在這個人正前方拍的照片是什麼樣的。你在這個人左右兩側拍的照片就是已有的視圖,而你想要的正前方的照片就是需要合成的視圖。
當然,實際操作中一般會拍攝更多的照片,否則就難以達到理想的效果。視圖合成並不是什麼新概念,早期很多Image Based Rendering方向的論文就是做這個的,比較基礎的方法也就是通過對現有圖像進行插值來生成新的圖像。當液芹然,為了不斷地提升合成圖像的質量,粗埋殲方法變得越來越復雜。
來到AI時代,自然也會有人考慮用AI做視圖合成,其中的佼佼者就是NeRF。NeRF 是 2020 年 ECCV 上獲得最佳論文榮譽提名的工作,其影響力是十分巨大的。NeRF 將隱式表達推上了一個新的高度,僅用2D的姿態已知的圖像作為監督,即可表示復雜的三維場景,在新視角合成這一任務上取得非常好的效果。但是NeRF受限於有限的模型容量,只能重建小尺度場景,比如一個物體、一個房間、一棟建築等等。
Google在NeRF的基礎上更進一步,通過將場景分割為多個部分,每個部分單獨用一個NeRF進行訓練,最後將各個NeRF合成的視圖混合,從而實現大場景的視圖合成。這就是Block-NeRF最核心的思想。
03
你還認為Google Map渲染的是傾斜嗎?
我們現在文章里找找證據。文章在研究現狀首先就介紹了大場景三維重建的內容,提到COLMAP、PMVS等知名計算機視覺項目,但同時也提到通過3D重建得到的模型存在很多變形和黑洞,這正是現在傾斜攝影模型存在的嚴重問題。
最後,總結說三維重建更加註重精度,而本文的任務屬於新視圖合成領域,甚至Block-NeRF演算法都沒有利用SfM(Structure from Motion)演算法來獲取相機位姿,僅利用車載感測器讀數作為模型訓練數據。
看到這里,我想大家都知道Google Map渲染的不是傾斜模型了。可是為什麼要大費周章地用幾百萬張圖片來訓練Block-NeRF模型呢?從視頻中不難看出,瀏覽過程中非常平滑,沒有傾斜那種LOD過渡的感覺,而且,合成出來的圖像還可以進行光照、天氣等效果的調整。
當然,肯定還會有人說,現在把傾斜攝影模型導入 游戲 引擎也能有各種光照和天氣效果,但是傾斜攝影模型本身的紋理就已經記錄拍攝時的光照信息,即使添加一些 游戲 引擎的效果,所看到的畫面也沒有Google Map那麼純凈。
另外,Block-Neft里還提到在製作訓練數據時,把圖片中的移動目標(如車和行人)等遮罩掉,使得合成的圖像里不會出現車和行人的干擾。相較之下,傾斜攝影模型中的車輛和行人往往需要人工去壓平修復。
從個人角度來說,我覺得Block-NeRF比傾斜攝影更加優雅。只要根據用戶瀏覽的位置和朝向,就可以在雲端實時渲染出一張以假亂真的圖片。雖然傾斜也可以走雲渲染的路線,但就顯示效果和渲染效率來說,目前看到的應用案例也僅僅時剛剛夠用而已。至於Block-NeRF會不會取代傾斜攝影,個人覺得目前並不需要此類的擔心。