深度估计装置的训练方法、深度估计设备及存储介质与流程

文档序号:17732699发布日期:2019-05-22 02:57阅读:82来源:国知局
深度估计装置的训练方法、深度估计设备及存储介质与流程

本发明涉及图像处理领域,特别地涉及一种训练深度估计装置的方法和深度估计设备。



背景技术:

如今,数字化的三维对象已经广泛地应用于人们日常生活的众多领域,比如增强现实、数字博物馆、三维打印等等。由于深度信息在三维对象重建的过程中起着重要作用,基于图像的深度估计受到越来越多的关注。一般而言,深度估计可以基于单幅图像或者多幅图像。基于单幅图像的深度估计结果通常缺乏扩展性,因此往往采用基于多幅图像的方法。

对于基于多幅图像的深度估计,输入为n幅图像(图像1,图像2,……,图像n),输出为图像1的深度图,以及其它(n-1)幅图像相对于图像1的相机姿态。传统的方法通常需要检测每幅图像中的关键点,确定不同图像之间的匹配点,并计算匹配点的三维坐标进而求得深度信息。由于所有操作都是针对输入图像进行在线处理,并没有用到任何附加的先验信息,这类方法往往需要花费一些时间,而且只有同时在至少两幅图像中都可见的点的深度才能够被估计。近些年来,离线的学习技术被应用于深度估计中。基于使用大量数据训练得到的模型,在线的深度估计速度快,并且可以得到完整的深度图像。但是,在训练的过程中,已有的方法只是将每组图像看作一个独立的样本,而没有考虑图像之间相机姿态的相互关系。实际上,图像j相对于图像k的相机姿态与图像k相对于图像j的相机姿态是相互关联的,合理利用上述关联性附加的约束能够为训练过程提供更多的有用信息。



技术实现要素:

在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

鉴于现有技术的上述缺陷,本发明的目的之一是提供一种对深度估计装置进行训练的方法,所述装置用于估计图像中的对象的深度,所述方法包括:向n个所述装置中的每个装置输入n个样本图像,输入至所述装置的n个样本图像的顺序被设置成使得各个装置所接收的第1个样本图像彼此不同,n为大于等于2的整数;利用所述装置所包含的第一神经网络,基于n个样本图像来估计第1个样本图像的深度图和从拍摄其他样本图像的相机的坐标系变换至拍摄第1个样本图像的相机的坐标系的变换矩阵;基于所述变换矩阵来构建使得n个装置相互关联的第一损失函数;以及通过使包括所述第一损失函数的总体损失函数最小化来确定所述装置的参数。

根据本发明的另一方面,提供了一种深度估计设备,包括:经由上述方法训练的一个或更多个深度估计装置。

根据本发明的又一方面,还提供了一种计算机可读存储介质,存储有能够由处理器运行来执行以下操作的程序:向用于估计图像的深度的n个深度估计装置中的每个装置输入n个样本图像,输入至所述深度估计装置的n个样本图像的顺序被设置成使得各个深度估计装置所接收的第1个样本图像彼此不同,n为大于等于2的整数;利用所述深度估计装置所包含的第一神经网络,基于n个样本图像来估计第1个样本图像的深度图和从拍摄其他样本图像的相机的坐标系变换至拍摄第1个样本图像的相机的坐标系的变换矩阵;基于所述变换矩阵来构建使得n个深度估计装置相互关联的第一损失函数;以及通过使包括所述第一损失函数的总体损失函数最小化来确定所述深度估计装置的参数。

根据本发明的再一方面,还提供了一种程序。所述程序包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述方法。

在利用根据本发明实施方式的训练方法而训练的深度估计设备进行深度估计时,可以获得更加准确的结果。

通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。

附图说明

参照附图来阅读本发明的各实施方式,将更容易理解本发明的其它特征和优点,在此描述的附图只是为了对本发明的实施方式进行示意性说明的目的,而非全部可能的实施,并且不旨在限制本发明的范围。在附图中:

图1示出了现有技术中的深度估计装置的结构的框图。

图2示出了用于训练根据本发明的一种实施方式的深度估计装置的网络结构的框图。

图3示出了对根据本发明的一种实施方式的深度估计装置进行训练的方法的流程图。

图4示出了用于训练根据本发明的另一种实施方式的深度估计装置的网络结构的框图。

