CN113643421B - 图像的三维重建方法和三维重建装置 - Google Patents
图像的三维重建方法和三维重建装置 Download PDFInfo
- Publication number
- CN113643421B CN113643421B CN202110763508.7A CN202110763508A CN113643421B CN 113643421 B CN113643421 B CN 113643421B CN 202110763508 A CN202110763508 A CN 202110763508A CN 113643421 B CN113643421 B CN 113643421B
- Authority
- CN
- China
- Prior art keywords
- type
- pixel point
- depth value
- value
- depth
- 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.)
- Active
Links
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本申请提供了图像的三维重建方法和三维重建装置,有效地减少了深度值的计算时间,同时进一步提升了三维重建的速率。该方法包括:基于目标图像集中的第一类像素点的损失值和第二类像素点的损失值分别对第一类像素点和第二类像素点的深度值进行N次更新,得到第一类像素点和第二类像素点的目标深度值,其中,第一类像素点的损失值是采用补丁匹配算法对第一类像素点中的像素点进行并行计算的结果,第二类像素点的损失值是采用补丁匹配算法对第二类像素点中的像素点进行并行计算的结果,N为预设阈值;整合第一类像素点的目标深度值和第二类像素点的目标深度值,得到目标图像集的深度图;对深度图进行后处理,得到目标图像集中像素点的三维坐标。
Description
技术领域
本申请涉及图像处理领域,尤其涉及一种图像的三维重建方法和三维重建装置。
背景技术
三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。三维重建中较为重要的一部分就是待处理图像深度值的计算,也就是说需要对待处理的图像进行深度估计。
目前,三维重建中大多是使用中央处理器(central processing unit,CPU)的计算资源完成待处理图像的深度值计算,但是该计算过程所需要的时间较长,导致三维重建的速度较慢。
发明内容
本申请提供一种图像的三维重建方法和三维重建装置,有效地减少了深度值的计算时间,同时进一步提升了三维重建的速率。
第一方面,提供了一种图像的三维重建方法,包括:基于目标图像集中的第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,所述第一类像素点的损失值是采用补丁匹配算法对所述第一类像素点中的像素点进行并行计算的结果;基于目标图像集中的第二类像素点的损失值对所述第二类像素点的深度值进行N次更新,得到所述第二类像素点的目标深度值,所述第二类像素点的损失值是采用所述补丁匹配算法对所述第二类像素点中的像素点进行并行计算的结果,其中,N为预设阈值;整合所述第一类像素点的目标深度值和所述第二类像素点的目标深度值,得到所述目标图像集的深度图;对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标。
本申请提供的图像的三维重建方法,通过将图像集中的像素点划分为两类像素点,基于补丁匹配算法每次并行计算一类像素点中所有像素点的损失值,从而根据得到的损失值对一类像素点的深度值进行N次更新,最后整合两类像素点的深度值,得到图像集的深度图,有效地减少了深度图的计算时间,进一步提高了三维重建的速率。
结合第一方面,在第一方面的某些实现方式中,所述第一类像素点和所述第二类像素点是交错分布的。
结合第一方面,在第一方面的某些实现方式中,所述第一类像素点的深度值在初始状态下为第一深度值,所述第一深度值是根据稀疏点云确定的深度范围随机初始化的深度值;所述基于所述第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,包括:采用所述补丁匹配算法,基于所述第一深度值计算所述第一类像素点的第一损失值;计算所述第一类像素点周围的多个第二类像素点的平均深度值;采用所述补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值;将所述第一类像素的深度值更新为用于计算所述第一损失值和所述第二损失值中较小的损失值所采用的深度值。
结合第一方面,在第一方面的某些实现方式中,所述采用补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值,包括:整合所述平均深度值和所述第一类像素点的二维坐标,得到所述第一类像素点的三维坐标;根据所述目标图像集中每个目标图像的相机姿态,确定所述每个目标图像的邻域视图;将所述三维坐标投影到所述第一类像素点所在的目标图像上的邻域视图,得到所述邻域视图中像素点的像素;采用所述补丁匹配算法对所述第一类像素点的像素和所述邻域视图中像素点的像素进行计算,得到所述第二损失值。
结合第一方面,在第一方面的某些实现方式中,所述对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标,包括:利用光度一致性和几何一致性过滤所述深度图中的噪声点,得到处理后的深度图;使用投影矩阵对所述处理后的深度图进行计算,得到所述目标图像集中像素点的三维坐标。
第二方面,提供了一种图像的三维重建装置,用于执行上述第一方面中任一种可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面中任一种可能的实现方式中的方法的模块。
第三方面,提供了另一种图像的三维重建装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该装置还包括存储器。可选地,该装置还包括通信接口,处理器与通信接口耦合。
在一种实现方式中,该三维重建装置为数据处理设备。当该三维重建的装置为数据处理设备时,通信接口可以是收发器,或,输入/输出接口。
在另一种实现方式中,该三维重建的装置为配置于服务器中的芯片。当该三维重建的装置为配置于服务器中的芯片时,通信接口可以是输入/输出接口。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1是本申请实施例提供的图像的三维重建方法的示意性流程图;
图2是本申请实施例提供的一种划分像素的方法;
图3是本申请实施例三次选取多个第二类像素点的方式示意图;
图4是本申请实施例提供的另一种图像的三维重建方法的示意性流程图;
图5是本申请实施例提供的一种图像的三维重建装置的示意性框图;
图6是本申请实施例提供的另一种图像的三维重建装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。三维重建一直以来都是计算机图形学和计算机视觉邻域的一个热点问题。在计算机中生成物体的三维表示有两类方法:一种是使用几何建模软件,通过数学模型和人机交互方法生成人为控制下的物体三维几何模型。第二种通过光学设备对真实三维物体进行采样,通过计算机近似还原三维物体模型。其中,第一种方式需要经过训练的专业技术人员进行长时间的精细化操作,且难以处理多变的真实环境,所以现有的研究多着眼于基于图像的第二种方式,其具有成本低廉、操作简单、逼真性高等优势,被广泛应用于科技,文化,交通,经济,娱乐等各个领域,比如文物保护,数字城市,自动驾驶、实时监控等多个方面,具有极其深远的研究意义和实用价值。在三维重建中稠密点云是表示三维场景的最直观、最基础的方式,后续的网格生成、纹理映射都需要基于稠密点云完成。
基于图像的大规模三维场景重建相比于之前的室内场景、街道场景的问题,存在着图片数量巨大,单个计算节点存储计算能力有限的问题,现有的方法运行时间长达数周之久,无法在有限的时间内完成三维重建,因此无法及时发现采集数据的问题,当需要对数据集进行补拍、重新采集时,则需要重新前往拍摄地、部署调试设备,消耗了大量的人力物力。
近年来,随着图形处理器(graphics processing unit,GPU)的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算也成为一种趋势。但是,目前三维重建中大多是使用CPU的计算资源完成待处理图像的深度值计算,但是该计算过程所需要的时间较长,导致三维重建的速度较慢。
有鉴于此,本申请提供了一种图像的三维重建方法,通过将图像集中的像素点划分为两类像素点,基于补丁匹配算法每次并行计算一类像素点中所有像素点的损失值,从而根据得到的损失值对一类像素点的深度值进行N次更新,最后整合两类像素点的深度值,得到图像集的深度图,有效地减少了深度图的计算时间,进一步提高了三维重建的速率。
在介绍本申请实施例提供的图像的三维重建方法和三维重建装置之前,先做出以下几点说明。
第一,在下文示出的实施例中,各术语及英文缩略语,如目标图像集、邻域视图等,均为方便描述而给出的示例性举例,不应对本申请构成任何限定。本申请并不排除已有或未来定义其它能够实现相同或相似功能的术语的可能。
第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的像素类型。需要说明的是,本申请实施例使用“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或重要程度。例如,第一类像素、第二类像素等,只是为了区分不同的像素点,而并不是表示这两类像素点的重要程度等不同。
第三,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
下面结合图1,对本申请实施例提供的图像的三维重建方法进行详细说明。本申请实施例的方法可以由数据处理设备执行,也可以由数据处理设备中的芯片执行,本申请实施例对此不作限定。
图1示出了本申请实施例提供的图像的三维重建方法100。如图1所示,该方法100可以包括下列步骤:
S101,根据目标图像集中每个目标图像的相机姿态,确定每个目标图像的邻域视图。
上述目标图像集中的每个图像既可以作为参考图像也可以作为邻域视图。示例性地,在为目标图像集中的图像A选取邻域视图时,该图像A可以称为参考图像,该图像A周围的图像可以称为邻域视图。上述图像A可以为目标图像集中的任一个图像。
应理解,高质量的邻域视图应该满足以下条件:在参考图像和邻域图像能共同看到的特征点处,参考图像和邻域视图与特征点形成的角度在一定阈值内,相机基线距离在一定阈值内。
上述参考图像和邻域视图与特征点形成的角度以及相机基线距离既不可过大,导致匹配度较低,也不应过小,致使他们包含较少的场景信息。
还应理解,在大场景中符合以上条件的邻域视图一般是过量的。因此,需要在符合条件的多个邻域视图中,进一步筛选最具代表性的几个邻域视图(还可以称为最优邻域视图,本申请对此不作限定),构成邻域视图集。
本申请实施例是根据相机的空间几何信息、图像的特征信息和内容相似度来选择最优领域视图的。
示例性地,目标图像集为M,参考图像为R,参考图像R的最优邻域视图集为V。为每张参考图像R,匹配一个子集N,且
其中,子集N包括图像I,CI代表图像I的相机位置,VI代表相机I的相机朝向,CR表示参考相机的位置,VR表示参考相机的朝向,ε1和ε2分别为预设阈值。
应理解,在子集N中的图像和参考图像R的基线距离和相机夹角在合适的阈值内。
定义每两个图像的特征距离T(Ii,Ij):
T(Ii,Ij)=g(Ii,Ij)+h(Ii,Ij),
其中,空间几何信息g(Ii,Ij)定义如下:
Norm表示归一化函数。
图像的相似度h(Ii,Ij)是基于结构相似性(structural similarity,SSIM)距离来衡量的:
其中,μI代表图像I的均值,σI代表图像I的方差,σIiIj代表图像Ii和图像Ij的协方差,k1=0.01,k2=0.03,L=255。
利用上述特征距离T(Ii,Ij)将视图集N聚类为K类。因此,最后邻域视图集V为K个聚类中心的视图集。
可选地,上述S101之前还可以包括:获取目标图像集、已标定的所述相机姿态以及稀疏点云。
S102,采用补丁匹配算法并行计算目标图像中第一类像素点的损失值,并基于损失值对第一类像素点的深度值进行N次更新,得到第一类像素点的目标深度值。
S103,采用补丁匹配算法并行计算目标图像中第二类像素点的损失值,并基于损失值对第二类像素点的深度值进行N次更新,得到第二类像素点的目标深度值。
上述第一类像素点和第二类像素点可以按照图2所示的方法进行分类,如图2所示,第一类像素点和第二类像素点是交错分布。示例性地,本申请实施例将两类像素点分别称为红像素点和黑像素点。应理解,第一类像素点可以称为红像素点,第二类像素点可以称为黑像素点。或者,第一类像素点可以称为黑像素点,第二类像素点可以称为红像素点,本申请对此不作限定。
本申请实施例在确定像素点的深度值时,每次选择一类像素点进行并行计算,通过该方式可以每次处理一半的像素,大幅度提升了深度估计的速度。
下面以第一类像素点为例详细说明目标深度值的确定过程。确定过程可根据下列步骤执行:
步骤一,根据稀疏点云确定上述目标图像集的深度范围。
步骤二,根据确定的深度范围随机初始化第一类像素点和第二类像素点的深度值,本申请实施例将随机初始化的深度值称为第一深度值。
步骤三,整合第一类像素点的第一深度值和第一类像素点的二维坐标,得到第一类像素点的三维坐标。
应理解,上述目标图像集中每个像素点都有各自的二维坐标。
步骤四,将第一类像素点的三维坐标投影到第一类像素点所在的目标图像的邻域视图中,得到邻域视图中的像素点的像素。
步骤五,采用补丁匹配算法对第一类像素点的像素和邻域视图中的像素点的像素进行计算,得到第一损失值。
步骤六,计算第一类像素点周围的多个第二类像素点的平均深度值。
应理解,此时第二类像素点的深度值未随机初始化的深度值,即第二类像素点的第一深度值。
图3示出了本申请实施例三次选取多个第二类像素点的方式。如图3所示,以第一类像素点为中心,在图3所示的12个方向上选取与第一类像素点的像素较为相近的多个第二类像素点,计算选取的多个第二类像素点的平均深度值。具体地,沿着图3所示的12个方向选取了12个区域(区域的大小可以随机选定),在第一次确定的12个区域中的7个区域中选取了8个与第一类像素点的像素最接近的第二类像素点。第二次确定的12个区域的大小会根据第一次选定的8个像素点的位置进行调整,即在第二次、第三次或者第N次选取像素点时,会扩大上一次选定的8个像素点所在的区域,同时减小上一次没有像素点落入的区域,通过这种方式可以更快地确定第一类像素点的目标深度值。应理解,每次选取的多个第二类像素点中可以包括上一次选取的第二类像素点。
步骤七,整合步骤六得到的平均深度值和第一类像素点的二维坐标,得到第一类像素点的三维坐标。执行上述步骤四和步骤五,得到第二损失值。
步骤八,将第一类像素的深度值更新为用于计算上述第一损失值和第二损失值中较小的损失值所采用的深度值。
示例性地,第一损失值小于第二损失值,则第一类像素的深度值为第一深度值。第二损失值小于第一损失值,则第一类像素的深度值为步骤六得到的平均深度值。
记录获取平均深度值的次数,在平均深度值的次数达到预设阈值时,步骤八更新的深度值即为第一类像素点的目标深度值。
应理解,上述预设阈值可以是研究人员预先设定的,可以是4次,8次或者其它数值,本申请对此不作限定。
上述第二类像素点的目标深度值的确定过程,可参照上述第一类像素点的相关描述,此处不再赘述。
下面是本申请实施例提供的一种确定深度值的计算公式。示例性地,基于倾斜平面假设,定义解集为法向量、深度值(n,d)。
1、根据稀疏点云S估算场景深度范围:
其中,fi表示系数点云中的第i个点。
2、利用随机函数初始化像素点的深度值:
以点p为中心的平面fp可以定义为{Xp,np},Xp为p点在相机空间下的坐标。
3、利用单应变化计算归一化互相关匹配法(normalized cross correlation,NCC)得分作为当前解的损失值m:
其中,B为补丁窗口,H表示单应变换矩阵,K1表示第1个相机的内参矩阵,K2表示第2个相机的内参矩阵,R表示相机间的相对旋转矩阵,t表示相对平移矩阵,q表示以点p为中心的补丁窗口中的另一个点像素点q,Hfp(q)表示将q点应用基于平面fp形成的单应变换H,可以理解成H乘q,即一个点p形成一个假设的平面fp,对应一个单应变换H。
4、在每个像素点(第一类像素点或第二类像素点)周围选择8个另一类像素点,然后使用下列算法求解最优候选解:
构建M矩阵,mi,j为第i个候选解变换为第j个损失值。根据mi,j和不同阈值将构建Sgood,Sbad,计算各个邻居像素的权重w:
考虑每次迭代的最重要视图,将在下次迭代中产生影响:
其中,γ为示性函数,γ(false)=0,γ(true)=1。
5、对于每个像素点(第一类像素点或第二类像素点),利用随机扰动进一步细化平面fp,每个像素点根据现有的解重新组成如下8个新的解:
{(nr,dc),(np,dc),(nc,dr),(nr,dr),(np,dr),(nc,dp),(nr,dp),(np,dp)},
其中,nc,nr,np,dc,dr,dp分别表示当前的、随机生成的、扰动生成的法向量和深度值。
上述每个像素点可以根据每一次计算的损失值选择8个候选解,使用8个候选解构建最优解,之后每次迭代过程中根据前一次迭代选择的8个候选解所在区域不断调整搜索邻域,每个像素点利用随机扰动进一步细化平面,生成随机解和扰动解。其中,随机解可以引入原本解集中不存在的解,增加了解随机性。扰动解可以在原有解的基础上进一步细化结果。
本申请采用补丁匹配的算法,可以根据前一次迭代选择的候选解所在区域不断调整搜索邻域,加速收敛过程,通过加大上次候选解出现区域的搜索力度,可以更快的寻找到更优解,有效地提高了深度估算的效率。
S104,利用光度一致性和几何一致性过滤上述深度图中的噪声点,得到处理后的深度图。
光度一致性是根据深度值得到三维坐标点X,并投影到邻域视图中得到对应像素点p’,计算原始点p和对应点p’的光度差异。
示例性地,本申请可以使用改进的NCC得分衡量,NCC对高斯噪声是静态最优的,但特别容易受噪声的影响,因此,可以通过加入双边权重来减少使其对噪声更加鲁棒,具体的计算公式如下:
其中,gi表示像素点的光度信息(颜色值),xi表示像素点的位置,q表示p投影到领域视图中的像素点,D(p)表示像素点p的深度值,D(q)表示像素点q的深度值。
几何一致性是根据深度值得到三维坐标点X,并投影到邻域视图中得到对应像素点p,再利用邻域视图中的p进行相同的操作得到参考视图中的点,计算与原始点的差异。具体的计算公式如下:
ei,j=min(||PrefXj(PjXref(p))-p||,ξ),
其中,ei,j表示重投影误差,P表示相机的投影矩阵,p为领域视图中的一个像素点,Xref(p)是指利用p点还原出的三维点,ξ=2。
S105,使用投影矩阵对上述处理后的深度图进行计算,得到目标图像集中像素点的三维坐标。
应理解,上述投影矩阵可以为Pi=[Mi|pi,4]。
上述像素点的三维坐标可以通过下列公式计算得到:
还应理解,上述步骤三中得到的像素点三维坐标的计算方式可以根据S105提供的公式进行计算。步骤三与S105得到的三维坐标,只有表示像素点深度的坐标可能存在差异。
图4示出了本申请实施例提供的另一种图像的三维重建方法400。本申请实施例的方法400可以由数据处理设备执行,也可以由数据处理设备中的芯片执行,本申请实施例对此不作限定。如图4所示,该方法400可以包括下列步骤:
S401,获取目标图像集、已标定的相机姿态以及稀疏点云。
S402,确定每个目标图像的邻域视图。
具体的确定过程可参照上述S101中的相关描述,此处不再赘述。
S403,估算深度范围。
根据稀疏点云确定估算目标图像集的深度范围可参照上述相关描述,此处不再赘述。
S404,计算像素点的初始损失值。
根据像素点的初始深度值,确定三维坐标。根据三维坐标确定邻域视图像素点的像素,从而采用补丁匹配算法计算像素点的损失值。该步骤的计算过程可参照上述步骤三至步骤五的相关描述,此处不再赘述。
应理解,在第一次计算像素点的损失值时,所采用的深度值为根据稀疏点云确定的深度范围随机初始化的深度值。
S405,根据棋盘格采样,计算获取的多个第二像素的平均深度值。
上述根据棋盘格采样,获取多个第二像素的平均深度值的过程可参照步骤六的相关描述,此处不再赘述。上述棋盘格采样即为图3示出的选取多个第二像素点的方式。
S406,记录获取平均深度值的次数i。
上述i为大于零的整数。
S407,根据平均深度值计算像素点的损失值。
整合S405得到的平均深度值和第一类像素点的二维坐标,得到第一类像素点的三维坐标。
将第一类像素点的三维坐标投影到第一类像素点所在的目标图像的邻域视图中,得到邻域视图中的像素点的像素。
采用补丁匹配算法对第一类像素点的像素和邻域视图中的像素点的像素进行计算,得到像素点的损失值。
本申请实施例将根据第一次得到的平均深度值计算的损失值记录为第1次,第二次得到的损失值记录为第2次,……,第i次得到的损失值记录为第i次。
S408,更新像素点的深度值。
比较第i次的损失值和第i-1次的损失值,将第一类像素的深度值更新为用于计算第i次的损失值和第i-1次的损失值中较小的损失值所采用的深度值。
当i=1时,比较根据第一次的平均深度值计算的第1次的损失值和S404得到的损失值,并将两个损失值中较小的损失值所采用的深度值更新为第一类像素的深度值。
S409,判断获取平均深度值的次数否达等于预设阈值N。
若不等于预设阈值,则执行S405。
若等于预设阈值,则执行S410。
S410,深度图过滤。
该过程可参照上述S104的相关描述,此处不再赘述。
S411,点云融合。
该过程可参照上述S105的相关描述,得到目标图像集中像素点的三维坐标。之后将得到的三维坐标加入点云结合,得到稠密点云,完成图像的三维重建。
上述方法400的具体细节可以参照上述方法100,此处不再赘述。
可选地,上述方法100和方法400可以采用数据处理设备中的GPU计算资源进行计算。表一示出了采用GPU的计算资源和采用CPU的计算资源,计算相同目标图像集的三维重建的时间。如表一所示:
表一
上述openMVS为CPU内的用于三维重建的程序、COLMAP为CPU内的用于三维重建的编程软件。由表一可知,采用GPU计算目标图像集的三维重建的时间远小于采用CPU计算目标图像集的三维重建的时间。本申请采用GPU的计算资源计算目标图像集的深度值可以在很大程度上降低图像三位重建的时间。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图4,详细描述了本申请实施例的图像的三维重建方法,下面将结合图5和图6,详细描述本申请实施例的图像的三维重建装置。
图5示出了本申请实施例提供的图像的三维重建装置500,该装置500包括:确定模块510和处理模块520。
其中,确定模块510,用于基于目标图像集中的第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,所述第一类像素点的损失值是采用补丁匹配算法对所述第一类像素点中的像素点进行并行计算的结果;以及,基于目标图像集中的第二类像素点的损失值对所述第二类像素点的深度值进行N次更新,得到所述第二类像素点的目标深度值,所述第二类像素点的损失值是采用所述补丁匹配算法对所述第二类像素点中的像素点进行并行计算的结果,其中,N为预设阈值;以及,整合所述第一类像素点的目标深度值和所述第二类像素点的目标深度值,得到所述目标图像集的深度图;
处理模块520,用于对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标。
可选地,所述第一类像素点和所述第二类像素点是交错分布的。
可选地,所述第一类像素点的深度值在初始状态下为第一深度值,所述第一深度值是根据稀疏点云确定的深度范围随机初始化的深度值;上述装置500还包括:计算模块,用于采用所述补丁匹配算法,基于所述第一深度值计算所述第一类像素点的第一损失值;以及,计算所述第一类像素点周围的多个第二类像素点的平均深度值;以及,采用补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值;更新模块,用于将所述第一类像素的深度值更新为用于计算所述第一损失值和所述第二损失值中较小的损失值所采用的深度值。
可选地,确定模块510还用于:整合所述平均深度值和所述第一类像素点的二维坐标,得到所述第一类像素点的三维坐标;以及,根据所述目标图像集中每个目标图像的相机姿态,确定所述每个目标图像的邻域视图;以及,将所述三维坐标投影到所述第一类像素点所在的目标图像上的邻域视图,得到所述邻域视图中像素点的像素;计算模块还用于:采用所述补丁匹配算法对所述第一类像素点的像素和所述邻域视图中像素点的像素进行计算,得到所述第二损失值。
可选地,处理模块520具体用于:利用光度一致性和几何一致性过滤所述深度图中的噪声点,得到处理后的深度图;以及,使用投影矩阵对所述处理后的深度图进行计算,得到所述目标图像集中像素点的三维坐标。
应理解,这里的装置500以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。装置500可以用于执行上述方法实施例中与数据处理设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置500具有实现上述方法100和方法400中数据处理设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的实施例,图5中的装置500也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC),本申请在此不做限定。
图6示出了本申请实施例提供的另一种图像的三维重建装置600。该装置600包括处理器610、收发器620和存储器630。其中,处理器410、收发器620和存储器630通过内部连接通路互相通信,该存储器630用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制该收发器620发送信号和/或接收信号。
应理解,装置600可以具体为上述实施例中的数据处理设备,或者,上述实施例中数据处理设备的功能可以集成在装置600中,装置600可以用于执行上述方法实施例中与数据处理设备对应的各个步骤和/或流程。可选地,该存储器630可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器610可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与数据处理设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (6)
1.一种图像的三维重建方法,其特征在于,包括:
基于目标图像集中的第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,所述第一类像素点的损失值是采用补丁匹配算法对所述第一类像素点中的像素点进行并行计算的结果;
基于目标图像集中的第二类像素点的损失值对所述第二类像素点的深度值进行N次更新,得到所述第二类像素点的目标深度值,所述第二类像素点的损失值是采用所述补丁匹配算法对所述第二类像素点中的像素点进行并行计算的结果,其中,N为预设阈值,所述第一类像素点和所述第二类像素点是交错分布的;
整合所述第一类像素点的目标深度值和所述第二类像素点的目标深度值,得到所述目标图像集的深度图;
对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标;
其中,所述第一类像素点的深度值在初始状态下为第一深度值,所述第一深度值是根据稀疏点云确定的深度范围随机初始化的深度值;
所述基于所述第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,包括:
采用所述补丁匹配算法,基于所述第一深度值计算所述第一类像素点的第一损失值;
计算所述第一类像素点周围的多个第二类像素点的平均深度值;
采用所述补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值;
将所述第一类像素的深度值更新为用于计算所述第一损失值和所述第二损失值中较小的损失值所采用的深度值。
2.根据权利要求1所述的方法,其特征在于,所述采用补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值,包括:
整合所述平均深度值和所述第一类像素点的二维坐标,得到所述第一类像素点的三维坐标;
根据所述目标图像集中每个目标图像的相机姿态,确定所述每个目标图像的邻域视图;
将所述三维坐标投影到所述第一类像素点所在的目标图像上的邻域视图,得到所述邻域视图中像素点的像素;
采用所述补丁匹配算法对所述第一类像素点的像素和所述邻域视图中像素点的像素进行计算,得到所述第二损失值。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标,包括:
利用光度一致性和几何一致性过滤所述深度图中的噪声点,得到处理后的深度图;
使用投影矩阵对所述处理后的深度图进行计算,得到所述目标图像集中像素点的三维坐标。
4.一种图像的三维重建装置,其特征在于,包括:
确定模块,用于基于目标图像集中的第一类像素点的损失值对所述第一类像素点的深度值进行N次更新,得到所述第一类像素点的目标深度值,所述第一类像素点的损失值是采用补丁匹配算法对所述第一类像素点中的像素点进行并行计算的结果,所述第一类像素点的深度值在初始状态下为第一深度值,所述第一深度值是根据稀疏点云确定的深度范围随机初始化的深度值;以及,基于目标图像集中的第二类像素点的损失值对所述第二类像素点的深度值进行N次更新,得到所述第二类像素点的目标深度值,所述第二类像素点的损失值是采用所述补丁匹配算法对所述第二类像素点中的像素点进行并行计算的结果,其中,N为预设阈值,所述第一类像素点和所述第二类像素点是交错分布的;以及,整合所述第一类像素点的目标深度值和所述第二类像素点的目标深度值,得到所述目标图像集的深度图;
处理模块,用于对所述深度图进行后处理,得到所述目标图像集中像素点的三维坐标;
计算模块,用于采用所述补丁匹配算法,基于所述第一深度值计算所述第一类像素点的第一损失值;以及,计算所述第一类像素点周围的多个第二类像素点的平均深度值;以及,采用补丁匹配算法,基于所述平均深度值计算所述第一类像素点的第二损失值;
更新模块,用于将所述第一类像素的深度值更新为用于计算所述第一损失值和所述第二损失值中较小的损失值所采用的深度值。
5.一种图像的三维重建装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述三维重建装置执行如权利要求1至3中任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至3中任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110763508.7A CN113643421B (zh) | 2021-07-06 | 2021-07-06 | 图像的三维重建方法和三维重建装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110763508.7A CN113643421B (zh) | 2021-07-06 | 2021-07-06 | 图像的三维重建方法和三维重建装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113643421A CN113643421A (zh) | 2021-11-12 |
CN113643421B true CN113643421B (zh) | 2023-08-25 |
Family
ID=78416749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110763508.7A Active CN113643421B (zh) | 2021-07-06 | 2021-07-06 | 图像的三维重建方法和三维重建装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113643421B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108335353A (zh) * | 2018-02-23 | 2018-07-27 | 清华-伯克利深圳学院筹备办公室 | 动态场景的三维重建方法、装置和系统、服务器、介质 |
CN110223383A (zh) * | 2019-06-17 | 2019-09-10 | 重庆大学 | 一种基于深度图修补的植物三维重建方法及系统 |
CN110728717A (zh) * | 2019-09-27 | 2020-01-24 | Oppo广东移动通信有限公司 | 定位方法及装置、设备、存储介质 |
CN111739146A (zh) * | 2019-03-25 | 2020-10-02 | 华为技术有限公司 | 物体三维模型重建方法及装置 |
-
2021
- 2021-07-06 CN CN202110763508.7A patent/CN113643421B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108335353A (zh) * | 2018-02-23 | 2018-07-27 | 清华-伯克利深圳学院筹备办公室 | 动态场景的三维重建方法、装置和系统、服务器、介质 |
CN111739146A (zh) * | 2019-03-25 | 2020-10-02 | 华为技术有限公司 | 物体三维模型重建方法及装置 |
CN110223383A (zh) * | 2019-06-17 | 2019-09-10 | 重庆大学 | 一种基于深度图修补的植物三维重建方法及系统 |
CN110728717A (zh) * | 2019-09-27 | 2020-01-24 | Oppo广东移动通信有限公司 | 定位方法及装置、设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
大规模医学序列图像体视化研究与实现;伍新中;张树生;洪歧;杨敏;;北京生物医学工程(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113643421A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barron et al. | Mip-nerf 360: Unbounded anti-aliased neural radiance fields | |
Moreau et al. | Lens: Localization enhanced by nerf synthesis | |
CN111243093B (zh) | 三维人脸网格的生成方法、装置、设备及存储介质 | |
CN107945282B (zh) | 基于对抗网络的快速多视角三维合成和展示方法及装置 | |
US11232286B2 (en) | Method and apparatus for generating face rotation image | |
US9177381B2 (en) | Depth estimate determination, systems and methods | |
Tian et al. | Depth estimation using a self-supervised network based on cross-layer feature fusion and the quadtree constraint | |
Zhuang et al. | Acdnet: Adaptively combined dilated convolution for monocular panorama depth estimation | |
CN113628317A (zh) | 渲染方法、设备以及系统 | |
CN115330940B (zh) | 一种三维重建方法、装置、设备和介质 | |
CN116250021A (zh) | 图像生成模型的训练方法、新视角图像生成方法及装置 | |
WO2021035627A1 (zh) | 获取深度图的方法、装置及计算机存储介质 | |
CN116569218A (zh) | 图像处理方法和图像处理装置 | |
Chen et al. | Salbinet360: Saliency prediction on 360 images with local-global bifurcated deep network | |
CN114332125A (zh) | 点云重建方法、装置、电子设备和存储介质 | |
CN111862278A (zh) | 一种动画获得方法、装置、电子设备及存储介质 | |
WO2022247126A1 (zh) | 视觉定位方法、装置、设备、介质及程序 | |
CN109886984B (zh) | 利用前后景灰度差和深度学习网络的图像精确分割方法 | |
CN110533773A (zh) | 一种三维人脸重建方法、装置及相关设备 | |
Wei et al. | Depth-guided optimization of neural radiance fields for indoor multi-view stereo | |
CN105574844B (zh) | 辐射响应函数估计方法和装置 | |
CN113643421B (zh) | 图像的三维重建方法和三维重建装置 | |
Li et al. | Feature point extraction and tracking based on a local adaptive threshold | |
CN116704111A (zh) | 图像处理方法和设备 | |
EP3850587A1 (en) | Methods, devices, and computer program products for improved 3d mesh texturing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |