【技术实现步骤摘要】
基于GPU集群的三维重建算法并行化方法
本专利技术属于GPU集群与并行计算领域,涉及一种基于GPU集群的三维重建算法并行化方法。
技术介绍
近年来,无人机技术已经发展成为一种广泛使用的较为新颖的遥感数据获取平台。和其他遥感平台相比,无人机平台具有成本低廉、使用方便,结合地面站的航线规划功能上手快、外出实验操作简单等方面的优势。因无人机飞速发展产生的无人机三维重建技术,通过无人机搭载多角度相机拍摄地物,较为轻易地获取物体侧面纹理信息,从而能够获取更为全面的三维信息,在城市规划、建设、管理和应急响应中起着极其重要的作用。目前无人机三维重建技术主要是在Windows环境下依托专业的自动化程度较高的无人机测绘和摄影测量软件,能够进行全自动联合空中三角测量、三维模型构建、贴纹理等操作,形成最终三维真实场景。相比于传统的建模方法,利用无人机进行三维实景重建,在数据获取、处理方面效率都有着显著的提升。但是,在使用这些专业的商业软件时,依旧会存在以下问题:(1)相对于传统手工建模的方式,使用商业软件进行三维重建有着不少的效率提升,但进行大规模作业时,处理周期依然较长;(2)商业软件的硬件环境要求也随着软件版本的更新换代也在不断提高,普通办公所用的台式机往往无法满足,在一定程度上也带来了诸多不便;(3)某些商业软件虽然也能支持在局域网下进行并行化处理,但是其通信模块不能够很好承担各处理平台之间的通信问题,经常出现通信死锁、任务缺失问题;且商业软件闭源,无法进行进一步针对性的修改与开发。计算机视觉 ...
【技术保护点】
1.一种基于GPU集群的三维重建算法并行化方法,其特征在于,该方法包括以下步骤:/nS1)给出基于图片特征的三维重建算法的具体流程;/nS2)分析三维重建算法的具体流程中最耗时的部分;/nS3)对三维重建流程中最耗时的部分进行并行优化;/nS4)对三维重建流程中的其余部分进行优化;/n其中,步骤S1)中基于图片特征的三维重建算法的具体流程包括:利用无人机获取到地物图像序列后,首先进行特征提取,在一系列不同的图像中识别同名关键点,正是这些关键点实现了不同图像间的匹配,以及场景几何的重构,一旦定位了每个图像中的关键点,就需要确定不同图像中关键点之间的对应关系,为了确保仅仅保留正确的对应关系,有必要采取进一步的步骤过滤掉剩余的任何错误的匹配,由于关键点仅限于具有几何一致性匹配的关键点,所以,每个图像对之间的链接可以被识别,并且组织为轨迹;然后运动恢复结构理论基于这些轨迹和关键点以及其他相关的图片信息,进行几何解算,可以粗略描述场景几何信息的稀疏点云,SfM产生的稀疏点云通常只是使用MVS生成更加密集点云数据的中间步骤;MVS的目标是从已知的相机参数的图像集合中提供完整的三维场景重建;选用开源 ...
【技术特征摘要】
1.一种基于GPU集群的三维重建算法并行化方法,其特征在于,该方法包括以下步骤:
S1)给出基于图片特征的三维重建算法的具体流程;
S2)分析三维重建算法的具体流程中最耗时的部分;
S3)对三维重建流程中最耗时的部分进行并行优化;
S4)对三维重建流程中的其余部分进行优化;
其中,步骤S1)中基于图片特征的三维重建算法的具体流程包括:利用无人机获取到地物图像序列后,首先进行特征提取,在一系列不同的图像中识别同名关键点,正是这些关键点实现了不同图像间的匹配,以及场景几何的重构,一旦定位了每个图像中的关键点,就需要确定不同图像中关键点之间的对应关系,为了确保仅仅保留正确的对应关系,有必要采取进一步的步骤过滤掉剩余的任何错误的匹配,由于关键点仅限于具有几何一致性匹配的关键点,所以,每个图像对之间的链接可以被识别,并且组织为轨迹;然后运动恢复结构理论基于这些轨迹和关键点以及其他相关的图片信息,进行几何解算,可以粗略描述场景几何信息的稀疏点云,SfM产生的稀疏点云通常只是使用MVS生成更加密集点云数据的中间步骤;MVS的目标是从已知的相机参数的图像集合中提供完整的三维场景重建;选用开源的Bundler处理稀疏重建流程,选用PMVS算法软件处理稠密重建流程;
步骤S2)中分析三维重建算法的具体流程中最耗时的部分包括:在Linux环境下通过处理不同规模的数据集,记录各环节耗时情况,采用多次实验求平均的思想,分析三维重建算法的具体流程中的瓶颈环节,得到在基于图像序列的三维重建算法的具体流程中,稠密重建流程耗时占比最大,占三维重建算法的具体流程的60%以上。
步骤S3)中对三维重建流程中最耗时的部分,即稠密重建流程进行并行优化包括:
S31)稠密重建任务划分:当图像数量增加时,处理稠密重建流程PMVS算法软件的计算负担迅速增加,进而出现可扩展性的问题,对于内存的需求,也随着稠密重建过程中使用图像数量的增加而增加,并且实际限制了同时匹配的图像数量,图像聚类是这类内存问题的解决方法,也就是把大型项目拆分成为不同的块,MVS聚类视图(ClusteringViewsforMVS,CMVS)的预处理步骤将图像集分解为重叠视图群集,以使稠密重建任务被划分为一个个占用内存较小的重建任务图像集,由SfM生成的稀疏点云被用于生成大小可控的重叠图像集群,使得目标生成点云中的每个三维点至少由一个图像任务群重构,分解完毕之后,再利用PMVS算法进行稠密点云生成,即基于CMVS和PMVS稠密点云重建的流程一般分为三步:
(1)任务拆分,确定子任务图像集;
(2)依据子任务图像集生成配置文件;
(3)根据配置文件进行PMVS稠密重建;
S32)CMVS并行算法实现:使用MPI并行编程技术,并采用数据的并行,将CMVS依据需求分割生成多个子图像任务集,并生成对应的任务信息文件option0,option1,…….optionN,任务信息文件由Master按情况分发给各个Worker,Worker收到任务信息文件后开始各自调用稠密重建算法进行稠密点云生成,进行工作得到结果,其具体的实现过程如下:
(1)主节点和计算节点初始化以后,主节点开始预处理操作,这些操作包括配置错误日志文件,处理和校正输入参数,访问shell文件中所有的‘option’记录;
(2)根据用户选择将记录分解成一系列小的‘shell’文件,如果有需要的话,还需要检查‘option’文件的正确性;
(3)主节点将随后把必要的参数广播给其他计算节点;
(4)当所有的进程接收到相应的参数后,主节点和计算节点进入到处理和沟通环节,即每个计算节点在处理之前都先创建适合自己使用的正确的PMVS运行环境;
(5)当所有的子任务完成后,整个程序将终止;
S33)剖析PMVS稠密重建内部流程,依照实际算法运行顺序进行耗时热点分析,在此基础上,针对耗时热点尝试采用GPU加速处理,进一步加速稠密重建流程:PMVS算法具有三个步骤:图像特征处理,即匹配步骤;面片生成与扩散,即扩散步骤;过滤不正确匹配,即过滤步骤;在匹配步骤中,使用Harris算子等特征提取算法检测角点和团块特征,然后在多个图像中进行匹配,所得的特征匹配点作为下一步面片生成的基础;在扩散步骤中,从初始匹配,即稀疏面片开始,考虑对投影面片图像中的相邻像素进行扩散,这样可以通过扩散重建来创建密集的面片,如果相邻图像单元已经被重建或发生深度不连续的情况,那么不再进行扩散;在过滤步骤中,通过处理模型中的遮挡,可见性约束被随后用于过滤不正确的匹配,通过滤除异常块强制执行全局可见一致性,然后通过进一步的过滤删除仅在少数深度图上可见的面片;
S331)稠密重建的算法耗时热点在稠密重建的面片处理阶段,对其实现基于GPU环境下的加速处理:
经过前期特征处理后,对于每张图像中的任意特征点f,都能通过特征匹配找出其在其他图像中的对应同名点f′,从而构成一个集合F;将集合中的每个(f,f′)进行三角测量原理构建即可生成三维空间点,生成三维点之后将这个三维空间点作为一个可能的面片中心,尝试生成空间面片,面片(patch)是近似于物体表面的局部正切平面,包括中心c(p),法向量n(p),参考影像R(p)。面片的一条边与参考相机,即拍摄参考影像的相机的x轴平行,patch上有μ×μ的格网;
构建过程如下:
其中,参考影像R(p)要求面片在参考影像中可见;O(I)为参考图像光心,Ii表示一个任务集合中的影像;
由于生成的面片可能会含有错误的点,所以还需要考虑面片向量与图像光心向量的相互关系,即这两者的夹角需要小于给定阈值τ,只有符合该条件,才认为面片对于相片,即影像所在的投影平面是可见的,即:
其中,V(p)为经过筛选后的参考影像集,Im表示一个面片任务的影像集合。
对侯选面片的参数进行初始化后,首先利用面片优化方法对n(p)和c(p)进行优化,得到更为准确的面片及对应的图像集信息,在进行面片优化的过程中,主要依赖于光度差异函数,现详细说明如下:
假设物点X对应的片面为p(X)=p,R(p)为面片p的参考图像,V(p)代表所有可以在照片中看见空间面片p的照片集合,面片p的像素点的个数为n,在面片p的可见图像I1,I2∈V(p)上的投影分别为pp1和pp2,那么,面片p在I1,I2上的光度差异性被定义为h(p,I1,I2):
h(p,I1,I2)=1-NCC(pp1,pp2)(公式3)
其中,NCC(NormalizedCrossCorrelation)是两个面片投影之间的归一化互相关关系。pp1(j)和pp2(j)分别代表了面片p的第j个像素在图像I1,I2上的像素值。和分别代表了pp1和pp2的像素平均值;
利用h(p,I1,I2),便可定义物点X对应面片p的总的光度差异函数:
为了降低干扰,算法还需要筛选出那些与参考图像R(p)的光度差异值低于给定阈值的图像,即
V*(p)={I|I∈V(p),h(p,I,R(p))≤α}(公式6)
优化过程中更新的|V*(p)|≥γ,γ为预先设定的阈值,若面片生成成功,则把p存储在对应的cell里并同时更新以(i,j)为中心的生成面片Q(i,j)和其中符合面片可见条件的面片Q*(i,j),为了加快计算速度,只要存在一个面片被重建成功,则这个存储面片的cell终止更新;
初始化面片生成之后,开始试图在面片领域内生成新的面片,给定面片p,首先确定一个满足一定规则的邻居图像cel1集C(p),然后对每个cel1执行面片扩展策略,其中:
C(p)={Ci(x′,y′)|p∈Qi(x,y),|x-x′|+|y-y′|=1}(公式7)
其中,Ci(x′,y′)是由(x,y)的邻域(x′,y′)组成的cell集;
当面片p与片p′满足以下公式时,不需要扩散,并从Ci(x′,y′...
【专利技术属性】
技术研发人员:黄方,彭书颖,杨浩,铁博,陈胤杰,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。