图5示出了对根据本发明的另一种实施方式的深度估计装置进行训练的方法的流程图。

图6示出了用于实施根据本发明实施方式的方法和设备的计算机的示意性框图。

具体实施方式

在下文中将结合附图对本发明的示范性实施方式进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。

图1示出了现有技术中的用于深度估计的装置的结构的框图。

图1所示的装置100包括用于基于输入的n个图像来估计从所输入的第一个图像(即图像1)到其他图像的光流的神经网络,以及基于输入的n个图像与所估计的光流来估计图像1的深度图和从拍摄其他图像的相机的坐标系变换至拍摄图像1的相机的坐标系的变换矩阵的神经网络。在训练装置100时,总体的损失函数由真实数据(包括深度图、相机姿态和光流)与估计数据之间的差距来确定,如等式(1)所示:

其中l0表示总体损失函数;d1(x,y)表示图像1中位置(x,y)的真实深度,表示d1(x,y)的估计值;tk1表示从拍摄图像k(k=2,3,…,n)的相机的坐标系变换至拍摄图像1的相机的坐标系的变换矩阵的真实值,表示tk1的估计值,f()表示某种距离度量,例如范数;f1k(x,y)表示从图像1中位置(x,y)到图像k的真实光流,表示f1k(x,y)的估计值;以及α和β为线性组合系数。

在图1所示的现有网络中,将每组图像被看作一个独立的样本,而没有考虑图像的由变换矩阵表征的相机姿态之间的相互关系。

图2示出了用于训练根据本发明的一种实施方式的深度估计装置的网络结构的框图。

如图2所示,用于训练根据本发明的一种实施方式的深度估计装置的网络结构包含用于估计图像的深度的n个深度估计装置201、202、……、20n,其中n为大于2的整数。深度估计装置201、202、……、20n是相同的,即它们具有相同的结构和相同的参数。n个深度估计装置分别接收n个图像,并且各个深度估计装置所接收的第1个图像彼此不同。每个深度估计装置具有第一神经网络,该第一神经网络用于基于输入的n个图像来估计所输入的第一个图像的深度图以及从拍摄其它n-1个图像的相机的坐标系变换至拍摄该第一个图像的相机的坐标系的变换矩阵。在此,第一神经网络可以根据实际应用来从现有的神经网络中选择。优选地,第一神经网络可以是编码-解码网络。

另外,n个深度估计装置通过基于变换矩阵而构建的第一损失函数来相互关联。在深度估计装置的训练过程中,通过使包括第一损失函数的总体损失函数最小化来确定深度估计装置的参数。

下面,参考图3来描述对图2中的深度估计装置进行训练的方法。

如图3所示,训练方法300包括步骤s310至s340。在步骤s310中,向n个深度估计装置中的每个装置输入n个样本图像,输入至深度估计装置的n个样本图像的顺序被设置成使得各个装置所接收的第1个样本图像彼此不同。

在步骤s320中,利用深度估计装置所包含的第一神经网络,基于n个样本图像来估计第1个样本图像的深度图和从拍摄其他n-1个样本图像的相机的坐标系变换至拍摄第1个样本图像的相机的坐标系的变换矩阵。此处,第一神经网络是现有,关于第一神经网络的操作已为本领域技术人员所熟知,在此不再赘述。

在步骤s330中,基于变换矩阵来构建使得n个装置相互关联的第一损失函数。考虑到在图像j到图像k的变换矩阵为tjk时,则图像k到图像j的变换矩阵tkj=tjk-1。由此,作为示例,第一损失函数可以通过以下操作来构建:计算从第j个样本图像到第k个样本图像的变换矩阵和从第k个样本图像到第j个样本图像的变换矩阵的乘积与单位矩阵之间的差距,作为第j个样本图像与第k个样本图像之间的第一局部损失函数,其中j≠k且j,k∈(1,2,……,n);以及将n个样本图像中两两样本图像之间的所有第一局部损失函数相加,以得到所述第一损失函数,如以下等式(2)所示。

第一损失函数

其中,表示从第j个样本图像到第k个样本图像的变换矩阵的估计值;表示从第k个样本图像到第j个样本图像的变换矩阵的估计值;i为单位矩阵;以及‖‖表示范数。在此,通过计算两个变换矩阵的乘积与单位矩阵之间的范数来度量两个变换矩阵之间的距离,但距离度量的方式不限于此,本领域技术人员可以根据实际需要来选择其他距离度量方式。

在步骤s340中,通过使包括第一损失函数的总体损失函数最小化来确定深度估计装置的参数。除了第一损失函数以外,总体损失函数还可以包括表示真实数据与估计数据之间差距的第三损失函数。在本实施方式中,第三损失函数例如可以包括所估计的深度图与真实深度图之间的差距和所估计的变换矩阵与真实变换矩阵之间的差距。此时,第三损失函数可以表示为:

第三损失函数以及

其中,ai表示第i个深度估计装置的第三局部损失函数;di(x,y)表示图像i中位置(x,y)的真实深度,表示di(x,y)的估计值;tk1表示从拍摄图像k(k=1,…,i-1,i+1,…,n)的相机的坐标系变换至拍摄图像i的相机的坐标系的变换矩阵的真实值,表示tk1的估计值;f()表示某种距离度量,例如范数等;以及α线性组合系数。

在得到第一损失函数和第三损失函数之后,总体损失函数可以由第一损失函数和第三损失函数的加权和来表示,即:

总体损失函数l=l3+λl1等式(4)

其中,λ为线性组合系数。

在步骤s340中,通过使以上得到的总体损失函数最小化,即可得到本实施方式中的深度估计装置的参数。

在测试过程中,可以利用经由上述训练方法训练的图2中的一个或更多个深度估计装置来对图像进行处理,以估计图像的深度。

为了进一步提高深度估计的性能,在以下根据本发明的另一种实施方式的深度估计装置中,引入了图像之间的光流信息以进一步挖掘深度估计装置之间的相关性,从而能够得到更加准确的深度估计结果。

图4示出了用于训练根据本发明的另一种实施方式的深度估计装置的网络结构的框图。如图4所示,用于训练根据本发明的另一种实施方式的深度估计装置的网络结构包含用于估计图像的深度的n个深度估计装置401、402、……、40n,其中n为大于2的整数。深度估计装置401、402、……、40n是相同的,即它们具有相同的结构和相同的参数。n个深度估计装置分别接收n个图像,并且各个深度估计装置所接收的第1个图像彼此不同。与上述实施方式中的深度估计装置(201,……20n)相比,本实施方式中的深度估计装置还包括与第一神经网络耦接的第二神经网络,其用于基于输入的n个图像来估计其他图像相对于所输入的第1个图像的光流。在本实施方式中,第一神经网络除了基于n个图像以外,还基于所估计的光流来估计第1个图像的深度图和从其他图像的相机的坐标系变换至第1个图像的相机的坐标系的变换矩阵。

第二神经网络可以根据实际应用来从现有的神经网络中选择。优选地,第二神经网络可以是编码-解码器网络。

在该另外的实施方式中,n个深度估计装置通过基于变换矩阵而构建的第一损失函数和基于所估计的光流而构建的第二损失函数来相互关联。在本实施方式的深度估计装置的训练过程中,通过使包括第一损失函数和第二损失函数的总体损失函数最小化来确定深度估计装置的参数。

下面,参考图5来描述对图4中的深度估计装置进行训练的方法。

如图5所示,训练方法500包括步骤s510至步骤s560。

在步骤s510中,向n个深度估计装置中的每个装置输入n个样本图像,输入至深度估计装置的n个样本图像的顺序被设置成使得各个装置所接收的第1个样本图像彼此不同。

在步骤s520中,利用第二神经网络,基于n个样本图像来估计其他样本图像相对于第1个样本图像的光流。在此,第二神经网络是现有的,关于该第二神经网络的操作已为本领域技术人员所熟知,因此不再赘述。

在步骤s530中,基于所估计的光流来构建使得n个装置相互关联的第二损失函数。已经知晓,当从图像j中的位置(x,y)到图像k的光流fjk(x,y)=(u,v)时,坐标(x,y)在图像k中的对应位置为(x+u,y+v),以及从图像k中的位置(x+u,y+v)到图像j的光流fkj(x+u,y+v)=(-u,-v)。鉴于此,第二损失函数可以通过以下操作来构建:计算第j个样本图像相对于第k个样本图像的光流与第k个样本图像相对于第j个样本图像的光流的负数之间的差距,作为第j个样本图像与第k个样本图像之间的第二局部损失函数,其中j≠k且j,k∈(1,2,……,n);以及将n个样本图像中两两样本图像之间的所有第二局部损失函数相加,以得到所述第二损失函数,如以下等式(5)所示:

第二损失函数

其中,表示从图像j中位置(x,y)到图像k的光流;等价于表示从图像k中位置(x+u,y+v)到图像j的光流;以及‖‖表示范数。在等式(5)中通过两个光流之间的范数来度量两个光流之间的距离,但光流之间的距离度量方式不限于此,本领域技术人员可以根据需要选择现有的其他距离度量方式。

在步骤s540中,第一神经网络基于n个样本图像和所估计的光流来估计第1个样本图像的深度图和从其他样本图像的相机的坐标系变换至第1个样本图像的相机的坐标系的变换矩阵。这与前述实施方式中的计算变换矩阵的步骤s320稍有不同,在步骤s320中,第一神经网络仅基于n个样本图像来估计深度图和变换矩阵。该另一个实施方式中的第一神经网络是现有的,关于该第一神经网络的操作已为本领域技术人员所熟知,在此不再赘述其详细操作。

在步骤s550中,基于变换矩阵来构建使得n个深度估计装置相互关联的第一损失函数。此处,构建第一损失函数的方法可以参见以上关于步骤s330的描述,为简便起见,在此不再赘述。

在步骤s560中,通过使包括所述第二损失函数和所述第一损失函数的总体损失函数最小化来获取所述深度估计装置的参数。除了第一损失函数和第二损失函数以外,总体损失函数还可以包括表示真实数据与估计数据之间的差距的第三损失函数。在本实施方式中,第三损失函数例如可以包括所估计的深度图与真实深度图之间的差距、所估计的变换矩阵与真实变换矩阵之间的差距和所估计的光流与真实光流之间的差距。此时,第三损失函数可以表示为:

第三损失函数以及

其中,ai表示第i个深度估计装置的第三局部损失函数;di(x,y)表示图像i中位置(x,y)的真实深度,表示di(x,y)的估计值;tki表示从拍摄图像k(k=1,…i-1,i+1,…,n)的相机的坐标系变换至拍摄图像i的相机的坐标系的变换矩阵的真实值,表示tk1的估计值;f()表示某种距离度量,例如范数等;fik(x,y)表示从图像i中位置(x,y)到图像k的真实光流,表示fik(x,y)的估计值;以及α和β为线性组合系数。

在得到第一损失函数、第二损失函数和第三损失函数之后,总体损失函数可以由第一损失函数、第二损失函数和第三损失函数的加权和来表示,即:

l=l3+λl1+ωl2等式(7)

其中,λ和ω为线性组合系数。

在根据另一个实施方式的深度估计装置的测试过程中,可以利用经由上述训练方法训练的图4中的一个或更多个深度估计装置来对图像进行处理,以估计图像的深度。

根据本发明的以上实施方式,通过使用n个具有相同结构和参数的深度估计装置,并引入附加的基于相机姿态和光流相互关系的损失函数,利用根据本发明的训练方法而训练的深度估计装置进行深度估计,可以获得更加准确的结果。

另外,这里尚需指出的是,上述系统中各个组成部件可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图6所示的通用计算机600)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。

图6示出了可用于实施根据本发明实施方式的方法和系统的计算机的示意性框图。

在图6中,中央处理单元(cpu)601根据只读存储器(rom)602中存储的程序或从存储部分608加载到随机存取存储器(ram)603的程序执行各种处理。在ram603中,还根据需要存储当cpu601执行各种处理等等时所需的数据。cpu601、rom602和ram603经由总线604彼此连接。输入/输出接口605也连接到总线604。

下述部件连接到输入/输出接口605:输入部分606(包括键盘、鼠标等等)、输出部分607(包括显示器,比如阴极射线管(crt)、液晶显示器(lcd)等,和扬声器等)、存储部分608(包括硬盘等)、通信部分609(包括网络接口卡比如lan卡、调制解调器等)。通信部分609经由网络比如因特网执行通信处理。根据需要,驱动器610也可连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。

在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。

本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序的、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(cd-rom)和数字通用盘(dvd))、磁光盘(包含迷你盘(md)(注册商标))和半导体存储器。或者,存储介质可以是rom602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。

