當前位置:
首頁 > 科技 > 有點厲害 用Google街景數據創建3D城市點雲模型

有點厲害 用Google街景數據創建3D城市點雲模型

有點厲害 用Google街景數據創建3D城市點雲模型

昨天IN2發了Matterport的新Pro2 3D相機,並開玩笑讓做地產VR的哥們都歇了,結果做地產VR的哥們都很生氣,紛紛拒絕轉載。別這樣嘛,只不過是個小3D掃描相機而已,你要是看到今天歪果仁的黑科技,還不得嚇到尿血?

用3D相機掃描一個房間容易,但是要掃描一條大街,一個城市就沒那麼容易了是不是。不要緊,有外國同學用谷歌街景提取的數據,生生做出了3D點雲的模型,這方法是如此奇巧淫技,IN2不得不轉給大家看下。

學術宅拯救世界

要說真科技朋克,還得是大學實驗室里的哥們。資訊里提到的「高端薅谷歌街景羊毛」的方法,來自伊利諾伊大學的Marco Cavallo的論文《從谷歌街景重建3D城市》(3D City Reconstruction From Google Street View)。Marco在論文中表示,雖然3D掃描技術在近年已經取得了一些進展,但是要獲得大型的城市3D模型還是昂貴且難度極高的。同時,像谷歌街景這樣的應用,能以免費的成本提供大量地點的高清全景圖片。Marco的目的,就是利用這些免費的全景街景圖片,搭配上提取出來的深度信息,來研發一個低成本且自動的城市3D建模解決方案。

有點厲害 用Google街景數據創建3D城市點雲模型

這個解決方案的原理是怎樣的?簡單來說,谷歌街景可以被看成是一個可共瀏覽的線上資料庫,它裡面包含了數十億個街道全景圖片。從2007年開始,谷歌就不斷搜集這些數據,在城市區域基本上是5-10米拍攝一張。同時,谷歌提供開放的API介面,根據一個GPS坐標或者單一識別點(unique identifier)就能獲得一個全景圖片的虛擬相機圖像(View)。這些圖像是全景圖片的直角投射,用戶可以改變FOV、方向和角度。這些圖像可以被看成是小孔成像拍攝的無失真圖片,為了製作成360°全景圖片而有一些重疊。

另外,根據谷歌激光掃描在物體表面的反射速度,能夠算出相機和反射物體或者建築的距離,也為谷歌地圖等應用建立3D模型提供了幫助。谷歌的API事實上提供了一個獲取和全景圖片對應的深度信息的方法,正好可以讓我們用來重建3D場景。經過解碼並在空間中重建起來,這些根據深度信息建立起來的模型可以用於多個方向,例如導航、AR甚至VR。

理論上是這麼個事兒, 咱們看看具體操作。

具體操作

雖然聽起來挺麻煩,但其實Marco Cavallo的應用可以歸納為以下幾個步驟:

1. 合成全景圖片

2. 計算深度地圖

3. 創建點雲

4. 合成點雲

前兩個步驟都要用到谷歌街景API來手機並解碼之後要用到的數據。同時這也用到了兩個開源Javascript Library,GSVPano和GSVPanoDepth,用來提取和合成谷歌的圖片。

合成全景圖片

首先,需要獲得特定起始點最接近的全景圖片,用這個鏈接地址:

