三维重建方法、装置、设备及存储介质

文档序号:26142769发布日期:2021-08-03 14:27阅读:121来源:国知局
三维重建方法、装置、设备及存储介质

本申请涉及计算机视觉技术领域,尤其涉及一种三维重建方法、装置、设备及存储介质。



背景技术:

随着计算机技术的飞速发展,三维重建技术也随之得到快速发展并被应用于各个行业。传统的三维重建技术通过输入多张不同视角的图片估算出每张图片的相机参数,再把图片中不同像素上的物体重投影至三维空间,从而重建出物体的三维结构。

目前,通常采用常规的卷积神经网络提取图片的特征进行三维重建,但往往会忽略所提取的图片中特征点之间的关系,并且卷积神经网络也很难学习到特征点之间的联系,因而会使得重建后的物体几何形状较差,重建精度不够。另外,目前的重建方案通常单独考虑每张视图的特征,再将多个视图的信息进行融合以重建三维结构。这种方案未考虑到每张视图之间的关联关系,导致重建结果在表达物体细节方面的精度不够高。再者,现有的重建方案无法兼顾重建结果的准确度和完整度,例如一些采样点主要分布在物体边缘轮廓,重建结果则会出现很多孔洞,重建结果出现表面分布不均且不合理等问题,重建效果不理想。

可见,亟需一种三维重建策略以有效克服现有的三维重建技术存在的诸多缺陷。



技术实现要素:

本申请提供一种三维重建方法、装置、设备及存储介质,用于解决现有的三维重建方案重建结果精度不够以及重建结果出现孔洞、表面分布不均且不合理等导致重建效果不理想的技术问题。

第一方面,本申请提供一种三维重建方法,包括:

获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,所述点特征数据用于表征对应的每张视图的特征点;

根据第二预设神经网络算法对所述点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果;

根据预设损失函数获取每张视图的所述点云结果的交集,以生成目标点云结果,所述目标点云结果用于表征三维重建后的目标对象。

在一种可能的设计中,所述根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,包括:

根据预设卷积神经网络算法对每张视图进行图像编码处理,以得到每张视图对应的特征图;

根据预设相机内参矩阵以及每张视图的预设随机点云确定每张视图的局部特征数据;

根据预设人工神经网络算法对所述预设随机点云进行处理,以得到的每张视图的全局特征数据;

将每张视图的所述局部特征数据和所述全局特征数据进行拼接,以得到每张视图的所述点特征数据;

其中,所述第一预设神经网络算法包括所述预设卷积神经网络算法和所述预设人工神经网络算法。

在一种可能的设计中,所述根据预设相机内参矩阵以及每张视图的预设随机点云确定每张视图的局部特征数据,包括:

根据所述预设相机内参矩阵将每张视图的所述预设随机点云投影于对应的所述特征图上,得到所述预设随机点云在对应的所述特征图上的坐标数据;

将所述坐标数据在对应的所述特征图上形成的特征确定为每张视图的所述局部特征数据。

在一种可能的设计中,所述根据预设人工神经网络算法对所述预设随机点云进行处理,以得到的每张视图的全局特征数据,包括:

通过所述预设人工神经网络算法对所述预设随机点云进行处理,以得到所述预设随机点云对应的初始特征点;

将所述初始特征点的均值和方差转换为对应的每个特征图的均值和方差;

将所述特征图的均值和方差确定为对应的每张视图的全局特征数据。

在一种可能的设计中,所述根据第二预设神经网络算法对所述点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果,包括:

根据每张视图的所述点特征数据以及第一预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过所述预设视图内转换的各特征点;

根据所述第二预设神经网络算法、所述经过预设视图内转换的各特征点以及所述经过预设视图间转换的各特征点得到每张视图的所述点云结果;

其中,所述第一预设聚合函数包括通过所述第二预设神经网络算法对每张视图内的各特征点进行学习后得到的第一权重因子,所述第二预设聚合函数包括通过所述第二预设神经网络算法对每张视图间的候选特征点进行学习后得到的第二权重因子。

在一种可能的设计中,在所述通过所述第二预设神经网络算法对每张视图间的候选特征点进行学习之前,还包括::

根据每张视图中的每个特征点与参考视图中的参考特征点各自的所述点特征数据确定每张视图间的所述候选特征点,所述参考视图为除当前视图外的其他视图,所述参考特征点用于表征距离所述当前视图中的当前特征点最近的预设数目个特征点。

在一种可能的设计中,在所述根据预设损失函数获取每张视图的所述点云结果的交集之前,还包括:

根据每张视图的所述点云结果确定第一损失函数和第二损失函数,所述第一损失函数用于约束所述点云结果的准确度,所述第二损失函数用于约束所述点云结果的完整度;

根据预设参数、所述第一损失函数以及所述第二损失函数生成所述预设损失函数。

在一种可能的设计中,所述根据每张视图的所述点云结果确定所述第一损失函数,包括:

根据每张视图的所述点云结果得到混合点云结果,并根据预设最远距离采样算法从所述混合点云结果获取与每张视图中的特征点数量相同的采样点;

根据预设误差函数确定所述采样点与每张视图的所述点云结果之间的第一误差以及每张视图中可见部分的点云结果与所述采样点之间的第二误差;

将所述第一误差与所述第二误差进行第一加和运算,以通过所述第一加和运算的表达式表征所述第一损失函数。

在一种可能的设计中,所述根据每张视图的所述点云结果确定所述第二损失函数,包括:

根据所述预设误差函数确定每张视图的所述点云结果与所述特征点之间的第三误差以及每张视图中可见部分的特征点与所述点云结果之间的第四误差;

将所述第三误差与所述第四误差进行第二加和运算,以通过所述第二加和运算的表达式表征所述第二损失函数。

在一种可能的设计中,所述第二预设神经网络算法包括图神经网络算法。

第二方面,本申请提供一种三维重建装置,包括:

第一处理模块,用于获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,所述点特征数据用于表征对应的每张视图的特征点;

第二处理模块,用于根据第二预设神经网络算法对所述点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果;

第三处理模块,用于根据预设损失函数获取每张视图的所述点云结果的交集,以生成目标点云结果,所述目标点云结果用于表征三维重建后的目标对象。

在一种可能的设计中,所述第一处理模块,包括:

第一处理子模块,用于根据预设卷积神经网络算法对每张视图进行图像编码处理,以得到每张视图对应的特征图;

第二处理子模块,用于根据预设相机内参矩阵以及每张视图的预设随机点云确定每张视图的局部特征数据;

第三处理子模块,用于根据预设人工神经网络算法对所述预设随机点云进行处理,以得到的每张视图的全局特征数据;

拼接模块,用于将每张视图的所述局部特征数据和所述全局特征数据进行拼接,以得到每张视图的所述点特征数据;

其中,所述第一预设神经网络算法包括所述预设卷积神经网络算法和所述预设人工神经网络算法。

在一种可能的设计中,所述第二处理子模块,具体用于:

根据所述预设相机内参矩阵将每张视图的所述预设随机点云投影于对应的所述特征图上,得到所述预设随机点云在对应的所述特征图上的坐标数据;

将所述坐标数据在对应的所述特征图上形成的特征确定为每张视图的所述局部特征数据。

在一种可能的设计中,所述第三处理子模块,具体用于:

通过所述预设人工神经网络算法对所述预设随机点云进行处理,以得到所述预设随机点云对应的初始特征点;

将所述初始特征点的均值和方差转换为对应的每个特征图的均值和方差;

将所述特征图的均值和方差确定为对应的每张视图的全局特征数据。

在一种可能的设计中,所述第二处理模块,具体用于:

根据每张视图的所述点特征数据以及第一预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过所述预设视图内转换的各特征点;

根据每张视图的所述点特征数据以及第二预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过所述预设视图间转换的各特征点;

根据所述第二预设神经网络算法、所述经过预设视图内转换的各特征点以及所述经过预设视图间转换的各特征点得到每张视图的所述点云结果;

其中,所述第一预设聚合函数包括通过所述第二预设神经网络算法对每张视图内的各特征点进行学习后得到的第一权重因子,所述第二预设聚合函数包括通过所述第二预设神经网络算法对每张视图间的候选特征点进行学习后得到的第二权重因子。

在一种可能的设计中,所述第二处理模块,还具体用于:

根据每张视图中的每个特征点与参考视图中的参考特征点各自的所述点特征数据确定每张视图间的所述候选特征点,所述参考视图为除当前视图外的其他视图,所述参考特征点用于表征距离所述当前视图中的当前特征点最近的预设数目个特征点。

在一种可能的设计中,所述三维重建装置,还包括:

第四处理模块,用于根据每张视图的所述点云结果确定第一损失函数和第二损失函数,所述第一损失函数用于约束所述点云结果的准确度,所述第二损失函数用于约束所述点云结果的完整度;

生成模块,用于根据预设参数、所述第一损失函数以及所述第二损失函数生成所述预设损失函数。

在一种可能的设计中,所述第四处理模块,具体用于:

根据每张视图的所述点云结果得到混合点云结果,并根据预设最远距离采样算法从所述混合点云结果获取与每张视图中的特征点数量相同的采样点;

根据预设误差函数确定所述采样点与每张视图的所述点云结果之间的第一误差以及每张视图中可见部分的点云结果与所述采样点之间的第二误差;

将所述第一误差与所述第二误差进行第一加和运算,以通过所述第一加和运算的表达式表征所述第一损失函数。

在一种可能的设计中,所述第四处理模块,还具体用于:

根据所述预设误差函数确定每张视图的所述点云结果与所述特征点之间的第三误差以及每张视图中可见部分的特征点与所述点云结果之间的第四误差;

将所述第三误差与所述第四误差进行第二加和运算,以通过所述第二加和运算的表达式表征所述第二损失函数。

在一种可能的设计中,所述第二预设神经网络算法包括图神经网络算法。

第三方面,本申请提供一种电子设备,包括:

处理器;以及,

存储器,用于存储所述处理器的计算机程序;

其中,所述处理器配置为经由执行所述计算机程序来执行第一方面所提供的任意一种可能的三维重建方法。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于执行第一方面所提供的任意一种可能的三维重建方法。

第五方面,本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所提供的任意一种可能的三维重建方法。

