深度估计方法、模型训练方法、装置、设备及存储介质
文献发布时间:2023-06-19 11:29:13
技术领域
本申请实施例涉及计算机视觉技术领域,特别涉及一种深度估计方法、模型训练方法、装置、设备及存储介质。
背景技术
深度图像中的像素点的灰度值可以表示像素点显示的场景距离拍摄设备的远近。因此,深度图像可以用来表示三维场景信息。
在相关技术中,图像深度估计的方法主要有单目深度估计方法和双目深度估计方法。其中,单目深度估计方法是基于一个镜头,双目深度估计方法是基于两个镜头。单目深度估计方法是基于一幅图像来估计它的深度,双目深度估计方法是用两个摄像头成像,因为两个摄像头之间存在一定的距离,所以同一景物通过两个镜头所成的像有一定的差别,即视差,基于视差来估计出图像的深度。
发明内容
本申请实施例提供一种深度估计方法、模型训练方法、装置、设备及存储介质。所述技术方案如下:
一方面,本申请实施例提供一种深度值估计方法,所述方法包括:
获取原始图像;
调用深度估计模型;
通过所述深度估计模型对所述原始图像进行深度值估计,得到所述原始图像的估计深度值集合,所述估计深度值集合包括至少一个估计深度值;
其中,所述深度估计模型的损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的估计深度值和真实深度值之间的差异程度,所述梯度损失函数用于表征估计深度值的梯度和真实深度值的梯度之间的差异程度,所述估计深度值的梯度基于所述估计深度值和步长确定,所述真实深度值的梯度基于所述真实深度值和所述步长确定。
另一方面,本申请实施例提供一种模型训练方法,所述方法包括:
获取深度估计模型的训练数据,所述训练数据包括至少一个训练样本,所述训练样本包括训练图像和所述训练图像的标准深度值集合,所述标准深度值集合包括至少一个标准深度值;
通过所述深度估计模型对所述训练图像进行深度值估计,得到所述训练图像的预测深度值集合,所述预测深度值集合包括至少一个预测深度值;
基于所述训练图像的标准深度值集合和所述训练图像的预测深度值集合,确定损失函数的值;
基于所述损失函数的值对所述深度估计模型进行训练,得到完成训练的深度估计模型;
其中,所述损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的预测深度值和标准深度值之间的差异程度,所述梯度损失函数用于表征预测深度值的梯度和标准深度值的梯度之间的差异程度,所述预测深度值的梯度基于所述预测深度值和步长确定,所述标准深度值的梯度基于所述标准深度值和所述步长确定。
另一方面,本申请实施例提供一种深度值估计装置,所述装置包括:
图像获取模块,用于获取原始图像;
模型调用模块,用于调用深度估计模型;
图像估计模块,用于通过所述深度估计模型对所述原始图像进行深度值估计,得到所述原始图像的估计深度值集合,所述估计深度值集合包括至少一个估计深度值;
其中,所述深度估计模型的损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的估计深度值和真实深度值之间的差异程度,所述梯度损失函数用于表征估计深度值的梯度和真实深度值的梯度之间的差异程度,所述估计深度值的梯度基于所述估计深度值和步长确定,所述真实深度值的梯度基于所述真实深度值和所述步长确定。
另一方面,本申请实施例提供一种模型训练装置,所述装置包括:
数据获取模块,用于获取深度估计模型的训练数据,所述训练数据包括至少一个训练样本,所述训练样本包括训练图像和所述训练图像的标准深度值集合,所述标准深度值集合包括至少一个标准深度值;
图像估计模块,用于通过所述深度估计模型对所述训练图像进行深度值估计,得到所述训练图像的预测深度值集合,所述预测深度值集合包括至少一个预测深度值;
损失确定模块,用于基于所述训练图像的标准深度值集合和所述训练图像的预测深度值集合,确定损失函数的值;
模型训练模块,用于基于所述损失函数的值对所述深度估计模型进行训练,得到完成训练的深度估计模型;
其中,所述损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的预测深度值和标准深度值之间的差异程度,所述梯度损失函数用于表征预测深度值的梯度和标准深度值的梯度之间的差异程度,所述预测深度值的梯度基于所述预测深度值和步长确定,所述标准深度值的梯度基于所述标准深度值和所述步长确定。
另一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述方面所述的深度值估计方法,或实现如上述方面所述的模型训练方法。
又一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上述方面所述的深度值估计方法,或实现如上述方面所述的模型训练方法。
又一方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的深度值估计方法,或实现如上述方面所述的模型训练方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过深度估计模型对图像进行深度值估计,得到该图像的深度值,深度估计模型的损失函数包括深度损失函数和梯度损失函数,在损失函数中利用梯度信息对平面的深度估计进行约束,从而得到一个比较平滑的平面深度值,因此,基于该损失函数训练得到的深度估计模型增加了对平面的约束,使得预测的图像的深度值更加准确。
附图说明
图1是本申请一个实施例提供的深度值估计方法的流程图;
图2是本申请一个实施例提供的原始图像的示意图;
图3是相关技术提供的深度值可视化图的示意图;
图4是本申请一个实施例提供的深度值可视化图的示意图;
图5是本申请一个实施例提供的模型训练方法的流程图;
图6是本申请一个实施例提供的深度值估计装置的框图;
图7是本申请一个实施例提供的模型训练装置的框图;
图8是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的深度值估计方法的流程图。该方法可以由计算机设备执行,计算机设备是指具备计算和处理能力的电子设备,计算机设备可以包括终端和服务器,终端可以包括手机、平板电脑、PC(Personal Computer,个人计算机)、智能可穿戴设备等电子设备,服务器可以是一台服务器,也可以是由多台服务器组成的服务器集群,本申请实施例对此不作限定。该方法可以包括如下几个步骤。
步骤101,获取原始图像。
原始图像是指需要确定深度值的图像。深度值用于指示原始图像中的像素点显示的场景距离拍摄设备的远近。
在可能的实现方式中,原始图像可以通过单目摄像头拍摄得到。原始图像可以为RGB(Red Green Blue,红绿蓝)图像,也即,原始图像可以为彩色图像。
在可能的实现方式中,原始图像可以从网上获取得到。
当深度值估计方法的执行主体为终端时,终端可以通过单目摄像头拍摄得到原始图像,或者从网上获取得到原始图像,本申请实施例对终端获取原始图像的方式不作限定。
当深度值估计方法的执行主体为服务器时,原始图像可以由终端拍摄得到后,发送给服务器,或者,服务器从本地获取原始图像,本申请实施例对服务器获取原始图像的方式不作限定。
步骤102,调用深度估计模型。
深度估计模型是指用于估计图像的深度值的模型。示例性地,深度估计模型为单目深度估计模型。
在可能的实现方式中,深度估计模型可以包括卷积神经网络,卷积神经网络可以包括ResNet50网络,当然,在其他可能的实现方式中,深度估计模型还可以是其他形式的神经网络,本申请实施例对此不作限定。
当深度值估计方法的执行主体为终端时,深度估计模型可以存储在终端本地,此时,终端可以直接从本地调用深度估计模型;或者,深度估计模型可以存储在服务器,此时,终端向服务器发送模型获取请求;服务器响应于模型获取请求,向终端发送深度估计模型。
当深度值估计方法的执行主体为服务器时,深度估计模型可以存储在服务器本地,此时,服务器可以直接从本地调用深度估计模型。
步骤103,通过深度估计模型对原始图像进行深度值估计,得到原始图像的估计深度值集合。
深度估计模型的输入为图像,输出为该图像的估计深度值集合,估计深度值集合包括至少一个估计深度值,估计深度值用于指示深度估计模型预测的图像中的像素点显示的场景距离拍摄设备的远近。
深度值估计是指估计图像的深度值的操作。
在可能的实现方式中,基于原始图像的估计深度值集合可以得到深度图像。原始图像的估计深度值集合包括的估计深度值的个数与原始图像中的像素点的个数相同,也即,原始图像中的每个像素点都对应有一个估计深度值。
其中,深度估计模型的损失函数包括深度损失函数和/或梯度损失函数,深度损失函数用于表征基于深度估计模型输出的估计深度值和真实深度值之间的差异程度,梯度损失函数用于表征估计深度值的梯度和真实深度值的梯度之间的差异程度,估计深度值的梯度基于估计深度值和步长确定,真实深度值的梯度基于真实深度值和步长确定。
在可能的实现方式中,当计算机设备通过深度估计模型对训练图像进行深度值估计,得到训练图像的预测深度值之前,计算机设备可以对训练图像进行增强处理,得到增强处理后的训练图像,增强处理包括以下至少一项:随机旋转、随机左右旋转、随机裁剪、伽马变换,增强处理后的训练图像用于输入深度估计模型。可选地,随机旋转包括水平翻转、垂直翻转、水平垂直翻转。伽马变换是指在图像处理过程中将漂白(相机过曝)的图像或者过暗(曝光不足)的图像进行修正。
有关深度估计模型的训练流程可参见下文实施例,此处先不作介绍说明。
如图2所示,其示出了本申请一个实施例提供的原始图像的示意图,图3示出了相关技术提供的深度值可视化图的示意图,在相关技术中通过仅利用深度损失函数训练得到的深度估计模型对原始图像进行深度值估计得到图3所示的深度值,图4示出了本申请实施例提供的深度值可视化图的示意图。在本申请示例中,通过深度损失函数和梯度损失函数训练得到的深度估计模型对原始图像进行深度值估计得到如图4所示的深度值。对比图3和图4可以看出,图4示出的深度值可视化图的边缘更加清晰,图像更加锐利,图像质量更好,图3示出的深度值可视化图的边缘较模糊,不平滑。
综上所述,本申请实施例提供的技术方案中,通过深度估计模型对图像进行深度值估计,得到该图像的深度值,深度估计模型的损失函数包括深度损失函数和梯度损失函数,在损失函数中利用梯度信息对平面的深度估计进行约束,从而得到一个比较平滑的平面深度值,因此,基于该损失函数训练得到的深度估计模型增加了对平面的约束,使得预测的图像的深度值更加准确。
请参考图5,其示出了本申请一个实施例提供的模型训练方法的流程图。该方法可以由计算机设备执行,该计算机设备可以包括服务器。该方法可以包括如下几个步骤。
步骤501,获取深度估计模型的训练数据,训练数据包括至少一个训练样本,训练样本包括训练图像和训练图像的标准深度值集合。
训练图像是指在模型训练过程中使用的图像。训练图像可以是RGB图像,RGB图像的尺寸为H*W*3,其中H、W、3分别是训练图像的高、宽和通道数。特别地,如果训练图像是单通道即灰度图,需要将训练图像的像素值在通道维度重复三次以保持格式统一。
在可能的实现方式中,计算机设备通过深度相机获取多张训练图像以及训练图像的标准深度值集合;或者,计算机设备通过单目相机获取多张训练图像,以及通过深度传感器获取训练图像的标准深度值集合。
标准深度值集合包括至少一个标准深度值,标准深度值的个数与训练图像的像素点的个数相同,也即,训练图像的各个像素点都对应有一个标准深度值。标准深度值用于指示训练图像的像素点显示的场景与拍摄设备的真实距离。
步骤502,通过深度估计模型对训练图像进行深度值估计,得到训练图像的预测深度值集合。
预测深度值集合包括至少一个预测深度值,预测深度值用于指示深度估计模型预测的像素点显示的场景与拍摄设备的距离。
预测深度值的个数与标准深度值的个数相同,且都等于训练图像中像素点的个数。
步骤503,基于训练图像的标准深度值集合和训练图像的预测深度值集合,确定损失函数的值。
其中,损失函数包括深度损失函数和/或梯度损失函数,深度损失函数用于表征基于深度估计模型输出的预测深度值和标准深度值之间的差异程度,梯度损失函数用于表征预测深度值的梯度和标准深度值的梯度之间的差异程度,预测深度值的梯度基于预测深度值和步长确定,标准深度值的梯度基于标准深度值和步长确定。
步长用于指示像素点的位置的变化量,步长为正整数。
深度损失函数越小,表示预测深度值和标准深度值越接近;梯度损失函数越小,表示预测深度值的梯度和标准深度值的梯度越接近。
步骤504,基于损失函数的值对深度估计模型进行训练,得到完成训练的深度估计模型。
示例性地,基于梯度下降法反传更新深度估计模型的网络参数。基于损失函数的值对深度估计模型进行训练,直至网络收敛,得到完成训练的深度估计模型。
在可能的实现方式中,在损失函数的值小于阈值的情况下,确定网络收敛,得到完成训练的深度估计模型。
在可能的实现方式中,得到完成训练的深度估计模型后,可以通过测试样本再对深度估计模型进行测试,得到测试结果,直至测试结果达到预设结果,得到最终的深度估计模型。测试样本是指模型测试阶段使用的样本。测试样本可以包括测试图像和测试图像的标准深度值。
综上所述,本申请实施例提供的技术方案中,通过深度估计模型对图像进行深度值估计,得到该图像的深度值,深度估计模型的损失函数包括深度损失函数和梯度损失函数,在损失函数中利用梯度信息对平面的深度估计进行约束,从而得到一个比较平滑的平面深度值,因此,基于该损失函数训练得到的深度估计模型增加了对平面的约束,使得预测的图像的深度值更加准确。
在示意性实施例中,损失函数可以通过如下方式确定:
第一、基于标准深度值集合和预测深度值集合,确定深度损失函数的值。
在可能的实现方式中,深度损失函数通过如下方式确定:将训练图像中的各个像素点对应的深度值差值的绝对值之和,确定为深度损失函数的值,像素点对应的深度值差值是指像素点的预测深度值与像素点的标准深度值的差值。
训练图像中的各个像素点对应的深度值差值的绝对值之和也可以称之为对训练图像的像素点的预测深度值与标准深度值取L1范数。
示例性地,深度损失函数L
其中,ξ(i,j)表示第i行第j列的像素点的预测深度值,
第二、基于标准深度值和步长,确定标准深度值的梯度。
在可能的实现方式中,标准深度值的梯度通过如下方式确定:
1、对于训练图像中的任意一个第一位置的像素点,基于第一位置的像素点的标准深度值、第二位置的像素点的标准深度值和第三位置的像素点的标准深度值,确定第一位置的像素点的标准深度值的初始梯度。
第一位置的像素点可以是指训练图像中的任意一个位置的像素点。第二位置的像素点的行数为第一位置的像素点的行数加上步长,第二位置的像素点的列数与第一位置的像素点的列数一致,第三位置的像素点的行数与第一位置的像素点的行数一致,第三位置的像素点的列数为第一位置的像素点的列数加上步长。
示例性地,第一位置的像素点的标准深度值的初始梯度
其中,
需要说明的是,括号左边的式子表示在x方向上的梯度,括号后边的式子表示在y方向上的梯度。
在示意性实施例中,步长可以从步长集合中选取,步长集合中包括至少一个步长,示例性地,步长集合可以为{1,2,4,8,16},当然,在其它可能的实现方式中,步长集合还可以包括其它个数的步长,以及其它数值的步长,本申请实施例对步长集合中包括的步长个数不作限定,对步长的数值也不作限定。
示例性地,初始梯度也可以称之为一阶梯度。
2、基于第二位置的像素点的标准深度值、第四位置的像素点的标准深度值、第五位置的像素点的标准深度值,确定第二位置的像素点的标准深度值的初始梯度。
第四位置的像素点的行数为第二位置的像素点的行数加上步长,第四位置的像素点的列数与第二位置的像素点的列数一致,第五位置的像素点的行数与第二位置的像素点的行数一致,第五位置的像素点的列数为第二位置的像素点的列数加上步长。
示例性地,第二位置的像素点的标准深度值的初始梯度
其中,
3、基于第三位置的像素点的标准深度值、第六位置的像素点的标准深度值、第七位置的像素点的标准深度值,确定第三位置的像素点的标准深度值的初始梯度。
第六位置的像素点的行数为第三位置的像素点的行数加上步长,第六位置的像素点的列数与第三位置的像素点的列数一致,第七位置的像素点的行数与第三位置的像素点的行数一致,第七位置的像素点的列数为第三位置的像素点的列数加上步长。
示例性地,第三位置的像素点的标准深度值的初始梯度
其中,
4、基于第一位置的像素点的初始梯度、第二位置的像素点的初始梯度、第三位置的像素点的初始梯度,确定标准深度值的梯度。
示例性地,标准深度值的梯度
标准深度值的梯度还可以称之为二阶梯度。
第三、基于预测深度值和步长,确定预测深度值的梯度。
在可能的实现方式中,预测深度值的梯度可以通过如下公式确定:
1、基于第一位置的像素点的预测深度值、第二位置的像素点的预测深度值和第三位置的像素点的预测深度值,确定第一位置的像素点的预测深度值的初始梯度。
第一位置的像素点可以是指训练图像中的任意一个位置的像素点。第二位置的像素点的行数为第一位置的像素点的行数加上步长,第二位置的像素点的列数与第一位置的像素点的列数一致,第三位置的像素点的行数与第一位置的像素点的行数一致,第三位置的像素点的列数为第一位置的像素点的列数加上步长。
示例性地,第一位置的像素点的预测深度值的初始梯度g
其中,g
2、基于第二位置的像素点的预测深度值、第四位置的像素点的预测深度值、第五位置的像素点的预测深度值,确定第二位置的像素点的预测深度值的初始梯度。
第四位置的像素点的行数为第二位置的像素点的行数加上步长,第四位置的像素点的列数与第二位置的像素点的列数一致,第五位置的像素点的行数与第二位置的像素点的行数一致,第五位置的像素点的列数为第二位置的像素点的列数加上步长。
示例性地,第二位置的像素点的预测深度值的初始梯度g
其中,g
3、基于第三位置的像素点的预测深度值、第六位置的像素点的预测深度值、第七位置的像素点的预测深度值,确定第三位置的像素点的预测深度值的初始梯度。
第六位置的像素点的行数为第三位置的像素点的行数加上步长,第六位置的像素点的列数与第三位置的像素点的列数一致,第七位置的像素点的行数与第三位置的像素点的行数一致,第七位置的像素点的列数为第三位置的像素点的列数加上步长。
示例性地,第三位置的像素点的预测深度值的初始梯度g
其中,g
4、基于第一位置的像素点的初始梯度、第二位置的像素点的初始梯度、第三位置的像素点的初始梯度,确定预测深度值的梯度。
示例性地,预测深度值的梯度
第四、基于标准深度值的梯度和预测深度值的梯度,确定梯度损失函数的值。
在可能的实现方式中,计算机设备基于训练图像中的各个像素点对应的梯度值差值的平方和的平方根,确定梯度损失函数的值,像素点对应的梯度值差值是指像素点的标准深度值的梯度与像素点的预测深度值的梯度的差值。
示例性地,梯度损失函数L
训练图像中的各个像素点对应的梯度值差值的平方和的平方根也可以称之为是对训练图像中的各个像素点对应的梯度值差值取L
第五、基于第一倍数的深度损失函数的值和第二倍数的梯度损失函数的值,确定损失函数的值。
示例性地,损失函数Loss可以通过如下公式确定:
Loss=λ
其中,λ
在可能的实现方式中,λ
本申请实施例提出一个基于二阶梯度的损失函数,解决了对平面深度估计所产生的不平滑问题,从而使得深度估计模型能够适用于更多的应用场景。并且,本申请实施例提出的损失函数还可以应用到其他的需要改善平面深度估计效果的深度估计和重建算法中,具有很大的使用价值。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请一个实施例提供的深度值估计装置的框图,该装置具有实现上述深度值估计方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置600可以包括:
图像获取模块610,用于获取原始图像;
模型调用模块620,用于调用深度估计模型;
图像估计模块630,用于通过所述深度估计模型对所述原始图像进行深度值估计,得到所述原始图像的估计深度值集合,所述估计深度值集合包括至少一个估计深度值;
其中,所述深度估计模型的损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的估计深度值和真实深度值之间的差异程度,所述梯度损失函数用于表征估计深度值的梯度和真实深度值的梯度之间的差异程度,所述估计深度值的梯度基于所述估计深度值和步长确定,所述真实深度值的梯度基于所述真实深度值和所述步长确定。
综上所述,本申请实施例提供的技术方案中,通过深度估计模型对图像进行深度值估计,得到该图像的深度值,深度估计模型的损失函数包括深度损失函数和梯度损失函数,在损失函数中利用梯度信息对平面的深度估计进行约束,从而得到一个比较平滑的平面深度值,因此,基于该损失函数训练得到的深度估计模型增加了对平面的约束,使得预测的图像的深度值更加准确。
请参考图7,其示出了本申请一个实施例提供的模型训练装置的框图,该装置具有实现上述模型训练方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置700可以包括:
数据获取模块710,用于获取深度估计模型的训练数据,所述训练数据包括至少一个训练样本,所述训练样本包括训练图像和所述训练图像的标准深度值集合,所述标准深度值集合包括至少一个标准深度值;
图像估计模块720,用于通过所述深度估计模型对所述训练图像进行深度值估计,得到所述训练图像的预测深度值集合,所述预测深度值集合包括至少一个预测深度值;
损失确定模块730,用于基于所述训练图像的标准深度值集合和所述训练图像的预测深度值集合,确定损失函数的值;
模型训练模块740,用于基于所述损失函数的值对所述深度估计模型进行训练,得到完成训练的深度估计模型;
其中,所述损失函数包括深度损失函数和/或梯度损失函数,所述深度损失函数用于表征基于所述深度估计模型输出的预测深度值和标准深度值之间的差异程度,所述梯度损失函数用于表征预测深度值的梯度和标准深度值的梯度之间的差异程度,所述预测深度值的梯度基于所述预测深度值和步长确定,所述标准深度值的梯度基于所述标准深度值和所述步长确定。
综上所述,本申请实施例提供的技术方案中,通过深度估计模型对图像进行深度值估计,得到该图像的深度值,深度估计模型的损失函数包括深度损失函数和梯度损失函数,在损失函数中利用梯度信息对平面的深度估计进行约束,从而得到一个比较平滑的平面深度值,因此,基于该损失函数训练得到的深度估计模型增加了对平面的约束,使得预测的图像的深度值更加准确。
在示意性实施例中,所述损失确定模块730,包括:
第一确定单元(图中未示出),用于基于所述标准深度值集合和所述预测深度值集合,确定所述深度损失函数的值;
第二确定单元(图中未示出),用于基于所述标准深度值和所述步长,确定所述标准深度值的梯度;
第三确定单元(图中未示出),用于基于所述预测深度值和所述步长,确定所述预测深度值的梯度;
第四确定单元(图中未示出),用于基于所述标准深度值的梯度和所述预测深度值的梯度,确定所述梯度损失函数的值;
第五确定单元(图中未示出),用于基于第一倍数的所述深度损失函数的值和第二倍数的所述梯度损失函数的值,确定所述损失函数的值。
在示意性实施例中,所述第一确定单元,用于:
将所述训练图像中的各个像素点对应的深度值差值的绝对值之和,确定为所述深度损失函数的值,所述像素点对应的深度值差值是指所述像素点的预测深度值与所述像素点的标准深度值的差值。
在示意性实施例中,所述第二确定单元,用于:
对于所述训练图像中的任意一个第一位置的像素点,基于第一位置的像素点的标准深度值、第二位置的像素点的标准深度值和第三位置的像素点的标准深度值,确定所述第一位置的像素点的标准深度值的初始梯度;
基于所述第二位置的像素点的标准深度值、第四位置的像素点的标准深度值、第五位置的像素点的标准深度值,确定所述第二位置的像素点的标准深度值的初始梯度;
基于所述第三位置的像素点的标准深度值、第六位置的像素点的标准深度值、第七位置的像素点的标准深度值,确定所述第三位置的像素点的标准深度值的初始梯度;
基于所述第一位置的像素点的初始梯度、所述第二位置的像素点的初始梯度、所述第三位置的像素点的初始梯度,确定所述标准深度值的梯度;
其中,所述第二位置的像素点的行数为所述第一位置的像素点的行数加上所述步长,所述第二位置的像素点的列数与所述第一位置的像素点的列数一致,所述第三位置的像素点的行数与所述第一位置的像素点的行数一致,所述第三位置的像素点的列数为所述第一位置的像素点的列数加上所述步长,所述第四位置的像素点的行数为所述第二位置的像素点的行数加上所述步长,所述第四位置的像素点的列数与所述第二位置的像素点的列数一致,所述第五位置的像素点的行数与所述第二位置的像素点的行数一致,所述第五位置的像素点的列数为所述第二位置的像素点的列数加上步长,所述第六位置的像素点的行数为所述第三位置的像素点的行数加上所述步长,所述第六位置的像素点的列数与所述第三位置的像素点的列数一致,所述第七位置的像素点的行数与所述第三位置的像素点的行数一致,所述第七位置的像素点的列数为所述第三位置的像素点的列数加上所述步长。
在示意性实施例中,所述第三确定单元,用于:
基于第一位置的像素点的预测深度值、第二位置的像素点的预测深度值和第三位置的像素点的预测深度值,确定所述第一位置的像素点的预测深度值的初始梯度;
基于所述第二位置的像素点的预测深度值、第四位置的像素点的预测深度值、第五位置的像素点的预测深度值,确定所述第二位置的像素点的预测深度值的初始梯度;
基于所述第三位置的像素点的预测深度值、第六位置的像素点的预测深度值、第七位置的像素点的预测深度值,确定所述第三位置的像素点的预测深度值的初始梯度;
基于所述第一位置的像素点的初始梯度、所述第二位置的像素点的初始梯度、所述第三位置的像素点的初始梯度,确定所述预测深度值的梯度;
其中,所述第二位置的像素点的行数为所述第一位置的像素点的行数加上所述步长,所述第二位置的像素点的列数与所述第一位置的像素点的列数一致,所述第三位置的像素点的行数与所述第一位置的像素点的行数一致,所述第三位置的像素点的列数为所述第一位置的像素点的列数加上所述步长,所述第四位置的像素点的行数为所述第二位置的像素点的行数加上所述步长,所述第四位置的像素点的列数与所述第二位置的像素点的列数一致,所述第五位置的像素点的行数与所述第二位置的像素点的行数一致,所述第五位置的像素点的列数为所述第二位置的像素点的列数加上步长,所述第六位置的像素点的行数为所述第三位置的像素点的行数加上所述步长,所述第六位置的像素点的列数与所述第三位置的像素点的列数一致,所述第七位置的像素点的行数与所述第三位置的像素点的行数一致,所述第七位置的像素点的列数为所述第三位置的像素点的列数加上所述步长。
在示意性实施例中,所述第四确定单元,用于:
基于所述训练图像中的各个像素点对应的梯度值差值的平方和的平方根,确定所述梯度损失函数的值,所述像素点对应的梯度值差值是指所述像素点的标准深度值的梯度与所述像素点的预测深度值的梯度的差值。
在示意性实施例中,所述装置,还包括:
图像增强模块(图中未示出),用于对所述训练图像进行增强处理,得到增强处理后的训练图像,所述增强处理包括以下至少一项:随机旋转、随机左右旋转、随机裁剪、伽马变换,所述增强处理后的训练图像用于输入所述深度估计模型。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图8,其示出了本申请一个实施例提供的计算机设备的结构框图。
本申请实施例中的计算机设备可以包括一个或多个如下部件:处理器810和存储器820。
处理器810可以包括一个或者多个处理核心。处理器810利用各种接口和线路连接整个计算机设备内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行计算机设备的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器(CentralProcessing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块芯片进行实现。
可选地,处理器810执行存储器820中的程序指令时实现上述各个方法实施例提供的方法。
存储器820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器820包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据计算机设备的使用所创建的数据等。
上述计算机设备的结构仅是示意性的,在实际实现时,计算机设备可以包括更多或更少的组件,比如:显示屏等,本实施例对此不作限定。
本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由计算机设备的处理器加载并执行以实现上述深度值估计方法实施例中的各个步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由计算机设备的处理器加载并执行以实现上述模型训练方法实施例中的各个步骤。
在示例性实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述深度值估计方法。
在示例性实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述模型训练方法。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 深度估计模型的训练方法、深度估计方法、装置及设备
- 深度估计模型的训练方法、装置、电子设备及存储介质