張平,王山東,黃瑾娉,周明明
(1.安徽工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,安徽馬鞍山243032;2.河海大學(xué)地球科學(xué)與工程學(xué)院,江蘇南京210098)
基于SFM和CMVS/PMVS的建筑物點云重構(gòu)方法研究
張平1,王山東2,黃瑾娉1,周明明2
(1.安徽工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,安徽馬鞍山243032;2.河海大學(xué)地球科學(xué)與工程學(xué)院,江蘇南京210098)
為從建筑物圖像獲取三維點云,對運動恢復(fù)結(jié)構(gòu)(SFM)和多視角密集匹配(CMVS/PMVS)的三維點云重構(gòu)進行研究,介紹了從Ladybug3全景相機采集到的圖像進行建筑物的三維點云重構(gòu)過程。首先利用尺度不變特征變換(SIFT)來提取和匹配圖像上的特征點并計算多視圖之間的幾何關(guān)系,然后由SFM分析相機運動進而尋找三維點云結(jié)構(gòu),利用CMVS對圖像進行聚簇;最后,采用基于面片模型的PMVS通過匹配、擴展、過濾三個階段來完成密集匹配同時生成稠密三維點云。實驗結(jié)果表明,算法能夠有效地重構(gòu)建筑物三維點云,對三維重建有一定的參考價值。
Ladybug3;SIFT;SFM;CMVS/PMVS;三維點云
隨著智慧城市的建設(shè)在我國蔚然興起,對城市街景的三維重建顯得更加重要,城市場景中包含多種不同類型的目標物體,比如建筑物、道路、樹木、橋梁、路燈等。針對這些不同類型的目標物體,三維重建的方法也有所不同。建筑物是城市場景中的主要組成部分,城市場景中建筑物三維重建已成為研究熱點。三維城市建筑物重建的數(shù)據(jù)源主要有:(1)激光掃描設(shè)備所獲取的三維點云數(shù)據(jù);(2)基于車載、航拍等二維數(shù)據(jù)生成的三維點云數(shù)據(jù)。文中研究的是城市街景中建筑物三維點云重構(gòu)的方法,使用的圖像數(shù)據(jù)由車載Ladybug3、GPS接收器、移動工作站及配套設(shè)備完成,Ladybug3是Point Grey公司發(fā)布的360°全景視覺產(chǎn)品。通過匹配圖像之間的特征點,利用SFM[1]算法對匹配結(jié)果進行計算得到相機位置等場景信息,將得到的三維點云進行稀疏重構(gòu),進而使用CMVS[2]、PMVS[3-4]算法,得到重構(gòu)后的稠密三維點云,為下一步街景三維重建[5]研究提供依據(jù)。文中獲取三維點云的方法相對于激光掃描設(shè)備獲取三維點云[6]的方法成本低,相對于航拍方式車載獲取的是近景影像,同時該方法使用自標定獲取相機參數(shù),規(guī)避了Ladybug3全景相機不易標定[7]的特點。
運動恢復(fù)結(jié)構(gòu)SFM(structure from motion)是一種相機標定方法。首先由尺度不變特征變換SIFT[8-9]算法來提取匹配圖像上的特征點,一系列匹配點從每兩幅圖像中搜索到后,便被納入軌跡中。而軌跡為多視圖間匹配點的連通集,用多于兩個特征點一致的軌跡進行重構(gòu)來恢復(fù)每幅圖像的相機參數(shù)和每個匹配軌跡的三維位置信息[10]。如有m幅圖像,空間中n個點,有方程
其中,xij為第i幅圖像中第j個點的二維信息,Xj為第j個點的三維位置信息,Pi為第i幅圖像的投影矩陣,由m·n個二維信息,估算m個投影矩陣以及n個點的三維位置信息。SFM算法示意圖如圖1所示。
SFM中每幅圖像對應(yīng)的相機被7個參數(shù)確定,包括旋轉(zhuǎn)矩陣R和平移坐標t的6個外參,和一個相機內(nèi)參焦距f,在相機和場景被重構(gòu)過程中,按重投影誤差最小原則,為避免運動恢復(fù)結(jié)構(gòu)中因陷入不良局部最小值而終止的局面,需用最優(yōu)的兩個相機來估計初始參數(shù),這兩個相機滿足:(1)兩圖像間有大量匹配點;(2)兩相機間有較長基線。由最優(yōu)的兩個初始相機,按照5點法[11]對相機參數(shù)進行估計,然后在這兩幅圖像上由三角化對可見的匹配點軌跡重構(gòu)相應(yīng)的三維場景點,對已重構(gòu)出的相機和場景點參數(shù)用BA[12]—Bundle Adjustment集束調(diào)整法進行優(yōu)化。該實驗利用漸進式方法每次新增一個相機并優(yōu)化,避免所有相機位置以及匹配點軌跡對應(yīng)三維場景點被同時估計,新增的相機需以能見到最多已重構(gòu)出的三維場景點為條件,運用DLT[13](Direct Linear Transformation)算法對新增相機進行參數(shù)恢復(fù),然后把新增的相機恢復(fù)出的點并入優(yōu)化過程,最后運用集束調(diào)整法整體優(yōu)化已經(jīng)重構(gòu)出的所有三維場景點和相機參數(shù),如此重復(fù)迭代,直到觀察不到足夠多重構(gòu)出的三維點的相機為止。
圖1 SFM示意圖
用CMVS(clustering multi-view stereo)對圖像聚簇分類可優(yōu)化SFM輸入,減少密集匹配時間和空間代價。完成最后的密集匹配還需再經(jīng)PMVS(patch-based multi-view stereo)的匹配、擴展、過濾。
2.1 多視圖聚簇(CMVS)
聚簇需要滿足如下約束:(1)密集性。需在簇中去除冗余的圖像。(2)大小。為讓每個簇都能重構(gòu),簇需保持足夠小,。(3)覆蓋。圖像簇重構(gòu)的結(jié)果應(yīng)盡量使圖像細節(jié)保持完整性,即:?ikIi(C)/Ii(F)≤τ。用函數(shù)f(P,C)表示SFM點Pj在簇C中的重構(gòu)精度,同時SFM點Pj滿足約束:max(f(Pj,Ck∩Vj))≥λf(Pj,Vj)(λ= 0.7,Vj為Pj在其所有可見的圖像集)才能在至少一個簇Ck中被重構(gòu)。CMVS算法的實現(xiàn)流程如圖2所示。
圖2 聚簇算法流程圖
步驟1SFM篩選:為減少輸入SFM點集的數(shù)量,局部鄰域SFM特征點的可視信息取各鄰域位置的平均值,重復(fù)該步直到輸出點集{P2j};
步驟2選取圖像:按照圖像分辨率從低到高的順序逐漸搜索,以先剔除低分辨率圖像為原則,刪除不符合覆蓋約束的圖像;
步驟3聚簇分類:根據(jù)圖像標準分割算法,忽略覆蓋約束,對大小符合條件的圖像進行分割。而不滿足圖像大小的簇,繼續(xù)對其分割。具體方法如下:e1m表示圖像對(I1,Im)的邊緣值,即圖像I1,Im共同重構(gòu)特征點MVS(multi-view stereo)的權(quán)值大小。有∑Pj∈θ1mf(Pj,(I1,Im))/f(Pj,Vj),θ1m為圖像I1,Im都能觀察到的SFM點集。因此,對MVS重建權(quán)值越小的即邊緣值越小的越可能被剔除;
步驟4增加圖像:根據(jù)Ck=argmax(f(Pj,Cj))為每個沒有納入的SFM特征點Pj構(gòu)造出一個圖像簇Ck,并添加一個行為,即將圖像I(∈Vj?Ck)加入簇Ck,同時用g=f(Pj,Ck∪Ij)作為效率依據(jù),SFM特征點都有相應(yīng)唯一的效率g值,最后排序出最大的g值作為被加入簇的行為。
重復(fù)步驟3和步驟4,直到最終結(jié)果都能符合覆蓋約束和圖像大小條件[8]。
2.2 基于面片模型的密集匹配(PMVS)
用PMVS(patch-based multi-view stereo software)面片重構(gòu)方法[14]獨立地對CMVS獲取的每個圖像簇進行重構(gòu)。
圖3 面片和圖像模型
其中,N(p,I,J)是圖像I和J之間的灰度一致性評估函數(shù)。
光度一致性:用NCC歸一化互相關(guān)來測量各視點面片p的光度學(xué)度量,N(p,I,J)為面片p到圖像I,J的投影,有
通過計算NCC平均值的最大值可估算其位置c(p)和表面法向量n(p)。
可視化一致性:由于面片p的可見性依賴S(p)和T(p),每個階段構(gòu)造S(p)和T(p)都采用不同的方法,匹配階段,面片是在稀疏匹配中進行重構(gòu),根據(jù)光一致性得出初始估算為
擴展階段,由構(gòu)造出的面片足夠致密到能夠?qū)⑺械纳疃葓D和圖像聯(lián)合起來,并設(shè)置深度圖閥值來構(gòu)造S(p),有
其中,dI(p)表示圖像I中面片p的中心深度,dI(i,j)為面片p的圖像塊C(i,j)的深度,ρ1依賴于c(p)的深度。只要S(p)被估算出,再用光一致性便可決定哪些面片是可構(gòu)造T(p),有
算法實現(xiàn)流程如圖4所示。
步驟1初始特征匹配:用DoG和Harris算子檢驗提取出的特征點和角點需保持一致收斂,所以,在每幅圖像中取β2·β2大小的矩形塊,實驗中β2取32。完成后,在多視圖間匹配已檢測的特征點,重構(gòu)稀疏面片集,并把其儲存于矩形塊C(i,j)中。圖像I相應(yīng)的相機光學(xué)中心用O表示,與圖像I中特征點f匹配上的其它圖像中的特征點f′構(gòu)成集合F,由點對(f,f′)以及三角化定位的空間三維信息應(yīng)保持在對極線的2個像素內(nèi),并以F中特征點和光心O之間距離升序排列,然后以最少能在γ幅圖像中滿足光一致性的首個面片作為返回結(jié)果。由三角化(f,f)來初始估計c(p),n(p)則從c(p)沿著O的光線方向,并置R(p)=I,按光一致性估計初始化T(p),改良c(p)和n(p),再將S(p)初始化并再次計算T(p),不斷重復(fù)直到面片p達到T(p)≥γ,在S(p)中將面片p標記到相應(yīng)的矩形塊,并使其加入集合P。
圖4 PMVS算法流程
步驟2種子面片擴展:重復(fù)加入新鄰域到已恢復(fù)的集合P中,直到將圖像中所有可見的面都能覆蓋為止,Qt(i′,j′)為空,Qf(i′,j′)中不存在正毗鄰于p的元素,而面片p和p'正毗鄰需符合,其中ρ2類似于ρ1,且取決于R(p)中c(p)和c(p′)中點的深度。接著初始化p′和p一樣,分別定義R(p′)、T(p)、n(p)和c(p),并優(yōu)化c(p′)和n(p′),用深度圖初始化S(p),為防止丟失任何可見p′面片,將T(p′)元素加入到S(p′)。最后由光一致性條件重新計算T(p′),如果,則采納面片p′,并將Qt(i′,j′)、Qf(i′,j′)以及S(p′)的深度圖進行更新。
步驟3過濾:需要剔除擴展完后得到的稠密三維點云中包含的錯誤點,進行以下過濾:(1)在實際表面外部的外點,若有面片p0和它遮擋的面片集U,當滿足,則剔除p0。(2)在實際表面內(nèi)部的外點,對每個面片p0都重新計算S(p0),T(p0)的值,如果,則剔除。
該研究使用的圖像序列是由Ladybug3全景相機采集的馬鞍山深業(yè)地產(chǎn)街景圖像,通過在windows7平臺上使用visual sfm進行建筑物三維點云重構(gòu)實驗,對Ladybug3采集的圖像進行單幅校正,其中部分校正圖像序列如圖5所示。
圖5 部分街景圖像序列
運用上述三維點云重構(gòu)算法[15]將100幅圖像進行建筑物場景點重構(gòu)。在大量重構(gòu)實驗中SIFT算法做特征點匹配時,取匹配閥值為0.6時特征點匹配最多,通過SFM算法對Ladybug3全景相機自標定,根據(jù)特征點匹配的結(jié)果,計算恢復(fù)相機在場景中的位置和姿態(tài)。表1為圖5左起第一幅圖像對應(yīng)的相機部分參數(shù)包括位置和姿態(tài),在三維點云重構(gòu)的過程中,圖像經(jīng)過CMVS算法聚簇后,將原先100幅圖像的數(shù)據(jù)量減少為72個簇,表2為圖像序列經(jīng)過聚簇后的部分簇信息。在PMVS算法中可以看出對建筑物三維點云重構(gòu)影響主要參數(shù)為β1,β2,μ,α0,在實驗中取出一組建筑物重構(gòu)效果較好的參數(shù)為β1=2,β2=32,μ=5,α0=0.7,并用MeshLab加載建筑物三維點云數(shù)據(jù),通過從不同角度對重構(gòu)的建筑物三維點云進行對比顯示,結(jié)果如圖6所示。
表1 全景相機部分參數(shù)
表2 聚簇的部分位置信息
圖6 不同角度建筑物三維點云重構(gòu)對比
從圖6可以看出,基于SFM和CMVS/PMVS重構(gòu)出的三維點云足夠密集,建筑物的重構(gòu)區(qū)域為街景圖像序列可見區(qū)域,且從圖像序列中重構(gòu)的城市街景中建筑物的三維點云結(jié)構(gòu)清晰,很好地表達了城市街景中重構(gòu)目標的真實情況,該方法適用于大規(guī)模多圖像序列場景的三維重構(gòu)。
文中利用能夠?qū)崟r采集圖像數(shù)據(jù)的Ladybug3,通過基于SFM和CMVS/PMVS的建筑物三維點云重構(gòu)研究對城市街景重建提供了一種新的有效途徑,同時實驗中也有不足,如實驗街景拍攝時對建筑物頂部存在盲區(qū),從而在特征點匹配和三維點云重構(gòu)時存在缺失,針對此接下來會繼續(xù)改進算法并研究三維點云修補,讓重構(gòu)出的三維點云更加致密和完整,為大量城市街景重建提供參考。
[1]Goesele M B,Seitz S M.Multi-view stereo revisited[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Los Alamitos,CA,USA:IEEE Computer Society,2006:2402-2409.
[2]何豫航,岳俊.基于CMVS/PMVS多視覺密集匹配方法的研究與實現(xiàn)[J].測繪地理信息,2013,38(3):21-23.
[3]Furukawa Y,Ponce J.Accurate,dense,and robust multi-view stereopsis[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Los Alamitos,CA,USA:IEEE Computer Society,2007:1-8.
[4]竇艷艷.基于圖像序列三維重建的相關(guān)技術(shù)研究[D].南京:南京信息工程大學(xué),2013.
[5]李林堯,張兆翔,王蘊紅,等.基于圖像運動的三維重建及虛擬化應(yīng)用[J].計算機科學(xué),2011,38(7):273-276.
[6]陳允芳,葉澤田,謝彩香,等.IMU/DGPS輔助車載CCD及激光掃描儀三維數(shù)據(jù)采集與建模[J].測繪科學(xué),2006,31(5):91-93.
[7]孟曉橋,胡占義.攝像機自標定方法的研究與進展[J].自動化學(xué)報,2003,29(1):110-124.
[8]Lowe D.Distinctive image features from scale-invariant key points[J].International Journal of Computer Vision,2004,60(2):91-110.
[9]Gordon I,Lowe D G.What and Where:3D object recognition with accurate pose[J].Toward Category-level Object Recognition,2006,30(12):67-82.
[10]Todd J T,Bressan P.The perception of 3-dimensional affine structure from minimal apparent motion sequences[J].Perception&Psychophysics,1990,48(5):419-430.
[11]Nistér D.An efficient solution to the five-point relative pose problem[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2004,26(6):756-777.
[12]Lourakis M,Argyros A.The design and implementation of a generic sparse bundle adjustment software package based on the Levenberg-Marquardt algorithm[R].Greece:Institute of Computer Science of the Foundation for Research and Technology,2004:5-16.
[13]Hartley R I,Zisserman A.Multiple View Geometry in Computer Vision[M].UK:Cambridge University,2004:159-177.
[14]王洋,張濤,李歡利,等.應(yīng)用SFM和多視圖面片實現(xiàn)牙模三維重建[J].計算機測量與控制,2013,21(4):1067-1070.
[15]王國偉.面向建筑物的三維點云生成、增強和重建技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2011.
Research on building point cloud reconstruction method based on SFM and CMVS/PMVS
ZHANG Ping1,WANG Shandong2,HUANG Jinping1,ZHOU Mingming2
(1.School of Computer Science and Technology,Anhui University of Technology,Ma'anshan 243032,China;2.School of Earth Sciences and Engineering,Hohai University,Nanjing 210098,China)
In order to obtain 3D point cloud from building images,we studied the Structure From Motion(SFM)and Clustering Views for Multi-view Stereo and Patches based Multi-view Stereo(CMVS/PMVS)and introduced the process of 3D point cloud reconstruction of buildings captured from Ladybug3 panoramic camera.Firstly,the Scale-invariant Feature Transform(SIFT)algorithm was used to extract and match the feature points of images,and calculate the geometric relationships between multiple views.Then the camera movement was analyzed by SFM algorithm to acquire 3D point cloud structure and the images were clustered by CMVS algorithm.Finally,the dense matching was accomplished and the dense point cloud was generated by PMVS algorithm which involved three steps:matching,expanding and filtering.Experimental results show that the algorithm is able to effectively reconstruct 3D point cloud structure of buildings and highly valuable for 3D reconstruction.
Ladybug3;SIFT;SFM;CMVS/PMVS;3D point cloud
TP391
A
1672-0687(2015)03-0060-05
責任編輯:艾淑艷
2014-10-28
安徽省自然科學(xué)基金重點資助項目(KJ2009A132)
張平(1989-),男,安徽合肥人,碩士研究生,研究方向:計算機視覺與圖像處理。