本申请提供一种三维重建方法、装置、设备及存储介质。首先获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,以通过点特征数据表征对应的每张视图的特征点。然后根据第二预设神经网络算法对点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果,最后根据预设损失函数获取每张视图的点云结果的交集,生成目标点云结果,目标点云结果用于表征三维重建后的目标对象,完成对目标对象的三维重建。本申请提供的三维重建方法充分考量了每张视图内各特征点之间联系以及每张视图之间的联系情况,利用各视图之间的互补性和一致性有效提高了重建结果的准确度,进而提升了重建结果精度。并且,通过特意设置的预设损失函数获取每张视图重建结果的交集,从完整度和准确度两方面约束每张视图的点云结果以得到最终的目标点云结果,使得目标点云结果在表达重建后的目标物体时避免出现孔洞、表面分布不均或不合理等问题,保障了对目标物体理想的重建效果。

附图说明

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

图1为本申请实施例提供的一种应用场景示意图;

图2为本申请实施例提供的一种三维重建方法的流程示意图;

图3为本申请实施例提供的另一种三维重建方法的流程示意图;

图4为本申请实施例提供的再一种三维重建方法的流程示意图;

图5为本申请实施例提供的一种视图内连接示意图;

图6为本申请实施例提供的一种视图内的特征点聚合更新示意图;

图7为本申请实施例提供的一种视图间连接示意图;

图8为本申请实施例提供的一种视图间的特征点聚合更新示意图;

图9为本申请实施例提供的一种确定损失函数的流程示意图;

图10为本申请实施例提供的一种三维重建装置的结构示意图;

图11为本申请实施例提供的一种第一处理模块的结构示意图;

图12为本申请实施例提供的另一种三维重建装置的结构示意图;

图13为本申请提供的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

传统的三维重建技术通过输入多张不同视角的图片估算出每张图片的相机参数,再把图片中不同像素上的物体重投影至三维空间,从而重建出物体的三维结构。目前,采用常规的卷积神经网络提取图片的特征进行三维重建,但往往会忽略所提取的图片中特征点之间的关系,并且卷积神经网络也很难学习到特征点之间的联系,因而会使得重建后的物体几何形状较差,重建精度不够。另外,目前的重建方案通常单独考虑每张视图的特征,再将多个视图的信息进行融合以重建三维结构。这种方案未考虑到每张视图之间的关联关系,导致重建结果在表达物体细节方面的精度不够高。再者,现有的重建方案无法兼顾重建结果的准确度和完整度,例如一些采样点主要分布在物体边缘轮廓,重建结果则会出现很多孔洞,重建结果出现表面分布不均且不合理等问题,重建效果不理想。可见,亟需一种三维重建策略以有效克服现有的三维重建技术存在的诸多缺陷。

针对现有技术存在的上述技术问题,本申请提供一种三维重建方法、装置、设备及存储介质。本申请提供的三维重建方法的发明构造在于:首先基于第一预设神经网络算法获取每张视图中更为精确的特征点,得到点特征数据,然后根据点特征数据和第二预设神经网络算法考量每张视图内各特征点之间的连接关系以及每张视图之间的连接关系,以使得第二预设神经网络算法充分学习到每张视图内各特征点之间的关联信息以及各视图之间的关联信息,有效提高所得到的点云结果的准确度,以提升重建结果的精度。并且进一步地,通过设计的预设损失函数获取每张视图的点云结果的交集,以得到最终表征三维重建后的目标对象的目标点云结果,预设损失函数从完整度和准确度两方面对点云结果进行约束,可以使得生成的目标点云结果目标点云结在表达重建后的目标物体时避免出现孔洞、表面分布不均或不合理等问题,从而保障目标物体理想的重建效果。

以下,对本申请实施例的示例性应用场景进行介绍。

图1为本申请实施例提供的一种应用场景示意图。如图1所示,本申请实施例提供的三维重建方法可以由本申请实施例提供的三维重建装置执行,本申请实施例提供的三维重建装置可以配置于电子设备100中,该电子设备100的处理器可以被配置为执行相应计算机程序来执行本申请实施例提供的三维重建方法,实现将目标对象200的不同视图作为电子设备100执行相应计算机程序的输入,输出三维重建后的目标对象300。

图1中的目标对象200以椅子(仅以一张视图的曲线图示意表示)为例示出,输出得到的三维重建后的目标对象300则为椅子的立体图形。

可以理解的是,电子设备100可以为能够被配置有处理器以执行相应计算机程序来执行本申请实施例提供的三维重建方法的任意设备,例如,电子设备100可以为计算机、智能手机、智能手表等等,本实施例对于电子设备100的类型不作限制,图1中的电子设备100以计算机为例示出。

需要说明的是,上述应用场景仅仅是示意性的,本申请实施例提供的三维重建方法、装置、设备及存储介质包括但不仅限于上述应用场景。

图2为本申请实施例提供的一种三维重建方法的流程示意图。如图2所示,本实施例提供的三维重建方法,包括:

s101:获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据。

其中,点特征数据用于表征对应的每张视图的特征点。