本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明实施方式的方法。

相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的范围内。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。

应当注意,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的次序顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。

以上对本发明各实施方式的描述是为了更好地理解本发明,其仅仅是示例性的,而非旨在对本发明进行限制。应注意,在以上描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。本领域技术人员可以理解,在不脱离本发明的发明构思的情况下,针对以上所描述的实施方式进行的各种变化和修改,均属于本发明的范围内。

综上,在根据本发明的实施方式中,本发明提供了如下技术方案。

方案1.一种对深度估计装置进行训练的方法,所述装置用于估计图像的深度,所述方法包括:

向n个所述装置中的每个装置输入n个样本图像,输入至所述装置的n个样本图像的顺序被设置成使得各个装置所接收的第1个样本图像彼此不同,n为大于等于2的整数;

利用所述装置所包含的第一神经网络,基于n个样本图像来估计第1个样本图像的深度图和从拍摄其他样本图像的相机的坐标系变换至拍摄第1个样本图像的相机的坐标系的变换矩阵;

基于所述变换矩阵来构建使得n个装置相互关联的第一损失函数;以及

通过使包括所述第一损失函数的总体损失函数最小化来确定所述装置的参数。

方案2.根据方案1所述的方法,还包括:

利用所述装置所包含的与所述第一神经网络耦接的第二神经网络,基于n个样本图像来估计其他样本图像相对于第1个样本图像的光流,其中第一神经网络基于n个样本图像和所估计的光流来估计第1个样本图像的深度图和从其他样本图像的相机的坐标系变换至第1个样本图像的相机的坐标系的变换矩阵;以及

基于所估计的光流来构建使得n个装置相互关联的第二损失函数,

其中,通过使包括所述第二损失函数和所述第一损失函数的总体损失函数最小化来获取所述参数。

方案3.根据方案1所述的方法,其中,构建所述第一损失函数包括:

计算从第j个样本图像到第k个样本图像的变换矩阵和从第k个样本图像到第j个样本图像的变换矩阵的乘积与单位矩阵之间的差距,作为第j个样本图像与第k个样本图像之间的第一局部损失函数,其中j≠k且j,k∈(1,2,……,n);以及

将n个样本图像中两两样本图像之间的所有第一局部损失函数相加,以得到所述第一损失函数。

方案4.根据方案2所述的方法,其中,构建所述第二损失函数包括:

计算第j个样本图像相对于第k个样本图像的光流与第k个样本图像相对于第j个样本图像的光流的负数之间的差距,作为第j个样本图像与第k个样本图像之间的第二局部损失函数,其中j≠k且j,k∈(1,2,……,n);以及

将n个样本图像中两两样本图像之间的所有第二局部损失函数相加,以得到所述第二损失函数。

方案5.根据方案2至4中任一项所述的方法,其中,所述总体损失函数还包括表示下述中的至少之一的第三损失函数:所估计的深度图与真实深度图之间的差距、所估计的变换矩阵与真实变换矩阵之间的差距和所估计的光流与真实光流之间的差距。

方案6.根据方案5所述的方法,其中,所述总体函数为所述第一损失函数、所述第二损失函数和所述第三损失函数的加权和。

方案7.根据方案1至4中任一项所述的方法,其中,所述第一神经网络为编码-解码网络。

方案8.根据方案1至4中任一项所述的方法,其中,所述第二神经网络为编码-解码网络。

方案9.一种深度估计设备,包括:经由根据方案1至8中任一项所述的方法训练的一个或更多个深度估计装置。

方案10.一种计算机可读存储介质,存储有能够由处理器运行来执行以下操作的程序:

向用于估计图像的深度的n个深度估计装置中的每个装置输入n个样本图像,输入至所述深度估计装置的n个样本图像的顺序被设置成使得各个深度估计装置所接收的第1个样本图像彼此不同,n为大于等于2的整数;

利用所述深度估计装置所包含的第一神经网络,基于n个样本图像来估计第1个样本图像的深度图和从拍摄其他样本图像的相机的坐标系变换至拍摄第1个样本图像的相机的坐标系的变换矩阵;

基于所述变换矩阵来构建使得n个深度估计装置相互关联的第一损失函数;以及

通过使包括所述第一损失函数的总体损失函数最小化来确定所述深度估计装置的参数。

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