CN115035235A - 三维重建方法及装置 - Google Patents
三维重建方法及装置 Download PDFInfo
- Publication number
- CN115035235A CN115035235A CN202110245151.3A CN202110245151A CN115035235A CN 115035235 A CN115035235 A CN 115035235A CN 202110245151 A CN202110245151 A CN 202110245151A CN 115035235 A CN115035235 A CN 115035235A
- Authority
- CN
- China
- Prior art keywords
- image
- semantic
- initial
- plane
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims description 41
- 230000011218 segmentation Effects 0.000 claims description 40
- 230000003287 optical effect Effects 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 12
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 28
- 238000001914 filtration Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 17
- 238000004891 communication Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 12
- 238000009877 rendering Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000004927 fusion Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 238000000513 principal component analysis Methods 0.000 description 5
- 241000086550 Dinosauria Species 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/08—Projecting images onto non-planar surfaces, e.g. geodetic screens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了一种三维重建方法与三维重建装置,涉及计算机视觉领域。该方法包括:根据图像的目标语义标签将初始深度图中的平面区域转换为对应的平面的点云,根据平面的点云即可确定平面的平面参数,进而根据平面参数得到初始深度图中的平面区域的像素在空间中对应的三维点,以构建图像中的平面区域对应的点云。本申请的方案能够提高平面区域的三维重建的精度以及稠密度。
Description
技术领域
本申请涉及计算机视觉领域,尤其涉及一种三维重建方法及装置。
背景技术
计算机视觉是各个应用领域,如制造业、检验、文档分析、医疗诊断,和军事等领域中各种智能/自主系统中不可分割的一部分,它是一门关于如何运用照相机/摄像机和计算机来获取我们所需的,被拍摄对象的数据与信息的学问。形象地说,就是给计算机安装上眼睛(照相机/摄像机)和大脑(算法)用来代替人眼对目标进行识别、跟踪和测量等,从而使计算机能够感知环境。因为感知可以看作是从感官信号中提取信息,所以计算机视觉也可以看作是研究如何使人工系统从图像或多维数据中“感知”的科学。总的来说,计算机视觉就是用各种成象系统代替视觉器官获取输入信息,再由计算机来代替大脑对这些输入信息完成处理和解释。计算机视觉的最终研究目标就是使计算机能像人那样通过视觉观察和理解世界,具有自主适应环境的能力。
随着增强现实(augmented reality,AR)技术的发展,新型的AR应用层出不穷,其中,与现实场景相关的交互离不开场景的三维(three dimensional,3D)稠密重建。当前的主流的3D稠密重建方案主要包括基于激光的3D稠密重建和基于图像的3D稠密重建。基于激光的3D稠密重建使用激光设备对环境进行扫描,获取精度很高的深度图,然后将深度图融合得到最终的稠密点云。该方案得到的点云精度很高,但是,激光设备的体积较大,使用过程繁琐,基于激光的3D稠密重建方案存在成本高、效率低等缺点。基于图像的3D稠密重建方案中,利用采集设备,例如,手机,采集图像序列,然后通过算法处理得到稠密点云。该方案具有采集效率高、成本低、精度高以及支持3D建图-定位紧耦合等优点,具有非常广阔的应用前景。目前,有很多开源方案能够实现基于图像的3D稠密重建,例如,OpenMVS、colmap、PMVS、MVSNet等。
然而,现有的基于图像的3D稠密重建的方案中,平面区域等弱纹理区域上估计出的深度值不准确,在滤波阶段会被滤除,进而导致融合后得到的点云上会形成空洞,即无法重建出准确的点云。
因此,如何提高平面区域的三维重建效果成为一个亟待解决的问题。
发明内容
本申请提供一种三维重建方法及装置,能够提高平面区域的三维重建效果。
第一方面,提供了一种三维重建方法,包括:获取多帧图像对应的初始深度图;获取该多帧图像对应的初始深度图的目标语义标签,该目标语义标签包括第一语义标签,第一语义标签用于指示多帧图像对应的初始深度图中具有第一语义标签的像素属于第一平面;将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,得到第一平面的点云;将多帧图像对应的初始深度图转换为多帧图像对应的点云,其中,多帧图像包括第一图像,第一图像中的第一像素对应的三维点为第一直线与第一平面的交点,第一像素具有第一语义标签,第一直线是根据第一图像的位姿和第一像素在第一图像中的位置确定的;将多帧图像对应的点云进行融合,得到融合后的目标点云。
在本申请实施例的方案中,根据图像的目标语义标签将初始深度图中的平面区域转换为对应的平面的点云,根据平面的点云即可确定平面的平面参数,进而根据平面参数得到平面区域中的像素在空间中对应的三维点,通过该方式能够得到平面区域对应的较为准确的三维点,避免弱纹理的平面区域的点云中出现空洞,有利于提高三维重建的精度以及稠密度。
而且,二维图像数据更易采集,本申请实施例的方案中的多帧图像为二维图像,有利于降低数据采集成本。
二维图像指的是不包括深度信息的平面图像,例如,RGB图像。
多帧图像对应的初始深度图是对多帧图像进行处理得到的。多帧图像中的像素与初始深度图中的像素是一一对应的。
示例性地,图像的语义标签可以为平面语义标签,像素的平面语义标签用于指示该像素所属的平面。
例如,像素的平面语义标签的值为0,则该像素不位于平面上,若像素的平面语义标签的值为非零值,则该像素位于某个平面上。进一步地,若两个像素的平面语义标签的值相同,则该两个像素位于同一个平面上。
具有第一语义标签的像素可以位于一帧图像中,也可以位于多帧图像中。
平面的点云和目标语义标签之间具有对应关系。第一平面的点云也可以理解为第一语义标签对应的点云。
结合第一方面,在第一方面的某些实现方式中,将多帧图像对应的初始深度图转换为多帧图像对应的点云,包括:更新多帧图像对应的初始深度图的深度值,得到多帧图像对应的目标深度图,其中,第一图像对应的目标深度图中的第一像素的深度值是根据第一图像的位姿将第一像素对应的三维点投影至第一图像对应的目标深度图上得到的;将多帧图像对应的目标深度图转换为多帧图像对应的点云。
根据本申请实施例的方案,根据语义标签将初始深度图中的平面区域转换为对应的点云,进而根据该点云的平面参数得到平面区域中的像素的实际深度值,以更新初始深度图中的平面区域的深度值,从而得到弱纹理的平面区域中较为准确的深度信息,有利于提高三维重建的精度以及稠密度。
结合第一方面,在第一方面的某些实现方式中,目标语义标签是通过对多帧图像进行图像语义分割处理得到的。
结合第一方面,在第一方面的某些实现方式中,多帧图像属于图像序列,以及目标语义标签是通过对图像序列中的初始语义标签进行合并得到的,图像序列中的图像的初始语义标签是通过对图像进行图像语义分割处理得到的,其中,第一语义标签是根据第一图像中的第一初始语义标签和在图像序列中的第二图像中的第二语义标签合并后得到的语义标签确定的,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
根据本申请实施例的方案,对图像序列中的初始语义标签进行合并得到全局标签,将该多帧图像的全局标签作为目标语义标签,以便于从多帧图像中提取出属于同一个平面的三维点,即将属于同一平面的像素转换为同一个点云,增加了一个语义标签对应的像素的数量,解决了单帧图像中可能存在的部分平面语义标签所对应的区域有效像素较少或者像素值不准确的问题,提高了转换后得到的点云的准确性,进而提高了平面参数的准确性,进一步提高了三维重建的精度。
第一图像的初始语义标签包括第一初始语义标签,第二图像的初始语义标签包括第二初始语义标签。
结合第一方面,在第一方面的某些实现方式中,多帧图像属于图像序列,以及目标语义标签是通过对图像序列中的初始语义标签进行合并得到的,图像序列中的图像的初始语义标签是通过对图像进行图像语义分割处理得到的,其中,第一语义标签是根据第一图像中的第一初始语义标签和在图像序列中与第一图像相邻的第二图像中的第二语义标签合并后得到的语义标签确定的,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
结合第一方面,在第一方面的某些实现方式中,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的,包括:合并后得到的语义标签是在第一区域中的重叠的区域中的像素的数量与第一区域中的像素的数量的比值大于或等于第一阈值,和/或第二区域中的重叠的区域中的像素的数量与第二区域中的像素的数量的比值大于或等于第一阈值的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
根据本申请实施例的方案,在重叠区域中的像素数量满足条件的情况下合并初始语义标签,提高了标签合并结果的准确性,进而提高三维重建的精度。
结合第一方面,在第一方面的某些实现方式中,第一平面的点云的平面参数包括:第一平面的法向量和第一平面中的目标三维点。
示例性地,点云对应的平面的法向量可以通过PCA算法确定。
示例性地,第一平面中的目标三维点可以是第一平面的点云中的任一个三维点。
结合第一方面,在第一方面的某些实现方式中,第一平面中的目标三维点是通过对第一平面的点云中的三维点计算平均值得到的。
根据本申请实施例的方案,通过对第一平面的点云中的三维点计算平均值得到第一平面中的目标三维点,提高了平面参数的准确性,进而提高三维重建的精度。
结合第一方面,在第一方面的某些实现方式中,将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,得到第一平面的点云,包括:将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,对转换后得到的三维点进行滤波处理,得到第一平面的点云。
例如,对转换后得到的点云进行统计滤波和半径滤波,这样可以去除外围飞点,提高点云的准确性。
结合第一方面,在第一方面的某些实现方式中,第一图像的位姿包括拍摄第一图像的设备的光心位置。
结合第一方面,在第一方面的某些实现方式中,第一直线是根据拍摄第一图像的设备的光心位置与第一三维点的位置确定的,第一三维点是根据第一像素在第一图像中的位置以及第一像素的初始深度值将第一像素转换至空间中得到的。
第二方面,提供了一种三维重建装置,装置包括用于执行上述第一方面以及第一方面中的任意一种实现方式中的方法的模块或单元。
应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面中相同的内容。
第三方面,提供一种三维重建装置,该装置包括:存储器,用于存储程序;处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第四方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面以及第一方面中的任意一种实现方式中的方法。
第六方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面以及第一方面中的任意一种实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第七方面,提供一种电子设备,该电子设备包括上述第二方面以及第二方面中的任意一种实现方式中的三维重建装置。
附图说明
图1为虚拟物体渲染的示意性效果图;
图2为AR导航的示意性效果图;
图3为虚实遮挡交互的示意性效果图;
图4为本申请实施例提供的一种三维重建装置的示意性框图;
图5为本申请实施例提供的另一种三维重建装置的示意性流程图;
图6为本申请实施例提供的三维重建方法的示意性流程图;
图7为本申请实施例提供的深度补全过程的示意图;
图8为本申请实施例提供的构建稀疏点云的示意性流程图;
图9为本申请实施例提供的不同方案得到的图像对应的点云的对比图;
图10为本申请实施例提供的现有方案和本申请的方案得到的图像序列对应的点云的对比图;
图11为本申请实施例提供的不同方案得到的点云的虚实遮挡效果的对比图;
图12为本申请实施例提供的本申请的两种方案得到的图像序列对应的点云的对比图;
图13为本申请实施例提供的一种三维重建装置的示意性框图;
图14为本申请实施例提供的另一种三维重建装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
3D重建是通过使用不同角度拍摄的图像来恢复场景中物体的3D模型。3D重建可以使用彩色图像或深度图像实现。深度图像由深度图像传感器(也称为深度传感器)采集,例如,飞行时间(time of flight,TOF)传感器、光检测和测距(light detection andranging,LiDAR)设备或结构光传感器等。深度图像中每个像素的像素值用于表示深度传感器到场景中对应点的距离(或深度)。例如,深度传感器可以向场景发射信号,并基于发射信号与反射信号之间的时间差测量距离。深度传感器可以提供直接、快速、准确的深度信息。
彩色图像由彩色图像传感器(也称为颜色传感器)采集,例如常规红绿蓝(red,green,and blue,RGB)相机、数字单反(digital single-lens reflex,DSLR)相机、网络摄像机、手机、平板电脑或近眼显示设备等电子设备。彩色图像中每个像素的像素值用于表示场景中某一点的颜色。例如,彩色图像可以是RGB图像、黑白图像或灰度图像。虽然彩色图像本身不包含深度信息,但可以利用不同角度获取的多幅彩色图像,通过三角剖分(triangulation)技术确定场景中某一点的深度信息。
具体地,3D模型可以通过3D点云表示。点云(point cloud)指的是物体表面的点的集合,点云中包括该集合中的点的三维坐标。点云可以分为稀疏点云和稠密点云。稀疏点云中的点的数量较少,点与点之间的间距较大。稠密点云中的点的数量较多,点与点之间的间距较小。
本申请实施例中的3D重建方法也可以理解为构建3D稠密点云的方法,通过3D重建得到物体或场景的3D稠密点云。
本申请的方法能够应用于虚拟物体渲染、AR导航以及虚实遮挡交互与渲染等三维重建场景中,下面分别对虚拟物体渲染、AR导航以及虚实遮挡交互与渲染三个场景进行说明。
(1)虚拟物体渲染
图1示出了一种虚拟物体渲染的示意图。在AR应用中经常需要对重建的物体或者场景进行渲染,让用户可以从全局的角度查看完整的物体或完整的场景,如图1所示。
本申请实施例中的方法能够提高弱纹理区域的3D重建效果,即提高3D稠密点云在弱纹理区域的准确性。
示例性地,本申请实施例的方案能够应用于各种计算设备,例如近眼显示设备或终端设备上。例如,本申请实施例的方案能够内置于终端中,即由终端执行本申请实施例的方法,以实现虚拟物体渲染。或者,本申请实施例的方案能够部署于终端上的应用程序(application,APP)中,即通过APP调用执行本申请实施例的方法,以实现虚拟物体渲染。
(2)AR导航
图2示出了AR导航的示意图,如图2所示,AR导航利用AR的方式实现实景导航。AR导航的基础是3D重建和视觉定位服务(visual positioning service,VPS),即通过3D重建实现地图构建,通过VPS实现高精度的定位。
本申请实施例的方案能够为AR导航构建精度更高的地图(即3D稠密点云),进而提升VPS的定位效果,从而大大提高用户体验。
示例性地,本申请实施例的方案能够应用于各种计算设备,例如近眼显示设备或终端设备上。例如,本申请实施例的方案能够内置于终端中,即由终端执行本申请实施例的方法,为用户提供AR导航服务,提高用户体验。或者,本申请实施例的方案能够部署于终端上的APP中,即通过APP调用执行本申请实施例的方法,为用户提供AR导航服务,提高用户体验。
(3)虚实遮挡交互与渲染
图3示出了一种虚实遮挡交互与渲染的示意图。AR应用注重虚拟和现实的交互,例如,如图3所示中的虚拟小恐龙、虚拟篮球和现实场景的交互。为了得到更真实的交互体验,需要保证3D重建的效果。例如,为了实现虚拟小恐龙的遮挡效果,需要保证虚拟小恐龙前方区域重建效果,即3D稠密点云足够稠密且准确,若虚拟小恐龙前方为弱纹理区域,该弱纹理区域的重建效果较差,即3D稠密点云中出现空洞,则无法实现虚拟小恐龙的遮挡效果。再如,为了实现虚拟篮球的碰撞效果,需要保证虚拟篮球的周围区域的重建效果,3D稠密点云足够稠密且准确,若虚拟篮球周围为弱纹理区域,该弱纹理区域的重建效果较差,即3D稠密点云中出现空洞,则无法实现虚拟篮球的碰撞效果。
本申请实施例提供的方法能够提高在弱纹理区域的3D重建效果,即提高3D稠密点云在弱纹理区域的效果,通过渲染生成的3D稠密点云,可以确保用户在弱纹理等区域,也能获得好的虚实交互体验。
示例性地,本申请实施例的方案能够应用于各种计算设备,例如近眼显示设备或终端设备上。例如,本申请实施例的方案能够内置于终端中,即由终端执行本申请实施例的方法,以实现虚拟和现实的交互,为用户提供更好的虚实交互体验。或者,本申请实施例的方案能够部署于终端上的APP中,即通过APP调用执行本申请实施例的方法,以实现虚拟和现实的交互,为用户提供更好的虚实交互体验。
基于激光的3D重建方法能够得到较高精度的3D点云,但存在重建成本高、效率低等问题。基于图像的3D重建方法具有采集效率高、成本低、精度高等优点,但该方法得到的3D点云在弱纹理区域易形成空洞,重建效果差。其中,弱纹理区域指的是不存在显著的纹理特征的区域,具体地,弱纹理区域的像素点在颜色和亮度上较为相似,即像素具有不可区分性。示例性地,弱纹理区域可以包括平面区域,例如,墙面、地面或天花板等。
现有的基于图像的3D重建方法,本质上是基于特征点或特征块的一致性匹配,但在弱纹理区域,这种匹配是不可靠的,在后续的深度值的准确性验证时,弱纹理区域的点的深度值基本都会被删除,导致最终的3D稠密点云上出现空洞。例如,在openMVS方案中,首先基于图像块之间的相似匹配度,估计每帧图像的深度图,然后利用邻域图像等信息进行校验,滤除深度图上不可靠的像素的深度值,最后将滤波后的深度图进行融合,得到3D稠密点云。该方法的核心在于利用图像块之间的相似性,但是,对于弱纹理区域,一张图像上的图像块可能与另一张图像上的多个图像块之间的相似性均很高,这样会导致估计出的深度值不准确,在滤波阶段会被滤除,形成3D稠密点云上的空洞。
本申请实施例提出一种三维重建方法,在弱纹理区域能够得到更准确的3D稠密点云,提高弱纹理区域的三维重建效果。
为了更好地描述本申请实施例的方法,下面结合附图对本申请实施例的三维重建装置进行说明。
图4示出了本申请实施例的一种三维重建装置,如图4所示,装置400包括图像位姿和稀疏点云估计模块410、形状语义分割模块420以及稠密点云重建模块430。
图像位姿和稀疏点云估计模块410用于得到输入的图像序列的位姿和稀疏点云。
该图像序列为二维图像序列,二维图像指的是不包括深度值的图像。本申请实施例中,二维图像也可以理解为前述彩色图像,例如,二维图像可以为RGB图像,该图像序列可以为RGB图像序列。
图像序列包括多帧在不同角度采集的图像。图像序列的位姿指的是图像序列中的多帧图像的位姿,也就是拍摄多帧图像的相机位姿。稀疏点云指的是该图像序列对应的稀疏点云。稀疏点云也可以称为稀疏地图点。
示例性地,图像序列的位姿和稀疏点云可以通过运动恢复结构(structure frommotion,SFM)法得到。在该情况下图像位姿和稀疏点云估计模块410也可以称为SFM模块410。
图像位姿和稀疏点云估计模块410将输出的图像序列的位姿和稀疏点云输入至稠密点云重建模块430中。需要说明的是,图像位姿和稀疏点云估计模块410为可选模块,稠密点云重建模块430也可以从其他设备中获取图像序列的位姿和稀疏点云。
形状语义分割模块420用于对图像序列中的图像进行语义分割处理,得到图像的初始语义标签。
示例性地,本申请实施例中的语义分割处理可以为平面语义分割处理。具体地,为图像中的每个像素赋予平面标签值,得到平面语义标签,这样可以提取出图像中的平面区域。像素的平面语义标签用于指示该像素所属的平面。该像素所属的平面指的是该像素对应的三维点所属的平面。例如,若像素的平面语义标签的值为0,则该像素不位于平面上,若像素的平面语义标签的值为非零值,则该像素位于平面上。进一步地,若两个像素的平面语义标签的值相同,则该两个像素位于同一个平面上。
形状语义分割模块420将输出的图像的初始语义标签作为图像的目标语义标签输入至稠密点云重建模块430中。需要说明的是,形状语义分割模块420为可选模块,稠密点云重建模块430也可以从其他设备获取图像的目标语义标签。
稠密点云重建模块430用于根据图像序列的位姿和稀疏点云以及图像的目标语义标签得到该图像序列对应的三维点云,该三维点云即为稠密点云,三维点云中的点的数量远多于模块410得到的稀疏点云的点的数量。
图5示出了本申请实施例中的另一种三维重建装置的示意图,图5的(a)和(b)分别示出了两种三维重建装置,可以视为图4中的装置的两种具体实现方式。
装置400包括图像位姿和稀疏点云估计模块410、形状语义分割模块420和稠密点云重建模块430。如图5的(a)所示,稠密点云重建模块430包括深度图估计滤波模块431、3D平面拟合模块432、深度图补全模块433以及深度图融合模块434。
深度图估计滤波模块431用于根据图像位姿和稀疏点云估计模块410提供的图像序列的位姿和稀疏点云估计图像序列对应的深度图。进一步地,深度图估计滤波模块431可以对估计出的深度图进行滤波,得到滤波后的深度图,滤波后的深度图可以作为图像序列对应的初始深度图。图像序列中的图像与初始深度图是一一对应的。
深度图估计滤波模块431将输出的图像序列对应的初始深度图输入至3D深度图补全模块433中。需要说明的是,深度图估计滤波模块431是可选模块,也就是说,深度图补全模块433可以从其他设备获取图像序列对应的初始深度图。
3D平面拟合模块432用于根据初始深度图以及目标语义标签得到3D平面。3D平面可以由该3D平面的平面参数确定,3D平面拟合模块432也可以理解为用于得到该3D平面的平面参数。
具体地,3D平面拟合模块432用于将平面语义标签对应的深度值转换为点云,也就是,将具有该平面语义标签的像素转换为点云,该点云即为该平面语义标签所指示的3D平面的点云,进而基于该点云估计出3D平面参数。例如,可以通过主成分分析(principalcomponent analysis,PCA)方法估计出3D平面参数。
深度图补全模块433用于根据3D平面拟合模块430得到的3D平面参数对初始深度图中的深度值进行更新,更新后的深度图即为目标深度图。
深度图融合模块434用于将深度图补全模块450中得到的目标深度图中的像素转换为3D点。3D点的集合为重建后得到的三维点云,该三维点云即为稠密点云。
也就是说,本申请实施例的方法在多视角立体几何(multi-view stereo,MVS)稠密重建的流程中,增加了3D平面拟合模块和深度图补全模块。
如图5的(b)所示,装置400还可以包括标签合并模块440。
标签合并模块440用于将图像序列中的多帧图像的初始语义标签进行合并,得到合并后的语义标签作为多帧图像的目标语义标签,即全局标签(label)。
即将图像序列中的不同图像中指示空间中的同一平面的初始语义标签合并为相同的标签。
标签合并模块440的输入为图像序列中的多帧图像的初始语义标签,其中,图像序列中的多帧图像的初始语义标签可以是由形状语义分割模块420输入至标签合并模块440中的,或者,也可以是平面标签合并模块440从其他设备获取的。
标签合并模块440将多帧图像的目标语义标签输出至3D平面拟合模块432。也就是说,在装置400包括标签合并模块440的情况下,3D平面拟合模块432可以根据初始深度图以及目标语义标签得到平面参数。
下面结合图6至图12对本申请实施例的三维重建方法进行说明。
图6示出了本申请实施例提供的一种三维重建方法600。本申请实施例的方法能够应用于各种计算设备,该计算设备可以是电子设备也可以是服务器,其中,电子设备可以包括但不限于个人计算机、相机、服务器计算机、手持式或膝上型设备、移动设备、计算机、移动机器人、近眼显示设备或无人机等。其中,移动设备可以包括手机、平板电脑、个人数字助理或媒体播放器等。近眼显示设备可以包括AR眼镜或AR头盔等。
在一种可能的实现方式中,由电子设备执行本申请实施例中的三维重建方法,以实现物体或场景的三维重建,在另一种可能的实现方式中,电子设备可以将图像数据发送至其他设备,例如云端服务器或终端设备,由其他设备执行本申请实施例中的三维重建方法。进一步地,其他设备可以将处理后的结果发送至电子设备。
示例性地,本申请实施例的方案能够内置于计算设备中,例如,内置于终端中,即由终端执行本申请实施例的方法。或者,本申请实施例的方案能够部署于计算设备上的应用程序(application,APP)中,例如,部署于终端上的APP中,即通过APP调用执行本申请实施例的方法。
示例性地,方法600可以由图4或图5中的装置400执行。
方法600包括步骤S610至步骤S650,下面对步骤S610至步骤S650进行说明。
S610,获取多帧图像对应的初始深度图。
其中,该多帧图像为二维图像。二维图像指的是不包括深度信息的平面图像,即前述彩色图像,例如,RGB图像。
示例性地,该多帧图像为图像序列中的图像。图像序列为二维图像序列,例如,该图像序列可以为RGB图像序列。
该图像序列包括针对同一场景或者同一物体拍摄得到的多帧图像。例如,该图像序列可以包括从不同视点拍摄的多帧图像。
步骤S610可以包括,从其他设备接收该多帧图像对应的初始深度图;或者,步骤S610也可以包括:对该多帧图像进行处理,得到该多帧图像对应的初始深度图,例如,通过MVS法得到初始深度图,具体描述参见后文,此处不再赘述。本申请实施例对步骤S610中的“获取”的具体方式不做限定。
多帧图像对应的初始深度图是对多帧图像进行处理得到的。多帧图像中的像素与初始深度图中的像素是一一对应的。该多帧图像中的一帧图像中的一个像素的像素值可以用于表示空间中一点的颜色信息,该帧图像对应的初始深度图中的对应的像素的像素值可以用于表示空间中该点与拍摄该图像的设备之间的距离信息。深度图中像素的像素值也可以称为像素的深度值。
S620,获取该多帧图像对应的初始深度图的目标语义标签。
该目标语义标签包括第一语义标签,第一语义标签用于指示具有第一语义标签的像素属于第一平面。
如前所述,多帧图像中的像素与初始深度图中的像素是一一对应的。多帧图像对应的初始深度图的目标语义标签即为多帧图像的目标语义标签。若多帧图像中的一个像素具有某一语义标签,则该像素在多帧图像对应的初始深度图中对应的像素也具有该语义标签。也就是说,本申请实施例中的初始深度图的目标语义标签可以是根据多帧图像的目标语义标签确定的。为了便于描述,后文中仅以多帧图像的目标语义标签进行说明。
步骤S620可以包括:从其他设备接收该多帧图像的目标语义标签;或者,步骤S620也可以包括:对该多帧图像进行处理,得到该多帧图像的目标语义标签,例如,通过对图像进行语义分割得到图像的目标语义标签。本申请实施例对步骤S620中的“获取”的具体方式不做限定。
图像的语义标签指的是图像中的像素的语义标签,像素的语义标签用于指示像素所属的类别。一帧图像中可以包括一个或多个语义标签。具有相同语义标签的像素属于相同类别。
示例性地,图像的语义标签可以为平面语义标签,像素的平面语义标签用于指示该像素所属的平面。该像素所属的平面可以理解为该像素对应的三维点在空间中所属的平面,例如,墙面、地面或天花板等平面。利用平面语义标签可以区分图像中的平面区域。
像素的平面语义标签的值可以根据需要设定。例如,像素的平面语义标签的值为0,则该像素不位于平面上,若像素的平面语义标签的值为非零值,则该像素位于某个平面上。进一步地,若两个像素的平面语义标签的值相同,则该两个像素位于同一个平面上。
本申请实施例中仅以图像的语义标签为平面语义标签为例对方法600进行说明,不对本申请实施例构成限定,只要图像的语义标签能够指示图像中的平面区域即可。
下面以两种具体实现方式(方式1和方式2)为例对多帧图像的目标语义标签进行说明。
方式1
该多帧图像的目标语义标签是通过对该多帧图像进行图像语义分割处理得到的。
可选地,该图像语义分割处理可以为平面语义分割处理。
示例性地,步骤S620可以由装置400中的形状语义分割模块420执行。
具体地,通过语义分割模型对图像进行平面语义分割处理,即为图像中的每个像素赋予平面标签值,得到平面语义标签,处理后的图像中示出平面区域,即提取出图像中的平面区域。例如,平面区域的像素的平面语义标签不为0,非平面区域的像素的平面语义标签为0。
示例性地,语义分割模型包括特征编码器、特征解码器和分类器。特征编码器用于执行下采样处理,特征解码器用于执行上采样处理。例如,平面语义分割模型可以为全卷积神经网络(fully convolutional network,FCN)、SegNet或Deeplab等网络模型。
下面以FCN模型为例对平面语义分割过程进行说明。
(1)对输入FCN模型的图像进行特征编码。
特征编码过程也可以理解为下采样过程。
具体地,FCN中的特征编码器对输入的图像进行抽象语义特征提取。
示例性地,可以将VGGNet、ResNet、ResNeXt、DenseNet等网络结构作为特征编码器进行平面语义特征提取。
(2)将编码结果进行特征解码。
特征解码过程也可以理解为上采样过程。
具体地,FCN中的特征解码器将特征编码器的不同层提取到的语义特征进行上采样处理,得到相同分辨率的语义特征,进而对相同分辨率的语义特征进行特征融合,得到解码后的语义特征。
(3)根据解码后的语义特征进行分类。
FCN中的分类器对解码后的语义特征进行分类,得到图像中的每个像素对应的类别。每个像素对应的类别由每个像素的平面语义标签指示。
示例性地,分类器可以为softmax分类器。
然而,FCN模型的特征表达能力不足,在特征编码和解码阶段会丢失图像细节,导致图像分割不准确。
本申请实施例中采用DeepLab-v3+进行平面语义分割处理。DeepLab-v3+网络模型中引入了基于空洞卷积(dilated convolution)的空间多金字塔池化(atrous apatialpyramid pooling,ASPP)模块,从而引入多尺度信息,能将底层特征与高层特征进一步融合,提高语义分割的准确度。此外,在ASPP模块和特征解码模块中引入深度可分离卷积处理,提高了模型的处理速度和鲁棒性。
通过图像语义分割的方式得到的语义标签也可以称为初始语义标签,也就是说,在方式1中将该多帧图像的初始语义标签作为该多帧图像的目标语义标签。
该多帧图像的目标语义标签是基于对图像自身进行语义分割处理得到的,然而图像语义分割结果可能存在不准确的问题,例如,图像中的同一平面区域可能被分割为两个平面区域;或者,在初始深度图中,部分平面语义标签所对应的区域可能存在有效像素较少或者像素值不准确的问题,进而导致得到的平面参数的准确性下降,影响三维重建的精度。
方式2
方式2中提供了一种获取该多帧图像的目标语义标签的方法,合并多帧图像的初始语义标签,以使多帧图像中属于同一平面的像素的具有相同的语义标签,或者说,将多帧图像中指示同一平面的不同语义标签替换为相同的语义标签。
可选地,多帧图像属于图像序列。多帧图像的目标语义标签是通过对图像序列中的初始语义标签进行合并得到的,图像序列中的图像的初始语义标签是通过对图像进行图像语义分割处理得到的。
其中,第一语义标签是根据第一图像中的第一初始语义标签和在图像序列中的第二图像中的第二语义标签合并后得到的语义标签确定的,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
可选地,第一图像与第二图像在该图像序列中为相邻的两帧图像。
第一图像的初始语义标签包括第一初始语义标签,第二图像的初始语义标签包括第二初始语义标签。
也就是说,若两帧图像中的两个初始语义标签所对应的区域存在重叠区域,则可以认为该两个初始语义标签所指示的平面为同一个平面,将该两个初始语义标签合并为相同的标签,或者说,为两帧图像中该两个初始语义标签所对应的区域中的像素赋予相同的标签,该相同的标签可以称为全局标签。
例如,利用图像序列的先后关系,取第一张图像A和第二张图像B,图像A(第一图像的一例)中的标签x(第一初始语义标签的一例)对应的区域和图像B(第二图像的一例)中的标签y(第二初始语义标签的一例)对应的区域之间存在重叠,则为标签x对应的区域和标签y对应的区域中的像素赋予同一个全局标签z。
示例性地,步骤S620可以由装置400中的标签合并模块440执行。
按照上述方式对该图像序列中的所有图像进行处理,即可实现该图像序列中所有图像的标签合并,得到图像序列中的所有图像的目标语义标签。在该情况下,在该图像序列中的不同图像中,具有相同的目标语义标签的像素所处的平面区域是相同的,即不同图像中具有相同的目标语义标签的像素转换为三维点后所属的平面是相同的。
图像的初始语义标签可以是通过对图像进行图像语义分割处理得到,即第一图像的初始语义标签是通过对第一图像进行图像语义分割处理得到的,第二图像的初始语义标签是通过对第二图像进行图像语义分割处理得到的。例如,图像的初始语义标签可以通过方式1得到;或者,图像的初始语义标签也可以是从其他设备获取的,本申请实施例对此不做限定。
图像中的一个初始语义标签对应的区域指的是图像中具有该初始语义标签的像素所在的区域。或者说,图像中的一个初始语义标签对应的区域中的像素均具有该初始语义标签。
第一图像中的第一区域指的是第一图像中具有第一初始语义标签的像素所在的区域,或者可以理解为,第一图像中的第一区域中的像素均具有第一初始语义标签。
第二图像中的第二区域指的是第二图像中具有第二初始语义标签的像素所在的区域,或者可以理解为,第二图像中的第二区域中的像素均具有第二初始语义标签。
进一步地,在第一区域中的重叠的区域中的像素的数量与第一区域中的像素的数量的比值大于或等于第一阈值,和/或第二区域中的重叠的区域中的像素的数量与第二区域中的像素的数量的比值大于或等于第一阈值的情况下,将第一初始语义标签和第二初始语义标签替换为相同的语义标签。
也就是说,若两帧图像中的两个初始语义标签所对应的区域存在重叠区域,且重叠区域中的像素的数量与其中一个初始语义标签对应的区域中的像素的数量的比值大于或等于第一阈值,则可以认为该两个初始语义标签所指示的平面为同一个平面,将该两个初始语义标签合并为相同的标签,或者说,为两帧图像中该两个初始语义标签所对应的区域中的像素赋予相同的标签,该相同的标签可以称为全局标签。
例如,利用图像序列的先后关系,取第一张图像A和第二张图像B,图像A(第一图像的一例)中的标签x(第一初始语义标签的一例)对应的区域和图像B(第二图像的一例)中的标签y(第二初始语义标签的一例)对应的区域之间存在重叠,且重叠的区域中的像素的数量与标签x对应的区域中的像素的数量的比值大于或等于第一阈值,或者,重叠的区域中的像素的数量与标签y对应的区域中的像素的数量的比值大于或等于第一阈值,则可以认为图像A中的标签x和图像B中的标签y所指示的平面为同一平面。为标签x对应的区域和标签y对应的区域中的像素赋予同一个全局标签z。
这样在重叠区域中的像素数量满足条件的情况下合并初始语义标签,提高了提高标签合并结果的准确性,进而提高三维重建的精度。
应理解,以上方式仅为示例,还可以设置其他条件以实现标签合并,本申请实施例对次不做限定。例如,在第一区域中的重叠的区域中的像素的数量大于或等于第二阈值,和/或第二区域中的重叠的区域中的像素的数量大于或等于第二阈值的情况下,将第一初始语义标签和第二初始语义标签替换为相同的语义标签。
S630,将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,得到第一平面的点云。
根据相机的内参、外参以及深度图中的像素的深度值可以计算得到该像素在空间中对应的三维点的坐标,即将深度图中的像素转换为对应的三维点。
空间中的平面可以由相应的点云表示,空间中的一个平面的平面参数可以通过该平面的点云的平面参数确定。
根据该多帧图像的不同的目标语义标签可以将初始深度图中不同的目标语义标签对应的像素分别转换为不同平面的点云。或者可以理解为,将该多帧图像对应的初始深度图中的不同的平面区域分别转换为不同的点云。若该多帧图像中包括多个平面区域,转换为空间点后相应地可以得到多个点云。
目标语义标签与平面的点云是一一对应的,第一语义标签用于指示第一平面,第一语义标签对应的点云即为第一平面的点云。第一平面的点云即为第一语义标签对应的点云。具有第一语义标签的像素属于第一平面,转换为三维点后得到的三维点的集合即为即为第一平面的点云。第一平面的平面参数可以根据第一平面的点云的平面参数确定。
示例性地,步骤S630可以由装置400中的3D平面拟合模块432执行。
如前所述,该目标语义标签可以为平面语义标签。例如,平面语义标签的值为0的像素所处的区域为非平面区域,平面语义标签的值为非零值的像素所处区域为平面区域。
在该情况下,可以将平面语义标签的值为非零值的像素转换为点云。也就是将平面区域的像素转换为点云。
在一种实现方式中,目标语义标签是通过步骤S620中的方式1得到的。该多帧图像中的每帧图像中的目标语义标签是独立的,步骤S630可以为对该多帧图像分别进行处理。以该多帧图像中的一帧图像为例,步骤S630可以包括:根据该帧图像的不同的目标语义标签将该帧图像对应的初始深度图中的像素分别转换为不同平面的点云。例如,具有第一语义标签的像素位于第一图像中,步骤S630可以为:将第一图像对应的初始深度图中具有第一语义标签的像素转换为第一平面的点云。
在另一种实现方式中,目标语义标签是通过步骤S620中的方式2得到的。该多帧图像中的不同图像可能具有相同的目标语义标签。步骤S630可以包括:根据该多图像的不同的目标语义标签将该多帧图像对应的初始深度图中的像素分别转换为不同平面的点云。或者说,将该多图像中具有相同的目标语义标签的像素转换至同一个平面的点云中。在该情况下,具有第一语义标签的像素可能位于多帧图像中,步骤S630可以为:将多帧图像对应的初始深度图中具有第一语义标签的像素转换为第一平面的点云。也就是说,具有第一语义标签的像素可能位于一帧图像中,也可能位于多帧图像中。
这样,利用该多图像的全局标签作为目标语义标签,从多帧图像中提取出属于同一个平面的三维点,即将属于同一平面的像素转换为同一个点云,增加了一个语义标签对应的像素的数量,解决了单帧图像中可能存在的部分平面语义标签所对应的区域有效像素较少或者像素值不准确的问题,提高了转换后得到的点云的准确性,进而提高了平面参数的准确性,进一步提高了三维重建的精度。
可选地,将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,得到第一平面的点云,包括:将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,对转换后得到的三维点进行滤波处理,得到第一平面的点云。
也就是说,对转换后得到的点云进行处理,将处理后的点云作为目标语义标签对应的点云。例如,对转换后得到的点云进行滤波处理。也就是说,第一平面的点云可以是滤波后得到的点云。
例如,对转换后得到的点云进行统计滤波和半径滤波,这样可以去除外围飞点,提高点云的准确性。
一个3D点和一个法向量即可确定一个平面。
点云的平面参数(q,normal)可以包括点云对应的平面所经过的3D点q和点云对应的平面的法向量normal。
可选地,第一平面的点云的平面参数包括:第一平面的法向量和第一平面中的目标三维点。
示例性地,点云对应的平面所经过的三维点可以通过点云中的多个点的位置的平均值确定。
可选地,第一平面中的目标三维点是通过对第一平面的点云中的三维点计算平均值得到的。
这样能够提高平面参数的准确性,进而提高三维重建的精度。
可替换地,点云对应的平面所经过的3D点也可以是点云中的一个点。
示例性地,点云对应的平面的法向量可以通过PCA算法确定。
具体地,通过PCA算法估计点云的朝向。点云的朝向由三个轴构成,三个轴分别为x轴、y轴和z轴,三个轴互相垂直。其中,x轴表示点云最长的分布方向,y轴表示点云最宽的分布方向,z轴即为点云对应的平面的法向量。
若对点云进行了滤波处理,则点云的平面参数均是根据滤波后的点云确定的。
S640,将多帧图像对应的初始深度图转换为多帧图像对应的点云。
其中,多帧图像包括第一图像,第一图像中的第一像素对应的三维点为第一直线与第一平面的交点,第一像素具有第一语义标签,第一直线是根据第一图像的位姿和第一像素在第一图像中的位置确定的。
在一种实现方式中,步骤S640包括步骤S641和步骤S642。
S641,更新多帧图像对应的初始深度图的深度值,得到多帧图像对应的目标深度图。
其中,第一图像对应的目标深度图中的第一像素的深度值是根据第一像素对应的三维点确定的。
具体地,第一图像对应的目标深度图中的第一像素的深度值是根据第一图像的位姿将第一像素对应的三维点投影至第一图像对应的目标深度图上得到的。
应理解,更新多帧图像对应的初始深度图的深度值指的是更新该多帧图像对应的初始深度图中的至少一个像素的深度值。也就是说,更新该多帧图像对应的初始深度图的深度值可以为更新该多帧图像对应的初始深度图中的部分或全部像素的深度值。例如,更新该多帧图像对应的初始深度图的深度值可以包括更新第一图像对应的初始深度图中的第一像素的深度值。或者更新该多帧图像对应的初始深度图的深度值可以包括更新该多帧图像中的所有图像对应的初始深度图中的所有像素的深度值。本申请实施例对初始深度图中被更新的像素的数量不做限定。
示例性地,步骤S641可以由装置400中的深度图补全模块433执行。
初始深度图中的平面区域可能存在有效像素较少或者像素值不准确等问题,例如,初始深度图中的平面区域等弱纹理区域可能存在空洞。在已知初始深度图中的平面区域在空间中的平面参数的情况下,补全初始深度图中该平面区域的深度值,本质上可以转换为求解直线与平面的交点的问题,如图7所示。补全深度图也就是更新初始深度中的深度值,得到目标深度图。
根据相机的内参和外参可以将深度图中的像素转换为三维点,且对于深度图中的一个像素而言,不同的深度值对应的不同的三维点。也就是说,一个像素的深度值不同,其转换得到的三维点也不同。这些不同的三维点位于同一条直线上,该条直线经过相机的光心位置。深度图中的一个平面区域中的像素的深度值对应的三维点为该条直线和空间中该平面的交点。一帧图像对应的目标深度图中的像素的深度值可以通过将该像素对应的三维点投影至该帧图像上得到。
下面以一帧图像为例对补全该多帧图像对应的初始深度图以得到目标深度图的过程进行说明。
S1:确定图像中的像素对应的目标三维点所在的直线。
步骤S1中的“图像中的像素”指的是图像中的平面区域中的像素。
图像中的像素是否属于平面区域可以根据像素的目标语义标签确定。例如,像素的目标语义标签的值为0,则该像素属于非平面区域,像素的目标语义标签的值不为0,则该像素属于平面区域。在该情况下,步骤S1可以包括:确定图像中的目标语义标签的值不为0的像素对应的目标三维点所在的直线。
示例性地,遍历图像中的像素,若像素的目标语义标签的值为0,则跳过该像素,若像素的目标语义标签的值不为0,则执行步骤S1。
步骤S1也可以理解为确定图像中的像素对应的三维点所在的直线的参数。
可选地,第一图像的位姿包括拍摄第一图像的设备的光心位置。
进一步地,第一直线是根据拍摄第一图像的设备的光心位置与第一三维点的位置确定的,第一三维点是根据第一像素的位置以及第一像素的初始深度值将第一像素转换至空间中得到的。
空间中的两个点即可确定一条直线,图像中的像素对应的三维点所在的直线必然经过相机的光心位置c,因此,只需要确定该直线上的另一个点p(第一三维点的一例)即可确定像素对应的三维点所在的直线。
点p可以是根据初始深度图中的该像素转换至空间中得到的三维点。
具体地,点p可以通过多种方式确定。例如,根据初始深度图中的该像素的深度值将该像素转换为三维点,将该三维点作为空间点p。然而,初始深度图中该像素的深度值可能为0,在该情况下,可以根据该像素的预设深度值将像素转换为三维点,将该三维点作为空间点p。其中,该像素的预设深度值可以是任意设置的值。或者,如前所述,平面的平面参数包括三维点和法向量,在该情况下,可以将该像素所属平面的平面参数中的3D点投影至初始深度图中,得到深度值,将该深度值作为该像素的深度值,进而将该像素转换为三维点,将该三维点作为空间点p。示例性地,该像素所属平面的平面参数可以是根据该像素的目标语义标签对应的点云确定的。如前所述,目标语义标签和点云是一一对应的,根据像素的目标语义标签即可确定目标语义标签对应的点云的平面参数。
例如,如图7所示,图像中位于(x,y)位置的像素A(第一像素的一例)对应的三维点(即图7中的交点n)所在的直线A(第一直线的一例)必然经过相机的光心c的位置,只需确定直线上的另一点p即可确定像素A对应的三维点所在的直线。像素A具有标签A(第一语义标签的一例),标签A用于指示像素A属于平面A(第一平面的一例)。将平面A的平面参数中的三维点q投影至图像上,得到深度值,将该深度值作为像素A的初始深度值,根据相机位姿和内参将像素A转换到三维空间中的初始三维点,将该初始三维点作为空间点p。空间点p和光心位置c即可作为直线A的参数。
S2:确定该像素对应的三维点。
该像素对应的三维点所在的直线和该像素所属平面的交点即为该像素对应的三维点。
例如,如图7所示,直线A和平面A的交点n即为像素A对应的目标三维点,也就是像素A在空间中的实际三维点。
S3:将该像素对应的三维点投影至初始深度图上,得到该像素的深度值,即目标深度图中的该像素的深度值。
步骤S3也可以理解为将目标三维点投影至目标深度图上,得到该像素的深度值,即完成了对该像素的补全操作。
进一步地,可以对图像中的平面区域中的所有像素执行上述步骤S1至步骤S3,即可实现对该图像中的平面区域的所有像素的补全操作。例如,对图像中的所有平面语义标签的值为非0值的像素执行上述步骤S1至步骤S3。
S642,将多帧图像对应的目标深度图转换为多帧图像对应的点云。
具体地,根据该多帧图像的内参将该多帧图像对应的目标深度图转换为点云,得到该多帧图像对应的点云。
在另一种实现方式中,步骤S640可以包括:根据该多帧图像的内参将该多帧图像对应的初始深度图中的非平面区域的像素转换至空间中,得到非平面的点云;根据多帧图像的目标语义标签确定多帧图像对应的初始深度图中的平面区域的像素对应的三维点,得到平面的点云。
下面以多帧图像中的第一图像为例对步骤S640进行说明,多帧图像中的其他图像可以采用同样的方式得到对应的点云。
第一图像对应的点云可以包括第一图像中的平面区域对应的点云和第一图像中的非平面区域对应的点云。
对于非平面区域中的像素,根据第一图像的内参将第一图像对应的初始深度图中的非平面区域的像素转换至空间中,即可得到非平面的点云。
对于平面区域中的像素,可以参考步骤S641中的S1和S2,得到该像素对应的三维点。
S650,将多帧图像对应的点云进行融合,得到融合后的目标点云。
具体地,根据该至少一帧图像的位姿将该至少一帧图像对应的点云转换到世界坐标系下,融合得到目标点云,即稠密点云。稠密点云能够描述整个场景。
现有的三维重建方案中,平面区域等弱纹理区域上估计出的深度值不准确,在滤波阶段会被滤除,进而导致融合后得到的点云上会形成空洞,即无法重建出准确的点云。
在本申请实施例的方案中,根据图像的目标语义标签将初始深度图中的平面区域转换为对应的平面的点云,根据平面的点云即可确定平面的平面参数,进而根据平面参数得到平面区域中的像素在空间中对应的三维点,通过该方式能够得到平面区域对应的较为准确的三维点,避免弱纹理的平面区域的点云中出现空洞等,有利于提高三维重建的精度以及稠密度。
示例性地,本申请实施例中的初始深度图可以是现有方案得到的深度图,该深度图中的平面区域上的有效像素较少,且像素的深度值不够准确。根据本申请实施例的方案,根据语义标签将初始深度图中的平面区域转换为对应的点云,进而根据该点云的平面参数得到平面区域中的像素的实际深度值,以更新初始深度图中的平面区域的深度值,从而得到弱纹理的平面区域中较为准确的深度信息,有利于提高三维重建的精度以及稠密度。
下面对步骤S610中的获取至少一帧图像对应的初始深度图的过程进行示例性说明。
步骤S610包括步骤S611至步骤S612,下面对步骤S611至步骤S612进行说明。
S611,获取图像序列的位姿和稀疏点云。
该图像序列包括该至少一帧图像。图像序列为二维图像序列,例如,该图像序列可以为RGB图像序列。
步骤S611可以包括,从其他设备接收该图像序列的位姿和稀疏点云;或者,步骤S610也可以包括:对该图像序列进行处理,得到该图像序列的位姿和稀疏点云。本申请实施例对步骤S611中的“获取”的具体方式不做限定。
示例性地,步骤S611可以由图4中的图像位姿和稀疏点云估计模块410执行。
具体地,图像位姿和稀疏点云估计模块410可以通过SFM得到图像序列的位姿和稀疏点云。
例如,可以通过增量SFM得到图像序列的位姿和稀疏点云。
SFM指的是将图像中的场景的3D结构从图像序列中重构出来的过程。
示例性地,图像序列可以是带有摄像头的电子设备采集的场景的多帧RGB图像。或者,图像序列可以是从其他设备接收的多帧RGB图像。
图像的位姿也可以称为拍摄该图像的相机的位姿,简称相机的位姿。相机的位姿可以理解为相机坐标系在世界坐标系下的转换,即旋转和偏移。也就是说,相机的位姿可以通过相机的位姿矩阵表示,相机的位姿矩阵包括偏移和旋转的转换矩阵。相机的位姿也可以理解为相机的参数,例如,相机的内部参数或相机的外部参数等。
根据物体在世界坐标系下的多个3D点以及多个3D点在图像上投影得到的2D点可以确定相机相对于物体的位姿,即相机坐标系相对于世界坐标系的位姿。进一步地,对于图像序列中的多帧图像,根据上一帧中的多个3D点和多个3D点在当前帧中投影得到的2D点,可以得到当前帧相对于上一帧的位姿变换。
图像序列的稀疏点云用于指示场景的几何信息。
下面以增量SFM为例对步骤S611进行说明。
增量SFM通常包括两个阶段:关联搜索(correspondence search)阶段和增量重建(incremental reconstruction)阶段。图8示出了一种增量SFM的流程示意图。例如,如图8所示,在关联搜索阶段中,对图像依次进行特征提取(feature extraction)、特征匹配(matching)以及几何验证(geometric verification)处理。在增量重建阶段中,执行初始化(initialization)操作,然后进行图像注册(image registration)、三角化(triangulation)以及捆绑调整(bundle adjustment)处理。
关联搜索阶段包括步骤S11至步骤S13,增量重建阶段包括步骤S21至步骤S24。
S11,特征提取。
具体地,在图像序列中的图像中检测局部特征点,得到局部特征点的描述子。
局部特征点具有光照不变性和几何不变性,例如,几何不变性包括尺度不变性和旋转不变性。为了描述简洁,后文中将局部特征点统一描述为特征点。
特征点的描述子可以通过向量表示。特征点的描述子可以称为特征向量。
例如,步骤S1提取的特征为尺度不变特征变换(scale-invariant featuretranform,SIFT)特征向量,SIFT特征向量即为SIFT特征点的描述子。
S12,特征匹配。
根据图像序列中的两个图像上的两个特征点之间的欧式距离确定两个特征点是否为匹配点对。
例如,若两个特征点之间的欧式距离大于或等于设定阈值,则该两个特征点不是匹配点对。若两个特征点之间的欧式距离小于设定阈值,则该两个特征点为匹配对。
两个特征点之间的欧式距离可以通过两个特征点的描述子之间的欧式距离确定。
若两个图像之间存在匹配对,则两个图像之间具有关联关系。
S13,几何验证。
根据两个图像中的匹配对之间的对应关系确定拍摄两个图像的相机的运动情况,进而根据相机的运动情况和极线约束关系删除错误的匹配对。
具体地,通过匹配对的对极几何关系,利用随机抽样一致性(random sampleconsensus,RANSAC)算法估计本质矩阵(essential matrix)、基础矩阵(fundamental_matrix)和单应矩阵(homography_matrix)。根据上述矩阵,利用极线约束关系删除错误的匹配对。
本质矩阵、基础矩阵和单应矩阵用于表示相机的运动情况。本质矩阵也可以称为E矩阵,基础矩阵也可以称为F矩阵,单应矩阵也可以称为H矩阵。
通过几何验证,从与匹配点对中去除错误的匹配对,得到精确的匹配对。
关联搜索阶段的输出结果包括输入的图像序列中的任两幅图像的匹配对,例如,输出结果包括输入的图像序列中的每两幅图像的匹配对。任两幅图像的匹配对指的是经过几何验证处理之后得到的匹配对。
S21,初始化。
从关联搜索阶段的输出结果中选择两帧图像作为初始对,根据初始对计算初始位姿,并对两帧图像中的匹配对进行三角化计算,得到初始点云。
初始对至少满足以下条件:
内点匹配数大于或等于第一阈值t1、两帧图像的前后平移距离z小于第二阈值t2以及三角化角度大于第三阈值t3。
示例性地,可以在关联搜索阶段的输出结果中进行搜索,直至得到满足上述条件的两帧图像,即停止搜索,将满足上述条件的两帧图像作为初始对。
可替换地,可以在关联搜索阶段的输出结果中进行搜索,在满足上述条件的多个图像对中任意选择一个图像对作为初始对。
S22,图像注册。
对初始对进行注册;对与已注册的图像具有关联关系的图像进行排序;获取与已注册的图像具有关联关系的最佳的下一帧图像,利用透视三点(Perspective-3-Points,P3P)随机抽样一致性算法对最佳的下一帧图像进行注册,并计算该帧图像的位姿。重复上述过程,直至图像序列中的所有图像均被注册为止,得到图像序列中的每一帧图像的位姿。
其中,与已注册的图像具有关联关系的最佳的下一帧图像至少满足步骤S4中的条件。
S23,三角化。
根据当前帧和已注册的图像的位姿,以及两者中的匹配对三角化得到对应的3D地图点。
S24,捆绑调整。
捆绑调整是一种联合非线性的优化方法,其通过最小化重投影误差来对位姿和3D地图点进行优化。
具体地,对已注册的图像帧、位姿以及3D地图点进行捆绑调整,得到优化后的位姿和3D地图点。
进一步地,对3D地图点重新进行三角化和滤波处理,得到稀疏点云。这样可以进一步提高精度。
通过增量SFM处理即可得到图像序列的位姿以及图像序列对应的稀疏点云。
需要说明的是,以上仅以增量SFM的方式作为示例,还可以通过其他方式获取图像序列的位姿和稀疏点云,本申请实施例对此不做限定。
S612,根据图像序列的位姿和稀疏点云得到图像对应的初始深度图。
示例性地,步骤S612可以由装置400中的深度图估计滤波模块431执行。
具体地,利用MVS算法根据图像序列的位姿和稀疏点云进行立体匹配,得到图像序列中的图像对应的深度图,将该深度图作为图像对应的初始深度图。
进一步地,可以对图像对应的深度图进行滤波,得到滤波后的图像的深度图,将滤波后的深度图作为图像对应的初始深度图。滤波后的图像的深度图的质量较高,有利于实现更好的三维重建效果。
示例性地,步骤S612包括步骤S6121至步骤S6123。
S6121,视图选择。
根据图像序列的位姿和稀疏点云,得到图像序列中的每一帧图像的邻域帧。
图像帧与邻域帧的基线的长度大于设定阈值,这样可以提高目标点云的精度。图像帧与邻域帧的重叠区域大于设定阈值。
两帧图像的基线指的是拍摄两帧图像的相机的位置之间的连线。
一帧图像的邻域帧可以为一帧,也可以为多帧。
S6122,深度图估计。
对深度图进行初始化,估计深度图的各个像素值,然后对估计得到的深度图进行优化。
具体地,对深度图进行初始化,包括:根据稀疏点云为深度图中的每个像素点赋予初值,得到深度图的初始像素值。在深度图中,像素点的像素值即为该像素点的深度值。
估计深度图的像素值,包括:遍历深度图的所有像素,以像素点所在的图像块的归一化互相关(normalized cross correlation,NCC)相似性分数为标准,通过邻域传播和随机扰动,对每个像素点的像素值进行迭代优化,删除不可靠的像素值,得到图像帧对应的深度图。
像素点所在的图像块的大小可以根据需要设定。例如,像素点所在的图像块可以为7*7大小的图像块。
其中,像素值的可靠性可以通过像素值的置信度确定。置信度低于设定阈值的像素值即为不可靠的像素值。其中,像素值的置信度可以通过NCC确定。
对估计得到的深度图进行优化,包括:对估计得到的深度图进行图像层面的处理,例如,去除深度碎片、小空洞/缝隙填充,得到优化后的深度图。
S6123,深度滤波。
对优化后的深度图进行滤波,得到滤波后的图像的深度图。
示例性地,可以采用邻域帧投影的方法进行深度滤波。
具体地,将当前帧的邻域帧在步骤S6122得到的深度图,根据位姿投影到当前帧,得到投影后的深度图,将邻域帧在步骤S6122得到的深度图中的像素值的置信度作为投影后的深度图中的像素值的置信度。
判断投影后的深度图中的像素的深度值与当前帧的深度图中对应像素的深度值的相似度,若相似度高于设定阈值,则累加该邻域帧的像素的加权深度,更新积极帧计数器,并累加积极置信度,否则,更新消极帧计数器,并累计消极置信度。例如,两者的相似度高于设定阈值时,积极帧计数器加一,相似度低于或等于设定阈值时,消极帧计数器加一。加权深度是通过邻域帧中的像素的深度值乘以该深度值的置信度得到的。
若积极帧的帧数大于设定阈值,即积极帧计数器的值大于设定阈值,且当前帧中的像素点的积极置信度之和大于消极置信度之和,且加权深度在最小深度和最大深度之间,则利用加权深度更新该像素点的深度值和置信度,否则,丢弃该像素点的深度值和置信度,即像素值置为0,置信度置为0,得到滤波后的深度图。
应理解,以上获取该至少一帧图像对应的初始深度图的方式仅为示例,还可以通过其他方式得到该至少一帧图像对应的初始深度图,本申请实施例对此不做限定。
本申请实施例的方案中引入了图像的形状语义信息,根据弱纹理的平面区域的稀疏3D点重建出稠密3d点,能够解决基于二维图像进行三维重建时得到的平面区域的重建效果较差的问题。
图9的(a)示出了一帧图像的平面语义分割结果,图9的(b)示出了采用现有方案将该图像对应的深度图转化为点云的示意图,图9的(c)示出了采用本申请的方案将该图像对应的目标深度图转换为点云的示意图。
如图9的(a)所示,对该图像进行图像语义分割处理后,得到了天花板、地面以及墙面等多个平面区域。如图9的(b)所示,采用现有方案将得到图像对应的深度图中存在空洞,由该深度图转换得到的点云较为稀疏。本申请的方案将图像对应的初始深度图中的平面区域进行了补全,进而将补全后得到的目标深度图转换为点云,如图9的(c)所示,采用本申请的方案得到的点云中,天花板、地面以及左侧的墙壁补全了较多的点,明显比图9的(b)所示的点云更稠密。
图10的(a)示出了采用现有方案得到的图像序列对应的稠密点云,图10的(b)示出了采用本申请的方案得到的图像序列对应的稠密点云。图10的(a)中的点云存在大量的空洞,图10的(b)中的点云中的空洞较少,远比图10的(a)中的点云的稠密度更高,尤其是天花板、地面以及墙面等区域几乎完全被点云覆盖。
此外,三维重建得到的稠密点云可以应用于RGB-VPS系统中,在RGB-VPS系统中,稠密点云也可以称为地图。本申请实施例的方案能够提高重建得到的稠密点云的精度,有利于提高定位的准确性和鲁棒性。而且,本申请实施例的方案能够提高重建得到的点云的稠密度,有利于提升虚实遮挡的体验效果。
图11的(a)示出了采用现有方案得到的稠密点云的虚实遮挡效果,图11的(b)示出了采用本申请的方案得到的稠密点云的虚实遮挡效果。如图11所示,在RGB-VPS系统的空间中放置一个虚拟物体,即图11中的方块,位于墙面的后方,该虚拟物体在RGB-VPS系统的地图中不应被观察到。采用现有技术得到的稠密点云作为地图时,由于点云较为稀疏,没有重建出实际场景中的墙面,故无法遮挡该虚拟物体,用户可以观察到该虚拟物体。采用本申请实施例的方案得到的稠密点云作为地图时,点云较为稠密,重建出实际场景中的墙面,故可以遮挡住该虚拟物体。
图12的(a)示出了未采用全局统一的平面语义标签的点云的效果,图12的(b)示出了采用全局统一的平面语义标签的点云的效果。图12的(b)中的右侧墙壁的点云明显较为稠密。也就是说,采用全局同一的平面语义标签,能够得到更准确的语义分割结果,改善部分平面的平面参数估计不准确或无法估计出平面参数的问题,得到较为准确的平面参数,提高了深度图的补全效果,进一步提高三维重建的精度。
下面结合图13至图14对本申请实施例的装置进行说明。应理解,下面描述的装置能够执行前述本申请实施例的方法,为了避免不必要的重复,下面在介绍本申请实施例的装置时适当省略重复的描述。
图13是本申请实施例提供的三维重建装置的示意性框图。图13所示的装置4000包括获取单元4010和处理单元4020。
获取单元4010和处理单元4020可以用于执行本申请实施例的三维重建方法,例如,可以用于执行方法600。
获取单元4010用于:获取多帧图像对应的初始深度图;获取多帧图像对应的初始深度图的目标语义标签,目标语义标签包括第一语义标签,第一语义标签用于指示多帧图像对应的初始深度图中具有第一语义标签的像素属于第一平面。
处理单元4020用于:将多帧图像对应的初始深度图中具有第一语义标签的像素转换为三维点,得到第一平面的点云;将多帧图像对应的初始深度图转换为多帧图像对应的点云,其中,多帧图像包括第一图像,第一图像中的第一像素对应的三维点为第一直线与第一平面的交点,第一像素具有第一语义标签,第一直线是根据第一图像的位姿和第一像素在第一图像中的位置确定的;将多帧图像对应的点云进行融合,得到融合后的目标点云。
可选地,作为一个实施例,处理单元4020具体用于:更新多帧图像对应的初始深度图的深度值,得到多帧图像对应的目标深度图,其中,第一图像对应的目标深度图中的第一像素的深度值是根据第一图像的位姿将第一像素对应的三维点投影至第一图像对应的目标深度图上得到的;将多帧图像对应的目标深度图转换为多帧图像对应的点云。
可选地,作为一个实施例,目标语义标签是通过对多帧图像进行图像语义分割处理得到的。
可选地,作为一个实施例,多帧图像属于图像序列,以及目标语义标签是通过对图像序列中的初始语义标签进行合并得到的,图像序列中的图像的初始语义标签是通过对图像进行图像语义分割处理得到的,其中,第一语义标签是根据第一图像中的第一初始语义标签和在图像序列中与第一图像相邻的第二图像中的第二语义标签合并后得到的语义标签确定的,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
可选地,作为一个实施例,合并后得到的语义标签是在第一图像中的第一初始语义标签对应的第一区域与第二图像中的第二初始语义标签对应的第二区域至少部分重叠的情况下,将第一初始语义标签和第二初始语义标签合并得到的,包括:合并后得到的语义标签是在第一区域中的重叠的区域中的像素的数量与第一区域中的像素的数量的比值大于或等于第一阈值,和/或第二区域中的重叠的区域中的像素的数量与第二区域中的像素的数量的比值大于或等于第一阈值的情况下,将第一初始语义标签和第二初始语义标签合并得到的。
可选地,作为一个实施例,第一平面的点云的平面参数包括:第一平面的法向量和第一平面中的目标三维点。
可选地,作为一个实施例,第一平面中的目标三维点是通过对第一平面的点云中的三维点计算平均值得到的。
可选地,作为一个实施例,第一图像的位姿包括拍摄第一图像的设备的光心位置。
可选地,作为一个实施例,第一直线是根据拍摄第一图像的设备的光心位置与第一三维点的位置确定的,第一三维点是根据第一像素在第一图像中的位置以及第一像素的初始深度值将第一像素转换至空间中得到的。
需要说明的是,上述装置4000以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图14是本申请实施例的三维重建装置的硬件结构示意图。图14所示的装置6000包括存储器6001、处理器6002、通信接口6003以及总线6004。其中,存储器6001、处理器6002、通信接口6003通过总线6004实现彼此之间的通信连接。
存储器6001可以是ROM,静态存储设备和RAM。存储器6001可以存储程序,当存储器6001中存储的程序被处理器6002执行时,处理器6002和通信接口6003用于执行本申请实施例的三维重建方法的各个步骤。具体地,处理器6002可以执行上文中图6所示的方法中的步骤S630至步骤S650。
处理器6002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的三维重建装置中的单元所需执行的功能,或者执行本申请方法实施例的三维重建方法。
处理器6002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的三维重建方法的各个步骤可以通过处理器6002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器6002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器6001,处理器6002读取存储器6001中的信息,结合其硬件完成图13所示的三维重建装置中包括的单元所需执行的功能,或者执行图6所示的三维重建方法。
通信接口6003使用例如但不限于收发器一类的收发装置,来实现装置6000与其他设备或通信网络之间的通信。例如,可以通过通信接口6003获取多帧图像对应的初始深度图或目标语义标签。
总线6004可包括在装置6000各个部件(例如,存储器6001、处理器6002、通信接口6003)之间传送信息的通路。
应注意,尽管上述装置6000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置6000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置6000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置6000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图14中所示的全部器件。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种三维重建方法,其特征在于,包括:
获取多帧图像对应的初始深度图;
获取所述多帧图像对应的初始深度图的目标语义标签,所述目标语义标签包括第一语义标签,所述第一语义标签用于指示所述多帧图像对应的初始深度图中具有所述第一语义标签的像素属于第一平面;
将所述多帧图像对应的初始深度图中具有所述第一语义标签的像素转换为三维点,得到所述第一平面的点云;
将所述多帧图像对应的初始深度图转换为所述多帧图像对应的点云,其中,所述多帧图像包括第一图像,所述第一图像中的第一像素对应的三维点为第一直线与所述第一平面的交点,所述第一像素具有所述第一语义标签,所述第一直线是根据所述第一图像的位姿和所述第一像素在所述第一图像中的位置确定的;
将所述多帧图像对应的点云进行融合,得到融合后的目标点云。
2.根据权利要求1所述的方法,其特征在于,所述将所述多帧图像对应的初始深度图转换为所述多帧图像对应的点云,包括:
更新所述多帧图像对应的初始深度图的深度值,得到所述多帧图像对应的目标深度图,其中,所述第一图像对应的目标深度图中的第一像素的深度值是根据所述第一图像的位姿将所述第一像素对应的三维点投影至所述第一图像对应的目标深度图上得到的;
将所述多帧图像对应的目标深度图转换为所述多帧图像对应的点云。
3.根据权利要求1或2所述的方法,其特征在于,所述目标语义标签是通过对所述多帧图像进行图像语义分割处理得到的。
4.根据权利要求1或2所述的方法,其特征在于,所述多帧图像属于图像序列,以及
所述目标语义标签是通过对所述图像序列中的初始语义标签进行合并得到的,所述图像序列中的图像的初始语义标签是通过对所述图像进行图像语义分割处理得到的,
其中,所述第一语义标签是根据所述第一图像中的第一初始语义标签和在所述图像序列中与所述第一图像相邻的第二图像中的第二语义标签合并后得到的语义标签确定的,所述合并后得到的语义标签是在所述第一图像中的所述第一初始语义标签对应的第一区域与所述第二图像中的所述第二初始语义标签对应的第二区域至少部分重叠的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的。
5.根据权利要求4所述的方法,其特征在于,所述合并后得到的语义标签是在所述第一图像中的所述第一初始语义标签对应的第一区域与所述第二图像中的所述第二初始语义标签对应的第二区域至少部分重叠的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的,包括:
所述合并后得到的语义标签是在所述第一区域中的重叠的区域中的像素的数量与所述第一区域中的像素的数量的比值大于或等于第一阈值,和/或所述第二区域中的重叠的区域中的像素的数量与所述第二区域中的像素的数量的比值大于或等于所述第一阈值的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一平面的点云的平面参数包括:所述第一平面的法向量和所述第一平面中的目标三维点。
7.根据权利要求6所述的方法,其特征在于,所述第一平面中的目标三维点是通过对所述第一平面的点云中的三维点计算平均值得到的。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一图像的位姿包括拍摄所述第一图像的设备的光心位置。
9.根据权利要求8所述的方法,其特征在于,所述第一直线是根据所述拍摄所述第一图像的设备的光心位置与第一三维点的位置确定的,所述第一三维点是根据所述第一像素在所述第一图像中的位置以及所述第一像素的初始深度值将所述第一像素转换至空间中得到的。
10.一种三维重建装置,其特征在于,包括:
获取单元,用于:
获取多帧图像对应的初始深度图;
获取所述多帧图像对应的初始深度图的目标语义标签,所述目标语义标签包括第一语义标签,所述第一语义标签用于指示所述多帧图像对应的初始深度图中具有所述第一语义标签的像素属于第一平面;
处理单元,用于:
将所述多帧图像对应的初始深度图中具有所述第一语义标签的像素转换为三维点,得到所述第一平面的点云;
将所述多帧图像对应的初始深度图转换为所述多帧图像对应的点云,其中,所述多帧图像包括第一图像,所述第一图像中的第一像素对应的三维点为第一直线与所述第一平面的交点,所述第一像素具有所述第一语义标签,所述第一直线是根据所述第一图像的位姿和所述第一像素在所述第一图像中的位置确定的;
将所述多帧图像对应的点云进行融合,得到融合后的目标点云。
11.根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:
更新所述多帧图像对应的初始深度图的深度值,得到所述多帧图像对应的目标深度图,其中,所述第一图像对应的目标深度图中的第一像素的深度值是根据所述第一图像的位姿将所述第一像素对应的三维点投影至所述第一图像对应的目标深度图上得到的;
将所述多帧图像对应的目标深度图转换为所述多帧图像对应的点云。
12.根据权利要求10或11所述的装置,其特征在于,所述目标语义标签是通过对所述多帧图像进行图像语义分割处理得到的。
13.根据权利要求10或11所述的装置,其特征在于,所述多帧图像属于图像序列,以及
所述目标语义标签是通过对所述图像序列中的初始语义标签进行合并得到的,所述图像序列中的图像的初始语义标签是通过对所述图像进行图像语义分割处理得到的,
其中,所述第一语义标签是根据所述第一图像中的第一初始语义标签和在所述图像序列中与所述第一图像相邻的第二图像中的第二语义标签合并后得到的语义标签确定的,所述合并后得到的语义标签是在所述第一图像中的所述第一初始语义标签对应的第一区域与所述第二图像中的所述第二初始语义标签对应的第二区域至少部分重叠的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的。
14.根据权利要求13所述的装置,其特征在于,所述合并后得到的语义标签是在所述第一图像中的所述第一初始语义标签对应的第一区域与所述第二图像中的所述第二初始语义标签对应的第二区域至少部分重叠的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的,包括:
所述合并后得到的语义标签是在所述第一区域中的重叠的区域中的像素的数量与所述第一区域中的像素的数量的比值大于或等于第一阈值,和/或所述第二区域中的重叠的区域中的像素的数量与所述第二区域中的像素的数量的比值大于或等于所述第一阈值的情况下,将所述第一初始语义标签和所述第二初始语义标签合并得到的。
15.根据权利要求10至14中任一项所述的装置,其特征在于,所述第一平面的点云的平面参数包括:所述第一平面的法向量和所述第一平面中的目标三维点。
16.根据权利要求15所述的装置,其特征在于,所述第一平面中的目标三维点是通过对所述第一平面的点云中的三维点计算平均值得到的。
17.根据权利要求10至16中任一项所述的装置,其特征在于,所述第一图像的位姿包括拍摄所述第一图像的设备的光心位置。
18.根据权利要求17所述的装置,其特征在于,所述第一直线是根据所述拍摄所述第一图像的设备的光心位置与第一三维点的位置确定的,所述第一三维点是根据所述第一像素在所述第一图像中的位置以及所述第一像素的初始深度值将所述第一像素转换至空间中得到的。
19.一种三维重建装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求1至9中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245151.3A CN115035235A (zh) | 2021-03-05 | 2021-03-05 | 三维重建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110245151.3A CN115035235A (zh) | 2021-03-05 | 2021-03-05 | 三维重建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115035235A true CN115035235A (zh) | 2022-09-09 |
Family
ID=83118483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110245151.3A Pending CN115035235A (zh) | 2021-03-05 | 2021-03-05 | 三维重建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115035235A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578539A (zh) * | 2022-12-07 | 2023-01-06 | 深圳大学 | 室内空间高精度视觉位置定位方法、终端及存储介质 |
CN115908723A (zh) * | 2023-03-09 | 2023-04-04 | 中国科学技术大学 | 基于区间感知的极线引导多视图立体重建方法 |
CN116486008A (zh) * | 2023-04-12 | 2023-07-25 | 荣耀终端有限公司 | 一种三维重建方法、显示方法及电子设备 |
CN116912427A (zh) * | 2023-09-12 | 2023-10-20 | 武汉工程大学 | 基于标记点三角特征聚类的三维扫描重建方法及系统 |
CN117197211A (zh) * | 2023-09-04 | 2023-12-08 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
-
2021
- 2021-03-05 CN CN202110245151.3A patent/CN115035235A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115578539A (zh) * | 2022-12-07 | 2023-01-06 | 深圳大学 | 室内空间高精度视觉位置定位方法、终端及存储介质 |
CN115578539B (zh) * | 2022-12-07 | 2023-09-19 | 深圳大学 | 室内空间高精度视觉位置定位方法、终端及存储介质 |
CN115908723A (zh) * | 2023-03-09 | 2023-04-04 | 中国科学技术大学 | 基于区间感知的极线引导多视图立体重建方法 |
CN116486008A (zh) * | 2023-04-12 | 2023-07-25 | 荣耀终端有限公司 | 一种三维重建方法、显示方法及电子设备 |
CN116486008B (zh) * | 2023-04-12 | 2023-12-12 | 荣耀终端有限公司 | 一种三维重建方法、显示方法及电子设备 |
CN117197211A (zh) * | 2023-09-04 | 2023-12-08 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
CN117197211B (zh) * | 2023-09-04 | 2024-04-26 | 北京斯年智驾科技有限公司 | 一种深度图像生成方法、系统、装置及介质 |
CN116912427A (zh) * | 2023-09-12 | 2023-10-20 | 武汉工程大学 | 基于标记点三角特征聚类的三维扫描重建方法及系统 |
CN116912427B (zh) * | 2023-09-12 | 2023-11-24 | 武汉工程大学 | 基于标记点三角特征聚类的三维扫描重建方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112367514B (zh) | 三维场景构建方法、装置、系统和存储介质 | |
JP7159057B2 (ja) | 自由視点映像生成方法及び自由視点映像生成システム | |
CN110568447B (zh) | 视觉定位的方法、装置及计算机可读介质 | |
CN108335353B (zh) | 动态场景的三维重建方法、装置和系统、服务器、介质 | |
Park et al. | High-precision depth estimation using uncalibrated LiDAR and stereo fusion | |
US10789765B2 (en) | Three-dimensional reconstruction method | |
EP2992508B1 (en) | Diminished and mediated reality effects from reconstruction | |
CN115035235A (zh) | 三维重建方法及装置 | |
US10477178B2 (en) | High-speed and tunable scene reconstruction systems and methods using stereo imagery | |
KR101121034B1 (ko) | 복수의 이미지들로부터 카메라 파라미터를 얻기 위한 시스템과 방법 및 이들의 컴퓨터 프로그램 제품 | |
US20190141247A1 (en) | Threshold determination in a ransac algorithm | |
JP7227969B2 (ja) | 三次元再構成方法および三次元再構成装置 | |
US11184604B2 (en) | Passive stereo depth sensing | |
CN111080776B (zh) | 人体动作三维数据采集和复现的处理方法及系统 | |
JP2016537901A (ja) | ライトフィールド処理方法 | |
CN112150518B (zh) | 一种基于注意力机制的图像立体匹配方法及双目设备 | |
CN114419568A (zh) | 一种基于特征融合的多视角行人检测方法 | |
US8340399B2 (en) | Method for determining a depth map from images, device for determining a depth map | |
CN110443228B (zh) | 一种行人匹配方法、装置、电子设备及存储介质 | |
Koch et al. | Comparison of monocular depth estimation methods using geometrically relevant metrics on the IBims-1 dataset | |
CN111882655A (zh) | 三维重建的方法、装置、系统、计算机设备和存储介质 | |
CN114080627A (zh) | 三维模型生成方法及三维模型生成装置 | |
JP7432793B1 (ja) | 三次元点群に基づくマッピング方法、装置、チップ及びモジュール機器 | |
GB2569609A (en) | Method and device for digital 3D reconstruction | |
CN116630528A (zh) | 基于神经网络的静态场景重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |