一种三维稠密重建方法及系统与流程

专利2022-05-09  49


本发明属于三维重建技术领域,更具体地说,是涉及一种三维稠密重建方法及系统。



背景技术:

随着现代数码相机和无人平台的飞速发展,大量优质的航拍图像获取更加便捷,因此诞生了很多现代化的应用,如无人机自主避障与导航、山地和森林等自然环境勘测、城市建筑模型构建、考古遗址记录、灾区环境侦测等等。近年来基于各种传感器和方法的三维重建解决方案层出不穷,但是,大多数方法都在场景尺度、实时性和重建稠密度上无法兼顾,导致算法应用场景受限。此外,由于3d传感器以及双目视觉测量距离的限制不便应用于大场景的重建,单目视觉几乎成为了首选的传感器。

现有的采用单目视觉传感器利用实时三维重建算法将位姿估计和深度估计分离开来,作为两个任务,或者直接使用位姿真值作为深度估计时的先验信息,而实际使用过程中,对于未知场景的重建必须同时进行位姿估计、深度估计、深度融合三个工作,且需要保证各个模块的计算实时性,才能提升重建系统的实用性。而且现有的三维重建算法为了缩短计算时间,往往采用高算力级别的gpu,这在功耗、尺寸上就限制了系统在嵌入式平台的应用。

大部分基于单目视觉三维重建严重的缺点之一是,当没有足够的纹理信息时,其重建稠密度不高或者根本不能正常运行,而提高稠密度又不可避免地遇到实时性问题;另一个问题是,在使用多视角进行深度估计时,现有的方法采用将预先设定的深度搜索阈进行个深度的等分,然后将这个预置的深度对逐个像素进行搜索匹配,再选取匹配代价最小的深度作为估计值,然而这种方法忽略了地形连续的特性,且对于地形深度变化较大的场景下,预先设定的搜索阈值可能不适用,但是设置较大的深度搜索区间又浪费计算能力,且使得深度采样精度不高,重建的地图出现阶梯状分层。



技术实现要素:

本发明的目的在于提供一种三维稠密重建方法及系统,旨在解决现有基于单目视觉三维重建方法在进行三维重建时,重建稠密度不高且重建的地图出现阶梯状分层的问题。

为实现上述目的,本发明采用的技术方案是:一种三维稠密重建方法,包括以下步骤:

步骤1:获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

步骤2:对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

步骤3:根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

步骤4:获取关键帧密度阈值;

步骤5:判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

步骤6:若所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

步骤7:提取所述待测关键帧的关键点;

步骤8:根据所述关键点得到搜索平面;

步骤9:根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

步骤10:根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

步骤11:根据所述各个像素点的深度值建立全局场景模型。

优选的,所述成本函数为:

其中,cost(i)表示密度成本,s表示经验比例因子,h表示预处理后的相机图像中各个帧的像素行数,表示上一个关键帧光轴与相应场景拟合平面法向矢量n之间的角度,bi表示上一个关键帧之后的第i个帧与上一个关键帧之间的基线长度,f为焦距,表示参考帧中特征点的平均深度。

优选的,所述步骤8:根据所述关键点得到搜索平面,包括:

步骤8.1:将所述待测关键帧的关键点划分为四块区域;

步骤8.2:提取各个区域的关键点的平均深度值,并将所述平均深度值投影到空间坐标系中,得到三维点坐标集合;

步骤8.3:根据所述三维点坐标集合利用拟合平面拟合各个区域的深度分布得到拟合平面参数模型;

步骤8.4:根据所述拟合平面参数模型得到归一化平面上的点与相对应的拟合平面上点的深度关系模型;

步骤8.5:根据所述深度关系模型构造搜索平面。

优选的,所述拟合平面参数模型为:

其中,表示拟合平面上的点坐标,a表示拟合平面第一参数,b表示拟合平面第二参数,c表示拟合平面第三参数,xm表示三维点坐标集合在x轴方向的坐标均值,ym表示三维点坐标集合在y轴方向的坐标均值,zm表示三维点坐标集合在z轴方向的坐标均值。

优选的,所述深度关系模型为:

其中,表示归一化平面,表示归一化平面上点的横坐标,表示归一化平面上点的纵坐标,n=[abc]t表示场景拟合平面的法向量。

优选的,所述步骤9:根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型,包括:

步骤9.1:根据搜索平面构建所述参考帧与所述待测关键帧的光度误差模型;其中,所述光度误差模型为:

其中,sad(ir,ik,uk,d(uk,i))表示在第i个搜索平面上参考帧与待测关键帧的光度绝对差,ir表示参考帧,ik表示待测关键帧,uk表示待测关键帧上的像素点,d(uk,i)表示像素点uk的第i个搜索深度,即位于第i个搜索平面上的候选匹配深度,表示uk在深度d(uk,i)下使用位姿变换之后投影到参考帧ir中的像素点,投影过程为其对应的像素强度为相应的有ik(uk)表示uk在ik中的像素强度,tw,r表示参考帧的相机坐标系到世界坐标系的转换矩阵,tw,k分别待测关键帧的相机坐标系到世界坐标系的转换矩阵。

步骤9.2:根据所述光度误差模型构建匹配代价向量模型。

优选的,所述匹配代价向量模型为:

其中,c(uk,i)表示在第i个搜索平面上待测关键帧上的像素点的匹配代价向量,r表示所有参考帧的集合。

本发明还提供了一种三维稠密重建系统,包括:

图像获取及预处理模块,用于获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

位姿及尺度估计模块,用于对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

密度成本计算模块,用于根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

关键帧密度阈值获取模块,用于获取关键帧密度阈值;

密度成本判断模块,用于判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

待测关键帧筛选模块,用于当所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

关键点提取模块,用于提取所述待测关键帧的关键点;

搜索平面提取模块,用于根据所述关键点得到搜索平面;

匹配代价向量模型构建模块,用于根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

深度值确定模块,用于根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

全局融合模块,用于根据所述各个像素点的深度值建立全局场景模型。

本发明提供的一种三维稠密重建方法及系统的有益效果在于:与现有技术相比,本发明公开的一种三维稠密重建方法,包括:获取相机图像,并对相机图像进行预处理得到预处理后的相机图像,利用成本函数计算预处理后的相机图像中各个帧的密度成本,根据关键帧密度阈值筛选得到待测关键帧;根据待测关键帧确定搜索平面,根据搜索平面、待测关键帧和参考帧建立待测关键帧上的各个像素点在搜索平面的匹配代价向量模型;根据匹配代价向量模型得到待测关键帧上的各个像素点的深度值;根据各个像素点的深度值建立全局场景模型。本发明通过关键帧密度阈值筛选得到待测关键帧可以动态调整立体匹配基线,在场景倾斜、场景较远的区域也能保持精度的稳定;通过构建匹配代价向量模型,能够更加适应倾斜以及远距离大场景的深度估计,在不增加搜索次数的情况下,提升搜索效率和精度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种三维稠密重建方法流程图;

图2为本发明实施例提供的场景与相机平面关系图;

图3为本发明实施例提供的关键点划分示意图;

图4为本发明实施例提供的深度搜索平面原理图;

图5为本发明实施例提供的动态拟合场景平面确定搜索平面原理图;

图6为本发明实施例提供的图像融合结果示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的目的在于提供一种三维稠密重建方法及系统,旨在解决现有基于单目视觉三维重建方法在进行三维重建时,重建稠密度不高且重建的地图出现阶梯状分层的问题。

请参阅图1,为实现上述目的,本发明采用的技术方案是:一种三维稠密重建方法,包括以下步骤:

步骤1:获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

本发明中使用无人机航拍单目相机作为唯一的数据来源,单目相机采用低成本全局快门相机,满足分辨率960×540,帧率30fps即可。本发明通过将获取到的相机图像进行去畸变和直方图均衡的预处理操作得到预处理后的相机图像,再发送到ros网络节点队列。

步骤2:对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

在实际应用中,本发明利用位姿及尺度估计模块,循环监听进程1中发送的网络节点,当图像队列1非空时通过回调函数开始进行位姿及尺度估计,位姿估计采用orb-slam3的方法,通过捆绑调整(ba)优化得到该帧关键点和位姿,通过关键帧约束判断是否加入深度估计的测量帧集合,是生成深度图的基础。

步骤3:根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

令ed为视差误差,ez为深度误差,b为基线,f(以像素为单位)为焦距,z为深度。为了便于分析,仅考虑平移向量t。考虑ed趋于0的一阶泰勒级数逼近,深度误差可以用视差误差ed表示:

假设基线,焦距和视差为常数,深度误差与深度具有二次关系,这表明谨慎选择基线约束以滤除某些帧可以因此有效地提高深度估计的准确性。基线越大,深度误差就越小,同时必须惩罚基线阈值以避免低重叠。与其他将基线阈值简单地设置为常数或设置为动态但缺少场景的几何结构的其他方法不同,我们根据特征点的平均深度z和场景的法线向量n来选择帧。获得视差稳定性和足够的重叠。提出了以下成本函数:

其中,cost(i)表示密度成本,s表示经验比例因子为常数,在本发明中将其设置为0.25以表示两个图像之间的预期重叠度,h表示预处理后的相机图像中各个帧的像素行数,表示上一个关键帧光轴与相应场景拟合平面法向矢量n之间的角度,f为焦距,表示参考帧中特征点的平均深度,bi表示上一个关键帧之后的第i个帧与上一个关键帧之间的基线长度,等式中的第一项是预期的基线,成本函数对与当前场景所需基准的偏差进行了惩罚。如图2所示,考虑三种情况,当场景几乎平行于相机平面时(即图1中的场景p1)接近于0,在其他情况下(即图1中的场景p2和p3),惩罚函数根据尺度动态调整下一个关键帧的期望基线随的角度变化关键帧的密度也在变化,立体匹配基线长度随场景距离以及的角度变化,以保持匹配精度的恒定。

步骤4:获取关键帧密度阈值;

步骤5:判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

步骤6:若所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

本发明根据预期的关键帧密度设定关键帧密度阈值,将密度成本小于关键帧密度阈值的帧作为下一个待测关键帧,加入到队列2中,其中包括该帧的位姿及其场景特征点的3d坐标。

对于每一个新筛选出来的待测关键帧ik,使用五个满足基线约束的历史关键帧ir∈r与其构建视差匹配代价向量,也就是说本发明可以使用前5个筛选出来的待测关键帧作为参考帧,但在实际应用中,本发明并不局限于前5个待测关键帧作为参考帧,可以根据实际的使用需求任意在待测关键帧中进行选取,示例性可以是前6个筛选出来的待测关键帧,也可以是最后5个筛选出来的待测关键帧。帧间的位姿为相机系转换到世界坐标系下的变换矩阵为tw,c∈se(3)(se(3)表示李代数),类似的表示有tw,r以及tw,k分别表示关键帧和参考帧的相机坐标系到世界坐标系的转换。表示将归一化平面的点映射到像素坐标u=[pupv]t,其中k为相机内参矩阵。相应地有表示该逆过程,(·)0:1表示取向量的前两行所构成的向量。

在立体匹配中,对关键帧上每一个选择进行深度估计的像素进行nd个深度值误差计算,这nd个深度值均匀分布在逆深度空间上,分别求解其误差大小并确定最小匹配误差的深度z*作为深度测量值。所有像素点的候选采样深度组成nd个深度平面,由于相邻平面之间的距离决定了深度估计的分辨率,精心选择深度平面对于深度估计的准确性至关重要。与选择平行于像平面的其他方法不同,我们的方法将根据场景3d特征点进行灵活性的平面选择,下面阐述如何进行这nd个搜索平面的选取。

步骤7:提取所述待测关键帧的关键点;

在实际应用中,采用位姿估计ba计算出的特征点深度信息作为一个先验,去估计场景内的深度空间分布,从而使得nd次的立体匹配更加高效而精准。

步骤8:根据所述关键点得到搜索平面;

步骤8具体包括:

步骤8.1:将所述待测关键帧的关键点划分为四块区域;

步骤8.2:提取各个区域的关键点的平均深度值,并将所述平均深度值投影到空间坐标系中,得到三维点坐标集合;

步骤8.3:根据所述三维点坐标集合利用拟合平面拟合各个区域的深度分布得到拟合平面参数模型;

在实际应用中,采用位姿估计ba计算出的特征点深度信息作为一个先验,去估计场景内的深度空间分布,从而使得nd次的立体匹配更加高效而精准。图1是orb-slam3所提取的关键点,对这些点进行划分为上下左右四块区域,并且提取出各个区域内估计点的平均深度分别为:zi,i=0,1,2,3,将其投影到空间之中可得三维点pi=[xiyizi]t,i=0,1,2,3,由于关键点的提取符合均匀性原则,场景均值可以使用关键点的均值pm=[xmymzm]t近似,其中xm,ym,zm分别表示x,y及z轴方向的坐标均值,即全景均值为pm=[xmymzm]t,场景内的深度分布使用经过点pm的拟合平面γ(n,pm)近似拟合,其中,平面参数n=[abc]t满足:

对a进行svd分解可得近似拟合平面参数n,进而得到拟合平面参数模型。

其中,拟合平面参数模型为:

其中,表示拟合平面上的点坐标,a表示拟合平面第一参数,b表示拟合平面第二参数,c表示拟合平面第三参数,pm=[xmymzm]t表示全景均值。

步骤8.4:根据所述拟合平面参数模型得到归一化平面上的点与相对应的拟合平面上点的深度关系模型;

γ表示经过光心和归一化平面上某个点的射线,求解归一化平面上的点p所对应的3d坐标,相当于求解经过光心和相平面上点的射线与拟合平面的交点,于是有:

同时结合拟合平面参数模型,于是可以很容易求得归一化平面上的点与相对应的拟合平面上点的深度关系模型。其中深度关系模型为:

其中,表示归一化平面,表示归一化平面上点的横坐标,表示归一化平面上点的纵坐标n=[abc]t,a表示拟合平面第一参数,b表示拟合平面第二参数,c表示拟合平面第三参数。

步骤8.5:根据所述深度关系模型构造搜索平面。

进一步的,由ba估计的特征的3d点pf与拟合平面γ(n,pm)之间的距离由得到。假设pf在拟合平面周围呈高斯分布,因此可以认为d(pf,γ)服从协方差为的正太分布这表明如果将拟合平面作为搜索中心并合理设置估计深度的范围,则可以得到最高估算精度,且计算成本最低。

图4和图5,显示了构建的搜索平面中,固定搜索区域并且选取平行于像平面的深度搜索平面(图4)和动态拟合场景平面确定搜索平面(图5)的区别。所示黑色线为光心与像素平面的点构成的射线γ,灰度不同的平面代表深度估计的搜索平面,颜色越深距离越远,每一个像素在其成像射线γ与搜索平面交点处深度di,i=0,1,2...nd进行立体匹配,匹配代价最小的深度d*即为该像素深度值,下面阐述如何构建每一个像素在nd个搜索平面上的匹配代价。

本发明中假设特征点3d坐标与拟合平面之间的距离服从正态分布,且该距离协方差为nd个候选深度平面均匀地覆盖了所有特征点。对任意给定位于关键帧ik中的像素uk,使用d(uk,i)表示像素点uk的第i个搜索深度,即位于第i个搜索平面上的候选匹配深度,其中i=0,1,...,nd-1,计算方式如下:

其中:

tw,r以及tw,k分别表示关键帧和参考帧的相机坐标系到世界坐标系的转换矩阵,n=[abc]t表示将归一化平面的点映射到像素坐标u=[pupv]t,其中k为相机内参矩阵。相应地有表示该逆过程,(·)0:1表示取向量的前两行所构成的向量。

步骤9:根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

所述步骤9具体包括:

步骤9.1:根据搜索平面构建所述参考帧与所述待测关键帧的光度误差模型;其中,所述光度误差模型为:

其中,sad(ir,ik,uk,d(uk,i))表示在第i个搜索平面上参考帧与待测关键帧的光度绝对差,ir表示参考帧,ik表示待测关键帧,uk表示待测关键帧上的像素点,d(uk,i)表示像素点uk的第i个搜索深度,即位于第i个搜索平面上的候选匹配深度,表示uk在深度d(uk,i)下使用位姿变换之后投影到参考帧ir中的像素点,投影过程为其对应的像素强度为相应的有ik(uk)表示uk在ik中的像素强度,tw,r表示参考帧的相机坐标系到世界坐标系的转换矩阵,tw,k分别待测关键帧的相机坐标系到世界坐标系的转换矩阵。

光度误差即sumofabsolutedifference(sad)表示计算ir和ik中以uk和为中心的两个3×3patch的光度绝对差,其中

步骤9.2:根据所述光度误差模型构建匹配代价向量模型,其中所述匹配代价向量模型为:

其中,c(uk,i)表示在第i个搜索平面上待测关键帧上的像素点的匹配代价向量,r表示所有参考帧的集合。

步骤10:根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

在计算像素匹配代价这一过程中,每一个像素点的代价计算均相互独立,本发明中将待测关键帧k中地某一像素点uk的代价向量在程序中表示为一个二维数组:cost[r][i],其中r和i分别表示参考帧和搜索平面的编号,可以很方便地在gpu中实现高度并行化对每一个像素点的多层代价计算。

步骤11:根据所述各个像素点的深度值建立全局场景模型。

在本发明中使用全局融合模块,实现新的关键帧深度与之前的深度图进行融合和拼接,构建一个全局的场景地图,首先从深度估计模块的队列4中构提取出新的稠密深度图,进行sdf值得计算,与历史帧中tsdf进行权重融合,更新历史点云的tsdf值,利用移动立方体(marchingcubes)算法计算提出三角面,建立全局场景模型,该模块可使用gpu进行并行化。最终融合结果如下图6所示。

本发明提出了一种基于动态搜索阈的三维稠密重建方法,该方法运行在嵌入式gpu上,兼顾了运行快、稠密度高、可对远距离大场景重建的特性,并且在小型无人机平台上实现,该方案可以推动地形三维重建更广泛的应用。本发明的方法使用单个单目相机在远距离拍摄的大场景环境中运动来进行在线稠密重建。与立体图像相比,由于双目相机视差不足,视觉比例变化,姿势误差等原因,从运动立体图像进行深度估计(特别是在长距离大场景环境中)尤其具有挑战性。本发明利用动态比例因子来自适应地调整搜索域,以提高鲁棒性距离目标点的深度估计的准确性和准确性。通过在tumrgb-d和icl-nuim数据集上与最新方法进行比较,本发明提出的方法展示了更高效率和准确性。

本发明还提供了一种三维稠密重建系统,包括:

图像获取及预处理模块,用于获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

位姿及尺度估计模块,用于对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

密度成本计算模块,用于根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

关键帧密度阈值获取模块,用于获取关键帧密度阈值;

密度成本判断模块,用于判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

待测关键帧筛选模块,用于当所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

关键点提取模块,用于提取所述待测关键帧的关键点;

搜索平面提取模块,用于根据所述关键点得到搜索平面;

匹配代价向量模型构建模块,用于根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

深度值确定模块,用于根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

全局融合模块,用于根据所述各个像素点的深度值建立全局场景模型。

本发明提供的一种三维稠密重建系统运行在ubuntu18.04操作平台,采用c 和cuda作为开发语言,主要使用的开源库有opencv3.4、eigen3.4、cuda10.1以及g2o等等,基于ros机器人通讯系统,方便进程间数据交互。硬件方面,该系统运行在nvidiatx2轻量级嵌入式平台。本发明的方案采用orb-slam3作为位姿估计模块,待测关键帧筛选模块,全局融合模块构成一个三维重建整体,其中最耗费算力的深度估计和tsdf融合模块采用cuda编程对逐像素的操作进行高度并行优化。经测试,系统在运行在嵌入式gpunvidiatx2上使用960×540-30fps的输入视频流,能够实时输出稠密深度图,并融合生成全局场景模型。

为解决低纹理下深度估计稀疏的问题,本发明使用基于图像强度梯度的区域分层,使用低纹理区域边缘深度聚合,填补空洞,提升深度估计稠密度。

