张平,王山东,黄瑾娉,周明明
(1.安徽工业大学计算机科学与技术学院,安徽马鞍山243032;2.河海大学地球科学与工程学院,江苏南京210098)
基于SFM和CMVS/PMVS的建筑物点云重构方法研究
张平1,王山东2,黄瑾娉1,周明明2
(1.安徽工业大学计算机科学与技术学院,安徽马鞍山243032;2.河海大学地球科学与工程学院,江苏南京210098)
为从建筑物图像获取三维点云,对运动恢复结构(SFM)和多视角密集匹配(CMVS/PMVS)的三维点云重构进行研究,介绍了从Ladybug3全景相机采集到的图像进行建筑物的三维点云重构过程。首先利用尺度不变特征变换(SIFT)来提取和匹配图像上的特征点并计算多视图之间的几何关系,然后由SFM分析相机运动进而寻找三维点云结构,利用CMVS对图像进行聚簇;最后,采用基于面片模型的PMVS通过匹配、扩展、过滤三个阶段来完成密集匹配同时生成稠密三维点云。实验结果表明,算法能够有效地重构建筑物三维点云,对三维重建有一定的参考价值。
Ladybug3;SIFT;SFM;CMVS/PMVS;三维点云
随着智慧城市的建设在我国蔚然兴起,对城市街景的三维重建显得更加重要,城市场景中包含多种不同类型的目标物体,比如建筑物、道路、树木、桥梁、路灯等。针对这些不同类型的目标物体,三维重建的方法也有所不同。建筑物是城市场景中的主要组成部分,城市场景中建筑物三维重建已成为研究热点。三维城市建筑物重建的数据源主要有:(1)激光扫描设备所获取的三维点云数据;(2)基于车载、航拍等二维数据生成的三维点云数据。文中研究的是城市街景中建筑物三维点云重构的方法,使用的图像数据由车载Ladybug3、GPS接收器、移动工作站及配套设备完成,Ladybug3是Point Grey公司发布的360°全景视觉产品。通过匹配图像之间的特征点,利用SFM[1]算法对匹配结果进行计算得到相机位置等场景信息,将得到的三维点云进行稀疏重构,进而使用CMVS[2]、PMVS[3-4]算法,得到重构后的稠密三维点云,为下一步街景三维重建[5]研究提供依据。文中获取三维点云的方法相对于激光扫描设备获取三维点云[6]的方法成本低,相对于航拍方式车载获取的是近景影像,同时该方法使用自标定获取相机参数,规避了Ladybug3全景相机不易标定[7]的特点。
运动恢复结构SFM(structure from motion)是一种相机标定方法。首先由尺度不变特征变换SIFT[8-9]算法来提取匹配图像上的特征点,一系列匹配点从每两幅图像中搜索到后,便被纳入轨迹中。而轨迹为多视图间匹配点的连通集,用多于两个特征点一致的轨迹进行重构来恢复每幅图像的相机参数和每个匹配轨迹的三维位置信息[10]。如有m幅图像,空间中n个点,有方程
其中,xij为第i幅图像中第j个点的二维信息,Xj为第j个点的三维位置信息,Pi为第i幅图像的投影矩阵,由m·n个二维信息,估算m个投影矩阵以及n个点的三维位置信息。SFM算法示意图如图1所示。
SFM中每幅图像对应的相机被7个参数确定,包括旋转矩阵R和平移坐标t的6个外参,和一个相机内参焦距f,在相机和场景被重构过程中,按重投影误差最小原则,为避免运动恢复结构中因陷入不良局部最小值而终止的局面,需用最优的两个相机来估计初始参数,这两个相机满足:(1)两图像间有大量匹配点;(2)两相机间有较长基线。由最优的两个初始相机,按照5点法[11]对相机参数进行估计,然后在这两幅图像上由三角化对可见的匹配点轨迹重构相应的三维场景点,对已重构出的相机和场景点参数用BA[12]—Bundle Adjustment集束调整法进行优化。该实验利用渐进式方法每次新增一个相机并优化,避免所有相机位置以及匹配点轨迹对应三维场景点被同时估计,新增的相机需以能见到最多已重构出的三维场景点为条件,运用DLT[13](Direct Linear Transformation)算法对新增相机进行参数恢复,然后把新增的相机恢复出的点并入优化过程,最后运用集束调整法整体优化已经重构出的所有三维场景点和相机参数,如此重复迭代,直到观察不到足够多重构出的三维点的相机为止。
图1 SFM示意图
用CMVS(clustering multi-view stereo)对图像聚簇分类可优化SFM输入,减少密集匹配时间和空间代价。完成最后的密集匹配还需再经PMVS(patch-based multi-view stereo)的匹配、扩展、过滤。
2.1 多视图聚簇(CMVS)
聚簇需要满足如下约束:(1)密集性。需在簇中去除冗余的图像。(2)大小。为让每个簇都能重构,簇需保持足够小,。(3)覆盖。图像簇重构的结果应尽量使图像细节保持完整性,即:∀ikIi(C)/Ii(F)≤τ。用函数f(P,C)表示SFM点Pj在簇C中的重构精度,同时SFM点Pj满足约束:max(f(Pj,Ck∩Vj))≥λf(Pj,Vj)(λ= 0.7,Vj为Pj在其所有可见的图像集)才能在至少一个簇Ck中被重构。CMVS算法的实现流程如图2所示。
图2 聚簇算法流程图
步骤1SFM筛选:为减少输入SFM点集的数量,局部邻域SFM特征点的可视信息取各邻域位置的平均值,重复该步直到输出点集{P2j};
步骤2选取图像:按照图像分辨率从低到高的顺序逐渐搜索,以先剔除低分辨率图像为原则,删除不符合覆盖约束的图像;
步骤3聚簇分类:根据图像标准分割算法,忽略覆盖约束,对大小符合条件的图像进行分割。而不满足图像大小的簇,继续对其分割。具体方法如下:e1m表示图像对(I1,Im)的边缘值,即图像I1,Im共同重构特征点MVS(multi-view stereo)的权值大小。有∑Pj∈θ1mf(Pj,(I1,Im))/f(Pj,Vj),θ1m为图像I1,Im都能观察到的SFM点集。因此,对MVS重建权值越小的即边缘值越小的越可能被剔除;
步骤4增加图像:根据Ck=argmax(f(Pj,Cj))为每个没有纳入的SFM特征点Pj构造出一个图像簇Ck,并添加一个行为,即将图像I(∈Vj∉Ck)加入簇Ck,同时用g=f(Pj,Ck∪Ij)作为效率依据,SFM特征点都有相应唯一的效率g值,最后排序出最大的g值作为被加入簇的行为。
重复步骤3和步骤4,直到最终结果都能符合覆盖约束和图像大小条件[8]。
2.2 基于面片模型的密集匹配(PMVS)
用PMVS(patch-based multi-view stereo software)面片重构方法[14]独立地对CMVS获取的每个图像簇进行重构。
图3 面片和图像模型
其中,N(p,I,J)是图像I和J之间的灰度一致性评估函数。
光度一致性:用NCC归一化互相关来测量各视点面片p的光度学度量,N(p,I,J)为面片p到图像I,J的投影,有
通过计算NCC平均值的最大值可估算其位置c(p)和表面法向量n(p)。
可视化一致性:由于面片p的可见性依赖S(p)和T(p),每个阶段构造S(p)和T(p)都采用不同的方法,匹配阶段,面片是在稀疏匹配中进行重构,根据光一致性得出初始估算为
扩展阶段,由构造出的面片足够致密到能够将所有的深度图和图像联合起来,并设置深度图阀值来构造S(p),有
其中,dI(p)表示图像I中面片p的中心深度,dI(i,j)为面片p的图像块C(i,j)的深度,ρ1依赖于c(p)的深度。只要S(p)被估算出,再用光一致性便可决定哪些面片是可构造T(p),有
算法实现流程如图4所示。
步骤1初始特征匹配:用DoG和Harris算子检验提取出的特征点和角点需保持一致收敛,所以,在每幅图像中取β2·β2大小的矩形块,实验中β2取32。完成后,在多视图间匹配已检测的特征点,重构稀疏面片集,并把其储存于矩形块C(i,j)中。图像I相应的相机光学中心用O表示,与图像I中特征点f匹配上的其它图像中的特征点f′构成集合F,由点对(f,f′)以及三角化定位的空间三维信息应保持在对极线的2个像素内,并以F中特征点和光心O之间距离升序排列,然后以最少能在γ幅图像中满足光一致性的首个面片作为返回结果。由三角化(f,f)来初始估计c(p),n(p)则从c(p)沿着O的光线方向,并置R(p)=I,按光一致性估计初始化T(p),改良c(p)和n(p),再将S(p)初始化并再次计算T(p),不断重复直到面片p达到T(p)≥γ,在S(p)中将面片p标记到相应的矩形块,并使其加入集合P。
图4 PMVS算法流程
步骤2种子面片扩展:重复加入新邻域到已恢复的集合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),并优化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)在实际表面内部的外点,对每个面片p0都重新计算S(p0),T(p0)的值,如果,则剔除。
该研究使用的图像序列是由Ladybug3全景相机采集的马鞍山深业地产街景图像,通过在windows7平台上使用visual sfm进行建筑物三维点云重构实验,对Ladybug3采集的图像进行单幅校正,其中部分校正图像序列如图5所示。
图5 部分街景图像序列
运用上述三维点云重构算法[15]将100幅图像进行建筑物场景点重构。在大量重构实验中SIFT算法做特征点匹配时,取匹配阀值为0.6时特征点匹配最多,通过SFM算法对Ladybug3全景相机自标定,根据特征点匹配的结果,计算恢复相机在场景中的位置和姿态。表1为图5左起第一幅图像对应的相机部分参数包括位置和姿态,在三维点云重构的过程中,图像经过CMVS算法聚簇后,将原先100幅图像的数据量减少为72个簇,表2为图像序列经过聚簇后的部分簇信息。在PMVS算法中可以看出对建筑物三维点云重构影响主要参数为β1,β2,μ,α0,在实验中取出一组建筑物重构效果较好的参数为β1=2,β2=32,μ=5,α0=0.7,并用MeshLab加载建筑物三维点云数据,通过从不同角度对重构的建筑物三维点云进行对比显示,结果如图6所示。
表1 全景相机部分参数
表2 聚簇的部分位置信息
图6 不同角度建筑物三维点云重构对比
从图6可以看出,基于SFM和CMVS/PMVS重构出的三维点云足够密集,建筑物的重构区域为街景图像序列可见区域,且从图像序列中重构的城市街景中建筑物的三维点云结构清晰,很好地表达了城市街景中重构目标的真实情况,该方法适用于大规模多图像序列场景的三维重构。
文中利用能够实时采集图像数据的Ladybug3,通过基于SFM和CMVS/PMVS的建筑物三维点云重构研究对城市街景重建提供了一种新的有效途径,同时实验中也有不足,如实验街景拍摄时对建筑物顶部存在盲区,从而在特征点匹配和三维点云重构时存在缺失,针对此接下来会继续改进算法并研究三维点云修补,让重构出的三维点云更加致密和完整,为大量城市街景重建提供参考。
[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多视觉密集匹配方法的研究与实现[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]窦艳艳.基于图像序列三维重建的相关技术研究[D].南京:南京信息工程大学,2013.
[5]李林尧,张兆翔,王蕴红,等.基于图像运动的三维重建及虚拟化应用[J].计算机科学,2011,38(7):273-276.
[6]陈允芳,叶泽田,谢彩香,等.IMU/DGPS辅助车载CCD及激光扫描仪三维数据采集与建模[J].测绘科学,2006,31(5):91-93.
[7]孟晓桥,胡占义.摄像机自标定方法的研究与进展[J].自动化学报,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]王洋,张涛,李欢利,等.应用SFM和多视图面片实现牙模三维重建[J].计算机测量与控制,2013,21(4):1067-1070.
[15]王国伟.面向建筑物的三维点云生成、增强和重建技术研究[D].长沙:国防科学技术大学,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
安徽省自然科学基金重点资助项目(KJ2009A132)
张平(1989-),男,安徽合肥人,硕士研究生,研究方向:计算机视觉与图像处理。