王志明, 劉丹
(東華理工大學(xué)測繪工程學(xué)院, 南昌 330013)
隨著中國城市化建設(shè)的日新月異,城鎮(zhèn)化進程日益加速,國家建設(shè)、城市管理、交通、旅游等眾多領(lǐng)域都在積極響應(yīng)的數(shù)字化、智能化的號召[1-2],而其中,作為三維空間數(shù)據(jù)的三維模型占據(jù)著重要地位。眾源影像具有來源范圍廣,信息量大,數(shù)據(jù)形式豐富,數(shù)據(jù)獲取門檻低等特點[3],已成為三維重建的一種重要數(shù)據(jù)源。研究基于眾源影像的三維重建在攝影測量與遙感等領(lǐng)域,具有重要的理論和實際意義。
20世紀(jì)90年代至今,基于影像數(shù)據(jù)進行三維重建的方法數(shù)見不鮮。Schindler等[4]利用線特征來進行匹配以及重建,但是線特征比較稀疏,導(dǎo)致幾何結(jié)構(gòu)不夠穩(wěn)定的問題。Xiao等[5]和Sudipta等[6]從配準(zhǔn)后的多張影像中利用滅點計算提取出主方向,這些方法能得到較好的建筑物模型,但是需要大量的人工交互,難以應(yīng)用于大規(guī)模的建筑物建模工作。Irschara等[7]提出了一種增量式的大規(guī)模街景建模方法。王偉等[8]提出了一種快速交互式三維場景算法,能夠快速重建出多種復(fù)雜曲面的場景結(jié)構(gòu),如各種球面、柱面等結(jié)構(gòu)。Hao等[9]提出了一種從三維點云重建城市建筑幾何的綜合策略,根據(jù)窗戶的排列規(guī)律,通過分析窗戶的相似性和重復(fù)性設(shè)計一種模板匹配的方法來恢復(fù)建筑立面的結(jié)構(gòu)。Alidoost等[10]提出了一種基于深度學(xué)習(xí)的方法,用于從航拍圖像中獲取建筑物特征點,從而進行重建工作。陳占軍等[11]運用圖像特征提取與匹配、相機位置姿態(tài)計算與估計、三維點云生成、紋理映射等一整套的方法,完成了古建筑的三維場景重建。Li等[12]開發(fā)了一種將多種關(guān)系嵌入到程序建模過程中的方法,用于從攝影測量點云生成3D重建建筑物。Sebastian等[13]提出了一種通過求解整數(shù)線性優(yōu)化問題,從具有定向法線的非結(jié)構(gòu)、未過濾的室內(nèi)點云重建參數(shù)化、體積化、多層建筑模型的新方法。孫保燕等[14]兼顧了獲取數(shù)據(jù)的范圍與效率,結(jié)合了地面拍攝與無人機傾斜攝影測量這兩種數(shù)據(jù)采集方式,提出了一種能夠自主融合地攝數(shù)據(jù)影像與航拍數(shù)據(jù)影像的三維數(shù)字化場景重建方法。袁一等[15]以互聯(lián)網(wǎng)眾源影像數(shù)據(jù)為數(shù)據(jù)源,進行三維場景重建,以達到地理定位的目的。王瑞玲等[16]提出了一種基于眾源數(shù)據(jù)的數(shù)字化重構(gòu)思路,針對廣武明長城月亮門上已倒塌的場景進行場景重建。這些方法都著重于模型構(gòu)建的部分,但是眾源影像來源廣泛,圖像質(zhì)量參差不齊,容易導(dǎo)致生成的模型精度低、噪聲大。
基于此,首先采用眾源影像需求端與網(wǎng)站服務(wù)器交互的方式實現(xiàn)圖像獲取,然后借助深度學(xué)習(xí),實現(xiàn)對搜集到的眾源影像進行過濾,最后通過SFM構(gòu)建三維模型并對比生成的點云模型精度,以改進眾源影像數(shù)據(jù)在構(gòu)建三維模型時的弊端。
如圖1所示,三維重建流程主要包括:①檢索眾源影像數(shù)據(jù):通過基于網(wǎng)頁解析和基于網(wǎng)站API的方法,檢索并獲取到目標(biāo)地點、目標(biāo)建筑物的圖片數(shù)據(jù)集;②篩選圖像:通過構(gòu)建的深度網(wǎng)絡(luò)模型,對搜集到的圖片數(shù)據(jù)集進行篩選,提取數(shù)據(jù)集中包含或者包含大部分目標(biāo)地物的影像;③構(gòu)建三維模型:采用運動恢復(fù)結(jié)構(gòu)方法(structure from motion,SFM)[17],以篩選結(jié)果數(shù)據(jù)集為數(shù)據(jù)源進行場景重建,得到三維點云模型。
API:application programming interface圖1 三維重建流程圖Fig. 1 The flow chart of 3D reconstruction
隨著網(wǎng)絡(luò)發(fā)展的日新月異,互聯(lián)網(wǎng)服務(wù)端口的開放性也隨之逐步提高。目前,獲取眾源影像的常見渠道有圖片分享網(wǎng)站、社交網(wǎng)站和專業(yè)攝影網(wǎng)站[18-19]。圖片分享網(wǎng)站使用者基數(shù)大,影像數(shù)量豐富。為獲得豐富的眾源數(shù)據(jù),根據(jù)數(shù)據(jù)源不同,分別采用不同的方法進行檢索獲取數(shù)據(jù)。以坐標(biāo)點為數(shù)據(jù)源時,采用基于網(wǎng)站API的數(shù)據(jù)檢索方案;而以一幅影像為數(shù)據(jù)源時,采用基于網(wǎng)頁解析的方案。
1.1.1 基于網(wǎng)站API的眾源影像檢索
在基于網(wǎng)站API的數(shù)據(jù)檢索方法中,選擇能提供API服務(wù)的網(wǎng)站作為程序抓取的目標(biāo)服務(wù)器,其中包括百度街景地圖平臺、騰訊街景地圖平臺等。上述平臺都以文本描述的形式開放了API請求的端口,部分第三方源網(wǎng)站還提供了地理信息查找服務(wù),比如指定坐標(biāo)直接鏈接目標(biāo)地區(qū)影像的接口以及利用地理范圍查詢興趣點(point of interest,POI)數(shù)據(jù)集的接口[20]。
百度街景數(shù)據(jù)采集車在采集街景數(shù)據(jù)時,所設(shè)定的采集間距為10 m。因此,論文在采樣街景數(shù)據(jù)時,與采集車的預(yù)設(shè)參數(shù)保持一致,設(shè)定為10 m。
人在觀察周圍事物時的視角約為15°仰角,因此爬取時與其保持一致,設(shè)置預(yù)設(shè)仰角為15°。全景街景影像的尺度范圍為360°,在分割時,以45°為一個間隔。以這種方案,在每個采樣點上,能夠獲取8張的影像數(shù)據(jù)。
百度地圖API針對用戶,開放了街景爬取的端口。用戶在獲取街景影像數(shù)據(jù)時,需要訪問網(wǎng)絡(luò)傳輸協(xié)議下的一個(uniform resource locator,URL)地址,具體參數(shù)屬性如表1所示。
表1 百度地圖API爬取街景圖片數(shù)據(jù)的參數(shù)屬性Table 1 Parameters for Baidu map to crawl street view images
1.1.2 基于網(wǎng)頁解析的眾源影像檢索
在基于網(wǎng)頁解析的數(shù)據(jù)獲取時,針對性到了研究了需要網(wǎng)頁解析才能獲取影像的網(wǎng)站,包括百度地圖相冊、百度圖庫、百度貼吧等[21]。首先,在客戶端交互界面提供一定類型的信息關(guān)鍵詞,在網(wǎng)站端口中構(gòu)建模擬搜索結(jié)果的URL,并通過唯一標(biāo)記方法解析出輸出界面中包含的每個圖像的詳細鏈接;然后轉(zhuǎn)入此鏈接,深入分析此鏈接對應(yīng)源代碼所包含的原始影像URL[22]。按照這樣的思路,在模擬搜索條件下,遍歷輸出接口中包含的所有特定鏈接以獲得所有圖像。該方法獲得的圖像數(shù)據(jù)通常具有更好的相關(guān)性和清晰度。
深度學(xué)習(xí)(deep learning)[23]與傳統(tǒng)的淺層學(xué)習(xí)有很大的不同,其突出點不僅在于神經(jīng)元計算節(jié)點的設(shè)計建立,還在于多層運算的層次結(jié)構(gòu)。深度學(xué)習(xí)算法采用針對性的輸入層與輸出層,不斷地進行迭代和優(yōu)化,生成輸入層與輸出層的網(wǎng)絡(luò)聯(lián)系,得到兩者之間的函數(shù)框架,以此來進行高難度任務(wù)的處理。卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[24]是深度學(xué)習(xí)中的一種常用模型,其特點在于針對每個卷積層采用池化的處理,這種處理方式能夠深層次得挖掘數(shù)據(jù)的多尺度特征。因此,卷積神經(jīng)網(wǎng)絡(luò)在文本識別、模式定性、圖像分類篩選等領(lǐng)域,已經(jīng)成為常用的模型之一。
基于卷積神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)的方法[25],采用如圖2的VGG-16[26]深度卷積網(wǎng)絡(luò)模型完成眾源影像的篩選。首先通過標(biāo)準(zhǔn)影像數(shù)據(jù)生成標(biāo)準(zhǔn)數(shù)據(jù)集,并利用標(biāo)準(zhǔn)數(shù)據(jù)集采用VGG-16模型進行訓(xùn)練學(xué)習(xí),訓(xùn)練成功后得到標(biāo)準(zhǔn)數(shù)據(jù)集的訓(xùn)練模型,再依據(jù)訓(xùn)練模型來剖析眾源影像的相關(guān)度,將相關(guān)度大的影像優(yōu)先篩選出來。
VGG-16網(wǎng)絡(luò)將待篩選圖像集導(dǎo)入網(wǎng)絡(luò),經(jīng)過卷積層、池化層、全連接層的多層處理、識別和篩選,得到篩選影像集。模型設(shè)置輸入圖像的分辨率為224*224,卷積層的屬性參數(shù)為64個3*3的卷積核;而池化層是針對卷積后的數(shù)據(jù)進行池化的,尺寸參數(shù)設(shè)置為2*2;全連接層共有三層,第3個全連接層參數(shù)設(shè)置為區(qū)分兩類影像,分別識別重建對象影像和非重建對象影像。
SFM算法對于相機在獲取影像數(shù)據(jù)時的位置信息并不存在嚴(yán)格要求,僅要求獲取的目標(biāo)物為具有三維的非動態(tài)物體即可,在拍攝過程中籠蓋目標(biāo)建筑物,在包含目標(biāo)建筑物的二維影像中獲取特征信息來進行三維場景重建的過程,這種方法也是恢復(fù)三維結(jié)構(gòu)時的常用方法之一。
基于SFM方法首先利用篩選得到的眾源影像數(shù)據(jù),首先通過特征點匹配恢復(fù)相機的外方位元素,然后利用攝像機的外方位元素求解特征點的空間三維坐標(biāo),從而從獲取的圖像數(shù)據(jù)中生成大量的點云,由此得到目標(biāo)建筑物的三維重建模型。
選取東華理工大學(xué)南昌校區(qū)的圖書館作為重建對象,如圖3所示。
圖2 VGG-16卷積網(wǎng)絡(luò)模型Fig.2 VGG-16 convolutional network
圖片來源:百度地圖(https://map.baidu.com/search/%E4%B8%9C%E5%8D%8E%E7%90%86%E5%B7%A5%E5%A4%A7%E5%AD%A6%E5%9B%BE%E4%B9%A6%E9%A6%86-a%E6%A0%8B/@12894491.925,3319992.34,20.29z?querytype=s&da_src=shareurl&wd=%B6%AB%BB%AA%C0%ED%B9%A4%B4%F3%D1%A7%CD%BC%CA%E9%B9%DD-A%B6%B0&c=163&src=0&wd2=%C4%CF%B2%FD%CA%D0%C7%E0%C9%BD%BA%FE%C7%F8&pn=0&sug=1&l=12&b=(12867400.55,3285239.29;12928840.55,3345271.29)&from=webmap&biz_forward=%7B);1表示東華理工大學(xué)圖書館-A棟圖3 研究區(qū)域Fig.3 Study area
首先利用基于網(wǎng)站API和基于網(wǎng)頁解析的數(shù)據(jù)檢索方案,獲取了近300張目標(biāo)區(qū)域的影像(圖4),作為三維重建的數(shù)據(jù)源。但是這些影像中,有部分影像與重建對象圖書館的相關(guān)性較小,因此需要進一步對其進行篩選,獲取得到高質(zhì)量的眾源影像數(shù)據(jù)。
此外,為了評價點云模型質(zhì)量的好壞,論文采用高質(zhì)量的標(biāo)準(zhǔn)模型進行對比參照。標(biāo)準(zhǔn)模型是在目標(biāo)地區(qū)實地拍攝建筑物圖片,并生成標(biāo)準(zhǔn)圖片集(圖5,圖片數(shù)量為39張)。由于是有針對性的定點選角度拍攝,獲取到的圖片集不僅數(shù)量少,且精度高質(zhì)量好。
圖4 未經(jīng)篩選的東華理工大學(xué)圖書館眾源影像縮略圖Fig.4 Unselected crowd-sourced images thumbnails in the library of East China University of Technology
圖5 標(biāo)準(zhǔn)圖片集縮略圖Fig.5 Standard photo gallery thumbnail
采用卷積神經(jīng)網(wǎng)絡(luò)VGG-16網(wǎng)絡(luò)模型對上述獲取得到的眾源影像進行篩選。為驗證該模型的有效性,利用K均值聚類算法進行比較。運用VGG-16網(wǎng)絡(luò)篩選后的東華理工大學(xué)圖書館影像數(shù)據(jù)集如圖6所示,經(jīng)篩選得到了187張影像數(shù)據(jù)。從篩選得到的數(shù)據(jù)集來看,與K均值聚類算法相比,利用VGG-16網(wǎng)絡(luò)篩選結(jié)果更為準(zhǔn)確,數(shù)據(jù)集達到了重建的要求。
在實驗的整體流程中,僅控制篩選時所采用的兩種算法這一變量,篩選時所輸入的待篩選數(shù)據(jù)集、三維重建時所采用的重建算法保持一致。對上述獲取得到的標(biāo)準(zhǔn)圖像集,由VGG-16網(wǎng)絡(luò)篩選后的影像數(shù)據(jù)集以及采用K均值聚類算法篩選后得到的影像數(shù)據(jù)分別進行三維場景的構(gòu)建,由此生成的三維模型如圖7所示。圖7中,標(biāo)準(zhǔn)模型是由上述獲取得到的標(biāo)準(zhǔn)圖像集通過SFM算法生成的三維模型,點云模型A是由VGG-16網(wǎng)絡(luò)篩選后的數(shù)據(jù)集生成的三維模型, 點云模型B則是采用K均值聚類算法篩選得到的圖像集生成的三維模型。
為驗證方法的有效性,論文對標(biāo)準(zhǔn)模型與重建后的模型的點云數(shù)量以及點云之間的距離進行比較。點云數(shù)量越接近,點云距離越小,則說明篩選算法越好,重建模型精度越高。分析不同圖像篩選算法下篩選后的三維重建的時間和生成建筑物三維點云的數(shù)量統(tǒng)計結(jié)果(表2)發(fā)現(xiàn),圖像篩選算法的不同使得篩選后的圖片數(shù)量不同,從而影響三維重建的時間和重建點云數(shù)量。
圖6 經(jīng)VGG-16網(wǎng)絡(luò)篩選后的圖書館影像數(shù)據(jù)集縮略圖Fig.6 Thumbnail of Library image data set screened by VGG-16 network
圖7 不同篩選算法篩選數(shù)據(jù)集生成的重建模型Fig.7 Different filtering algorithms filter the reconstruction model generated by the data set
表2 場景重建時間和模型點云數(shù)量比較Table 2 Comparison of scene reconstruction time and number of model point clouds
如表2所示,對比重建時間和點云數(shù)量,經(jīng)VGG-16網(wǎng)絡(luò)篩選過的數(shù)據(jù)集圖片數(shù)量較多,模型重建的質(zhì)量高于K均值聚類算法組(圖7)。能夠發(fā)現(xiàn),針對同一個待篩選數(shù)據(jù)集,VGG-16網(wǎng)絡(luò)算法和K均值聚類算法的篩選結(jié)果不同,由于VGG-16網(wǎng)絡(luò)算法能夠過濾出更多相關(guān)影像,所以使得建模質(zhì)量更高。
計算標(biāo)準(zhǔn)模型和點云模型A之間的點云距離,將結(jié)果生成距離直方圖和距離高斯分布圖,用同樣的方法處理點云模型B,以此得到模型重建質(zhì)量評價數(shù)據(jù)和圖表依據(jù),如圖8所示。可以看出,無論是高精度點云數(shù)量方面、點云的密集程度方面,還是整體點云數(shù)量方面,模型A都是超過模型B的,說明模型A的重建效果好于模型B。
圖8 距離直方圖和距離高斯分布Fig.8 Range histogram and range Gaussian distribution
計算點云模型A與點云模型B之間的點云距離,生成了點云距離熱力圖(圖9)??梢钥闯?,大樓中部主體部分幾乎沒有出現(xiàn)熱力點云,但是大樓兩側(cè)的副樓生成了大量熱力點云的情況,則說明大樓中部圖片數(shù)據(jù)集獲取程度相近,而兩側(cè)部分?jǐn)?shù)據(jù)集差異較大,導(dǎo)致了重建效果的不同。
圖9 點云距離熱力圖Fig.9 Point cloud distance heat map
將點云模型A和點云模型B的點云距離進行對比,能夠發(fā)現(xiàn),較模型A而言,模型B的重建效果確實不佳,也從側(cè)面反映了由K均值聚類算法篩選得到的圖片數(shù)據(jù)集質(zhì)量不如運用VGG-16網(wǎng)絡(luò)篩選的圖片集質(zhì)量。
通過基于網(wǎng)站API和基于網(wǎng)頁解析的數(shù)據(jù)檢索這兩種方案,能夠得到數(shù)量眾多的目標(biāo)影像數(shù)據(jù),實現(xiàn)了眾源影像的獲取,針對眾源數(shù)據(jù)的獲取需求也得到了滿足。通過對比構(gòu)建的模型精度,研究深度學(xué)習(xí)算法與K均值聚類算法篩選后的數(shù)據(jù)集生成的點云模型結(jié)果,發(fā)現(xiàn)K均值聚類算法的缺點明顯,體現(xiàn)了深度學(xué)習(xí)算法對影像數(shù)據(jù)進行針對性識別的效果更佳,在篩選檢索結(jié)果的工作中,能夠剔除與數(shù)據(jù)集內(nèi)相似度不高的影像數(shù)據(jù),使得處理后的影像數(shù)據(jù)保持高度的相關(guān)度,使得后期建立的模型精度更高。由此可見,深度學(xué)習(xí)算法更適用于三維重建。
目前,對于基于眾源影像的三維重建來說,已有的圖像篩選算法都不具有針對性和專一性,不能很好地過濾大量冗余的影像和低質(zhì)量的影像,不能夠很好地服務(wù)于場景的重建。在未來的工作中,筆者將改進已有的圖像篩選算法,來提升篩選算法的篩選效率和效果,旨在服務(wù)于以眾源影像為數(shù)據(jù)源進行場景的重建工作。