位姿估计模块使用的是优秀的开源系统orb-slam3进行估计,是一种基于稀疏特征点的slam系统,将场景中共视点的3d信息和多个位姿进行捆绑优化,产生新的关键帧后,本发明利用orb-slam3所估计的场景内关键点深度信息和该关键帧的位姿,输入深度估计模块。orb-slam3所提供的关键点深度信息可以作为一个场景的深度先验,本发明合理假定深度是以正态分布的形式覆盖场景,由于关键点是均匀分布在场景之中,场景内所有点的实际深度分布和关键点的深度分布近似,对关键点的深度求深度均值dmean和方差σd可以估计场景的深度分布特性,在深度估计的立体匹配中,将nd个深度采样均匀分布在(dmean-3σd,dmean 3σd)之中,使用nd个深度值做立体匹配求解最佳深度,使得深度搜索的区间可以通过场景变化而变化,且最大效率使用每一个深度采样值。

本发明提供的一种三维稠密重建方法及系统的有益效果在于:与现有技术相比,本发明公开的一种三维稠密重建方法,包括:获取相机图像,并对相机图像进行预处理得到预处理后的相机图像,利用成本函数计算预处理后的相机图像中各个帧的密度成本,根据关键帧密度阈值筛选得到待测关键帧;根据待测关键帧确定搜索平面,根据搜索平面、待测关键帧和参考帧建立待测关键帧上的各个像素点在搜索平面的匹配代价向量模型;根据匹配代价向量模型得到待测关键帧上的各个像素点的深度值;根据各个像素点的深度值建立全局场景模型。本发明通过关键帧密度阈值筛选得到待测关键帧可以动态调整立体匹配基线,在场景倾斜、场景较远的区域也能保持精度的稳定;通过构建匹配代价向量模型,能够更加适应倾斜以及远距离大场景的深度估计,在不增加搜索次数的情况下,提升搜索效率和精度。此外,本发明采用单个相机作为传感器,将稀疏定位和建图结合,可在嵌入式平台实现实时稠密重建;通过多进程多线程结合,使用队列进行进程间数据的交互,可使算法流程高度并行化,提高了资源利用率和算法运行效率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。


技术特征:

1.一种三维稠密重建方法,其特征在于,包括以下步骤:

步骤1:获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

步骤2:对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

步骤3:根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

步骤4:获取关键帧密度阈值;

步骤5:判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

步骤6:若所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

步骤7:提取所述待测关键帧的关键点;

步骤8:根据所述关键点得到搜索平面;

步骤9:根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

步骤10:根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

步骤11:根据所述各个像素点的深度值建立全局场景模型。

2.如权利要求1所述的一种三维稠密重建方法,其特征在于,所述成本函数为:

其中,cost(i)表示密度成本,s表示经验比例因子,h表示预处理后的相机图像中各个帧的像素行数,表示上一个关键帧光轴与相应场景拟合平面法向矢量n之间的角度,bi表示上一个关键帧之后的第i个帧与上一个关键帧之间的基线长度,f为焦距,表示参考帧中特征点的平均深度。

3.如权利要求1所述的一种三维稠密重建方法,其特征在于,所述步骤8:根据所述关键点得到搜索平面,包括:

步骤8.1:将所述待测关键帧的关键点划分为四块区域;

步骤8.2:提取各个区域的关键点的平均深度值,并将所述平均深度值投影到空间坐标系中,得到三维点坐标集合;

步骤8.3:根据所述三维点坐标集合利用拟合平面拟合各个区域的深度分布得到拟合平面参数模型;

步骤8.4:根据所述拟合平面参数模型得到归一化平面上的点与相对应的拟合平面上点的深度关系模型;

步骤8.5:根据所述深度关系模型构造搜索平面。

4.如权利要求3所述的一种三维稠密重建方法,其特征在于,所述拟合平面参数模型为:

其中,表示拟合平面上的点坐标,a表示拟合平面第一参数,b表示拟合平面第二参数,c表示拟合平面第三参数,xm表示三维点坐标集合在x轴方向的坐标均值,ym表示三维点坐标集合在y轴方向的坐标均值,zm表示三维点坐标集合在z轴方向的坐标均值。