针对需要进行三维重建的目标对象而言,首先获取目标对象的预设数量张不同的视图图片,即获取预设数量目标对象的不同张视图。例如,目标对象为椅子,可以通过相机拍摄拍摄椅子不同视角的预设数量张数的图片,比如正视图、左视图、右视图、侧视图等等。其中,本实施例对于预设数量的具体取值以及不同视图的视角不作限定,可以遵循以最少的图片数量表达目标对象最多特征信息为原则。

在获取到目标对象的不同视图之后,根据第一预设神经网络算法以及各视图得到各视图的点特征数据,其中,点特征数据用于表征相对应的该视图的特征点,例如各视图的顶点。第一预设神经网络算法用于对每张视图中各特征点进行提取,以得到点特征数据。

在一种可能的设计中,步骤s101中根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据的可能实现方式如图3所示,图3为本申请实施例提供的另一种三维重建方法的流程示意图。如图3所示,本实施例提供的根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,包括:

s1011:根据预设卷积神经网络算法对每张视图进行图像编码处理,以得到每张视图对应的特征图。

将目标对象的每张视图作为预设卷积神经网络算法的输入,以通过预设卷积神经网络算法对输入的每张视图进行图像编码处理,输出即为每张视图所对应的特征图。其中,输出的不同深度的预设卷积神经网络算法的结果得到多尺度的特征图。

预设卷积神经网络算法可以为例如vgg-16(visualgeometrygroupnetwork-16,视觉几何群网络)等任意一图像编码处理以得到特征图的相应算法,本实施例对于预设卷积神经网络算法的具体内容不作限定。

s1012:根据预设相机内参矩阵以及每张视图的预设随机点云确定每张视图的局部特征数据。

在得到各二维视图的特征图之后,以通过预设相机内参矩阵以及各张视图中预设随机点云确定各张视图的局部特征。

具体地,可以首先根据预设相机内参矩阵将每张视图的预设随机点云投影于对应的特征图上,得到预设随机点云在对应的特征图上的坐标数据,进而将得到的各坐标数据在与其对应的特征图上所形成的特征确定为每张视图的局部特征数据。

其中,预设相机内参矩阵用于将三维相机坐标变换至二维齐次图像坐标的变换工具。预设随机点云为针对每张视图随机预设的一些三维坐标数据。通过预设相机内参矩阵将预设随机点云于二维的特征图上进行投影,得到预设随机点云在特征图上的坐标数据,通过该坐标数据表征对应的每张视图的特征点,并将这些表征每张视图的特征点的坐标数据在与其对应的特征图上所形成的特征确定为该张视图的局部特征数据,从而完成特征图至特征点的转换。

可以理解的是,预设相机内参矩阵是由获取预设数量目标对象的不同张视图的相机决定,对于预设相机内参矩阵的具体内容不作限定。

s1013:根据预设人工神经网络算法对预设随机点云进行处理,以得到的每张视图的全局特征数据。

在得到每张视图的局部特征数据时,进一步还需得到每张视图的全局特征数据。其中,全局特征数据用于表征每张视图的全局信息。

例如,可以首先利用预设人工神经网络算法对预设随机点云进行多层感知处理,得到各预设随机点云中各点的特征,然后再将预设随机点云中各点的特征转化至对应的特征图中,以得到该特征图所对应的每张视图的全局信息。

具体地,本步骤s1013中获得每张视图的全局特征数据可能的实现方式如下所示:

首先通过预设人工神经网络算法对预设随机点云进行处理,以得到预设随机点云对应的初始特征点,即将预设随机点云作为预设人工神经网络算法的输入进行感知学习处理,得到的处理结果,即输出为预设随机点云对应的初始特征点。预设人工神经网络算法可以例如为mlp(multi-layerperceptron,多层感知器),对此本实施例不作限定。在得到初始特征点之后,进一步将初始特征点的均值和方差转换为对应的每个特征图的均值和方差,以将特征图的均值和方差确定为对应的每张视图的全局特征数据,从而获得表征每张视图全局信息的全局特征数据。

s1014:将每张视图的局部特征数据和全局特征数据进行拼接,以得到每张视图的点特征数据。

在得到每张视图的局部特征数据和全局特征数据之后,将每张视图的这两者数据进行拼接,以形成每张视图的点特征数据。其中,拼接可以理解为直接合并,即将局部特征数据和全局特征数据进行直接合并,合并结果作为点特征数据。

本实施例提供的三维重建方法中,根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,其中,第一预设神经网络算法包括预设卷积神经网络算法和预设人工卷积神经网络算法。通过第一预设神经网络算法中的各算法实现对目标对象的不同视图的处理,以得到表征每张视图的局部信息和全局信息的局部特征数据和全局特征数据,从而得到每张视图的点特征数据,在完成由视图到点特征的提取过程中考量了每张视图的全局信息和局部信息,充分获取不同视图的点特征,有利于提高后续三维重建的准确度。

s102:根据第二预设神经网络算法对点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果。

在得到每张视图的点特征数据之后,基于点特征数据并利用第二预设神经网络算法进行预设视图内转换以及预设视图间转换得到每张视图的点云结果。

在一种可能的设计中,步骤s102可能实现方式如图4所示,图4为本申请实施例提供的再一种三维重建方法的流程示意图。如图4所示,本实施例,包括:

s201:根据每张视图的点特征数据以及第一预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图内转换的各特征点。

为了有效提高三维重建结果的准确度,本申请实施例提供的三维重建方法考量了每张视图内各特征点之间的连接关系以及各视图之间的连接关系。其中,对于每张视图内各特征点之间的连接关系的考量可以通过对每张视图的点特征数据进行预设视图内转换得以实现,而对于各视图之间的连接关系的考量可以通过对每张视图的点特征数据进行预设视图间转换得以实现。

对于预设视图内转换而言,针对每张视图,根据该张视图内的各特征点的点特征数据,利用全邻近思想选择相邻边,即将每张视图内的各特征点与当前视图中剩余的其他特征点进行连接,以进行预设视图内转换。如图5所示,视图υ1至视图υn为目标对象10的不同视图(图5中仅示意性示出了部分视图),图5为本申请实施例提供的一种视图内连接示意图。参照图5所示,预设视图内转换是基于每张视图内每个特征点与该特征点相连的相邻点的相关信息进行。

具体地,利用第一预设聚合函数以及每张视图的点特征数据对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图内转换的各特征点。

针对每张视图,基于全邻近思想选择相邻边进行预设视图内转换的过程可以通过第一预设聚合函数得以实现,其中,第一预设聚合函数用于聚合一特征点的邻居信息以更新当前特征点,第一预设聚合函数的作用过程如图6所示,图6为本申请实施例提供的一种视图内的特征点聚合更新示意图。参照图6所示,hi(图6中斜线圈表示)表示视图内i特征点的点特征数据,h1、h2、h3、…、hk表示该张视图内i特征点的邻居特征点的各点特征数据(图6中斜线圈表示),h'i(图6中黑色实心圈表示)表示对hi通过第一预设聚合函数进行更新运算后得到的特征点对应的相应数据。其中,第一预设聚合函数可以如下公式(1)所示:

其中,wi表示通过第二预设神经网络算法对每张视图内的各特征点进行学习后得到的第一权重因子,σ表示激活函数,例如leakyrelu函数。

第一权重因子为通过第二预设神经网络算法对每张视图内的各特征点进行学习之后得到的各特征点之间的传递的权重因子。通过包含有该第一权重因子的第一预设聚合函数对每张视图内的各特征点进行更新,进而将经过更新后得到的各特征点确定为经过预设视图内转换的各特征点,从而可以使得每张视图内各特征点由自身传递自身用于三维重建所能表达的相关信息。

第二预设神经网络算法可以为图神经网络(graphneuralnetwork,gnn)算法,例如gcn(graphconvolutionalnetworks,图卷积网络)算法,在实际工况中,可以根据目标对象的复杂程度等需求设置相适应的图神经网络算法,对此,本实施例不作限定。

本申请实施例提供的三维重建方法,在利用第一预设聚合函数进行预设视图内转换时不同于现有技术中基于相应的聚合函数采用均值或者求和的相应策略,本实施例中是通过第二预设神经网络算法对每张视图内各特征点的学习得到该特征点的第一权重因子,以形成包含第一权重因子的第一预设聚合函数,通过所确定的该第一预设聚合函数对每张视图内的各特征点进行更新,达到对每张视图更新的目的,并而将更新后的每个特征点确定为经过预设视图内转换的各特征点,以充分获取每张视图内各特征点自身用于三维重建所要表达的相关信息,有利于提高三维重建结果的准确度。

s202:根据每张视图的点特征数据以及第二预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图间转换的各特征点。

由于单个视图可能会存在遮挡导致部分特征丢失,因而为了有效提高三维重建结果的准确度,本申请实施例提供的三维重建方法考量了每张视图的各特征与其他视图之间的连接关系,以此实现不同视图之间的互补。

对于预设视图间转换而言,针对每张视图,根据各张视图间每个特征点的点特征数据,利用k邻近思想选择相邻边,即将每张视图中的每个特征点与距离当前视图中的当前特征点最近的k'个特征点进行连接,以进行预设视图间转换。如图7所示,视图υ1至视图υn为目标对象的不同视图(图7中仅示意性示出了部分视图中部分特征点的连接情况),图7为本申请实施例提供的一种视图间连接示意图。参照图7所示,预设视图间转换是基于每张视图内每个特征点与该特征点相连的其他视图内的参考特征点的相关信息。

其中,k'的取值即为预设数目的对应值,具体的取值可以根据实际情况设置,可以为大于0的整数,对此,本实施例不作限定。

具体地,利用第二预设聚合函数以及每张视图的点特征数据对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图间转换的各特征点。

针对每张视图,基于k邻近思想选择相邻边以进行预设视图间转换的过程可以通过第二预设聚合函数得以实现,其中,第二预设聚合函数用于根据当前视图中的一特征点与的参考视图中的参考特征点之间进行连接以更新当前特征点。第二预设聚合函数的作用过程如图8所示,图8为本申请实施例提供的一种视图间的特征点聚合更新示意图。其中,hq表示一视图中的特征点q的点特征数据,hj表示与特征点q相连的各参考特征点j的点特征数据,参照图8所示,视图υ1中的参考特征点的点特征数据以h'1、h'2、…、h'k(图8中斜线圈表示)表示,视图υ2中的参考特征点的点特征数据以hk+1、hk+2、…、h2k(图8中斜线圈表示)表示,视图υn中的参考特征点的点特征数据以h(n'-1)k+1、h(n'-1)k+2、…、h2n'(图8中斜线圈表示)表示,h'q(图8中黑色实心圈表示)表示对h'q通过第二预设聚合函数进行更新运算后得到的特征点的相应数据。其中,第二预设聚合函数可以如下公式(2)所示:

其中,与该特征点q相连的其他视图中的各特征点以j表示,nq表示与特征点q相连的各特征点的集合,αqj表示通过第二预设神经网络算法对每张视图间的候选特征点进行学习后得到的第二权重因子,σ表示激活函数,例如leakyrelu函数,w表示特征点q的维度矩阵。

另外,在通过第二预设神经网络算法对每张视图间的候选特征点进行学习之前,还包括:

根据每张视图中的每个特征点与参考视图中的参考特征点各自的点特征数据确定每张视图间的候选特征点,其中,参考视图为除当前视图外的其他视图,参考特征点用于表征距离当前视图中的当前特征点最近的预设数目个特征点。

第二权重因子为通过第二预设神经网络算法对每张视图间的候选特征点进行学后得到的各视图间的特征点之间的信息传递的权重因子。具体地,第二权重因子可以通过如下所示的公式(3)得以获取:

αqj=softmas(wα(whq||whj))(3)

其中,利用softmax函数获取第二权重因子,符号“||”表示hq与hj拼接,wα用于表征第二预设神经网络算法的一个卷积层。

具体地,首先将当前特征点的点特征数据与参考特征点的点特征数据进行拼接,然后利用一个卷积层将拼接后的数据映射为权重数据,再进行softmax函数运转,运算结果即为各当前特征点与参考特征点之间的信息传递的权重,即第二权重因子。

通过包含第二权重因子的第二预设聚合函数对每张视图进行更新,进而将经过更新后得到的各特征点确定为经过预设视图间转换的各特征点从而获取各视图之间用于三维重建所能表达的相关信息,以实现各视图之间所表达的信息的互补性。

本申请实施例提供的三维重建方法,在利用第二预设聚合函数获取了各视图之间的表达信息,以通过第二预设神经网络算法对每张视图间的候选特征点进行学习得到的第二权重因子,进而形成包含第二权重因子的第二预设聚合函数,通过该第二预设聚合函数实现预设视图间转换,以充分获取各视图间用于三维重建所要表达的相关信息,实现各视图间的互补,有利于提高三维重建结果的准确度。

s203:根据第二预设神经网络算法、经过预设视图内转换的各特征点以及经过预设视图间转换的各特征点得到每张视图的点云结果。

在对每张视图的各特征点进行了预设视图内转换以及预设视图间转换之后,将经过预设视图内转换得到的各特征点和经过预设视图间转换得到的各特征点作为第二预设神经网络算法的输入数据,以通过第二预设神经网络算法对所输入的各特征进行卷积运算,得到的运算结果,即输出则为每张视图的点云结果。

s103:根据预设损失函数获取每张视图的点云结果的交集,以生成目标点云结果。

其中,目标点云结果用于表征三维重建后的目标对象。

对于三维重建结果而言,利用单视图进行重建时所采用的相应神经网络算法通常会学习一映射函数:s=f(i),其中,i表示输入至该相应神经网络算法待三维重建的物体的单视图图片,s则为三维重建后的该物体形状,f则表示该相应神经网络算法需要学习的映射函数。进一步地,当利用多视图进行重建时,假设输入至相应神经网络算法的图片为g张,由于每个单视图都对应重建相同的物体,因此,每个单视图的重建结果应当相同,即存在如下公式(4)所示关系:

s=f(i1)=f(i2)=f(i3)=…=f(ig)(4)

在满足上述公式(4)的情况下,若重建后的某个特征点未在其他视图中出现过,则表明该特征点即为一个错误的重建结果。上述实施例描述中的点云结果为根据点特征数据并利用第二预设神经网络算法确定的每张视图的重建结果,再结合三维重建结果需满足的一些关系,本申请实施例设置了预设损失函数以对点云结果施加完整度和准确度两方面约束获取每张视图的点云结果的交集,以有效提高三维重建结果的完整度和准确度,再将交集结果确定为目标点云结果,即根据预设损失函数获取每张视图的点云结果的交集生成目标点云结果。其中,目标点云结果用于表征三维重建后的目标对象。

在一种可能的设计中,在步骤s103生成目标点云结果之前,本申请实施例提供的三维重建方法,还包括生成预设损失函数。

具体地,首先根据每张视图的点云结果确定第一损失函数和第二损失函数,其中,第一损失函数用于约束点云结果的准确度,第二损失函数用于约束点云结果的完整度。然后根据预设参数、第一损失函数以及第二损失函数生成预设损失函数。

例如,预设损失函数如下公式(5)所示:

loss=α1lossacc+α2losscom(5)

其中,loss表示预设损失函数,lossacc表示第一损失函数,losscom表示第二损失函数,α1和α2预设参数,该预设参数可以通过将第一损失函数和第二损失函数关联起来进行训练所得,具体的数值为实际工况中的训练结果。

第一损失函数和第二损失函数分别由每张视图的点云结果进行确定。

在一种可能的设计中,根据每张视图的点云结果确定第一损失函数的可能实现方式如图9所示。图9为本申请实施例提供的一种确定损失函数的流程示意图。如图9所示,本实施例包括:

s401:根据每张视图的点云结果得到混合点云结果,并根据预设最远距离采样算法从混合点云结果获取与每张视图中的特征点数量相同的采样点。

将每张视图的点云结果进行混合,以得到混合点云结果,然后利用预设最远距离采样算法(farthestpointsampling,fps)从得到的混合点云结果中获取出与重建前的每张视图中的特征点数量相同的采样点(m'),可以理解的是,数量相同的采样点(m')表示一集合。

s402:根据预设误差函数确定采样点与每张视图的点云结果之间的第一误差以及每张视图中可见部分的点云结果与采样点之间的第二误差。

s403:将第一误差与第二误差进行第一加和运算,以通过第一加和运算的表达式表征第一损失函数。

在从混合点云结果中获取出与每张视图中的特征点数量相同的各采样点之后,利用预设误差函数确定采样点与每张视图的点云结果(gt)之间的第一误差,以及利用预设误差函数确定每张视图中可见部分(front)的点云结果与采样点之间的第二误差,再将第一误差与第二误差进行第一加和运算,通过第一加和运算表达式表征第一损失函数,从而根据点云结果确定第一损失函数的表达式,如下公式(6)表示:

lossacc=d1(gt,m′)+dfront(gt,m′)(6)

其中,d1表示点云结果与采样点之间的第一误差,dfront表示针对可见部分点云结果与采样点之间的第二误差。第一误差和第二误差具体根据预设误差函数求得,预设误差函数可以为cd函数,如下公式(7)所示:

其中,x和υ分别表示利用cd函数进行运算的两个集合,x表示集合x中的每个数据,y表示集合υ中的每个数据,min表示最小值操作。

通过上述实施例描述可知,将点云结果看作一集合,获取到的数量相同的采样点看作一集合,从而可以通过上述公式(7)所示的预设误差函数分别确定第一误差以及针对可见部分而得到的第二误差,将第一误差和第二误差之和,即进行第一加和运算,以确定第一损失函数,作为预设损失函数的准确度部分,用于约束点云结果的准确度。其中,可见部分可以理解为在当前视图的视角中未被遮挡的部分。

进一步地,在一种可能的设计中,根据每张视图的点云结果确定第二损失函数的可能实现方式包括:

首先根据预设误差函数确定每张视图的点云结果与特征点之间的第三误差以及每张视图中可见部分的特征点与点云结果之间的第四误差,将第三误差与第四误差进行第二加和运算,以通过第二加和运算的表达式表征第二损失函数。

具体地,利用上述图10所示实施例中的预设误差函数,将点云结果(gt)看作一集合,将与点云结果对应的每张视图中的特征点(m)看作一集合,通过预设误差函数分别确定该两集合之间的第三误差以及针对可见部分得到的第四误差,再将第三误差与第四误差进行求和运算,即第二加和运算,通过第二加和运算表达式表征第二损失函数,将该第二损失函数作为预设损失函数的完整度度部分,用于约束点云结果的完整度。完成根据点云结果确定第二损失函数的表达式,该表达式如下公式(8)表示:

losscom=d2(gt,m)+d′front(gt,m)(8)

其中,d2表示点云结果与特征点之间的第三误差,dfront表示针对可见部分点云结果与特征点之间的第四误差。

通过上述实施例的描述得到第二损失函数表达式,以通过该第二损失函数约束点云结果的完整度。从而根据第一损失函数和第二损失函数得到预设损失函数表达式。进而根据所形成的该预设损失函数的表达式来获取每张视图的点云结果的交集,将获取到的交集确定为目标点云结果,完成对目标对象的三维重建。

本申请实施例提供的三维重建方法,首先获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据,以通过点特征数据表征对应的每张视图的特征点。然后根据第二预设神经网络算法对点特征数据进行预设视图内转换以及预设视图间转换得到每张视图的点云结果。最后根据预设损失函数获取每张视图的点云结果的交集,生成目标点云结果,完成对目标对象的三维重建。其中充分考量了每张视图内各特征点之间以及每张视图间的联系情况,利用各视图之间的互补性和一致性有效提高了重建结果的准确度,进而提升了重建结果精度。并且,通过特意设置的预设损失函数获取每张视图重建结果的交集,从完整度和准确度两方面约束每张视图的点云结果以得到最终的目标点云结果,使得目标点云结果在表达重建后的目标物体时避免出现孔洞、表面分布不均或不合理等问题,保障了对目标物体理想的重建效果。

下述为本申请装置实施例,可以用于执行本申请对应的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请对应的方法实施例。

图10为本申请实施例提供的一种三维重建装置的结构示意图。如图10所示,本实施例提供的三维重建装置500,包括:

第一处理模块501,用于获取预设数量目标对象的不同张视图,并根据第一预设神经网络算法以及每张视图得到每张视图的点特征数据。

其中,点特征数据用于表征对应的每张视图的特征点。

第二处理模块502,用于根据第二预设神经网络算法对点特征数据进行预设视图内转换以及预设视图间转换,以得到每张视图的点云结果。

第三处理模块503,用于根据预设损失函数获取每张视图的点云结果的交集,以生成目标点云结果。

其中,目标点云结果用于表征三维重建后的目标对象。

在图10所示实施例的基础上,图11为本申请实施例提供的一种第一处理模块的结构示意图。如图11所示,本实施例提供的第一处理模块501,包括:

第一处理子模块5011,用于根据预设卷积神经网络算法对每张视图进行图像编码处理,以得到每张视图对应的特征图。

第二处理子模块5012,用于根据预设相机内参矩阵以及每张视图的预设随机点云确定每张视图的局部特征数据。

第三处理子模块5013,用于根据预设人工神经网络算法对预设随机点云进行处理,以得到的每张视图的全局特征数据。

拼接模块5014,用于将每张视图的局部特征数据和全局特征数据进行拼接,以得到每张视图的点特征数据。

其中,第一预设神经网络算法包括预设卷积神经网络算法和预设人工神经网络算法。

在一种可能的设计中,第二处理子模块5012,具体用于:

根据预设相机内参矩阵将每张视图的预设随机点云投影于对应的特征图上,得到预设随机点云在对应的特征图上的坐标数据。

将坐标数据在对应的特征图上形成的特征确定为每张视图的局部特征数据。

在一种可能的设计中,第三处理子模块5013,具体用于:

通过预设人工神经网络算法对预设随机点云进行处理,以得到预设随机点云对应的初始特征点;

将初始特征点的均值和方差转换为对应的每个特征图的均值和方差;

将特征图的均值和方差确定为对应的每张视图的全局特征数据。

在一种可能的设计中,第二处理模块502,具体用于:

根据每张视图的点特征数据以及第一预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图内转换的各特征点;

根据每张视图的点特征数据以及第二预设聚合函数对每张视图进行更新,以将更新后得到的每个特征点确定为经过预设视图间转换的各特征点;

根据第二预设神经网络算法、经过预设视图内转换的各特征点以及经过预设视图间转换的各特征点得到每张视图的点云结果;

其中,第一预设聚合函数包括通过第二预设神经网络算法对每张视图内的各特征点进行学习后得到的第一权重因子,第二预设聚合函数包括通过第二预设神经网络算法对每张视图间的候选特征点进行学习后得到的第二权重因子。在一种可能的设计中,第二处理模块502,还具体用于:

根据每张视图中的每个特征点与参考视图中的参考特征点各自的点特征数据确定每张视图间的候选特征点,参考视图为除当前视图外的其他视图,参考特征点用于表征距离当前视图中的当前特征点最近的预设数目个特征点。

在上述装置实施例的基础上,图12为本申请实施例提供的另一种三维重建装置的结构示意图。如图12所示,本实施例提供的三维重建装置500,还包括:

第四处理504,用于根据每张视图的点云结果确定第一损失函数和第二损失函数,第一损失函数用于约束点云结果的准确度,第二损失函数用于约束点云结果的完整度;

生成模块505,用于根据预设参数、第一损失函数以及第二损失函数生成预设损失函数。

在一种可能的设计中,第四处理模块504,具体用于:

根据每张视图的点云结果得到混合点云结果,并根据预设最远距离采样算法从混合点云结果获取与每张视图中的特征点数量相同的采样点;

根据预设误差函数确定采样点与每张视图点云结果之间的第一误差以及每张视图中可见部分的点云结果与采样点之间的第二误差;

将第一误差与第二误差进行第一加和运算,以通过第一加和运算的表达式表征第一损失函数。

在一种可能的设计中,第四处理模块504,还具体用于:

根据预设误差函数确定每张视图的点云结果与特征点之间的第三误差以及每张视图中可见部分的特征点与点云结果之间的第四误差;

将第三误差与第四误差进行第二加和运算,以通过第二加和运算的表达式表征第二损失函数。

可选地,第二预设神经网络算法包括图神经网络算法。

值得说明的,上述实施例提供的三维重建装置,可用于执行上述任一实施例提供的三维重建方法的各相应步骤,具体实现方式和技术效果类似,这里不再赘述。

本申请所提供的上述各装置实施例仅仅是示意性的,其中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。

图13为本申请提供的一种电子设备的结构示意图。如图13所示,该电子设备600可以包括:至少一个处理器601和存储器602。图13示出的是以一个处理器为例的电子设备。

存储器602,用于存放处理器601的计算机程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。

存储器602可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器601配置为用于执行存储器602存储的计算机程序,以实现以上各方法实施例中三维重建方法的各相应步骤。

其中,处理器601可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。

可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。当存储器602是独立于处理器601之外的器件时,电子设备600,还可以包括:

总线603,用于连接处理器601以及存储器602。总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果存储器602和处理器601集成在一块芯片上实现,则存储器602和处理器601可以通过内部接口完成通信。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有计算机程序,当电子设备的至少一个处理器执行该计算机程序时,电子设备执行上述的各种实施方式提供的三维重建方法的各个步骤。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述的各种实施方式提供的三维重建方法的各个步骤。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1