1.本发明属于计算机视觉领域,具体涉及一种可用于室外建筑物三维重建的基于深度学习的可见光图像与激光雷达数据融合方法。
背景技术:2.大规模高精度的密集三维重建是摄影测量和计算机视觉领域最经典的问题之一,它对于自动驾驶、质量控制监控、虚拟旅游、增强现实、文化遗产保护等各种应用至关重要。
3.无论是渲染具有真实感的对象还是对三维模型做进一步的分析,精确的空间几何信息和高保真的彩色纹理信息两者往往缺一不可。激光扫描重建技术虽然可以恢复目标对象的真实尺寸,精度可达毫米级,但环境场景的不同也会导致激光雷达采集到的点云数据固有的稀疏性。缺乏纹理表达,且在模型对象的边缘和拐角位置容易出现缺损和孔洞。基于多视图的重建技术建成的模型效果直观,但缺乏目标对象真实的深度信息,受光照等环境因素影响较大,致使最终的三维模型重建效果较差。单独使用任意一种方法均有一定局限性,所以,基于多种数据源融合的三维重建策略根据不同数据源,修补孔洞噪点,降低三维点云的实际坐标偏差,可以对结构保护与信息留存提供更具有针对性的三维数据支撑与服务。
4.利用可见光图像和激光雷达数据进行三维重建的研究主要包括深度估计(深度图补全)和三维网格重建,其中深度图补全融合可见光图像与激光雷达导出的稀疏深度图预测生成稠密的深度图,是最关键的步骤。
5.在过去的几十年里,学者们使用深度图补全的方法在实现模型构建、3d目标检测等任务方面做了很大的努力。基于深度学习的方法在深度图补全任务上表现出了引人注目的性能,并引领了发展趋势。先前的工作表明,具有多个卷积层的网络或简单的自动编码器可以补全缺失的深度。此外,可以通过利用rgb信息进一步改善深度补全。这种类型的典型方法是使用双编码器分别从稀疏深度图及其相应的rgb图像中提取特征,然后在解码器中将其融合。为了推进深度图补全的进展,最近的方法倾向于使用复杂的网络结构和复杂的学习策略。除了用于从多模态数据(例如图像和稀疏深度)中提取特征的多分支外,研究人员已经开始将表面法线、亲和度矩阵、残差深度图等集成到他们的框架中。此外,为了解决缺乏监督像素的问题,一些工作引入了利用多视图几何约束和对抗正则化。
6.深度图补全方法可大致分为五类:1.前期融合模型。2.后期融合模型。3.显式的三维表示模型。4.残差深度模型。5.基于空间传播网络(spatial propagation network,spn)的模型。
7.1.前期融合模型:如图1(a),这种方法通常直接聚合图像和稀疏深度图作为输入,或在第一个卷积层就融合多模态特征。
8.2.后期融合模型:如图1(b),这种方法通常由如图1所示的双编码器或两个子网络组成;一个用于提取rgb特征,另一个用于提取深度特征。融合在中间层进行,例如,融合从编码器提取出的特征。
9.3.显式的三维表示模型:如图1(c),这种方法通常应用三维卷积、嵌入表面曲线或从三维点云中直接学习信息,从而预测稠密深度图。
10.4.残差深度模型:如图1(d),这种方法通常学习一个粗深度图和残差深度图,通过组合它们生成最终的深度图。
11.5.基于spn的模型:如图1(e),这种方法通常首先通过编码器-解码器网络学习亲和度矩阵和初始粗深度图,然后使用spn进行基于亲和度的深度图精细化迭代。
技术实现要素:12.通过学者们发表的模型可知,显式三维表示模型、基于spn的模型和残差深度模型表现出更先进的性能,通常优于其他方法。基于spn的模型以一种隐式的方式学习三维几何关系,显式的三维表示模型大大促进了深度图补全的进展。因此,本发明提出一种基于显式三维表示与spn结合的深度图补全方法,该方法融合了可见光rgb图像和激光雷达的稀疏深度信息,可获得稠密准确的深度图,在文物保护的大型建筑重建、自动驾驶的街景重建等的三维重建等应用场景中有潜在应用价值。
13.本发明采用的技术方法是:一种可用于室外建筑物三维重建的基于深度学习的可见光图像与激光雷达数据融合方法,包括以下步骤:
14.步骤一、获取可见光图像和激光雷达数据集并进行预处理;
15.步骤101:使用可见光相机与激光雷达/激光扫描仪分别采集同一场景的多角度可见光图像与点云;
16.步骤102:将激光雷达采集的点云投影到可见光相机的成像平面上获得对应的稀疏深度图;
17.步骤103:获取深度图真值:将每张稀疏深度图及采样时间上相邻的共2n+1张稀疏深度图(处理kitti时n=5)进行叠加增加生成深度图的密度,使用半全局匹配(semi-global matching,sgm)来清理累积的激光扫描投影,去除遮挡、动态运动和测量伪影的异常值,最终叠加的深度图作为深度图真值;
18.步骤104:处理获得每张可见光rgb图像与稀疏深度图以及点云一一对应,由多张可见光rgb图像和一一对应的稀疏深度图与点云构成数据集,将得到的数据集划分为训练集与测试集;
19.步骤二、通过开源sfm框架colmap进行稀疏重建与相机位姿估计;
20.步骤201:将多视角可见光图片输入colmap,通过稀疏重建得到相机位姿和稀疏点云;
21.步骤202:将步骤201中生成的二进制类型的相关文件转换为文本格式,并将其中的cameras.txt中其他类型的相机模型改为针孔相机模型pinhole;
22.步骤三、构建深度图补全网络的图像特征提取模块,提取图像与深度图的特征,如图3为网络的编码器-解码器架构;
23.步骤301:基于残差网络构建图像编码器。可见光图像与稀疏深度图特征的图像编码器使用resnet作为基本结构,通过一种额外的卷积层处理两种输入,通过第一层卷积层之后,连接两个不同源的图像特征,作为resnet的输入;
24.步骤302:将步骤301得到的结果经过5个resnet卷积块得到两种图像的一个的中
间特征向量表示;
25.步骤四、构建深度图补全网络的点云特征提取模块,提取点云的特征;
26.步骤401:选取点云处理经典网络pointnet++作为点云特征编码器;
27.步骤402:对输入点云进行分组,对每一组进行特征提取:先进行维度变化,再进行卷积操作,最后按照pointnet的方式做最大池化得到特征;
28.步骤403:对步骤402的结果进行多次采样,分组,以pointnet的操作得到最终的整体特征;
29.步骤五、构建深度图补全网络的解码器模块,对得到的特征进行上采样;
30.步骤501:解码器使用来自图像编码器的多尺度图像特征和来自点云编码器的点特征,由四个转置卷积层和卷积层构成,转置卷积层对特征进行上采样;
31.步骤502:通过特征投影,以与图像特征相同的比例将点特征投影到每个转置块上;
32.步骤503:解码器网络的特征对于初始稠密深度、置信度、非局部邻域和原始亲和度估计共享权值,最后一个转置块的输出通过卷积层进行处理,预测出初始稠密深度图、初始置信度和原始亲和度;
33.步骤六、构建深度图补全网络的spn模块,迭代优化得到的最终深度图;
34.步骤601:spn可以将信息从置信度高的区域传播到具有基于数据的亲和度的置信度低的区域,但如果传播邻域固定,会忽略局部区域内的深度分布,因此采用非固定局部的spn;
35.步骤602:非固定局部的spn基于颜色和深度信息估计局部区域(即非固定局部)之外每个像素的邻域,非固定局部邻域定义为:
[0036][0037]
式中,i和d分别是可见光rgb图像和稀疏深度图;f
φ
(
·
)是在可学习参数φ下估计每个像素k个邻居的非固定局部邻域预测网络;p,q为实数;
[0038]
步骤603:将步骤503得到的初始稠密深度图通过可变形卷积实现非固定局部的spn,迭代优化的公式为:
[0039][0040]
式中,(m,n)和(i,j)分别是参考像素和相邻像素的坐标,表示参考像素的亲和度,表示(m,n)和(i,j)处像素的亲和度。公式右边第一项代表参考像素的传播,第二项代表由相应像素加权的邻域的传播亲和度。
[0041]
步骤604:为保证传播的稳定性,在传播前结合置信度对亲和度进行归一化,采用tanh-γ-abs-sum
*
的方法,如式:
[0042][0043]
式中,c
i,j
∈[0,1]表示像素在(i,j)的置信度。
[0044]
步骤七、构建深度图补全网络的损失函数;
[0045]
步骤701:深度图补全中的重建损失公式如下:
[0046][0047]
其中d
gt
是groundtruth深度图,d
pred
是算法预测出的深度图,d
υ
、v和|v|分别代表像素索引υ处的深度值、d
gt
的有效像素和有效像素数,ρ为1表示l1损失,为2表示l2损失;
[0048]
步骤702:引入3d点云处理中的倒角距离(chamferdistance,cd),cd表示两个点集中相互最近的点取平均值,计算公式为:
[0049][0050]
其中s1和s2为两个3d点云集合,将深度图补全网络预测出的稠密深度图反投影到3d空间得到伪激光点,将groundtruth中的稠密深度图做同样操作,计算它们之间的cd损失;
[0051]
步骤703:结合深度图补全中的重建损失和点云处理中的cd损失迭代,最终的损失函数为:
[0052]
l=μl
recon
+(1-μ)l
cd
[0053]
其中μ为深度图重建损失的权重系数;
[0054]
步骤八、采用训练好的模型预测测试集数据,得到深度图补全结果;
[0055]
步骤九、通过开源mvs框架openmvs利用估计出的深度图进行稠密重建、网格重建与纹理贴图;
[0056]
步骤901:替换openmvs中的深度图计算部分,根据colmap计算得的相机位姿与深度图补全网络预测得到的稠密深度图,通过融合多帧深度图的方法得到稠密点云。
[0057]
步骤902:由步骤901中得到的稠密点云继续使用openmvs中的网格重建得到三维网格模型,使用网格优化模块得到更加精细的网格模型,使用纹理贴图模块得到最终的带纹理的三维表面模型。
[0058]
本发明与现有技术相比具有以下有益效果:
[0059]
1、本发明的步骤简单、设计合理,实现及使用操作方便。
[0060]
2、本发明利用显式的三维表达与隐式的模型结合的方法进行深度图补全,从稀疏的不规则深度分布中捕捉到3d几何线索,提高了深度图补全的准确度。
[0061]
3、本发明同时利用二维图像信息与三维信息,对其特征进行融合,提升了三维重建的精度。
[0062]
4、本发明将3d点云处理中的损失函数引入深度图补全,给模型反馈更多的三维结构信息。
[0063]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
[0064]
图1为深度图补全主要方法分类。
[0065]
图2为本发明的方法流程图。
[0066]
图3为深度图补全网络的编码器-解码器结构图。
具体实施方式
[0067]
下面结合附图及本发明的实施例对本发明的方法做进一步的详细说明。
[0068]
如图2所示,本发明包括以下步骤:
[0069]
步骤一、获取可见光图像和激光雷达数据集并进行预处理;
[0070]
步骤101:使用可见光相机与激光雷达/激光扫描仪分别采集同一场景的多角度可见光图像与点云;
[0071]
步骤102:将激光雷达采集的点云投影到可见光相机的成像平面上获得对应的稀疏深度图;
[0072]
步骤103:获取深度图真值:将每张稀疏深度图及采样时间上相邻的共2n+1张稀疏深度图(处理kitti时n=5)进行叠加增加生成深度图的密度,使用半全局匹配(semi-global matching,sgm)来清理累积的激光扫描投影,去除遮挡、动态运动和测量伪影的异常值,最终叠加的深度图作为深度图真值;
[0073]
步骤104:处理获得每张可见光rgb图像与稀疏深度图以及点云一一对应,由多张可见光rgb图像和一一对应的稀疏深度图与点云构成数据集,将得到的数据集划分为训练集与测试集;
[0074]
步骤二、通过开源sfm框架colmap进行稀疏重建与相机位姿估计;
[0075]
步骤201:将多视角可见光图片输入colmap,通过稀疏重建得到相机位姿和稀疏点云;
[0076]
步骤202:将步骤201中生成的二进制类型的相关文件转换为文本格式,并将其中的cameras.txt中其他类型的相机模型改为针孔相机模型pinhole;
[0077]
步骤三、构建深度图补全网络的图像特征提取模块,提取图像与深度图的特征,如图3为网络的编码器-解码器架构;
[0078]
步骤301:基于残差网络构建图像编码器。可见光图像与稀疏深度图特征的图像编码器使用resnet作为基本结构,通过一种额外的卷积层处理两种输入,通过第一层卷积层之后,连接两个不同源的图像特征,作为resnet的输入;
[0079]
步骤302:将步骤301得到的结果经过5个resnet卷积块得到两种图像的一个的中间特征向量表示;
[0080]
步骤四、构建深度图补全网络的点云特征提取模块,提取点云的特征;
[0081]
步骤401:选取点云处理经典网络pointnet++作为点云特征编码器;
[0082]
步骤402:对输入点云进行分组,对每一组进行特征提取:先进行维度变化,再进行卷积操作,最后按照pointnet的方式做最大池化得到特征;
[0083]
步骤403:对步骤402的结果进行多次采样,分组,以pointnet的操作得到最终的整体特征;
[0084]
步骤五、构建深度图补全网络的解码器模块,对得到的特征进行上采样;
[0085]
步骤501:解码器使用来自图像编码器的多尺度图像特征和来自点云编码器的点特征,由四个转置卷积层和卷积层构成,转置卷积层对特征进行上采样;
[0086]
步骤502:通过特征投影,以与图像特征相同的比例将点特征投影到每个转置块上;
[0087]
步骤503:解码器网络的特征对于初始稠密深度、置信度、非局部邻域和原始亲和
度估计共享权值,最后一个转置块的输出通过卷积层进行处理,预测出初始稠密深度图、初始置信度和原始亲和度;
[0088]
步骤六、构建深度图补全网络的spn模块,迭代优化得到的最终深度图;
[0089]
步骤601:spn可以将信息从置信度高的区域传播到具有基于数据的亲和度的置信度低的区域,但如果传播邻域固定,会忽略局部区域内的深度分布,因此采用非固定局部的spn;
[0090]
步骤602:非固定局部的spn基于颜色和深度信息估计局部区域(即非固定局部)之外每个像素的邻域,非固定局部邻域定义为:
[0091][0092]
式中,i和d分别是可见光rgb图像和稀疏深度图;f
φ
(
·
)是在可学习参数φ下估计每个像素k个邻居的非固定局部邻域预测网络;p,q为实数;
[0093]
步骤603:将步骤503得到的初始稠密深度图通过可变形卷积实现非固定局部的spn,迭代优化的公式为:
[0094][0095]
式中,(m,n)和(i,j)分别是参考像素和相邻像素的坐标,表示参考像素的亲和度,表示(m,n)和(i,j)处像素的亲和度。公式右边第一项代表参考像素的传播,第二项代表由相应像素加权的邻域的传播亲和度。
[0096]
步骤604:为保证传播的稳定性,在传播前结合置信度对亲和度进行归一化,采用tanh-γ-abs-sum
*
的方法,如式:
[0097][0098]
式中,c
i,j
∈[0,1]表示像素在(i,j)的置信度。
[0099]
步骤七、构建深度图补全网络的损失函数;
[0100]
步骤701:深度图补全中的重建损失公式如下:
[0101][0102]
其中d
gt
是groundtruth深度图,d
pred
是算法预测出的深度图,d
υ
、v和|v|分别代表像素索引υ处的深度值、d
gt
的有效像素和有效像素数,ρ为1表示l1损失,为2表示l2损失;
[0103]
步骤702:引入3d点云处理中的倒角距离(chamferdistance,cd),cd表示两个点集中相互最近的点取平均值,计算公式为:
[0104][0105]
其中s1和s2为两个3d点云集合,将深度图补全网络预测出的稠密深度图反投影到3d空间得到伪激光点,将groundtruth中的稠密深度图做同样操作,计算它们之间的cd损失;
[0106]
步骤703:结合深度图补全中的重建损失和点云处理中的cd损失迭代,最终的损失函数为:
[0107]
l=μl
recon
+(1-μ)l
cd
[0108]
其中μ为深度图重建损失的权重系数;
[0109]
步骤八、采用训练好的模型预测测试集数据,得到深度图补全结果;
[0110]
步骤九、通过开源mvs框架openmvs利用估计出的深度图进行稠密重建、网格重建与纹理贴图;
[0111]
步骤901:替换openmvs中的深度图计算部分,根据colmap计算得的相机位姿与深度图补全网络预测得到的稠密深度图,通过融合多帧深度图的方法得到稠密点云。
[0112]
步骤902:由步骤901中得到的稠密点云继续使用openmvs中的网格重建得到三维网格模型,使用网格优化模块得到更加精细的网格模型,使用纹理贴图模块得到最终的带纹理的三维表面模型。
[0113]
以上所述,仅是本发明的实施例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。
技术特征:1.一种可用于室外建筑物三维重建的基于深度学习的可见光图像与激光雷达数据融合方法,包括以下步骤:步骤一、获取可见光图像和激光雷达数据集并进行预处理;步骤101:使用可见光相机与激光雷达/激光扫描仪分别采集同一场景的多角度可见光图像与点云;步骤102:将激光雷达采集的点云投影到可见光相机的成像平面上获得对应的稀疏深度图;步骤103:获取深度图真值:将每张稀疏深度图及采样时间上相邻的共2n+1张稀疏深度图(处理kitti时n=5)进行叠加增加生成深度图的密度,使用半全局匹配(semi-global matching,sgm)来清理累积的激光扫描投影,去除遮挡、动态运动和测量伪影的异常值,最终叠加的深度图作为深度图真值;步骤104:处理获得每张可见光rgb图像与稀疏深度图以及点云一一对应,由多张可见光rgb图像和一一对应的稀疏深度图与点云构成数据集,将得到的数据集划分为训练集与测试集;步骤二、通过开源sfm框架colmap进行稀疏重建与相机位姿估计;步骤201:将多视角可见光图片输入colmap,通过稀疏重建得到相机位姿和稀疏点云;步骤202:将步骤201中生成的二进制类型的相关文件转换为文本格式,并将其中的cameras.txt中其他类型的相机模型改为针孔相机模型pinhole;步骤三、构建深度图补全网络的图像特征提取模块,提取图像与深度图的特征,如图3为网络的编码器-解码器架构;步骤301:基于残差网络构建图像编码器。可见光图像与稀疏深度图特征的图像编码器使用resnet作为基本结构,通过一种额外的卷积层处理两种输入,通过第一层卷积层之后,连接两个不同源的图像特征,作为resnet的输入;步骤302:将步骤301得到的结果经过5个resnet卷积块得到两种图像的一个的中间特征向量表示;步骤四、构建深度图补全网络的点云特征提取模块,提取点云的特征;步骤401:选取点云处理经典网络pointnet++作为点云特征编码器;步骤402:对输入点云进行分组,对每一组进行特征提取:先进行维度变化,再进行卷积操作,最后按照pointnet的方式做最大池化得到特征;步骤403:对步骤402的结果进行多次采样,分组,以pointnet的操作得到最终的整体特征;步骤五、构建深度图补全网络的解码器模块,对得到的特征进行上采样;步骤501:解码器使用来自图像编码器的多尺度图像特征和来自点云编码器的点特征,由四个转置卷积层和卷积层构成,转置卷积层对特征进行上采样;步骤502:通过特征投影,以与图像特征相同的比例将点特征投影到每个转置块上;步骤503:解码器网络的特征对于初始稠密深度、置信度、非局部邻域和原始亲和度估计共享权值,最后一个转置块的输出通过卷积层进行处理,预测出初始稠密深度图、初始置信度和原始亲和度;步骤六、构建深度图补全网络的spn模块,迭代优化得到的最终深度图;
步骤601:spn可以将信息从置信度高的区域传播到具有基于数据的亲和度的置信度低的区域,但如果传播邻域固定,会忽略局部区域内的深度分布,因此采用非固定局部的spn;步骤602:非固定局部的spn基于颜色和深度信息估计局部区域(即非固定局部)之外每个像素的邻域,非固定局部邻域定义为:式中,i和d分别是可见光rgb图像和稀疏深度图;f
φ
(
·
)是在可学习参数φ下估计每个像素k个邻居的非固定局部邻域预测网络;p,q为实数;步骤603:将步骤503得到的初始稠密深度图通过可变形卷积实现非固定局部的spn,迭代优化的公式为:式中,(m,n)和(i,j)分别是参考像素和相邻像素的坐标,表示参考像素的亲和度,表示(m,n)和(i,j)处像素的亲和度。公式右边第一项代表参考像素的传播,第二项代表由相应像素加权的邻域的传播亲和度。步骤604:为保证传播的稳定性,在传播前结合置信度对亲和度进行归一化,采用tanh-γ-abs-sum
*
的方法,如式:式中,c
i,j
∈[0,1]表示像素在(i,j)的置信度。步骤七、构建深度图补全网络的损失函数;步骤701:深度图补全中的重建损失公式如下:其中d
gt
是groundtruth深度图,d
pred
是算法预测出的深度图,d
υ
、v和|v|分别代表像素索引υ处的深度值、d
gt
的有效像素和有效像素数,ρ为1表示l1损失,为2表示l2损失;步骤702:引入3d点云处理中的倒角距离(chamfer distance,cd),cd表示两个点集中相互最近的点取平均值,计算公式为:其中s1和s2为两个3d点云集合,将深度图补全网络预测出的稠密深度图反投影到3d空间得到伪激光点,将groundtruth中的稠密深度图做同样操作,计算它们之间的cd损失;步骤703:结合深度图补全中的重建损失和点云处理中的cd损失迭代,最终的损失函数为:l=μl
recon
+(1-μ)l
cd
其中μ为深度图重建损失的权重系数;步骤八、采用训练好的模型预测测试集数据,得到深度图补全结果;步骤九、通过开源mvs框架openmvs利用估计出的深度图进行稠密重建、网格重建与纹理贴图;步骤901:替换openmvs中的深度图计算部分,根据colmap计算得的相机位姿与深度图
补全网络预测得到的稠密深度图,通过融合多帧深度图的方法得到稠密点云。步骤902:由步骤901中得到的稠密点云继续使用openmvs中的网格重建得到三维网格模型,使用网格优化模块得到更加精细的网格模型,使用纹理贴图模块得到最终的带纹理的三维表面模型。
技术总结本发明公开了一种可用于室外建筑物三维重建的基于深度学习的可见光图像与激光雷达数据融合的方法,包括以下步骤:首先获取可见光图像和激光雷达数据并进行预处理;其次通过运动恢复结构(StructureFromMotion,SFM)框架COLMAP进行稀疏重建与相机位姿估计;其次构建基于显式表达与空间传播网络(SpatialPropogationNetwork,SPN)结合的深度图补全网络模型,将由可见光图像与激光雷达深度图以及激光雷达点云构成的数据集输入网络模型中进行训练,获得训练后的深度图补全网络模型,将待补全的稀疏激光雷达深度图、点云和可见光图像输入到训练后的模型中,估计出稠密的深度图;最后通过开源的多视角立体视觉(MultipleViewStereo,MVS)框架OpenMVS利用估计出的深度图进行稠密重建、网格重建与纹理贴图。本发明提出了基于显式表达与SPN结合的深度图补全(即融合可见光图像与激光雷达数据)方法,充分利用了二维图像信息与三维空间结构信息,增加了深度图估计的准确度,提升了三维重建的精度。重建的精度。重建的精度。
技术研发人员:谢红梅 曾田子 徐梓雲 邱文 蒋晓悦 姚冠宇 冯晓毅 彭进业 文明 苗阿新 夏召强
受保护的技术使用者:西北工业大学
技术研发日:2022.08.30
技术公布日:2022/12/1