1.本技术涉及遥感测绘地理信息技术领域,尤其涉及基于深度学习的实景三维语义重建方法、装置及存储介质。
背景技术:
2.三维重建和场景理解是计算机领域的一个研究热点。具有正确几何结构和语义分割的三维模型在城市规划、自动驾驶、机器视觉等领域至关重要。在城市场景中,语义标签用于可视化建筑物、植被和道路等目标。带有语义标签的三维点云使得三维地图更易于理解,有利于后续的研究和分析。尽管三维语义建模已被广泛研究,但在点云重建过程中,提取语义信息的不同方式常常会导致不一致或错误的结果。相对二维图像,点云数据的语义分割更困难。在缺少三维点云训练数据的情况下,标注点云比标注二维图像更费力。另一个挑战是三维点云所带来的不可避免的噪声,这导致难以精确地知道点云属于哪一类。因此,有必要通过在多个视图上同时估计三维几何语义信息来开发新的语义三维重建方法。
3.在过去的几年里,许多关于图像语义分割的研究已经通过深度学习技术取得了令人鼓舞的成果。深度学习技术以训练好的神经网络为基础,可以帮助各种图像像素级语义分割。同时,深度学习技术的不仅能够提取图像语义信息,而且对于深度图估计问题的求解具有实际意义。近年来,已有许多基于深度学习的深度图估计方法,为大规模场景生成高精度的三维点云。
4.但是如何在大规模场景中对物体进行准确的标注是待解决的主要问题。
技术实现要素:
5.本技术实施例通过提供基于深度学习的实景三维语义重建方法,解决了现有技术中多场景标注不准确的问题,实现了在场景对象较多、堆叠严重等情况下的高精度分割;并且在大规模场景中,深度估计网络性能不受影响,可实现多种场景下稳定且准确的估计。本技术构建的语义三维重建算法较其他传统的三维重建算法提升了计算速度。
6.第一方面,本技术实施例提供了深度学习的实景三维语义重建方法,该方法包括:获取航拍图像;对所述航拍图像进行语义分割,确定像素概率分布图;对所述航拍图像进行运动恢复结构,确定所述航拍图像的相机位姿;对所述航拍图像进行深度估计,确定所述航拍图像的深度图;将所述像素概率分布图、所述相机位姿以及所述深度图进行语义融合,确定三维语义模型。
7.结合第一方面,在一种可能的实现方式中,所述确定像素概率分布图,包括:对语义分割网络算法进行修改,确定修改后的算法;采用训练集对所述修改后的算法进行迁移学习,确定所述像素概率分布图。
8.结合第一方面,在一种可能的实现方式中,所述对所述航拍图像进行运动恢复结
构,包括采用sfm算法对所述航拍图像进行运动恢复结构。
9.结合第一方面,在一种可能的实现方式中,所述对所述航拍图像进行运动恢复结构还包括:得出所述航拍图像的相机参数和深度范围。
10.结合第一方面,在一种可能的实现方式中,所述确定所述航拍图像的深度图,包括:采用基于mvsnet生成所述航拍图像的深度图;使用数据集对所述深度图进行训练,确定训练后的深度图。
11.结合第一方面,在一种可能的实现方式中,在进行将所述像素概率分布图、所述相机位姿以及所述深度图进行语义融合之前,包括:对所述深度图中的数据进行去噪处理。
12.结合第一方面,在一种可能的实现方式中,采用相邻视图投影过滤所述深度图,确定过滤后像素深度图;融合所述过滤后像素深度图、所述像素概率分布图以及所述相机位姿,确定三维语义模型。
13.第二方面,本技术实施例提供了基于深度学习的实景三维语义重建装置,该装置包括:图像获取模块,用于获取航拍图像;语义分割模块,用于对所述航拍图像进行语义分割,确定像素概率分布图;相机位姿确定模块,用于对所述航拍图像进行运动恢复结构,确定所述航拍图像的相机位姿;深度图确定模块,用于对所述航拍图像进行深度估计,确定所述航拍图像的深度图;三维语义模型确定模块,用于将所述像素概率分布图、所述相机位姿以及所述深度图进行语义融合,确定三维语义模型。
14.结合第二方面,在一种可能的实现方式中,所述语义分割模块包括,对语义分割网络算法进行修改,确定修改后的算法;采用训练集对所述修改后的算法进行迁移学习,确定所述像素概率分布图。
15.结合第二方面,在一种可能的实现方式中,所述相机位姿确定模块包括,对所述航拍图像进行运动恢复结构,包括采用sfm算法对所述航拍图像进行运动恢复结构。
16.结合第二方面,在一种可能的实现方式中,所述相机位姿确定模块包括,得出所述航拍图像的相机参数和深度范围。
17.结合第二方面,在一种可能的实现方式中,所述深度图确定模块包括,采用基于mvsnet生成所述航拍图像的深度图;使用数据集对所述深度图进行训练,确定训练后的深度图。
18.结合第二方面,在一种可能的实现方式中,所述三维语义模型确定模块包括,对所述深度图中的数据进行去噪处理。
19.结合第二方面,在一种可能的实现方式中,三维语义模型确定模块包括,采用相邻视图投影过滤所述深度图,确定过滤后像素深度图;融合所述过滤后像素深度图、所述像素概率分布图以及所述相机位姿,确定三维
语义模型。
20.第三方面,本技术实施例提供基于深度学习的实景三维语义重建的服务器,包括存储器和处理器;所述存储器用于存储计算机可执行指令;所述处理器用于执行所述计算机可执行指令,以实现第一方面所述的方法。
21.第四方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有可执行指令,计算机执行所述可执行指令时以实现第一方面所述的方法。
22.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:本技术实施例通过采用基于深度学习的实景三维语义重建方法,该方法包括:获取航拍图像;对航拍图像进行语义分割,确定像素概率分布图;对航拍图像进行运动恢复结构,确定航拍图像的相机位姿;对航拍图像进行深度估计,确定航拍图像的深度图;将像素概率分布图、相机位姿以及深度图进行语义融合,确定三维语义模型。有效解决了现有技术中多场景标注不准确的问题,实现了在场景对象较多、堆叠严重等情况下的高精度分割;并且在大规模场景中,深度估计网络性能不受影响,可实现多种场景下稳定且准确的估计。本技术构建的语义三维重建算法较其他传统的三维重建算法提升了计算速度。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对本技术实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为本技术实施例提供的基于深度学习的实景三维语义重建方法步骤示意图;图2为本技术实施例提供的深度学习的实景三维语义重建方法的流程示意图;图3为本技术实施例提供的深度学习的实景三维语义重建方法中像素概率分布图的步骤流程示意图;图4为本技术实施例提供的深度学习的实景三维语义重建方法中航拍图像;图5为本技术实施例提供的深度学习的实景三维语义重建方法中传统二维卷积作为初始权重处理后的图像;图6为本技术实施例提供的深度学习的实景三维语义重建方法中改进的算法处理后得到的图像;图7为本技术实施例提供的深度学习的实景三维语义重建方法中生成的相机位姿和场景几何结构图;图8为本技术实施例提供的深度学习的实景三维语义重建方法中基本的sfm流程示意图;图9为本技术实施例提供的深度学习的实景三维语义重建方法中确定航拍图像的深度图的步骤流程示意图;图10为本技术实施例提供的深度学习的实景三维语义重建方法中确定的航拍图像的深度图;图11为本技术实施例提供的深度学习的实景三维语义重建方法中确定的航拍图
像去噪后的深度图;图12为本技术实施例提供的深度学习的实景三维语义重建方法中确定三维语义模型步骤流程示意图;图13为本技术实施例提供的深度学习的实景三维语义重建方法中语义三维重建点云图;图14为本技术实施例提供的深度学习的实景三维语义重建装置示意图;图15为本技术实施例提供的深度学习的实景三维语义重建服务器示意图。
具体实施方式
25.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
26.作为一项具有挑战性的任务,语义三维模型近年来受到广泛的关注,借助小型无人机,可以方便的采集大规模场景的多视角高分辨率的航空图像。本技术提出深度学习的实景三维语义重建方法,该方法通过卷积神经网络获得二维图像的语义概率分布;利用运动恢复结构(sfm,structure from motion)和基于深度学习的从多视图的密集重建(mvs,multi view system)方法估计相机的姿态和场景三维结构;结合二维分割和三维几何信息,采用基于语义概率融合的方法,生成具有语义标记的稠密点云。实验结果表明,该方法在保证多视图几何的一致性的基础上,能有效地生成三维精细语义点云。最后对二维分割图像进行了评价,达到了85%的准确度。
27.本技术实施例提供了深度学习的实景三维语义重建方法,该方法包括如图1所示的以下步骤:步骤s101,获取航拍图像。
28.步骤s102,对航拍图像进行语义分割,确定像素概率分布图。
29.步骤s103,对航拍图像进行运动恢复结构,确定航拍图像的相机位姿。
30.步骤s104,对航拍图像进行深度估计,确定航拍图像的深度图。
31.步骤s105,将像素概率分布图、相机位姿以及深度图进行语义融合,确定三维语义模型。
32.在本技术中,是针对大规模的航拍图像,提出深度学习的实景三维语义重建方法,如图2所示,结合三维几何一致性和二维分割信息,在场景对象较多,堆叠较严重的情况下能够达到精度较高的分割,在大规模的场景中,深度估计网络的性能不受影响,网络可以在多种场景下进行稳定且精准的估计,且本技术提供的方法较之传统的方法节省了计算空间,提高了计算效率。
33.在步骤s102中,确定像素概率分布图,包括如图3所示的以下步骤:步骤s301,对语义分割网络算法进行修改,确定修改后的算法。
34.步骤s302,采用训练集对修改后的算法进行迁移学习,确定像素概率分布图。
35.在本技术中,使用deeplabv3 作为图像分割的语义分割网络,使用imgaenet数据集上训练的resnet
‑
101网络作为初始权重。为了提高网络训练效果,用resnet来代替传统
的二维卷积层。在此期间,将argmax层替换为softmax层,以输出每张航拍图像的逐个像素分类概率值。使用pascalvoc训练集进行语义分割网络迁移学习。在测试集中以l={l
0,
l
1,
l
2,
l
3,
l4}表示包含植被,建筑、道路、车辆和背景的标记空间,其中l表示标签空间,l0表示植被的标记空间,l1表示建筑的标记空间,l2表示道路的标记空间,l3表示车辆的标记空间,l4表示背景的标记空间。通过迁移学习方法,在重建数据集上预测每张图像逐个像素分类概率分布图。如图4所示为航拍图像,图5为上述的传统二维卷积作为初始权重,处理后的图像,图6为改进本技术改进的算法处理得到的图像。
36.在步骤s103中,对航拍图像进行运动恢复结构,包括采用sfm对航拍图像进行运动恢复结构。对航拍图像进行运动恢复结构还包括:得出航拍图像的相机参数和深度范围。如图7所示为生成的相机位姿和场景几何结构图。如图8所示一个基本的sfm流程为:提取每张二维图像的特征点,对图像之间的特征计算匹配关系,只保留满足极限几何约束的匹配,最后对每个图像都进行相对迭代计算基础矩阵,恢复相机的内参和外参,用三角化方法计算三维点坐标,然后使用捆绑调整的方法对全局结果进行优化。
37.在步骤s104中,确定航拍图像的深度图,包括如图9所示的以下步骤:步骤s901,采用基于非结构化多视点三维重建网络(mvsnet,mult
‑
viewstereonet)生成航拍图像的深度图。
38.步骤s902,使用数据集对深度图进行训练,确定训练后的深度图。
39.本技术使用了基于深度学习的多视角立体方法来估计多幅图像的深度图。mvsnet是一种深度学习架构,具有处理多尺度分辨率图像深度图估计的能力,在处理高分辨率图像和大规模场景方面具有优势。本技术采用mvsnet生成相应图像的深度图,如图10所示为深度图。并通过多视图立体匹配数据集(blendedmvs,mult
‑
viewstereoblended)对深度图进行训练。相机参数由sfm确定,深度采样区间则在[d
min
,d
max
],d
min
表示深度最小值,d
max
表示深度最大值,在深度最大值和深度最小值中使用反向深度设置进行选择,返回概率体p,在概率体p中,p(x,y,d)是深度d处像素(x,y)的概率估计值;而d(x,y)是对所有假设的概率加权和来计算的。具体公式为:,其中,d
min
表示深度最小值,d
max
表示深度最大值,d(x,y)表示深度值期望,d表示深度值,p(x,y,d)表示深度d处像素(x,y)的概率估计值。
[0040]
在进行将像素概率分布图、相机位姿以及深度图进行语义融合之前,包括:对深度图中的数据进行去噪处理,处理后的深度图,如图11所示。
[0041]
与大多数深度估计方法一样,由mvsnet生成的粗略像素级深度数据可能包含误差,因此,在进行点云融合之前,需要对深度数据进行去噪处理。在本技术中,采用双边滤波的方法来进行去噪处理。既能提高深度图的质量,又能保持边缘。具体的双边滤波公式如下所示:。
[0042]
其中,d'(x,y)表示优化后的深度值,w(x,y,i,j)表示加权系数,d(x,y)表示深度值期望,x,y表示像素点的横纵坐标值,i,j表示双边滤波器的中心点的横纵坐标值。
[0043]
在步骤s105中,确定三维语义模型,如图12所示包括以下步骤:步骤s1201,采用相邻视图投影过滤深度图,确定过滤后像素深度图。
[0044]
步骤s1202,融合过滤后像素深度图、像素概率分布图以及相机位姿,确定三维语义模型。
[0045]
通过学习2d分割和深度估计,可得到每个视图的像素级2d语义标签和深度图。然而,由于遮挡、环境的复杂性和传感器的噪声,图像分割结果和深度图在不同视图之间可能存在大量的不一致性。因此,进一步通过相邻视图投影过滤深度图,然后通过结合融合过滤后像素深度图、像素概率分布图以及相机位姿的三维语义模型来产生三维点云。
[0046]
在步骤s1201中,采用几何一致性来对多视图立体几何方法估计的深度图进行过滤。n视图是一个位置的多角度的视图的深度图,n={n0,n1...n
i
,n
j
}。深度图为三维图像,在进行投影时,n视图中某一张深度图上点,记为a(x,y,d),取点a(x,y,d)中的x,y坐标,作为可见点进行过滤计算,可见点记为可见点x(x,y)。
[0047]
给定n视图中的图像n
i
中可见点x(x,y),优化后的深度值为d'(x,y),结合相机参数,将可见点x(x,y)投影到图像n
j
上,得到图像n
j
上可见点x(x,y)的投影像素点,将投影像素点从图像n
j
重新投影回图像n
i
上,得到图像n
i
上可见点x(x,y)的投影深度数据d
reproj
。当d
reproj
满足以下条件时,认为像素一致。。本技术τ=0.01。根据几何一致性的要求,过滤掉k个像素不一致的点,在本技术中k=3。
[0048]
结合像素概率分布图中各标记空间l
j
的概率,l
j
是在标签空间中第j个标记空间,其中l={l
0,
l
1,
l
2。。。。。
l
m
},j∈m。
[0049]
图像n
i
中可见点x(x,y)的标记空间l
j
的概率为p
i
(l
j
),图像n
i
中可见点x(x,y)的概率平均值如下:,其中,p
i
(l
j
)表示图像n
i
中可见点x(x,y)的标记空间l
j
的概率,p(l
j
)表示图像n
i
中可见点x(x,y)的概率平均值,l表示标签空间。
[0050]
通过argmax操作可以识别出图像n
i
中可见点x(x,y)三维语义标签:其中,表示图像n
i
中可见点x(x,y)的三维语义标签,p(l
j
)表示图像n
i
中可见点x(x,y)概率平均值,l表示标签空间。
[0051]
再将可见点x(x,y)恢复为原三维坐标点,即为a(x,y,d),则根据上述的计算得到点a(x,y,d)的三维语义标签为。利用该方法可以将多视角图像的概率分布转化至三维空间。概率融合方法能够有效地减少错误,因为它整合了来自多个图像的信息,如图13所示是语义三维重建点云图。
[0052]
本技术实施例提供了基于深度学习的实景三维语义重建装置如图14所示,该装置包括:图像获取模块1401,用于获取航拍图像;语义分割模块1402,用于对航拍图像进行语义分割,确定像素概率分布图;相机位姿确定模块1403,用于对航拍图像进行运动恢复结构,确定航拍图像的相机位姿;深度图确定模块1404,用于对航拍图像进行深度估计,确定航拍图像的深度图;三维语义模型确定模块1405,用于将像素概率分布图、相机位姿以及深
度图进行语义融合,确定三维语义模型。
[0053]
其中,语义分割模块包括1402,对语义分割网络算法进行修改,确定修改后的算法;采用训练集对修改后的算法进行迁移学习,确定像素概率分布图。相机位姿确定模块1403包括,对航拍图像进行运动恢复结构,包括采用sfm算法对航拍图像进行运动恢复结构。还包括得出航拍图像的相机参数和深度范围。深度图确定模块1404包括,采用基于mvsnet生成航拍图像的深度图;使用数据集对深度图进行训练,确定训练后的深度图。三维语义模型确定模块1405包括,对深度图中的数据进行去噪处理。三维语义模型确定模块1405还包括,采用相邻视图投影过滤深度图,确定过滤后像素深度图;融合过滤后像素深度图、像素概率分布图以及相机位姿,确定三维语义模型。
[0054]
本技术实施例提供基于深度学习的实景三维语义重建的服务器,如图15所示,包括存储器1501和处理器1502;存储器1501用于存储计算机可执行指令;处理器1502用于执行计算机可执行指令,以实现深度学习的实景三维语义重建方法。
[0055]
本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有可执行指令,计算机执行可执行指令时以实现深度学习的实景三维语义重建方法。
[0056]
在本技术中,通过利用语义分割网络预测语义概率分布、利用sfm估计相机参数和姿态、利用深度图估计网络估计参考图像深度图以及结合二维语义概率分布和三维几何信息,采用语义融合方法,生成精细的三维语义模型的方法,与现有的语义三维重建技术相比,本技术的技术方案具有如下优点: 本技术在场景对象较多、堆叠严重等情况下分割精度较高;在大规模场景中,深度估计网络性能不受影响,网络可以在多种场景下进行稳定且准确的估计。本技术构建的语义三维重建算法较其他传统的三维重建算法速度提升了不少。
[0057]
上述存储介质包括但不限于随机存取存储器(英文:random access memory;简称:ram)、只读存储器(英文:read
‑
only memory;简称:rom)、缓存(英文:cache)、硬盘(英文:hard disk drive;简称:hdd)或者存储卡(英文:memory card)。所述存储器可以用于存储计算机程序指令。
[0058]
虽然本技术提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。本实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照本实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
[0059]
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。当然,也可以将实现某功能的模块由多个子模块或子单元组合实现。
[0060]
本技术中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(英文:application specific integrated circuit;简称:asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、
atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0061]
本技术所述装置中的部分模块可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0062]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的硬件的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,也可以通过数据迁移的实施过程中体现出来。该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0063]
本说明书中的各个实施方式采用递进的方式描述,各个实施方式之间相同或相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。本技术的全部或者部分可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、移动通信终端、多处理器系统、基于微处理器的系统、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0064]
以上实施例仅用以说明本技术的技术方案,而非对本技术限制;尽管参照前述实施例对本技术进行了详细的说明,本领域普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术技术方案的范围。
转载请注明原文地址:https://win.8miu.com/read-28594.html