本发明属于图像处理技术领域,具体涉及一种面向大规模航拍图像的分布式运动推断结构方法。
背景技术:
基于航拍图像的大规模室外场景三维重建在国防安全、军事仿真、大型影视制作、虚拟现实、增强现实、数字孪生和数字中国建设等领域具有重要的作用。随着消费级无人机设备的普及,采集航拍图像变得非常容易,大量的航拍图像数据增加了三维重建的难度,具体困难如下:(1)非常耗时,运动推断结构的计算流程非常复杂,当处理大规模的航拍图像数据时,现有运动推断结构方法的计算效率很低,无法在有限的时间内输出结果;(2)内存溢出,单机版本的三维重建方法对内存空间消耗较大,甚至导致三维重建过程失败。
上述问题严重阻碍了基于航拍图像的三维重建技术的发展和应用。人们迫切希望寻找一种面向大规模航拍图像的分布式运动推断结构方法和系统,以便快速地从大规模的航拍图像中计算出高质量的稀疏点云模型和高精度的摄像机参数。
相关的研究论文有《largescalesfmwiththedistributedcameramodel》,该论文于2016发表在国际会议3dvision上。此方法仅提出一种分布式的摄像机模型,不是一种具体的分布式三维重建方法,无法解决大规模三维重建的时间效率和内存溢出问题。
虽然现有的运动推断结构方法在基于航拍图像的大规模三维重建中距离实际应用还有很大的差距:(1)现有算法的时间效率较低,无法满足实时应用程序需求;(2)现有算法的精度题,不能保证重建出来的三维模型与真实场景具有较高的几何一致性;(3)现有算法非常消耗内存,不能处理大规模的航拍图像数据。
技术实现要素:
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种面向大规模航拍图像的分布式运动推断结构方法,本发明能够在在分布式环境下快速地计算出大规模航拍图像对应的稀疏点云模型和摄像机参数,使得基于航拍图像的高精度及快速的大规模室外场景三维重建变成可能。
技术方案:本发明的一种面向大规模航拍图像的分布式运动推断结构方法,包括以下步骤:
步骤s1、将大规模航拍图像数据集合i={i1,…,in}划分为若干具有一定重叠性的子集
其中,n表示集合i中航拍图像的数量,
步骤s2、在分布式环境的子节点上,计算出
其中,
步骤s3、计算任意两个子集
其中,d表示子区域
步骤s4、根据上述所得子集
步骤s5、根据旋转矩阵
进一步地,所述步骤s1中采用社区检测法(communitydetection)将大规模航拍图像数据集合划分为具有一定重叠区域的子集,首先计算输入图像中包含的局部特征点,然后对特征进行聚类(例如affinitypropagation方法),每一类表示一个不同的社区区域,即为重叠的子集。
进一步地,所述步骤s2中采用采用局部运动推断结构(localstructurefrommotion)法计算每一个子集图像对应的稀疏点云模型和摄像机参数,包括gpu(graphicsprocessorunits)加速的运动推断结构法或非gpu加速的运动推断结构法。具体计算过程为:首先计算输入图像之间的特征匹配关系;其次,根据特征匹配关系计算出摄像机的相对姿态信息和初始的稀疏点云模型;最后,对初始的稀疏点云模型进行优化,即可获得最终的稀疏点云模型和摄像机参数。
进一步地,所述步骤s3中采用基于“fishervector”的图像匹配法计算任意两个子区域之间的重叠图像:首先根据输入的局部特征计算出词袋模型,然后根据词袋模型为每一幅输入图像查询匹配的图像,这些匹配的图像为重叠图像。
进一步地,所述步骤s4中采用间接方法计算出两个子模型之间的旋转矩阵和平移向量:具体步骤为:首先根据两个子模型之间的重叠图像间的特征匹配关系来计算出基本矩阵,然后根据基本矩阵和摄像机参数计算出本质矩阵,最后对本质矩阵进行分解即可获得对应旋转矩阵和平移向量。
进一步地,所述步骤s5中采用最小代价生成树方法将多个子模型合并为一个完整的模型。
有益效果:本发明先将大规模的航拍图像数据划分具有一定重叠度的子集,避免图像数据量过大导致单机版本的运动推断结构方法和系统出现内存溢出问题;其次,在分布式计算环境下不同节点上同时计算每个子集图像所对应的稀疏点云模型和摄像机参数,使得能够在有限的时间内计算出大规模场景的三维模型。
综上,本发明既能够提高三维重建的时间效率,又能够避免单机版本的运动推断结构方法和系统在处理大规模航拍图像数据时出现的内存溢出问题。
附图说明
图1为本发明的整体流程示意图;
图2为实施例中的航拍图;
图3为实施例中子区域的稀疏点云模型示意图;
图4为实施例中的查询图像;
图5为实施例中的重叠图像;
图6为实施例中完整的点云模型。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
本发明的一种面向大规模航拍图像的分布式运动推断结构方法,将大规模航拍图像划分为具有一定重叠度的子集,分别在分布式计算环境的不同节点上计算出每个子集图像对应的稀疏点云模型和摄像机参数,最后将所有子节点的稀疏点云模型和摄像机参数合并为一个整体,即可获得完整场景的稀疏点云模型和摄像机参数。
本发明的应用场景包括:数字孪生、数字中国建设、影视制作、场景监控、文化遗产的数字化保护、军事仿真、无人驾驶、地图导航、虚拟现实和增强现实等。
如图1所示,本实施例的一种面向大规模航拍图像的分布式运动推断结构方法步骤包括:
步骤一
对于给定的大规模航拍图像数据i={i1,…,in}采用文献《generaloptimizationtechniqueforhigh-qualitycommunitydetectionincomplexnetworks》中的社区检测方法将其划分为具有一定重叠度的子集,即为
其中,n表示航拍图像的数量,
步骤二
对于任意的子集图像数据
步骤三
对于给定的两个子区域的三维模型,即ma和mb,假设模型ma和mb对应着两个不同的物理区域regiona和regionb,ii和ij分别表示区域regiona和regionb中的图像,构造出一个基于全局旋转误差的线性系统,
和误差ρe,
其中,ri表示图像ii的全局旋转矩阵;
记rab表示图像ii从ma和mb的旋转矩阵,则获得如下等式。
由于ie是单位矩阵,因此,式(3)等价于式(4)。
rjrab=ri,jri(4)
假设模型ma和模型mb之间存在m个重叠的“图像对”,根据这些重叠的“图像对”所对应的三维模型,则构造如下所示的非线性系统;
其中,am×3和bm×3分表示an和bn对应的堆叠矩阵,且an=rj,bn=ri,jri。一旦获得旋转矩阵后,完整模型的极线几何图则表示为一个加权的图结构,图的节点表述子区域的模型,边表示连接子模型之间的重叠图像。
记tab和θab分别表示模型ma和模型mb之间的平移向量和尺度因子,存在如下的等式关系:
λijtij=rj(ci-(θabcj+tab))(6)
其中,tij表示ii和ij之间的相对变换;
假设x=[θab,tx,ty,tz,λ1,…,λs]t表示任意一对图像之间的尺度因子、平移向量和局部特征之间的尺度因子;yc=[c1,…,cs]t表示参考模型中的图像,则平移向量和尺度变换可以建模为:
aijx=yc(8)
其中,aij=[cj,i3×3,…p…]是一个具有3列和4+n行的矩阵。因此,平移向量和尺度因子的求解问题可以建模为最小化问题。
至此求解出平移向量和尺度因子,结合旋转矩阵,可以使用最小代价生成树方法将多个区域的模型合并为一个完整的场景模型。
实施例:
如图2所示为本实施的大规模航拍图像数据集合i中的图像,本实施例所采用的局部运动推断结构包括有localsfm1等,所得子区域的稀疏点云模型示如图3所示。然后以图4为查询图像,计算这两个子区域之间的重叠图像如图5所示,接着计算子区域模型之间的旋转矩阵和平移向量(r3×3、t3×1);然后根据旋转矩阵和平移向量来合并子模型,合并摄像机姿态和稀疏点云等,最终输出图像图6。