本发明涉及图像三维重建技术领域,特别是涉及一种三维重建训练数据的获取方法、装置及电子设备。
背景技术:
三维重建可以理解为对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对三维物体进行处理和分析的基础,也是在计算机中建立表达客观世界的虚拟现实的技术之一。
三维重建方案中通常要使用到三维重建算法。一般来说,需要较多的训练数据,对三维重建算法进行迭代优化,才能得到准确度较高的三维重建算法。三维重建算法是根据图像中的二维点,计算得到三维空间中的三维点的过程,所以训练数据包括三维空间中的三维点和二维图像中的二维点之间的映射关系。
获取该训练数据的方案通常包括:在真实的物理空间中布置多个物体,从不同角度分别对每个物体采集较多的二维图像,进而通过特征点匹配、相机参数估算等过程,确定物体在真实的物理空间中的三维坐标与二维图像中的二维坐标之间的映射关系,作为训练数据。为了获取到较多的训练数据,需要布置多个物体和多角度的相机,拍摄每个物体不同角度的大量二维图像,可见,这种方案需要人工布置物体和相机,以及人工控制相机进行拍摄,因此繁琐程度较高,导致训练数据的获取效率较低。
技术实现要素:
本发明实施例的目的在于提供一种三维重建训练数据的获取方法、装置及设备,以提高训练数据的获取效率。具体技术方案如下:
为达到上述目的,本发明实施例提供了一种三维重建训练数据的获取方法,包括:
在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集;
将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
可选的,所述在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,包括:
在虚拟三维环境中确定一个坐标点作为基准点;
以所述基准点为基准,按照预设方式确定多台虚拟相机的位置;
调整每台虚拟相机的主光轴方向,以使所述多台虚拟相机的视场范围具有重合区域。
可选的,所述以所述基准点为基准,按照预设方式确定多台虚拟相机的位置,包括:
将所述基准点确定为确定部署中心点;
围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。
可选的,所述围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置,包括:
利用如下公式计算得到每台虚拟相机的位置坐标:
其中,cameracenter[i]为第i台虚拟相机的位置坐标,n为所述虚拟相机的总数量,distance为所述虚拟相机到所述部署中心点的距离。
可选的,调整每台虚拟相机的主光轴方向,包括:
分别将每台虚拟相机的主光轴方向调整为朝向所述部署中心点。
可选的,所述根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,包括:
针对所述每台虚拟相机,根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵,其中,所述映射矩阵用于表示三维点的三维坐标与该三维点在二维图像中对应的二维点的二维坐标之间的映射关系;
将该虚拟三维点坐标对应的三维齐次坐标与所述映射矩阵相乘,得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。
可选的,所述根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵,包括:
根据该虚拟相机的外参计算得到该虚拟相机对应的平移向量,其中,所述平移向量用于表示三维点的三维坐标变换到虚拟相机的三维相机坐标系的平移关系;
基于所述平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,确定该虚拟相机对应的映射矩阵。
可选的,在所述将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据之后,所述方法还包括:
针对所述每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标;
根据所述三维重建点坐标与该虚拟三维点坐标之间的差异,对所述三维重建算法进行迭代训练。
为达到上述目的,本发明实施例还提供了一种三维重建训练数据的获取装置,包括:
部署模块,用于在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
生成模块,用于在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
映射模块,用于针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点坐标对应的目标二维点坐标集;
确定模块,用于将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
可选的,所述部署模块包括:
基准点确定单元,用于在虚拟三维环境中确定一个坐标点作为基准点;
相机位置确定单元,用于以所述基准点为基准,按照预设方式确定多台虚拟相机的位置;
光轴方向调整单元,用于调整每台虚拟相机的主光轴方向,以使所述多台虚拟相机的视场范围具有重合区域。
可选的,所述相机位置确定单元包括:
中心点确定子单元,用于将所述基准点确定为部署中心点;
相机位置确定子单元,用于围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。
可选的,所述相机位置确定子单元包括:
位置坐标计算子单元,用于利用如下公式计算得到每台虚拟相机的位置坐标:
其中,cameracenter[i]为第i台虚拟相机的位置坐标,n为所述虚拟相机的总数量,distance为所述虚拟相机到所述部署中心点的距离。
可选的,所述光轴方向调整单元包括:
光轴方向调整子单元,用于分别将每台虚拟相机的主光轴方向调整为朝向所述部署中心点。
可选的,所述映射模块包括:
映射矩阵计算单元,用于针对所述每台虚拟相机,根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵,其中,所述映射矩阵用于表示三维点的三维坐标与该三维点在二维图像中对应的二维点的二维坐标之间的映射关系;
坐标映射单元,用于将该虚拟三维点坐标对应的三维齐次坐标与所述映射矩阵相乘,得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。
可选的,所述映射矩阵计算单元包括:
平移向量计算子单元,用于根据该虚拟相机的外参计算得到该虚拟相机对应的平移向量,其中,所述平移向量用于表示三维点的三维坐标变换到虚拟相机的三维相机坐标系的平移关系;
映射矩阵计算子单元,用于基于所述平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,确定该虚拟相机对应的映射矩阵。
可选的,所述装置还包括:
建点坐标确定模块,用于在所述将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据之后,针对所述每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标;
优化模块,用于根据所述三维重建点坐标与该虚拟三维点坐标之间的差异,对所述三维重建算法进行迭代训练。
为达到上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的三维重建训练数据的获取方法步骤。
应用本发明所示实施例,电子设备可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种三维重建训练数据的获取方法的流程图;
图2为图1所示实施例中步骤s101的一种具体流程图;
图3为基于图2所示实施例的虚拟相机的部署方式的一种示意图;
图4为图1所示实施例中步骤s103的一种具体流程图;
图5为本发明实施例提供的一种小孔成像示意图;
图6为基于图1所示实施例的三维重建算法的迭代训练方式的一种流程图;
图7为本发明实施例提供的一种三维重建训练数据的获取装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
为了达到上述目的,本发明实施例提供了一种三维重建训练数据的获取方法、装置、电子设备、计算机可读存储介质以及计算机程序产品,该方法及装置可以应用于各种需要进行三维重建训练数据获取的电子设备,例如,可以为电脑、处理器、处理芯片等,具体不做限定,下面首先对该三维重建训练数据的获取方法进行详细介绍。
图1为本发明实施例提供的三维重建训练数据的获取方法的流程示意图,包括:
s101,在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
s102,在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
s103,针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集;
s104,将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
可见,本发明实施例提供的方案中,电子设备可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。
在需要获取三维重建训练数据时,电子设备可以执行上述步骤s101,即在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参。其中,虚拟相机可以理解为用于在虚拟环境中模拟相机采集图像的过程的模型。部署虚拟相机的数量可以为6台、8台、10台,等等,具体部署虚拟相机的数量不做限定。
在部署虚拟相机时即需要确定虚拟相机的位置以及主光轴方向,也就是确定虚拟相机的外参,因此,在虚拟三维环境中部署完成多台虚拟相机,也就可以获得每台虚拟相机的外参。作为一种实时方式,电子设备可以在虚拟三维环境中的预设位置部署虚拟相机,并可以确定虚拟相机的主光轴方向为预设方向。其中,预设位置以及预设方向均可以根据需要部署的虚拟相机的数量等预先设置,在此不做具体限定。
确定了每台虚拟相机的外参后,电子设备可以执行上述步骤s102,即在多台虚拟相机的视场范围内生成多个虚拟三维点坐标。其中,视场范围可以为虚拟相机能够采集到的虚拟三维环境中的区域,如果对应于虚拟相机在真实世界中存在真实相机,那么多台虚拟相机的视场范围即相当于该多台真实相机所能采集到的世界区域。那么如果物体位置超出视场范围,将无法被虚拟相机采集到,所以为了模拟真实场景采集物体图像的过程,电子设备可以在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,该多个虚拟三维点坐标即为模拟真实场景中的物体上的点的位置。
作为一种实施方式,电子设备可以在多台虚拟相机的视场范围内,随机生成多个虚拟三维点坐标。举例来说,可以在多台虚拟相机的视场范围内,随机生成预设数量的虚拟三维点坐标。其中,预设数量可以为6个、8个、10个,等等,具体不做限定。
作为另一种实施方式,由于真实物体一般具有一定的形状,所以电子设备可以在多台虚拟相机的视场范围内,按照预设形状生成虚拟三维点坐标。举例来说,电子设备可以在多台虚拟相机的视场范围内,按照正方体生成八个虚拟三维点坐标,这八个虚拟三维点坐标为一个正方体的八个顶点的坐标。其中,预设形状可以为正方体、长方体、四面体或者一些不规则的形状,等等,具体不做限定。
根据相机成像原理可知,相机的外参矩阵用于标识世界坐标系与相机坐标系之间的转换关系,相机的内参矩阵用于标识相机坐标系与图像坐标系之间的转换关系,所以根据相机的外参矩阵、内参矩阵以及三维点坐标即可以计算得到该三维点坐标在该相机采集的二维图像中的二维坐标。
同理的,电子设备获取了每台虚拟相机的外参以及上述虚拟三维点坐标后,针对每个虚拟三维点坐标,便可以根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,也就可以得到该虚拟三维点对应的目标二维点集。其中,虚拟相机的外参矩阵即为旋转平移矩阵,可以根据虚拟相机的位置和主光轴方向确定。
虚拟相机的内参可以包括:水平方向像素焦距、垂直方向像素焦距、虚拟相机的主点在像素坐标系中成像的横坐标、虚拟相机的主点在像素坐标系中成像的纵坐标。由于虚拟相机为虚拟三维环境中的虚拟模型,并不是真实相机,所以电子设备可以预先设置其内参。在一种实施方式中,可以设定虚拟相机的内参矩阵为:
k=[fx,0,cx;0,fy,cy;0,0,1]
其中,k表示虚拟相机的内参矩阵,fx表示虚拟相机的水平方向像素焦距,cx表示虚拟相机的主点在图像坐标系中成像的横坐标,fy表示虚拟相机的垂直方向像素焦距,cy表示虚拟相机的主点在图像坐标系中成像的纵坐标。
在上述步骤s104中,电子设备确定了每个虚拟三维点坐标对应的目标二维点坐标集后,便可以将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据,用于对三维重建算法进行训练,以获得能够准确进行三维重建的算法。
作为本发明实施例的一种实施方式,如图2所示,上述在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参的步骤,可以包括:
s201,在虚拟三维环境中确定一个坐标点作为基准点;
为了方便确定多台虚拟相机的位置,电子设备可以在虚拟三维环境中确定一个坐标点作为基准点。例如,可以将虚拟三维环境对应的三维坐标系的原点作为基准点,这样可以方便确定虚拟相机的位置。当然也可以将虚拟三维环境对应的三维坐标系中的一个预设坐标点作为基准点,这都是合理的。
s202,以所述基准点为基准,按照预设方式确定多台虚拟相机的位置;
确定了上述基准点之后,电子设备可以按照预设方式确定多台虚拟相机的位置。在一种实施方式中,可以按照与基准点之间的距离确定第一台虚拟相机的位置,然后再按照与该第一台虚拟相机之间的距离确定第二台虚拟相机的位置,依此类推,直到确定所有虚拟相机的位置。
s203,调整每台虚拟相机的主光轴方向,以使所述多台虚拟相机的视场范围具有重合区域。
由于相机的视场范围具有重合区域才能同时采集到处于该重合区域内的物体的图像,所以电子设备可以调整每台虚拟相机的主光轴方向,以使多台虚拟相机的视场范围具有重合区域,这样,在该重叠区域内生成虚拟三维点坐标,可以准确地模拟真实场景中真实相机采集真实物体的图像的过程,保证训练数据的准确性。
可见,在本实施例中,电子设备可以在虚拟三维环境中确定一个坐标点作为基准点,以基准点为基准,按照预设方式确定多台虚拟相机的位置,进而,调整每台虚拟相机的主光轴方向,以使多台虚拟相机的视场范围具有重合区域。这样,可以准确确定虚拟相机的外参,保证后续确定的训练数据的准确性。
一种实施方式中,上述以所述基准点为基准,按照预设方式确定多台虚拟相机的位置的步骤,可以包括:将所述基准点确定为部署中心点;围绕部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。
电子设备可以将上述基准点确定为部署中心点,进而围绕该部署中心点,以预设阵列形状部署多台虚拟相机,从而得到每台虚拟相机的位置。在一种实施方式中,上述基准点可以为虚拟环境对应的三维坐标系的原点,也就是说,电子设备可以将该三维坐标系的原点确定为部署中心点,然后围绕三维坐标系的原点,可以以预设阵列形状部署多台虚拟相机。其中,预设阵列形状可以为圆形、正方形、正方体、球体,等等,本发明实施例不做具体限定。
作为一种实施方式,可以围绕部署中心点,按照预设半径的圆形部署多台虚拟相机,得到每台虚拟相机的位置。例如,电子设备可以将三维坐标系的原点作为部署中心点,按照半径为10米的圆形,在三维坐标系的x-z平面内部署8台虚拟相机。
可见,在本实施例中,电子设备可以将上述基准点确定为部署中心点,进而围绕部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。这样,可以简便快速地确定每台虚拟相机的位置,可以进一步提高训练数据的获取效率。
作为本发明实施例的一种实施方式,上述围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置的步骤,可以包括:
利用如下公式计算得到每台虚拟相机的位置坐标:
其中,cameracenter[i]表示第i台虚拟相机的位置坐标,n表示虚拟相机的总数量,distance表示虚拟相机到部署中心点的距离。采用该公式可以在虚拟三维环境对应的三维坐标系的x-z平面内,将虚拟相机以圆形阵列部署,那么虚拟相机到部署中心点的距离即为该圆形的半径,distance也就是为该圆形的半径,这样,便可以在半径为distance,三维坐标系的原点为圆心的圆形的圆周上,均匀地部署n台虚拟相机。
可见,在本实施例中,电子设备可以按照上述公式计算得到每台虚拟相机的位置坐标,按照该公式可以在在半径为distance,三维坐标系的原点为圆心的圆形的圆周上,均匀地部署n台虚拟相机,方便确定虚拟相机的位置。
作为本发明实施例的一种实施方式,上述调整每台虚拟相机的主光轴方向的步骤,可以包括:分别将每台虚拟相机的主光轴方向调整为朝向部署中心点。
由于虚拟相机是围绕部署中心点以预设阵列形状部署的,所以该部署中心点位于多台虚拟相机的中心位置,电子设备可以将每台虚拟相机的主光轴方向调整为朝向部署中心点,这样,多台虚拟相机的主光轴方向便朝向同一位置,可以保证虚拟相机的视场范围可以尽量重叠。
在一种实施方式中,虚拟相机的主光轴的初始方向可以是相同的,电子设备可以利用lookat函数对虚拟相机的主光轴方向进行调整,以将虚拟相机的主光轴方向调整为朝向部署中心点。
在虚拟三维环境对应的三维坐标系中,以原点为部署中心点,在n为8的情况下,电子设备按照上述公式可以确定每台虚拟相机的位置坐标,如图3中所示的虚拟相机310。电子设备可以将每台虚拟相机的主光轴方向(图3中箭头所示方向)调整为朝向部署中心点,进而,可以在多台虚拟相机的视场范围内生成多个虚拟三维点坐标320。
虚拟相机的旋转矩阵r可以表示对虚拟相机的主光轴方向进行调整的过程,旋转矩阵r为一个3×3的矩阵,该矩阵的每一列对应一个旋转分量,如第一列对应x方向的旋转分量,第二列对应y方向的旋转分量,第三列对应z方向的旋转分量。所以在调整虚拟相机的主光轴方向时,电子设备便可以根据虚拟相机的主光轴方向分别对应于三维坐标系的x轴、y轴以及z轴的旋转角度,确定虚拟相机的旋转矩阵r。
可见,在本实施例中,电子设备可以将每台虚拟相机的主光轴方向调整为朝向部署中心点,这样可以使得多台虚拟相机的视场范围的重叠区域更大。这样,在后续生成虚拟三维点时,可以有尽可能多的虚拟相机可以采集到该虚拟三维点的图像,也就是可以采集到该三维点更多角度的图像,使得获取到的三维重建训练数据更为丰富。
作为本发明实施例的一种实施方式,如图4所示,上述根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标的步骤,可以包括:
s401,针对所述每台虚拟相机,根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵;
s402,将该虚拟三维点坐标对应的三维齐次坐标与映射矩阵相乘,得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。
虚拟相机对应的映射矩阵即为虚拟相机对应的成像矩阵,用于表示三维点的三维坐标与该三维点在二维图像中对应的二维点的二维坐标之间的映射关系。根据相机成像原理可知,相机的映射矩阵为相机的内参矩阵与外参矩阵的乘积,因此虚拟相机的映射矩阵可以利用如下算式计算得到:
p[i]=k[i][r[i]|t[i]]
其中,p[i]表示第i台虚拟相机的映射矩阵,k[i]表示第i台虚拟相机的内参矩阵,r[i]表示第i台虚拟相机的主光轴方向,也就是第i台虚拟相机的旋转矩阵,t[i]表示虚拟三维坐标系中的点变换到第i台虚拟相机的三维相机坐标系的平移向量,[r[i]|t[i]]即为虚拟相机的旋转平移矩阵,也就是虚拟相机的外参矩阵。
在一种实施方式中,上述根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵的步骤,可以包括:
根据该虚拟相机的外参计算得到该虚拟相机对应的平移向量;基于所述平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,确定该虚拟相机对应的映射矩阵。
电子设备可以根据虚拟相机的外参即位置坐标与虚拟相机的旋转矩阵,计算虚拟三维坐标系中的点变换到虚拟相机的三维相机坐标系的平移向量。其中,平移向量用于表示三维点的三维坐标变换到虚拟相机的三维相机坐标系的平移关系,那么,对于三维点b来说,其变换到虚拟相机的三维相机坐标系中对应的坐标为a,根据平移向量t[i]所表示的物理含义可知,a=r[i]×b t[i],t[i]=a-r[i]×b。
如果虚拟相机在上述虚拟三维坐标系中的坐标位置为cameracenter[i],其变换到虚拟相机自身的三维相机坐标系中对应的坐标a即为(0,0,0),所以,可以利用如下公式,计算虚拟三维坐标系中的点变换到虚拟相机的三维相机坐标系的平移向量:
t[i]=-r[i]×cameracenter[i]
其中,t[i]表示虚拟三维坐标系中的点变换到第i台虚拟相机的三维相机坐标系的平移向量,r[i]表示第i台虚拟相机的旋转矩阵,cameracenter[i]表示第i台虚拟相机在虚拟三维坐标系中的位置坐标。
确定了虚拟相机对应的平移向量后,基于该平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,电子设备便可以确定该虚拟相机对应的映射矩阵,即为p[i]=k[i][r[i]|t[i]]。
进而,根据成像原理,电子设备将虚拟三维点坐标对应的三维齐次坐标与映射矩阵相乘,便可以得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。也就是或,电子设备可以利用如下公式,计算虚拟三维点映射至虚拟相机采集的二维图像中的目标二维点的二维齐次坐标:
x[i,j]=p[i]×x[j]
其中,x[i,j]表示第j个虚拟三维点在第i台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标,p[i]表示第i台虚拟相机的映射矩阵,x[j]表示第j个虚拟三维点的三维齐次坐标。
可见,在本实施例中,电子设备可以通过计算虚拟相机对应的映射矩阵,确定虚拟三维点的三维坐标和虚拟相机采集到的二维图像中的目标二维点的二维坐标之间的映射关系,根据这一映射关系,可以简单、快捷地计算得到虚拟三维点在虚拟相机采集到的二维图像中的目标二维点的二维坐标。
在另一种实施方式中,电子设备还可以利用小孔成像原理,根据虚拟三维点的三维坐标、虚拟相机的位置、主光轴方向和内参,计算该虚拟三维点在虚拟相机采集的二维图像中的目标二维点的二维坐标。
参考图5所示,其中,a表示虚拟三维点的三维坐标,c表示虚拟相机的位置,直线bc表示虚拟相机所在的水平面,过点a向直线bc作垂线,垂足为b,线段bc表示虚拟相机的位置和虚拟三维点的水平距离,ecb表示虚拟相机的主光轴方向,d表示二维图像中的目标二维点的二维坐标,直线ed表示虚拟相机的成像平面,过点c向直线ed作垂线,垂足为e,线段ce表示虚拟相机的内参中的焦距。
其中,∠abc和∠ced为直角,那么虚拟三维点的三维坐标点a、虚拟相机的位置c和主光轴方向ecb可以构成直角三角形abc;虚拟相机的内参和虚拟相机采集的二维图像中的目标二维点的二维坐标d,可以构成直角三角形dec;根据小孔成像原理,直角三角形abc和直角三角形dec相似,可以根据这一相似关系,利用虚拟三维点的坐标、虚拟相机的位置、主光轴方向和内参,计算虚拟相机采集的二维图像中的目标二维点的二维坐标。
作为本发明实施例的一种实施方式,如图6所示,在上述将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据的步骤之后,上述方法还可以包括:
s601,针对所述每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标;
将上述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据后,针对每个虚拟三维点坐标,电子设备可以基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标。
s602,根据所述三维重建点坐标与该虚拟三维点坐标之间的差异,对所述三维重建算法进行迭代训练。
由于此时的三维重建算法可能还不够准确,所以通过三维重建算法确定的该虚拟三维点坐标对应的三维重建点坐标,与其对应的虚拟三维点坐标之间会存在一定的差异,因此,电子设备可以将三维重建点坐标与该虚拟三维点进行对比,确定三维重建点坐标与该虚拟三维点坐标之间的差异。
进而,电子设备可以根据该差异,对三维重建算法进行迭代训练,逐渐提高该三维重建算法的准确度。对于三维重建算法的迭代训练方式可以采用三维重建领域的任意训练方式,例如可以对三维重建算法进行对抗训练,从而对三维重建算法进行迭代优化等,本发明实施例在此不做具体限定及说明。
其中,三维重建算法可以为sfm(structurefrommotion,运动恢复结构)算法、mc(marchingcubes,移动立方体)算法,等等,具体三维重建算法不做限定。以对sfm算法进行迭代优化为例来说,可以针对每个虚拟三维点坐标,将该虚拟三维点坐标对应的目标二维点集输入至sfm算法,得到三维重建点坐标,将三维重建点坐标与该虚拟三维点坐标进行对比得到二者的差异,进而基于该差异对sfm算法进行对抗训练,从而对sfm算法进行迭代优化。
可见,在本实施例中,电子设备还可以针对每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标,进而根据三维重建点坐标与该虚拟三维点坐标之间的差异,对三维重建算法进行迭代训练。这样,可以训练得到准确性较高的三维重建算法。
一些相关方案中,在真实的物理空间中布置多个物体,从不同角度分别对每个物体采集较多的二维图像,确定物体在真实的物理空间中的三维坐标与二维图像中的二维坐标之间的映射关系,作为训练数据。利用该训练数据优化三维重建算法。然而这些方案中,需要测量物体在真实的物理空间中的三维坐标作为对抗训练的训练样本,由于该训练样本需要人工进行测量,获取优化三维重建算法的过程中所需的对抗训练的训练样本的准确率较低。
然而本实施方式中,可以将虚拟三维点坐标及其对应的二维点坐标集确定为三维重建算法的训练数据,无需采集真实物体的不同角度的图像,此外,在进行对抗训练的过程中,可以将虚拟三维点坐标确定为对抗训练的训练样本,用以和三维重建点坐标进行对比,从而对三维重建算法进行优化,这样提高了获取对抗训练的训练样本的准确率。
应用本发明实施例的方案,在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;在多台虚拟相机的视场范围内生成多个虚拟三维点坐标;针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点坐标对应的目标二维点坐标集;将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。可见,本方案中,部署虚拟相机,生成虚拟三维点,可以直接确定虚拟三维点的位置,也就是说,本方案中,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率,同时,还降低了获取训练数据的成本。
与上述方法实施例相对应,本发明实施例还提供一种三维重建训练数据的获取装置,如图7所示,包括:
部署模块710,用于在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
生成模块720,用于在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
映射模块730,用于针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集;
确定模块740,用于将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
可见,本发明实施例提供的方案中,电子设备可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。
一种实施方式中,所述部署模块710可以包括:
基准点确定单元,用于在虚拟三维环境中确定一个坐标点作为基准点;
相机位置确定单元,用于以所述基准点为基准,按照预设方式确定多台虚拟相机的位置;
光轴方向调整单元,用于调整每台虚拟相机的主光轴方向,以使所述多台虚拟相机的视场范围具有重合区域。
一种实施方式中,所述相机位置确定单元可以包括:
中心点确定子单元,用于将所述基准点确定为部署中心点;
相机位置确定子单元,用于围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。
一种实施方式中,所述相机位置确定子单元可以包括:
位置坐标计算子单元,用于利用如下公式计算得到每台虚拟相机的位置坐标:
其中,cameracenter[i]为第i台虚拟相机的位置坐标,n为所述虚拟相机的总数量,distance为所述虚拟相机到所述部署中心点的距离。
一种实施方式中,所述光轴方向调整单元可以包括:
光轴方向调整子单元,用于分别将每台虚拟相机的主光轴方向调整为朝向所述部署中心点。
一种实施方式中,所述映射模块730可以包括:
映射矩阵计算单元,用于针对每台虚拟相机,根据该虚拟相机的外参和预设内参,计算该虚拟相机的映射矩阵;
其中,所述映射矩阵用于表示三维点的三维坐标与该三维点在二维图像中对应的二维点的二维坐标之间的映射关系。
坐标映射单元,用于将该虚拟三维点坐标对应的三维齐次坐标与所述映射矩阵相乘,得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。
一种实施方式中,所述映射矩阵计算单元可以包括:
平移向量计算子单元,用于根据该虚拟相机的外参计算得到该虚拟相机对应的平移向量;
其中,所述平移向量用于表示三维点的三维坐标变换到虚拟相机的三维相机坐标系的平移关系。
映射矩阵计算子单元,用于基于所述平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,确定该虚拟相机对应的映射矩阵。
一种实施方式中,所述装置还可以包括:
建点坐标确定模块,用于在所述将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据之后,针对所述每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标;
优化模块,用于根据所述三维重建点坐标与该虚拟三维点坐标之间的差异,对所述三维重建算法进行迭代训练。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述任意一种三维重建训练数据的获取方法。
可见,本发明实施例提供的方案中,电子设备可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。
上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一三维重建训练数据的获取方法的步骤。
可见,本发明实施例提供的方案中,计算机可读存储介质内存储的计算机程序被处理器执行时可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一三维重建训练数据的获取方法。
可见,本发明实施例提供的方案中,计算机程序产品在计算机上运行时可以在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,在多台虚拟相机的视场范围内生成多个虚拟三维点坐标,针对每个虚拟三维点坐标,分别根据每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集,进而,将每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。本方案中,在虚拟三维环境中部署多台虚拟相机,并生成多个虚拟三维点坐标来表示物体的位置,进而根据虚拟相机的外参和预设内参以及成像原理,便可以确定虚拟三维点对应的目标二维点坐标集,不需要部署真实的相机和真实的物体,也不需要进行真实的拍摄图像过程,因此可以降低获取训练数据的繁琐程度,提高训练数据的获取效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例、以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
1.一种三维重建训练数据的获取方法,其特征在于,包括:
在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点对应的目标二维点坐标集;
将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
2.根据权利要求1所述的方法,其特征在于,所述在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参,包括:
在虚拟三维环境中确定一个坐标点作为基准点;
以所述基准点为基准,按照预设方式确定多台虚拟相机的位置;
调整每台虚拟相机的主光轴方向,以使所述多台虚拟相机的视场范围具有重合区域。
3.根据权利要求2所述的方法,其特征在于,所述以所述基准点为基准,按照预设方式确定多台虚拟相机的位置,包括:
将所述基准点确定为部署中心点;
围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置。
4.根据权利要求3所述的方法,其特征在于,所述围绕所述部署中心点,以预设阵列形状部署多台虚拟相机,得到每台虚拟相机的位置,包括:
利用如下公式计算得到每台虚拟相机的位置坐标:
其中,cameracenter[i]为第i台虚拟相机的位置坐标,n为所述虚拟相机的总数量,distance为所述虚拟相机到所述部署中心点的距离。
5.根据权利要求3所述的方法,其特征在于,所述调整每台虚拟相机的主光轴方向,包括:
分别将每台虚拟相机的主光轴方向调整为朝向所述部署中心点。
6.根据权利要求1所述的方法,其特征在于,所述根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,包括:
针对所述每台虚拟相机,根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵,其中,所述映射矩阵用于表示三维点的三维坐标与该三维点在二维图像中对应的二维点的二维坐标之间的映射关系;
将该虚拟三维点坐标对应的三维齐次坐标与所述映射矩阵相乘,得到该虚拟三维点坐标映射至该台虚拟相机采集的二维图像中的目标二维点的二维齐次坐标。
7.根据权利要求6所述的方法,其特征在于,所述根据该虚拟相机的外参和预设内参,计算该虚拟相机对应的映射矩阵,包括:
根据该虚拟相机的外参计算得到该虚拟相机对应的平移向量,其中,所述平移向量用于表示三维点的三维坐标变换到虚拟相机的三维相机坐标系的平移关系;
基于所述平移向量、该虚拟相机的预设内参以及该虚拟相机的外参所包括的主光轴方向,确定该虚拟相机对应的映射矩阵。
8.根据权利要求1-7任一项所述的方法,其特征在于,在所述将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据之后,所述方法还包括:
针对所述每个虚拟三维点坐标,基于该虚拟三维点坐标对应的目标二维点坐标集,通过三维重建算法确定该虚拟三维点坐标对应的三维重建点坐标;
根据所述三维重建点坐标与该虚拟三维点坐标之间的差异,对所述三维重建算法进行迭代训练。
9.一种三维重建训练数据的获取装置,其特征在于,包括:
部署模块,用于在虚拟三维环境中部署多台虚拟相机,获得每台虚拟相机的外参;
生成模块,用于在所述多台虚拟相机的视场范围内生成多个虚拟三维点坐标;
映射模块,用于针对每个虚拟三维点坐标,分别根据所述每台虚拟相机的外参和预设内参,确定该虚拟三维点坐标映射至所述每台虚拟相机采集的二维图像中的目标二维点坐标,得到该虚拟三维点坐标对应的目标二维点坐标集;
确定模块,用于将所述每个虚拟三维点坐标及其对应的目标二维点坐标集确定为三维重建算法的训练数据。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
技术总结