5.如权利要求3所述的一种三维稠密重建方法,其特征在于,所述深度关系模型为:

其中,表示归一化平面,表示归一化平面上点的横坐标,表示归一化平面上点的纵坐标,n=[abc]t表示场景拟合平面的法向量。

6.如权利要求3所述的一种三维稠密重建方法,其特征在于,所述步骤9:根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型,包括:

步骤9.1:根据搜索平面构建所述参考帧与所述待测关键帧的光度误差模型;其中,所述光度误差模型为:

其中,sad(ir,ik,uk,d(uk,i))表示在第i个搜索平面上参考帧与待测关键帧的光度绝对差,ir表示参考帧,ik表示待测关键帧,uk表示待测关键帧上的像素点,d(uk,i)表示像素点uk的第i个搜索深度,即位于第i个搜索平面上的候选匹配深度,表示uk在深度d(uk,i)下使用位姿变换之后投影到参考帧ir中的像素点,投影过程为其对应的像素强度为相应的有ik(uk)表示uk在ik中的像素强度,tw,r表示参考帧的相机坐标系到世界坐标系的转换矩阵,tw,k表示待测关键帧的相机坐标系到世界坐标系的转换矩阵。

步骤9.2:根据所述光度误差模型构建匹配代价向量模型。

7.如权利要求6所述的一种三维稠密重建方法,其特征在于,所述匹配代价向量模型为:

其中,c(uk,i)表示在第i个搜索平面上待测关键帧上的像素点的匹配代价向量,r表示所有参考帧的集合。

8.一种三维稠密重建系统,其特征在于,包括:

图像获取及预处理模块,用于获取相机图像,并对所述相机图像进行预处理得到预处理后的相机图像;

位姿及尺度估计模块,用于对所述预处理后的相机图像进行位姿及尺度估计得到所述预处理后的相机图像中各个帧的关键点和各个帧的位姿;

密度成本计算模块,用于根据各个帧的关键点和各个帧的位姿利用成本函数计算所述预处理后的相机图像中各个帧的密度成本;

关键帧密度阈值获取模块,用于获取关键帧密度阈值;

密度成本判断模块,用于判断所述密度成本是否小于所述关键帧密度阈值生成第一判断结果;

待测关键帧筛选模块,用于当所述第一判断结果为所述密度成本小于所述关键帧密度阈值,则将相应预处理后的相机图像中的帧作为待测关键帧;

关键点提取模块,用于提取所述待测关键帧的关键点;

搜索平面提取模块,用于根据所述关键点得到搜索平面;

匹配代价向量模型构建模块,用于根据所述搜索平面、所述待测关键帧和参考帧建立待测关键帧上的各个像素点在所述搜索平面的匹配代价向量模型;

深度值确定模块,用于根据所述匹配代价向量模型得到待测关键帧上的各个像素点的深度值;

全局融合模块,用于根据所述各个像素点的深度值建立全局场景模型。

技术总结
本发明提供了一种三维稠密重建方法及系统,属于三维重建技术领域,本发明公开的一种三维稠密重建方法,包括:利用成本函数计算预处理后的相机图像中各个帧的密度成本,根据关键帧密度阈值筛选得到待测关键帧;根据待测关键帧确定搜索平面,同时建立待测关键帧上的各个像素点在搜索平面的匹配代价向量模型;根据匹配代价向量模型建立全局场景模型。本发明通过关键帧密度阈值筛选得到待测关键帧可以动态调整立体匹配基线,在场景倾斜、场景较远的区域也能保持精度的稳定;通过构建匹配代价向量模型,能够更加适应倾斜以及远距离大场景的深度估计,在不增加搜索次数的情况下,提升搜索效率和精度。

技术研发人员:韩绍坤;赖正超;郭尚伟;孟宪童
受保护的技术使用者:北京理工大学
技术研发日:2021.04.28
技术公布日:2021.07.23

转载请注明原文地址:https://doc.8miu.com/read-659225.html

最新回复(0)