(https://maps.google.com/cbk?output=json&hl=x-local&ll=LAT,LNG&cb_client=maps_sv&v=3),

向Google Maps REST API發起請求(Call),是能夠獲得這個全景圖片的獨立標識點的。Google Street View Service Javascript API允許我們獲取以下會用到的數據:全景圖片標識點、全景圖片的解析度、組成圖片的單個Tiles的解析度、方向、真實坐標和最終臨近全景圖片。

有點厲害 用Google街景數據創建3D城市點雲模型

雖然谷歌提供最高13312×6656像素的解析度, 但是我們認為3328×1664的解析度足夠我們用了。對於我們這個項目來說,目的是用512×512像素的7×4個Tiles來組合成一個圖像,因為谷歌是不允許用戶直接下載全景圖片的。所以,我們需要用REST API來下載這7×4的Tiles。

https://cbks2.google.com/cbk?cb_client=maps_sv.tactile&authuser=0&hl=en&panoid=PANORAMAID&output=tile&zoom=QUALITY&x=XPOS&y=YPOS&TIMESTAMP

在我們這個項目中,QUALITY是3, XPOS和YPOS分別對應7x4Tiles圖中的位置。當把這些組合到一張圖像中,並且邊緣稍微重疊之後,我們就獲得了一個解析度3328×1664的RGB圖片,對應的就是特定點的全景圖片。

計算深度地圖

現在我們有了全景圖片,接下來需要做的是提取對應的深度地圖。Google Maps REST API允許用戶從下面這個鏈接

http://maps.google.com/cbk?output=json&cb_client=maps_sv&v=4&dm=1&pm=1&ph=1&hl=en&panoid=PANORAMAID

獲得一個深度圖像的JSON代碼(representation)、其中包含了全景圖片中每個像素從相機到最近表面的距離信息。通過Base64處理這些數據,並將其轉化成無符號8位整數的陣列( array of

unsigned 8-bit integers)後,我們就能獲得標題信息(Header Information)並獲得有用的數據,例如參考平面數字(number of referenced planes)。事實上,在512×256網路上的每一個像素都對應了眾多平面(Planes)中的一個,通過Normal Vector和其到攝像機的距離而定。所以,要想計算出一個像素的深度,我們必須決定從攝影機中心發出的光線和相對對應平面的交叉點。將其重複到所有平面,我們能夠將深度地圖製成512×256元素的32位浮動陣列(32-bit float array of 512×256 elements),這個要比我們的RGB全景圖片解析度低多了。

至於如何通過演算法製作深度地圖信息,請明天繼續關注IN2。

相關閱讀

[術說]Deepano專家詳解360°視頻深度信息及6自由度VR

Facebook新VR相機詳解:深度信息如何產生 6DOF如何實現

用雷達做出深度信息360視頻的公司 被Red創始人看上了

[消息來自www.evl.uic.edu IN2原創資訊轉載請註明來源及鏈接]

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IN2虛擬現實影像 的精彩文章:

MLF VR:流螢飛旋 化身一隻古老的夏蟲冷眼看看這個世界
從難民到火星:頭盔並不是VR敘事的必須品
有了這台3D掃描相機 做房地產VR的都歇了吧
帥炸:這款AR應用秒了Snapchat和谷歌幾條街好嘛
Facebook、Youtube 幾大360視頻平台終極對比

TAG:IN2虛擬現實影像 |

您可能感興趣

採用NVIDIA Metropolis構建更安全、更智能的城市
INTERNI專訪Michel Rojkind:城市景觀建造者
6大城市支持使用Apple Watch3
Glowpear 模塊化自澆水城市花園
FlyView推出360度全景項目讓你在空中遊歷城市景點
6大城市更新!AJ 1 OG WMNS Satin 「Shattered Backboard」抽籤開啟
美國藝術家 Roger De Muth 的城市街景水彩畫
最帥城市機能風格示範!Junya Watanabe MAN 2018SS造型特輯鎖定心儀單品!
AeroMobil 5.0 VTOL城市旅行飛行汽車概念圖曝光
最帥城市機能風格示範?!Junya Watanabe MAN 2018SS造型特輯鎖定心儀單品!
水彩城市 | 波蘭畫家、建築師Tytus Brzozowski
機動戰士高達ビスト家族御用鋼筆;janod城市套裝考慮一下;OGRE GODnikne-kamuy藍色限定版
Alphabet 旗下的 Sidewalk Labs 成立了一家子公司,想用大數據讓城市美好
NBA 城市主題!多款 Air Force 1 iD 「City Edition」 現已上架
「Pop-up store」in 國大城市廣場
Cities:Skylines–Concerts for Mac 1.8.0 現代城市模擬遊戲 含中文
Urbanears 城市之音 PLATTAN2 藍牙耳機
建造區塊鏈城市!《Fair City》封測在即
巴西藝術家 Renato Palmuti 城市風光水彩畫
Volocopter準備建立城市「空中計程車」系統