本发明涉及计算机视觉技术领域,尤其涉及一种神经网络的训练方法及系统。
背景技术:
随着深度感知技术和人工智能技术的不断发展,基于单目结构光深度成像方法,凭借其强大的学习能力和泛化能力,具有很强的竞争力表现。
针对单目结构光成像系统,研究和实践证明,三维建模的性能依赖于数据的质量和规模,因此基于单目结构光深度成像系统的三维目标建模方法需要大规模且质量很好的数据,需要的每组数据包含:物体散斑图、参考散斑图、物体散斑图与参考散斑图之间的视差真值(groundtruth,简称gt)数据。此时,由于视差gt数据直接反应了物体散班图和参考散班图上像素坐标关系,所以视差gt数据很难获取。一般会利用公开数据集,但目前的公开数据集都是针对被动式双目相机,且数据量很少,场景固定。
现有技术中主要有两类方法来构造单目结构光数据集:一种是使用激光扫描仪来获得,但这些数据集通常昂贵、缓慢且无法扩展至更大的数据集;另一种是通过性能良好的传统深度恢复方法,比如半全局匹配(semi-globalmatching,简称sgm)、盲均衡算法等,来匹配物体散班图和参考散斑图,获得较好的视差数据,但由于算法的鲁棒性和适用性,只能生成较好的伪gt数据。
针对主动式双目成像系统,研究和实践证明,三维建模的性能依赖于数据的质量和规模,因此基于主动式双目深度成像系统的三维目标建模需要大规模且质量很好的数据,需要的每组数据包含:左相机物体散斑图、右相机物体散斑图、左相机物体散斑图与右相机物体散斑图之间的gt数据。此时,由于视差gt数据直接反应了左相机物体散斑图和右相机物体散斑图上像素坐标关系,所以视差gt数据很难获取。一般会利用公开数据集,但目前的公开数据集都是针对被动式双目成像系统,且数据量很少,场景固定。
目前主要是通过性能良好的传统深度恢复方法,比如sgm算法、盲均衡算法等,来匹配左相机物体散斑图和右相机物体散斑图,获得较好的视差数据,但由于算法的鲁棒性和适用性,只能生成较好的视差伪gt数据。
综上,无论是针对单目结构光成像系统还是主动式双目成像系统,目前只能采用数据量较少的激光扫描仪数据或者深度恢复方法得到伪gt数据集,而训练数据的质量和规模通常会影响神经网络模型的训练质量,由于神经网络模型的训练精度受到影响,从而影响后面的应用精度。
技术实现要素:
本发明实施例提供一种神经网络的训练方法及系统,用以解决现有技术中数据量较少时无法对神经网络进行训练的缺陷,实现合成数据集的生成,基于合成数据集对神经网络进行训练,提高训练精度。
本发明实施例提供一种神经网络的训练方法,包括:
对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
基于所述合成数据集,对目标神经网络进行训练。
根据本发明一个实施例的神经网络的训练方法,还包括:
若判断得知所述任一像素点对应的红外相机投射射线与所述目标物体不存在第一空间交点,则将所述任一像素点的强度值设置为0。
根据本发明一个实施例的三维物体建模方法,所述基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,具体包括:
若判断得知所述第一空间交点和所述第二空间交点之间的位置关系满足第一预设条件,且所述投影仪射线与虚拟平面之间的位置关系满足第二预设条件,则基于所述目标物体的参考散斑图和双线性插值算法,获取所述任一像素点的强度值,所述第一预设条件和所述第二预设条件使得所述任一像素点不是遮挡点;
否则,将所述任一像素点的强度值设置为0。
根据本发明一个实施例的神经网络的训练方法,所述第一预设条件为:
||x2-x1||2<1e-5,
其中,x2表示所述第二空间交点的坐标,x1表示所述第一空间交点的坐标。
根据本发明一个实施例的神经网络的训练方法,所述第二预设条件为:
所述投影仪射线与所述虚拟平面存在第三空间交点,且所述第三空间交点位于所述虚拟平面内。
根据本发明一个实施例的神经网络的训练方法,所述根据每一像素点的强度值,获取最终物体散斑图,具体包括:
根据每一像素点的强度值,获取最终反射激光图;
基于所述最终反射激光图,获取所述最终物体散斑图。
根据本发明一个实施例的神经网络的训练方法,所述数据合成集通过单目结构光成像系统获取,所述并根据所述最终物体散斑图,获取合成数据集,具体包括:
将所述第一空间交点的深度值作为所述任一像素点对应的gt深度值;
根据所述任一像素点对应的gt深度值、红外相机的焦距、所述红外相机与所述散斑投影仪之间的基线长度,获取所述任一像素点对应的视差值;
根据所述最终物体散斑图、所述参考散斑图以及每一像素点对应的视差值,获取所述合成数据集。
根据本发明一个实施例的神经网络的训练方法,所述合成数据集通过主动式双目成像系统获取,所述主动式双目成像系统包括第一相机和第二相机,相应地,所述最终物体散斑图与所述第一相机对应,所述最终物体散斑图为所述第一相机对应的物体散斑图,所述并根据所述最终物体散斑图,获取合成数据集,具体包括:
根据所述第一相机对应的物体散斑图中每个像素点的深度值,获取每个像素点对应的gt视差值;
根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集。
根据本发明一个实施例的神经网络的训练方法,所述第二相机对应的物体散斑图具体通过如下方式获得:
对于所述第二相机对应的初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第四空间交点,则根据所述第四空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第四空间交点、第五空间交点、所述投影仪射线、虚拟平面和所述参考散斑图,获取所述任一像素点的强度值,所述第五空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取所述第二相机对应的最终反射激光图,以进一步获取所述第二相机对应的物体散斑图。
根据本发明一个实施例的神经网络的训练方法,所述根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集,之前还包括:
对于所述第一相机对应的物体散斑图中的任一像素点,获取所述任一像素点对应的投射射线与所述目标物体的第六空间交点;
根据所述第二相机的中心点和所述第六空间交点,获取相机射线;
根据所述第六空间交点、第七空间交点、所述相机射线和虚拟平面,对所述任一像素点的强度值进行优化,所述第七空间交点为所述相机射线与所述目标物体的交点;
根据优化后每一像素点的强度值,获取所述第一相机对应的优化后的物体散斑图,将所述第一相机对应的优化后的物体散斑图重新作为所述第一相机对应的物体散斑图。
本发明实施例还提供一种神经网络的训练系统,包括:
射线模块,用于对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
强度模块,用于基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
合成模块,用于根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
训练模块,用于基于所述合成数据集,对目标神经网络进行训练。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的神经网络的训练方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的神经网络的训练方法的步骤。
本发明实施例提供的一种神经网络的训练方法及系统,通过单目结构光成像系统或主动式双目成像系统得到包含大量数据的合成数据集,在合成数据集包含的数据量足够多,通过合成数据集对神经网络进行训练,从而提高了神经网络的训练精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中单目结构光成像系统的原理图;
图2为本发明实施例中主动式双目成像系统的原理图;
图3为本发明实施例提供的一种神经网络的训练方法的流程图;
图4为本发明实施例提供的一种神经网络的训练系统的结构示意图;
图5为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种神经网络的训练方法,该方法既可以针对单目结构光成像系统,又可以针对主动式双目成像系统,通过上述两种系统生成相应的训练数据,对神经网络进行训练,从而提高神经网络的训练精度。
为了描述方便,下面先对本发明实施例中的单目结构光成像系统的原理进行说明,图1为本发明实施例中单目结构光成像系统的原理图,如图1所示,激光二极管发出相干光通过透镜聚焦,并通过衍射光学元件分散成多个随机光线,从而产生一个随机点图案的散斑投影仪。红外相机可以感知投射到物体表面的图案,称之为物体散斑图,并将其在红外相机图像平面显示。此时将散斑投影仪视为第二台相机,其虚拟图像平面显示了由衍射光学元件确定的参考散斑图。
在给定物体散斑图和参考散斑图后,根据物体散斑图和参考散斑图计算视差值的原理为:视差d由物体散班图上像素坐标(x1,y)和对应参考散斑图上的像素坐标(x0,y)在x方向上的差值,即d=x1-x0。
视差和深度值之间的转换关系为:给定视差d后,场景深度值z的计算公式为:
z=f*b1/d,(1)
其中,z为场景深度值,b1为红外相机与散斑投影仪之间基线的长度值,f为红外相机的焦距,d为视差值。
接下来对主动式双目成像系统的工作原理进行说明,图2为本发明实施例中主动式双目成像系统的原理图,如图2所示,该主动式双目成像系统中包括两个相机:第一相机和第二相机,这两个相机的功能是相同的,并且这两个相机的视觉范围是有重叠的。左相机即为对应为第一相机,右相机即对应为第二相机。相应地,左相机物体散斑图即为第一相机对应的物体散斑图,右相机物体散斑图即为第二相机对应的物体散斑图。
激光二极管发出相干光通过透镜聚焦,并通过衍射光学元件分散成多个随机光线中,从而产生一个随机点图案的散斑投影仪。左相机可以感知投射到物体表面上的图案,称之为左相机物体散斑图,并将其在左相机图像平面显示;右相机也可以感知投射到物体表面上的图案,称之为右相机物体散斑图,并将其在右相机图像平面显示。此时将散斑投影仪视为第三台相机,其虚拟图像平面显示了由衍射光学元件确定的参考散斑图。
在给定左相机物体散斑图和右相机物体散斑图后,视差d由左相机物体散斑图上像素坐标(x1,y)和对应右相机物体散斑图上的像素坐标(x0,y)在x方向上的差值,即d=x1-x0。
给定视差d后,场景深度值z的计算公式为:
z=f*b2/d,(2)
其中,z为场景深度值,b2为左相机与右相机之间基线的长度值,f为左相机的焦距,d为视差值。
相应地,左相机物体散斑图即为第一相机对应的物体散斑图,右相机物体散斑图即为第二相机对应的物体散斑图。
并且,在利用主动式双目成像系统获取目标物体的左相机物体散斑图和右相机物体散斑图之前,需要先将目标物体放置在该主动式双目成像系统的工作距离之内。
图3为本发明实施例提供的一种神经网络的训练方法的流程图,如图3所示,该方法包括:
如果要获取目标物体的初始反射激光图,首先将目标物体放在该单目结构光成像系统或主动式双目成像系统的工作距离之内,通过系统中的红外相机,感知到目标物体的初始反射激光图。
当系统为单目结构光成像系统时,由于只有一个相机,初始反射激光图即为单目结构光成像系统中的相机感知到的,当系统为主动式双目成像系统时,该初始反射激光图可以是其中任意一个相机感知到的,本发明实施例中以第一相机(即左相机)感知到初始反射激光图为例进行说明。需要说明的是,目标物体是指用于需要进行三维建模的物体。
s1,对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
以初始反射激光图中的任意一个像素点为例进行说明,首先获取该像素点对应的红外相机投射射线,假设该像素点的坐标为(x,y),则该像素点对应的红外相机投射射线可以表示为
沿着该像素点对应的红外相机投射射线方向,可以看到该目标物体是否被该射线击中,也就是是否存在第一空间交点,如果存在,则根据该第一空间交点和散斑投影仪的中心点,计算出投影仪射线。
具体地,本发明实施例中,用cp表示散斑投影仪的中心点,用x1表示第一空间交点的坐标,那么投影仪射线的计算公式如下:
s2,基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
然后沿着该投影仪射线方向,看目标物体是否被该投影仪射线击中,若击中,将投影仪射线和该目标物体的交点称为第二空间交点。基于该第一空间交点、第二空间交点、投影仪射线、单目结构光成像系统或者主动式双目成像系统的虚拟平面、参考散斑图,得到该像素点对应的强度值,也就是该像素点对应的灰度值。
参考散斑图为单目结构光成像系统中或主动式双目成像系统中衍射光学元件捕捉到的图像。
上面为其中一个像素点对应强度值的计算过程,按照相同的方法计算出初始散斑图中每个像素点对应的强度值。
s3,根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
具体地,本发明实施例中最后基于每个像素点的强度值,得到该目标物体的最终反射激光图,基于该目标物体的最终反射激光图、单目结构光成像系统的数学图像模型或主动式双目成像系统的数学图像模型,得到目标物体的最终物体散斑图。
单目结构光成像系统的数学图像模型原理如下:
目标物体的最终物体散斑图由i∈rh×w表示,其中h×w表示图像的维度信息。此时假设最终物体散斑图i由无噪声的图像j∈rh×w和高斯噪声n(0,δ1j(x,y) δ2)获得,其中标准差δ1和δ2依赖于传感器本身。
无噪声的图像j包含两个部分,一个是反射激光图像k∈rh×w,另一部分是感知其它光源的环境光图像a∈rh×w。
根据朗伯反射模型,反射激光图像k的强度取决于参考散斑图p∈rh×w、物体的距离z∈rh×w、物体表面材料的反射率m∈rh×w,物体表面的光源方向θ。
由于单目结构光是激光发射且是点光源,所以假设反射激光图像k的强度是物体到光源距离的二次方衰减。综上所述,单目结构光系统的数学图像模型为:
式中,i(x,y)表示最终物体散斑图,j(x,y)表示无噪声的图像,n(0,δ1j(x,y) δ2)表示高斯噪声,δ1和δ2表示标准差,k(x,y)表示反射激光图像,a(x,y)表示环境光图像,p(x,y)表示参考散斑图,z(x,y)表示空间物体距离,m(x,y)表示空间物体表面材料的反射率,θ表示空间物体表面的光源方向,w1和w2分别表示环境光图像和反射图像的权重。
具体地,本发明实施例中,通过反射激光图和预设的环境光图像,得到无噪声图像,再基于无噪声图像和预设高斯噪声,得到最终物体散斑图。
主动式双目成像系统的数学图像模型具体计算公式如下:
以其中一个相机为例进行说明,目标物体的散斑图由i∈rh×w表示,其中h×w表示图像的维度信息。此时假设散斑图i由无噪声的图像j∈rh×w和高斯噪声n(0,δ1j(x,y) δ2)获得,其中标准差δ1和δ2依赖于传感器本身。
无噪声的图像j包含两个部分,一个是反射激光图像k∈rh×w,另一部分是感知其它光源的环境光图像a∈rh×w。
根据朗伯反射模型,反射激光图像k的强度取决于参考散斑图p∈rh×w、物体的距离z∈rh×w、物体表面材料的反射率m∈rh×w,物体表面的光源方向θ。
由于散斑投影仪是激光发射且是点光源,所以假设反射激光图像k的强度是物体到光源距离的二次方衰减。综上所述,主动式双目成像系统的数学图像模型为:
式中,i(x,y)表示散斑图,j(x,y)表示无噪声的图像,n(0,δ1j(x,y) δ2)表示高斯噪声,δ1和δ2表示标准差,k(x,y)表示反射激光图像,a(x,y)表示环境光图像,p(x,y)表示参考散斑图,z(x,y)表示空间物体距离,m(x,y)表示空间物体表面材料的反射率,θ表示空间物体表面的光源方向,w1和w2分别表示环境光图像和反射图像的权重。
由此可知,在目标物体的最终左相机反射激光图已知的情况下,根据上述计算公式(5),就可以计算出目标物体的左相机物体散斑图,此处的左相机物体散斑图即为最终物体散斑图。
s4,基于所述合成数据集,对目标神经网络进行训练。
利用生成的合成数据集,对目标神经网络进行训练,得到训练后的目标神经网络,训练后的目标神经网络可以应用在三维物体建模、人体检测、人机交互和目标检测等各个领域。
综上,本发明实施例提供一种神经网络的训练方法,通过单目结构光成像系统或主动式双目成像系统得到包含大量数据的合成数据集,在合成数据集包含的数据量足够多时,通过合成数据集对神经网络进行训练,从而提高了神经网络的鲁棒性和精度。
通常地,对目标进行三维建模通常需要大量数据,在数据量较少时,所携带的相关信息无法充分表达目标物体的特征,从而无法实现三维建模。
在上述实施例的基础上,本发明实施例中提供一种三维物体建模方法,该方法包括如下步骤:
(1)对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
(2)基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
(3)根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
(4)利用神经网络对目标物体进行三维建模,得到建模结果,该神经网络是基于合成数据集进行训练得到。
通过合成数据集对神经网络进行训练,利用训练后的目标神经网络进行三维物体建模。在训练数据比较少的情况下,通过生成合成数据集,使得能满足深度学习网络大规模数据量的要求,将转换得到点云数据,从而通过神经网络对目标物体进行三维建模。
在训练样本较少的情况下,利用上述单目结构光成像系统生成合成数据集,能满足大规模且质量好的数据需求,将合成数据集作为神经网络的训练数据,当需要对目标进行建模时,基于该合成数据集,合成目标物体对应的深度图像,根据目标物体的彩色图像、深度图像、相机自身参数和相机之间的标定参数,将深度图像转换为点云,对点云与初始模型做注册,使用对齐后的点云和模型,优化外形系数、姿态系数、平移矩阵,使用kdtree查找对应点,并通过对应点优化前面提到的参数,最终得到重建后的三维点云模型。
因此,本发明实施例还提供一种三维物体建模方法,通过单结构光成像系统和主动式双目成像系统得到包含大量数据的合成数据集,在合成数据集包含的数据量足够多,从而可以得到目标物体足够多的点云数据,以实现对目标物体的三维建模。
在上述实施例的基础上,优选地,还包括:
若判断得知所述任一像素点对应的红外相机投射射线与所述目标物体不存在第一空间交点,则将所述任一像素点的强度值设置为0。
具体地,如果该像素点对应的红外相机投射射线与该目标物体之间不存在交点,则直接将该像素点对应的强度值设置为0,不需要进行后续判断和处理了。
在上述实施例的基础上,优选地,所述基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,具体包括:
若判断得知所述第一空间交点和所述第二空间交点之间的位置关系满足第一预设条件,且所述投影仪射线与单目结构光成像系统的虚拟平面之间的位置关系满足第二预设条件,则基于所述目标物体的参考散斑图和双线性插值算法,获取所述任一像素点的强度值,所述第一预设条件和所述第二预设条件使得所述任一像素点不是遮挡点;
否则,将所述任一像素点的强度值设置为0。
具体地,根据第一空间交点和第二空间交点,判断第一空间交点和第二空间交点之间的位置关系是否满足第一预设条件,如果满足,再判断投影仪射线和虚拟平面之间的位置关系是否满足第二预设条件,如果满足,说明该像素点不是红外相机和散斑投影仪之间的遮挡点,那么根据目标物体的参考散斑图和双线性插值算法,得到该像素点对应的强度值。
具体地,使用双线性插值算法从参考散斑图获取该像素点对应的强度值。
如果第一预设条件和第二预设条件中有一个不满足或者两个都不满足,说明该像素点为红外相机和散斑投影仪之间的遮挡点,那么直接将该像素点对应的强度值设置为0。
本发明实施例中通过第一预设条件和第二预设条件对初始散斑图中的遮挡像素点进行判断,去除遮挡像素点强度值对散斑图的影响,从而使获得的最终物体散斑图更加精确。
在上述实施例的基础上,优选地,所述第一预设条件为:
||x2-x1||2<1e-5,(6)
其中,x2表示所述第二空间交点的坐标,x1表示所述第一空间交点的坐标。
具体地,本发明实施例中通过公式(6)来判断第一空间交点和第二空间交点之间的位置关系。
在上述实施例的基础上,优选地,所述第二预设条件为:
所述投影仪射线与所述单目结构光成像系统的虚拟平面存在第三空间交点,且所述第三空间交点位于所述虚拟平面内。
具体地,本发明实施例中第二预设条件具体为:投影仪射线和该虚拟平面存在交点,将该交点称作为第三空间交点,并且第三空间交点位于虚拟平面内。
当该数据合成集是通过单目结构光成像系统获得的时候,该数据合成集是通过上面得到的最终物体散斑图和参考散斑图得到的,具体包括:
将所述第一空间交点的深度值作为所述任一像素点对应的gt深度值;
根据所述任一像素点对应的gt深度值、所述单目结构光成像系统中红外相机的焦距、所述红外相机与所述散斑投影仪之间的基线长度,获取所述任一像素点对应的视差值;
根据所述最终物体散斑图、所述参考散斑图以及每一像素点对应的视差值,获取所述合成数据集。
具体地,如果判断得到该像素点对应的红外相机投射射线和目标物体之间存在第一空间交点,那么直接将第一空间交点的深度值作为该像素点对应的gt深度值,也就是将第一空间交点的z值作为gt深度值。
然后根据公式(1)中gt深度值和视差值之间的对应关系,结合单目结构光成像系统中红外相机的焦距、红外相机和散斑投影仪之间的基线长度,计算出该像素点对应的视差值。
如果判断得到该像素点对应的红外相机投射射线和目标物体之间不存在第一空间交点,那么直接将该像素点对应的gt深度值设置为0,该像素点对应的gt视差值也设置为0。
当该数据合成集是通过主动式双目成像系统获得的时候,该数据合成集是通过上面得到的第一相机对应的物体散斑图和第二相机对应的物体散斑图得到的,具体包括:
根据所述第一相机对应的物体散斑图中每个像素点的深度值,获取每个像素点对应的gt视差值;
根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集。
具体地,根据第一相机对应的物体散斑图中每个像素点的深度值,如果深度值为0,则gt视差值为0;否则,根据像素点的深度值,转换成对应的gt视差值,具体转换如公式(2)所示。
然后根据第一相机对应的物体散斑图、第二相机对应的物体散斑图和gt视差值,得到数据集,以便对神经网络模型进行训练,从而后续进行三维建模的研究。
综上,本发明针对主动式双目成像系统,给出了生成合成数据的方法,并将3d虚拟引擎构建场景扩展至主动式双目成像系统的合成数据生成,以便后面进行神经网络的训练和目标物体的三维建模。
在上述实施例的基础上,优选地,所述第二相机对应的物体散斑图具体通过如下方式获得:
对于所述第二相机对应的初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的第二相机投射射线与目标物体存在第四空间交点,则根据所述第四空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第四空间交点、第五空间交点、所述投影仪射线、虚拟平面和所述参考散斑图,获取所述任一像素点的强度值,所述第五空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取所述第二相机对应的最终反射激光图,以进一步获取所述第二相机对应的物体散斑图。
前面给出了第一相机对应的物体散斑图(即左相机物体散斑图)的计算方法,第二相机对应的物体散斑图(也称右相机物体散斑图)也可以按照同样的方法进行获取,以下方案中出现的初始反射激光图、红外相机投射射线、散斑投影仪和投影仪射线均是针对第二相机。
首先获取目标物体的第二相机对应的初始反射激光图,以右相机对应的初始反射激光图中的任意一个像素点为例进行说明,针对该像素点(xr,yr),通过公式
从该公式中也可以看出,每个像素点对应的红外相机投射射线是不同的。
根据散斑投影仪的中心点和第四空间交点,获取第二相机对应的投影仪射线;
接着根据主动式双目成像系统中散斑投影仪的中心点cp和第四空间交点的坐标x3,计算出该像素点对应的投影仪射线,具体计算公式如下:
然后根据该像素点对应的第二相机投射射线,得到该第二相机投射射线和目标物体的交点,称之为第五空间交点。
获取投影仪射线和目标物体的交点,称之为第五空间交点,根据第四空间交点、第五空间交点、投影仪射线、虚拟平面和参考散斑图,计算出该像素点对应的强度值。
按照相同的方法计算出第二相机对应的初始反射激光图中的每个像素点的强度值。
根据每个像素点的强度值,得到第二相机对应的最终反射激光图,并在第二相机对应的最终反射激光图的基础上,结合预设右环境光图像、预设右高斯噪声,按照上述数学图像模型,计算出目标物体的第二相机对应的物体散斑图。
在上述实施例的基础上,优选地,所述根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集,之前还包括:
对于所述第一相机对应的物体散斑图中的任一像素点,获取所述任一像素点对应的投射射线与所述目标物体的第六空间交点;
以第一相机对应的物体散斑图中任意一个像素点为例进行说明,按照公式
根据所述第二相机的中心点和所述第六空间交点,获取相机射线;
然后根据第二相机的中心点cr和第六空间交点x5计算出相机射线,具体计算公式为:
根据所述第六空间交点、第七空间交点、所述相机射线和虚拟平面,对所述任一像素点的强度值进行优化,所述第七空间交点为所述相机射线与所述目标物体的交点;
根据优化后每一像素点的强度值,获取所述第一相机对应的优化后的物体散斑图,将所述第一相机对应的优化后的物体散斑图重新作为所述第一相机对应的物体散斑图。
具体地,若第六空间交点和第七空间交点之间的位置关系满足第三预设条件,并且相机射线和虚拟平面之间的位置关系满足第四预设条件,则对该第一相机对应的物体散斑图上的像素点的强度值重新进行赋值,第三预设条件和第四预设条件可以保证该像素点不为第一相机和第二相机之间的遮挡点。
如果同时满足第三预设条件和第四预设条件,则说明该像素点不是遮挡点,保持该像素点的深度值不变。
如果第三预设条件和第四预设条件中至少有一个不满足,则说明该像素点为遮挡点,将该像素点的深度值设置为0。
具体地,第三预设条件为:
||x7-x6||2<10-5,(8)
其中,x6表示所述第六空间交点的坐标,x7表示所述第七空间交点的坐标。
具体地,第四预设条件为:
右相机射线与主动式双目成像系统的虚拟平面存在参考交点,且该参考交点位于虚拟平面内。
最后根据优化后的每个像素点的强度值,得到该目标物体的第一相机对应的优化后的物体散斑图,并将第一相机对应的优化后的物体散斑图重新作为第一相机对应的物体散斑图。
本发明实施例中对该第一相机对应的物体散斑图中的像素点是否为遮挡点重新进行判断,确保了不为第一相机和第二相机遮挡点的情况,提高了最后得到的第一相机对应的物体散斑图的图像质量。
本发明一优选实施例还提供一种针对单目结构光成像系统的三维物体建模方法,基于获取的最终物体散斑图,获取数据集,其步骤如下:
(1)构建基于单目结构光成像系统的硬件环境。使用公开数据集shapenet中包含的3dcad空间模型,3dcad空间模型的表面是由多个彼此相连的三角面构成。将3dcad空间模型(即空间物体)放置在红外相机的工作距离内。
(2)计算初始散斑图中每个像素点对应的gt深度值。针对单目结构光成像系统中红外相机获取的初始散斑图,对初始散斑图中的每个像素点(x,y),按照公式
如果存在第一空间交点,那么将该第一空间交点的深度值作为该像素点对应的gt深度值。
(3)计算初始散斑图中每个像素点的强度值。通过散斑投影仪的中心点和第一空间交点,计算出投影仪射线。然后基于投影仪射线和投影仪中心点,进行如下判断:
第一预设条件:||x2-x1||2<1e-5,
其中,x2表示第二空间交点的坐标,x1表示第一空间交点的坐标,第二空间交点为空间物体被投影仪射线击中的点。
第二预设条件:投影仪射线与单目结构光成像系统的虚拟平面存在第三空间交点,且第三空间交点位于虚拟平面内。
如果第一预设条件和第二预设条件都满足,那么说明该像素点不为遮挡点,通过双线性差值算法从参考散斑图中获取该像素点对应的强度值。
否则,说明该像素点为遮挡点,直接将该像素点对应的强度值设置为0,本发明实施例中通过判断像素点是否为遮挡点,从而根据判断结果对强度值进行相应修改,使得最终得到的像素点强度值更加准确,从而得到的反射激光图更加精确,最后使得得到的物体散斑图更加准确。
(4)获取无噪声的图像。使用简单的blinn-phong模型为环境图像着色。即获取环境光图像a。为了使合成数据更加真实,增加权重变量使环境光图像a和反射激光图像k结合在一起,形成无噪声的图像j。
(5)基于无噪声的图像和高斯噪声,获取空间物体的最终物体散斑图。
(6)基于最终物体散斑图、参考散斑图和视差值,生成合成数据集。
(7)基于合成数据集,转换得到目标物体的点云数据,以此对目标物体进行三维建模。
综上,本发明实施例提出了一种针对单目结构光成像系统的三维物体建模方法,给出了生成合成数据的方法,并将3d虚拟引擎构建场景扩展至单目结构光成像系统的合成数据生成。通过从单目结构光的成像原理出发,构建单目结构光的数学图像模型,从而生成合成数据的方法,来满足目标物体的三维建模对于数据量的需求。
本发明又一优选实施例提供一种针对主动式双目成像系统的三维物体建模方法,该方法基于3dcad空间模型,利用上述主动式双目成像系统的工作原理和主动式双目系统的数学图像模型,生成合成数据集,具体步骤如下:
(1)硬件环境搭建。使用公开数据集shapenet中包含的3dcad空间模型,3dcad空间模型的表面是由多个彼此相连的三角面构成。将3dcad空间模型(即目标物体)放置在该主动式双目成像系统的工作距离内。
(2)生成最终左相机反射激光图。获取目标物体的初始左相机反射激光图,针对初始左相机反射激光图中的任意一个像素点(xl,yl),通过公式
沿着该像素点对应的第一左相机投射射线的方向,计算射线与目标物体的交点,称之为第一空间交点。
根据主动式双目成像系统中散斑投影仪的中心点cp和第一空间交点的坐标x1,根据公式
然后根据判断第一空间交点和第二空间交点之间的位置关系是否满足第一预设条件,左投影仪射线和虚拟平面之间的位置关系是否满足第二预设条件,如果都满足,说明该像素点不是遮挡点,则从参考散斑图的邻域通过双线性差值得到该像素点的强度值。
如果至少有一个条件不满足,则说明该像素点是遮挡点,则将该像素点的强度值直接设置为0。
最后将该像素点的深度值作为该像素点的gt深度值。
(3)生成左相机物体散斑图。根据左相机与散斑投影仪的位置关系,使用简单的blinn-phong模型为环境图像着色,得到预设左环境光图像。为了使合成的左相机散斑数据更加真实,增加权重变量使环境图像al和反射激光图像kl结合在一起形成无噪声的图像jl。最后通过无噪声的图像jl和高斯噪声获得初四左相机物体散斑图il。
(4)生成最终右相机反射激光图。首先获取目标物体的初始右相机反射激光图,针对初始右相机反射激光图中的任意一个像素点(xr,yr),通过公式
然后根据该像素点对应的右相机投射射线,得到该右相机投射射线和目标物体的交点,称之为第三空间交点。
接着根据主动式双目成像系统中散斑投影仪的中心点cp和第三空间交点的坐标x3,按照公式
获取右投影仪射线和目标物体的交点,称之为第四空间交点。判断第三空间交点和第四空间交点之间的位置关系是否满足第三预设条件,判断右投影仪射线与主动式双目成像系统的虚拟平面之间的位置关系是否满足第四预设条件,如果两个条件同时满足,说明该像素点不是右相机和散斑投影仪之间的遮挡点,则从参考散斑图的邻域通过双线性插值算法,获取该像素点的强度值。
若两个条件中至少有一个条件不满足,则说明该像素点为遮挡点,将该像素点的强度值设置为0。
(5)获取右相机物体散斑图。根据右相机与散斑投影仪的位置关系,使用简单的blinn-phong模型为环境图像着色,获取预设右环境光图像。为了使合成的右相机散斑数据更加真实,增加权重变量使环境图像ar和反射激光图像kr结合在一起形成无噪声的图像jr。最后通过无噪声的图像jr和高斯噪声获得右相机物体散斑图ir。
(6)左相机和右相机之间的遮挡判断。以左相机物体散斑图中任意一个像素点为例进行说明,按照公式
如果同时满足第五预设条件和第六预设条件,则说明该像素点不是遮挡点,保持该像素点的深度值不变。
如果第五预设条件和第六预设条件中至少有一个不满足,则说明该像素点为遮挡点,将该像素点的深度值设置为0。
根据优化后每一像素点的强度值,获取所述目标物体的优化后的左相机物体散斑图,将优化后的左相机物体散斑图重新作为左相机物体散斑图。
(7)生成gt视差值。根据第(6)步中得到的优化后的左相机物体散斑图上每个像素点的深度值,如果深度值为0,则对应的gt视差值为0;否则,将gt深度值转换成对应的gt视差值,从而得到合成数据集,该数据集中包括优化后的左相机物体散斑图、右相机物体散斑图和gt视差值。
(8)基于所述合成数据集,对所述目标物体进行三维建模。
综上,本发明实施例提出了一种针对主动式双目成像系统的三维物体建模方法,利用主动式双目成像系统生成合成数据的方法,从主动式双目的成像原理出发,构建主动式双目的数学图像模型,从而生成合成数据的方法,来满足目标物体三维建模的需求。
图4为本发明实施例提供的一种神经网络的训练系统的结构示意图,如图4所示,该系统包括:射线模块401、强度模块402、合成模块403和训练模块404,其中:
射线模块401用于对于初始散斑图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
强度模块402用于基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
合成模块403用于根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
训练模块404用于基于所述合成数据集,对目标神经网络进行训练。
本实施例为与上述方法对应的系统实施例,详情请参考上述方法实施例,本系统实施例在此不再赘述。
图5为本发明实施例提供的一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communicationsinterface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行一种神经网络的训练方法,该方法包括:
对于初始散斑图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
基于所述合成数据集,对目标神经网络进行训练。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的一种神经网络的训练方法,该方法包括:
对于初始散斑图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
基于所述合成数据集,对目标神经网络进行训练。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的一种神经网络的训练方法,该方法包括:
对于初始散斑图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
基于所述合成数据集,对目标神经网络进行训练。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种神经网络的训练方法,其特征在于,包括:
对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
基于所述合成数据集,对目标神经网络进行训练。
2.根据权利要求1所述神经网络的训练方法,其特征在于,还包括:
若判断得知所述任一像素点对应的红外相机投射射线与所述目标物体不存在第一空间交点,则将所述任一像素点的强度值设置为0。
3.根据权利要求1所述神经网络的训练方法,其特征在于,所述基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,具体包括:
若判断得知所述第一空间交点和所述第二空间交点之间的位置关系满足第一预设条件,且所述投影仪射线与虚拟平面之间的位置关系满足第二预设条件,则基于所述目标物体的参考散斑图和双线性插值算法,获取所述任一像素点的强度值,所述第一预设条件和所述第二预设条件使得所述任一像素点不是遮挡点;
否则,将所述任一像素点的强度值设置为0。
4.根据权利要求3所述神经网络的训练方法,其特征在于,所述第一预设条件为:
||x2-x1||2<1e-5,
其中,x2表示所述第二空间交点的坐标,x1表示所述第一空间交点的坐标。
5.根据权利要求3所述神经网络的训练方法,其特征在于,所述第二预设条件为:
所述投影仪射线与所述虚拟平面存在第三空间交点,且所述第三空间交点位于所述虚拟平面内。
6.根据权利要求1所述神经网络的训练方法,其特征在于,所述根据每一像素点的强度值,获取最终物体散斑图,具体包括:
根据每一像素点的强度值,获取最终反射激光图;
基于所述最终反射激光图,获取所述最终物体散斑图。
7.根据权利要求1所述神经网络的训练方法,其特征在于,所述数据合成集通过单目结构光成像系统获取,所述并根据所述最终物体散斑图,获取合成数据集,具体包括:
将所述第一空间交点的深度值作为所述任一像素点对应的gt深度值;
根据所述任一像素点对应的gt深度值、红外相机的焦距、所述红外相机与所述散斑投影仪之间的基线长度,获取所述任一像素点对应的视差值;
根据所述最终物体散斑图、所述参考散斑图以及每一像素点对应的视差值,获取所述合成数据集。
8.根据权利要求1至6任一所述神经网络的训练方法,其特征在于,所述合成数据集通过主动式双目成像系统获取,所述主动式双目成像系统包括第一相机和第二相机,相应地,所述最终物体散斑图与所述第一相机对应,所述最终物体散斑图为所述第一相机对应的物体散斑图,所述并根据所述最终物体散斑图,获取合成数据集,具体包括:
根据所述第一相机对应的物体散斑图中每个像素点的深度值,获取每个像素点对应的gt视差值;
根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集。
9.根据权利要求8所述神经网络的训练方法,其特征在于,所述第二相机对应的物体散斑图具体通过如下方式获得:
对于所述第二相机对应的初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第四空间交点,则根据所述第四空间交点与散斑投影仪的中心点,获取投影仪射线;
基于所述第四空间交点、第五空间交点、所述投影仪射线、虚拟平面和所述参考散斑图,获取所述任一像素点的强度值,所述第五空间交点为所述投影仪射线与所述目标物体的交点;
根据每一像素点的强度值,获取所述第二相机对应的最终反射激光图,以进一步获取所述第二相机对应的物体散斑图。
10.根据权利要求8所述神经网络的训练方法,其特征在于,所述根据所述第一相机对应的物体散斑图、所述第二相机对应的物体散斑图和所述gt视差值,获取合成数据集,之前还包括:
对于所述第一相机对应的物体散斑图中的任一像素点,获取所述任一像素点对应的投射射线与所述目标物体的第六空间交点;
根据所述第二相机的中心点和所述第六空间交点,获取相机射线;
根据所述第六空间交点、第七空间交点、所述相机射线和虚拟平面,对所述任一像素点的强度值进行优化,所述第七空间交点为所述相机射线与所述目标物体的交点;
根据优化后每一像素点的强度值,获取所述第一相机对应的优化后的物体散斑图,将所述第一相机对应的优化后的物体散斑图重新作为所述第一相机对应的物体散斑图。
11.一种神经网络的训练系统,其特征在于,包括:
射线模块,用于对于初始反射激光图中的任一像素点,若判断得知所述任一像素点对应的红外相机投射射线与目标物体存在第一空间交点,则根据所述第一空间交点与散斑投影仪的中心点,获取投影仪射线;
强度模块,用于基于所述第一空间交点、第二空间交点、所述投影仪射线、虚拟平面和参考散斑图,获取所述任一像素点的强度值,所述第二空间交点为所述投影仪射线与所述目标物体的交点;
合成模块,用于根据每一像素点的强度值,获取最终物体散斑图,并根据所述最终物体散斑图,获取合成数据集;
训练模块,用于基于所述合成数据集,对目标神经网络进行训练。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述神经网络的训练方法的步骤。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述神经网络的训练方法的步骤。
技术总结