CN113330486A - 深度估计 - Google Patents

深度估计 Download PDF

Info

Publication number
CN113330486A
CN113330486A CN202080010503.0A CN202080010503A CN113330486A CN 113330486 A CN113330486 A CN 113330486A CN 202080010503 A CN202080010503 A CN 202080010503A CN 113330486 A CN113330486 A CN 113330486A
Authority
CN
China
Prior art keywords
depth
estimate
scene
depth estimate
fused
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080010503.0A
Other languages
English (en)
Inventor
特里斯坦·威廉·莱德洛
简·恰诺夫斯基
斯特凡·卢特内格尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Imperial Institute Of Technology Innovation Co ltd
Imperial College of Science Technology and Medicine
Imperial College of Science and Medicine
Original Assignee
Imperial Institute Of Technology Innovation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Imperial Institute Of Technology Innovation Co ltd filed Critical Imperial Institute Of Technology Innovation Co ltd
Publication of CN113330486A publication Critical patent/CN113330486A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/243Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
    • G05D1/2435Extracting 3D information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0014Image feed-back for automatic industrial control, e.g. robot with camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Robotics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

一种估计场景的深度的图像处理***。所述图像处理***包括融合引擎,用于接收来自几何重建引擎的第一深度估计和来自神经网络架构的第二深度估计。所述融合引擎被配置为概率地融合所述第一深度估计和所述第二深度估计以输出所述场景的融合深度估计。所述融合引擎被配置为接收来自所述几何重建引擎的所述第一深度估计的不确定性测量和来自所述神经网络架构的所述第二深度估计的不确定性测量,并且使用所述不确定性测量来概率地融合所述第一深度估计和所述第二深度估计。

Description

深度估计
技术领域
本发明涉及估计场景的深度。本发明特别但不排他地与由机器人装置使用来导航其环境和/或与其环境交互的深度估计相关。
背景技术
在计算机视觉和机器人领域,通常需要构建三维(3D)空间的表示。构建3D空间的表示允许将现实世界环境映射到虚拟或数字领域,在那里它可以被电子装置使用和操纵。例如,在增强现实应用中,用户可能会使用手持装置与对应于周围环境中实体的虚拟对象进行交互,或者可移动的机器人装置可能需要3D空间的表示以允许同时定位和映射,并且因而允许对其环境的导航。在许多应用中,可能需要智能***具有环境的表示,以便将数字信息源联接到物理对象。然后,这允许高级人机接口,其中人周围的物理环境成为接口。以类似的方式,这样的表示还可以实现高级的机器-世界接口,例如使机器人装置能够与现实世界环境中的物理对象交互并操纵所述物理对象。
有多种技术可用于构建3D空间的表示。例如,运动中恢复结构和同时定位和映射(SLAM)就是两种这样的技术。SLAM技术通常涉及估计要映射的3D场景的深度。可以使用深度相机来执行深度估计。然而,深度相机通常具有有限的范围、相对较高的功耗,并且可能无法在诸如明亮的阳光下之类的室外环境中正确工作。在其他情况下,可以在不使用深度相机的情况下,例如基于空间的图像,来执行深度估计。
K.Tateno等人在2017年IEEE计算机视觉与模式识别(CVPR)会议论文集中发表的论文“CNN-SLAM:Real-time dense monocular SLAM with learned depth prediction”描述了融合由卷积神经网络(CNN)获得的深度图与从直接单目SLAM获得的深度测量。为了恢复模糊的深度边界,CNN预测的深度图用作重建的初始猜测,并借助依赖于每像素基础上的小基线立体匹配的直接SLAM方案来连续地精炼。然而,该方法不能保持全局一致性。
鉴于现有技术,需要可用且有效的深度估计方法,例如以改进3D空间的映射。
发明内容
根据本发明的第一方面,提供了一种估计场景的深度的图像处理***。所述图像处理***包括融合引擎,用于接收来自几何重建引擎的第一深度估计和来自神经网络架构的第二深度估计,并且用于概率地融合所述第一深度估计和所述第二深度估计以输出所述场景的融合深度估计,其中所述融合引擎被配置为接收来自所述几何重建引擎的所述第一深度估计的不确定性测量和来自所述神经网络架构的所述第二深度估计的不确定性测量,并且其中所述融合引擎被配置为使用所述不确定性测量来概率地融合所述第一深度估计和所述第二深度估计。
在某些示例中,所述融合引擎被配置为从所述神经网络架构接收表面定向估计和所述表面定向估计的不确定性度量,并被配置为使用所述表面定向估计和所述表面定向估计的所述不确定性度量来概率地融合所述第一深度估计和所述第二估计。
在某些示例中,所述表面定向估计包括以下各者中的一个或多个:在第一方向上的深度梯度估计;与所述第一方向正交的方向上的深度梯度估计;和表面法线估计。
在某些示例中,所述融合引擎被配置为当概率地融合所述第一深度估计和所述第二估计时确定比例估计。
在某些示例中,在第一视频数据帧中捕获所述场景,针对所述第一视频数据帧接收所述第二深度估计,所述第一深度估计包括所述第一视频数据帧的多个第一深度估计,使用与所述第一视频数据帧不同的第二视频数据帧生成所述多个第一深度估计中的至少一个,并且所述融合引擎被配置为迭代地输出所述场景的所述融合深度估计,在每次迭代时,处理所述第二深度估计并处理所述多个深度估计之一。
在某些示例中,所述第一深度估计、所述第二深度估计和所述融合深度估计均包括多个像素的深度图。
在某些示例中,所述第一深度估计为半密集深度估计,以及所述第二深度估计和所述融合深度估计均包括密集深度估计。
在某些示例中,所述***包括:单目相机,用于捕获视频数据帧;跟踪***,用于确定所述单目相机在观察所述场景期间的姿态;和所述几何重建引擎。在这样的示例中,所述几何重建引擎被配置为使用来自所述跟踪***的所述姿态和所述视频数据帧来为来自所述视频数据帧的像素的至少子集生成深度估计,所述几何重建引擎被配置为使光度误差最小化以生成所述深度估计。
在某些示例中,所述***包括所述神经网络架构,并且所述神经网络架构包括一个或多个神经网络并且被配置为接收视频数据帧的像素值并预测:第一组图像部分中的每一个的深度估计以生成所述第二深度估计;第二组图像部分中的每一个的至少一个表面定向估计;与每个深度估计相关联的一个或多个不确定性度量;以及与每个表面定向估计相关联的一个或多个不确定性度量。
根据本发明的第二方面,提供了一种估计场景的深度的方法。所述方法包括使用所述场景的几何重建来生成所述场景的第一深度估计,其中所述几何重建被配置为输出所述第一深度估计的不确定性度量;使用神经网络架构生成所述场景的第二深度估计,其中所述神经网络架构被配置为输出所述第二深度估计的不确定性度量;并且使用所述不确定性度量来概率地融合所述第一深度估计和所述第二深度估计,以生成所述场景的融合深度估计。
在某些示例中,所述方法包括在生成所述第一深度估计之前,从相机获得表示所述场景的两个或更多个视图的图像数据。在这样的示例中,生成所述第一深度估计包括:获得所述相机的姿态估计;并且通过使光度误差最小化来生成所述第一深度估计,所述光度误差是至少所述姿态估计和所述图像数据的函数。
在某些示例中,所述方法包括在生成所述第一深度估计之前,从相机获得表示所述场景的一个或多个视图的图像数据。在这样的示例中,生成所述第二深度估计包括:在所述神经网络架构处接收所述图像数据;使用所述神经网络架构预测一组图像部分中的每一个的深度估计以生成所述第二深度估计;使用所述神经网络架构为所述一组图像部分中的每一个预测至少一个表面定向估计;并且使用所述神经网络架构预测每个深度估计和每个表面定向估计的一组不确定性度量。所述表面定向估计可以包括以下各者中的一个或多个:在第一方向上的深度梯度估计;与所述第一方向正交的方向上的深度梯度估计;和表面法线估计。
在某些示例中,所述方法包括在生成所述第一深度估计之前,从相机获得表示所述场景的两个或更多个视图的图像数据,所述图像数据包括多个像素。在这样的示例中,生成所述第一深度估计包括:获得所述相机的姿态估计;并且生成半密集深度估计,所述半密集深度估计包括所述图像数据中所述像素的一部分的深度估计。在这些示例中,生成所述第二深度估计包括为所述图像数据中的所述像素生成密集深度估计,并且概率地融合所述第一深度估计和所述第二深度估计包括为所述图像数据中的所述像素输出密集深度估计。
在某些示例中,所述方法被迭代地重复,并且对于随后的迭代,所述方法包括确定是否生成所述第二深度估计,并且概率地融合所述第一深度估计和所述第二深度估计包括响应于确定不生成所述第二深度估计而使用所述第二深度估计的先前的一组值。
在某些示例中,所述方法被应用于视频数据帧,并且概率地融合所述第一深度估计和所述第二深度估计包括,对于给定的视频数据帧:优化包括与所述第一深度估计相关联的第一成本项和与所述第二深度估计相关联的第二成本项的成本函数。在这样的示例中,所述第一成本项包括融合深度估计值、第一深度估计值和所述第一深度估计的不确定性值的函数,所述第二成本项包括融合深度估计值、第二深度估计值和所述第二深度估计的不确定性值的函数,并且优化所述成本函数以确定所述融合深度估计值。优化所述成本函数可以包括确定所述融合深度估计的比例因子,所述比例因子指示相对于所述场景的所述融合深度估计的比例。在一些示例中,所述方法包括使用所述神经网络架构生成所述场景的至少一个表面定向估计,其中所述神经网络架构被配置为输出所述至少一个表面定向估计中的每一个的不确定性度量,其中所述成本函数包括与所述至少一个表面定向估计相关联的第三成本项,其中所述第三成本项包括融合深度估计值、表面定向估计值和所述至少一个表面定向估计中的每一个的不确定性值的函数。
在根据第二方面的特定组示例中,所述场景的所述几何重建被配置为生成所述场景的第一深度概率体积,所述第一深度概率体积包括:第一多个深度估计,其包括所述第一深度估计;和第一多个不确定性度量,每个与所述第一多个深度估计中的相应深度估计相关联,其中与所述第一多个深度估计中的给定深度估计相关联的不确定性度量表示所述场景的给定区域处于由所述第一多个深度估计中的所述给定深度估计表示的深度处的概率;并且所述神经网络架构被配置为输出所述场景的第二深度概率体积,所述第二深度概率体积包括:第二多个深度估计,其包括所述第二深度估计;和第二多个不确定性度量,每个与所述第二多个深度估计中的相应深度估计相关联,其中与所述第二多个深度估计中的给定深度估计相关联的不确定性度量表示所述场景的给定区域处于由所述第二多个深度估计中的所述给定深度估计表示的深度处的概率。
在该特定组示例中的某些示例中,生成所述场景的所述第二深度估计包括使用所述神经网络架构处理表示所述场景的图像的图像数据以生成所述第二深度概率体积,其中所述第二多个深度估计包括多组深度估计,每组与所述场景的所述图像的不同的相应部分相关联。
在特定组示例的某些示例中,所述第二多个深度估计包括具有预定义值的深度估计。所述预定义值之间可以具有不均匀的间距。所述预定义值可以包括预定义深度范围内的多个对数深度值。
在特定组示例的某些示例中,生成所述场景的所述第一深度概率体积包括:处理表示所述场景的第一观察的第一视频数据帧和表示所述场景的第二观察的第二视频数据帧以针对所述第一帧的多个部分中的每一个生成一组光度误差,每个与所述第一多个深度估计中的不同的相应深度估计相关联;并且缩放所述光度误差以将所述光度误差转换为相应的概率值。
在特定组示例的某些示例中,使用所述不确定性度量来概率地融合所述第一深度估计和所述第二深度估计包括将所述第一多个不确定性度量与所述第二多个不确定性度量组合以生成融合概率体积。在这些示例中,生成所述场景的所述融合深度估计可以包括从所述融合概率体积获得所述场景的所述融合深度估计。这些示例可以包括:使用所述融合概率体积获得深度概率函数;并且使用所述深度概率函数获得所述融合深度估计。在这些示例中,获得所述融合深度估计可以包括优化成本函数,所述成本函数包括:使用所述融合概率体积获得的第一成本项;和包括对深度值的局部几何约束的第二成本项。在这样的情况下,所述方法还可以包括:从另一神经网络架构接收表面定向估计和遮挡边界估计;并且使用所述表面定向估计和所述遮挡边界估计生成所述第二成本项。在这些示例中,所述融合深度概率体积可以是与表示所述场景的第一观察的第一视频数据帧相关联的第一融合深度概率体积,并且所述方法可以包括:将所述第一融合深度概率体积转换为第一占用概率体积;基于表示相机在观察所述场景期间的姿态的姿态数据来扭曲所述第一占用概率体积以获得与表示所述场景的第二观察的第二视频数据帧相关联的第二占用概率体积;以及将所述第二占用概率体积转换为与所述第二帧相关联的第二融合深度概率体积。
根据本发明的第三方面,提供了一种估计场景的深度的图像处理***,其包括:融合引擎,用于接收来自几何重建引擎的第一深度概率体积和来自神经网络架构的第二深度概率体积,并且用于融合所述第一深度概率体积和所述第二深度概率体积以输出所述场景的融合深度概率体积;和深度估计引擎,用于使用所述融合深度概率体积来估计所述场景的所述深度。
根据本发明的第四方面,提供了一种估计场景的深度的方法,其包括:使用所述场景的几何构建生成所述场景的第一深度概率体积;使用神经网络架构生成所述场景的第二深度概率体积;融合所述第一深度概率体积和所述第二深度概率体积以生成所述场景的融合深度概率体积;以及使用所述融合深度概率体积生成所述场景的融合深度估计。
根据本发明的第五方面,提供了一种计算***,其包括:单目捕获装置,用于提供视频帧;同时定位和映射***,用于提供所述单目捕获装置的姿态数据;如第一或第三方面所述的***;半密集多视图立体部件,用于接收所述姿态数据和所述视频帧,并且用于实现所述几何重建引擎;和电子电路,用于实现所述神经网络架构。
根据本发明的第六方面,提供了一种机器人装置,其包括:如第五方面所述的计算***;一个或多个致动器,用于使所述机器人装置能够与周围的三维环境交互,其中在所述场景中显示所述周围的三维环境的至少一部分;和交互引擎,其包括至少一个处理器以控制所述一个或多个致动器,其中所述交互引擎将使用所述融合深度估计与所述周围的三维环境交互。
根据本发明的第七方面,提供了一种包括计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令在由处理器执行时使计算装置执行上述任何方法。
另外的特征将从下面仅举例来说给出的、参考附图进行的本发明的实施方案的描述中变得明显。
附图说明
图1A是示出三维(3D)空间的示例的示意图;
图1B是示出3D空间中示例对象的可用自由度的示意图;
图1C是示出由示例捕获装置生成的视频数据的示意图;
图2是根据示例的图像处理***的示意图;
图3是根据另一个示例的图像处理***的示意图;
图4是根据又一个示例的图像处理***的示意图;
图5是根据示例的示出表面定向估计和表面定向估计的不确定性度量的示意图;
图6是根据再一个示例的图像处理***的示意图;
图7A是根据示例的计算***的部件的示意图;
图7B是根据示例的机器人装置的部件的示意图;
图8是示出参考图1至图7描述的各种特征的示例的示意图;
图9是示出估计场景的深度的示例方法的流程图;
图10是示出估计场景的深度的另一种示例方法的流程图;
图11是示出处理器和包括计算机可执行指令的非暂时性计算机可读存储介质的示例的示意图;
图12是根据另一个示例的示出场景的第一和第二深度估计的融合的示意图;
图13是根据示例的用于获得第二深度概率体积的***的示意图;
图14是示出与使用图13的***获得的相应深度估计相关联的不确定性度量的示例的示意图;
图15是根据示例的用于获得第一深度概率体积的***的示意图;
图16是示出获得场景的融合深度估计的示例方法的流程图;
图17是根据使用图16的方法获得融合深度估计的***的示意图;
图18是示出获得第二融合深度概率体积的示例方法的流程图;
图19是根据另一个示例的示出估计场景的深度的示例方法的流程图;以及
图20是根据另一个示例的用于估计场景的深度的图像处理***的示意图。
具体实施方式
本文描述的某些示例使得能够估计场景的深度。这样的示例包括使用场景的几何重建来生成场景的第一深度估计。例如,可以通过处理场景的图像来生成第一深度估计。图像可以例如是二维(2D)彩色图像,其可以是例如RGB(红、绿、蓝)图像。可以基于几何约束生成第一深度估计。例如,可以假定表示场景的给定部分的图像中像素的色彩与用于捕获图像的相机的位置无关。这可以在第一深度估计的生成中被利用,如参考附图进一步解释的。几何重建还被配置为输出第一深度估计的不确定性度量,其例如指示第一深度估计有多精确。例如,在第一深度估计受到良好约束并且可以被准确估计的情况下,不确定性度量可能低于其中第一深度估计受到较少约束的其他情况。
使用神经网络架构生成场景的第二深度估计。神经网络架构还被配置为输出第二深度估计的不确定性度量。例如,可以使用诸如卷积神经网络(CNN)之类的神经网络架构来处理场景图像,所述神经网络架构已被训练来从输入图像预测深度估计和相关联的不确定性两者。不确定性度量可以指示对相关联的第二深度估计的置信度。例如,对于包括用于训练神经网络架构的训练数据中不存在的对象的图像区域的第二深度估计可能相对不确定,并且因此可能与从神经网络架构获得的相对高的不确定性度量相关联。相反,对于包括存在于训练数据中的对象的图像区域的第二深度估计可能与较低的不确定性度量相关联。
使用不确定性度量来概率地融合第一深度估计和第二深度估计,以生成场景的融合深度估计。通过以这种方式组合第一和第二深度估计,可以提高融合深度估计的准确度。例如,与场景的不同部分相比,第一深度估计(其基于几何约束)可以提供对场景的一部分的相对深度的可靠估计。以这种方式,第一深度估计可能够将场景的部分,例如相对于场景的其他部分,放置或以其他方式定位在真实世界环境内的适当位置。然而,第一深度估计在捕获场景的该部分内的深度梯度(诸如场景的该部分内的深度变化)时例如由于场景的该部分内的表面的不均匀纹理,而可能不太准确。相比之下,尽管第二深度估计(如从神经网络架构获得)可以准确地捕获场景内的深度梯度,但与场景的其他部分相比,它可能不太准确地定位场景的给定部分。然而,通过使用不确定性度量来概率地融合第一和第二深度估计,可以协同地增强第一和第二深度估计中的每一个的单独效果,以便提高融合深度估计的准确度。例如,不确定性度量可以约束第一和第二深度估计的融合,以确保融合深度估计的全局一致性。此外,与其他方法相比,可以减少场景的估计深度中的模糊伪影。
图1A和图1B示意性地示出了3D空间和与该空间相关联的图像数据的捕获的示例。然后,图1C示出了被配置为在查看空间时生成图像数据的捕获装置。这些示例被呈现以更好地解释本文描述的某些特征且不应被视为限制;为了便于解释,某些特征已被省略和简化。
图1A示出了3D空间110的示例100。3D空间110可以是内部和/或外部物理空间,例如房间或地理位置的至少一部分。该示例100中的3D空间110包括位于3D空间内的多个物理对象115。这些对象115可以尤其包括以下各者中的一个或多个:人、电子装置、家具、动物、建筑物部分和设备。尽管图1A中的3D空间110被示为具有下表面,但不是在所有实现中都必须如此,例如环境可以是空中的或在地球外空间内。
示例100还示出了可以用于捕获与3D空间110相关联的视频数据的各种示例捕获装置120-A、120-B、120-C(共同地用附图标记120来引用)。捕获装置诸如图1A的捕获装置120-A可以包括被布置为以数字或模拟形式记录从观察3D空间110产生的数据的相机。例如,捕获装置120-A可以是单目捕获装置,诸如单目相机。单目相机通常一次从一个位置捕获场景的图像,并且可能具有单个镜头或镜头***。相比之下,立体相机一般包括至少两个镜头,其中每个镜头都有单独的图像传感器。可用作捕获装置120-A的单目捕获装置可以是单目多方向相机装置,其被布置为从多个角位置捕获3D空间110的图像。在使用中,可以一个接一个地捕获多个图像。在某些情况下,多个角位置覆盖宽视野。在特定情况下,捕获装置120-A可以包括全向相机,例如被布置为捕获基本上360度的视野的装置。在该情况下,全向相机可以包括具有全景环形镜头的装置,例如可以关于电荷耦合阵列安装镜头。
为了从多个不同位置捕获3D空间的多个图像,捕获装置120-A可以是可移动的。例如,捕获装置120-A可以被布置为捕获对应于3D空间110的不同观察部分的不同帧。捕获装置120-A可以相对于静态安装件是可移动的,例如可以包括致动器以改变相机相对于3D空间110的位置和/或定向。在另一种情况下,捕获装置120-A可以是由人类用户操作和移动的手持式装置。在一种情况下,捕获装置120-A可以包括被配置为捕获图像序列的静止图像装置,诸如相机;在另一种情况下,捕获装置120-A可以包括视频装置以捕获包括视频帧形式的图像序列的视频数据。例如,捕获装置120-A可以是单目相机或单目捕获装置以捕获或以其他方式获得视频数据帧。
在图1A中,多个捕获装置120-B、C也被示出为耦合到被布置为在3D空间110内移动的机器人装置130。机器人装置135可以包括自主空中和/或地面移动装置。在本示例100中,机器人装置130包括使所述装置能够在3D空间110中航行的致动器135。这些致动器135在图示中包括轮子;在其他情况下,它们可以包括履带、挖掘机构、旋翼等。一个或多个捕获装置120-B、C可以静态地或可移动地安装在这种装置上。在某些情况下,机器人装置可以静态地安装在3D空间110内,但是装置的一部分,诸如臂或其他致动器,可以被布置为在空间内移动并与空间内的对象交互。每个捕获装置120-B、C可以捕获不同类型的图像数据、视频数据和/或可以包括立体图像源。在一种情况下,捕获装置120-B、C中的至少一个被配置为捕获光度数据,例如彩色或灰度图像。在一种情况下,捕获装置120-B、C中的一个或多个可以独立于机器人装置130移动。在一种情况下,捕获装置120-B、C中的一个或多个可以安装在旋转机构上,例如以成角度的弧线旋转和/或呈360度旋转,和/或布置有适合的光学器件以捕获场景的全景(例如高达全360度的全景)。应当理解,在一些情况下,与捕获装置120-A类似或相同的捕获装置可以用作图1A的捕获装置120-B、C之一或两者。
图1B示出了捕获装置120和/或机器人装置130可用的自由度的示例140。在诸如120-A之类的捕获装置的情况下,所述装置的方向150可以与镜头或其他成像设备的轴线共线。作为绕三根轴线之一旋转的示例,图中示出了法向轴155。类似地,在机器人装置130的情况下,可以定义机器人装置130的对准方向145。这可以指示机器人装置的朝向和/或行进方向。还示出了法向轴155。尽管参考捕获装置120或机器人装置130仅示出了单根法向轴,但是这些装置可以围绕如下所述示意性地示出为140的轴线中的任何一根或多根旋转。
更一般地,可以参考六个自由度(6DOF)在三维中定义捕获装置的定向和位置:位置可以在三个维度中的每个维度内定义,例如通过[x,y,z]坐标来定义,并且定向可以由表示围绕三根轴线中的每一根轴线的旋转的角度向量来定义,例如[θxyz]。位置和定向可以被视为三维内的变换,例如相对于在3D坐标系内定义的原点。例如,[x,y,z]坐标可以表示从原点到3D坐标系内特定位置的平移,且角度向量[θxyz]可以定义在3D坐标系内的旋转。可以将具有6DOF的变换定义为矩阵,使得乘以矩阵来应用变换。在某些实现方式中,可以参考这六个自由度的受限集合来定义捕获装置,例如对于地面交通工具上的捕获装置,y维度可以是恒定的。在某些实现方式中,诸如机器人装置130的实现方式中,耦合到另一个装置的捕获装置的定向和位置可以参考所述另一个装置的定向和位置来定义,例如可以参考机器人装置130的定向和位置来定义。
在本文描述的示例中,捕获装置的定向和位置,例如在6DOF变换矩阵中列出,可以被定义为捕获装置的姿态。同样,对象表示的定向和位置,例如在6DOF变换矩阵中列出,可以定义为对象表示的姿态。捕获装置的姿态可以随时间而变化,例如随着视频数据或一系列静止图像被记录而变化,使得捕获装置在时间t+1与在时间t可以具有不同的姿态。在包括捕获装置的手持式移动计算装置的情况下,姿态可以随着用户在3D空间110内移动手持式装置而变化。
图1C示意性地示出了捕获装置配置的示例。在图1C的示例160中,捕获装置165被配置为生成图像数据170。在图1C中,图像数据170包括多个帧175。每个帧175可以与在捕获诸如图1中的110的3D空间的图像的时间段中的特定时间t相关(即Ft)。帧175通常由测量数据的2D表示组成。例如,帧175可以包括在时间t处所记录的像素值的2D阵列或矩阵。在图1C的示例中,图像数据内的所有帧175具有相同的大小,尽管不是在所有示例中都需要如此。帧175内的像素值表示3D空间的特定部分的测量。在图1C中,图像数据表示来自单目捕获装置的场景的多个视图,每个视图在不同的相应时间t被捕获。然而,在其他情况下,由捕获装置(或图像或视频捕获***)捕获的图像数据可以表示在彼此相同或至少部分重叠的时间捕获的场景的多个视图。这可能是捕获装置是立体捕获***的情况。
在图1C的示例中,每个帧175包括光度数据。光度数据通常表示图像的光度特性,诸如亮度、强度或色彩。在图1C中,每个帧175包括帧175的每个像素的强度值,其可以例如以每个色带或色彩通道从0到255的灰度级或亮度级来存储。例如0灰度级对应于最暗的强度(例如黑色),且例如255灰度级对应于最亮的强度(例如白色),其中0与255之间的灰度级对应于黑色与白色之间的中间强度。在图1C中,光度数据表示给定分辨率下的红、绿、蓝像素强度值。因此,每个帧175表示彩色图像,其中帧中的每个[x,y]像素值包括RGB矢量[R,G,B]。作为示例,色彩数据的分辨率可以是640乘480像素。在其他示例中,可以使用其他色彩空间和/或光度数据可以表示其他光度特性。
捕获装置165可以被布置为将图像数据170存储在耦合的数据存储装置中。在另一种情况下,捕获装置165可以向耦合的计算装置传输图像数据170,例如作为数据流或在逐帧的基础上。耦合的计算装置可以直接耦合,例如经由通用串行总线(USB)连接,或间接耦合,例如图像数据170可以通过一个或多个计算机网络传输。在又一种情况下,捕获装置165可以被配置为跨一个或多个计算机网络传输图像数据170以存储在网络附加存储装置中。图像数据170可以在逐帧或批量(例如可以将多个帧捆绑在一起)的基础上存储和/或传输。
在图像数据170用于稍后描述的示例之前,还可以对其执行一个或多个预处理操作。在一种情况下,可以应用预处理使得两个帧集具有共同的大小和分辨率。
在一些情况下,捕获装置165可以被配置为生成作为图像数据形式的视频数据。然而,视频数据可以类似地表示在不同的相应时间捕获的多个帧。在一种情况下,捕获装置165捕获的视频数据可以包括压缩视频流或文件。在该情况下,视频数据的帧可以从流或文件中重建,例如作为视频解码器的输出。在视频流或文件的预处理之后,可以从存储器位置检索视频数据。
提供图1C作为示例,并且如将理解的,可以使用与图中所示不同的配置来生成图像数据170以供在下面描述的方法和***中使用。图像数据170还可以包括以二维形式布置的任何测量的传感输入,表示3D空间的捕获或记录视图。例如,这可以包括光度数据、深度数据电磁成像、超声成像和雷达输出等。在这些情况下,可能只需要与特定形式的数据相关联的成像装置,例如没有深度数据的RGB装置。
图2示出了用于估计场景的深度的示例图像处理***200。在图2的图像处理***200中,第一深度估计230和第一深度估计230的不确定性测量235由几何重建引擎生成。第一深度估计230和第一深度估计230的不确定性测量235可以统称为第一深度数据250。几何重建引擎例如被配置为通过处理场景的至少两个图像来获得第一深度估计230。如参考图1A-图1C所描述,至少两个图像可以使用任何合适的捕获装置来捕获,并且可以被表示为诸如RGB数据的图像数据。几何重建引擎可以利用光度技术来生成第一深度估计230。例如,场景的给定部分应该具有相同的光度特性(诸如亮度、强度和/或色彩),而不管用于获得场景部分的图像的捕获装置的位置。这可以由几何重建引擎利用来生成第一深度估计230。作为示例,几何重建引擎可以处理从不同的相应位置捕获的同一场景的至少两个图像,以确定场景的给定部分的深度,这使光度误差最小化。例如,在第一深度估计230最接近场景的给定部分的实际深度的情况下,光度误差可以被最小化。然而,这仅仅是示例,并且在其他示例中可以使用其他几何技术来生成第一深度估计230。特别地,尽管这里例如参考图2描述的几何重建技术使用两个图像,例如可以使用单目***获得,但在其他示例中可以使用一个或多个图像,例如在单个立体图像的情况下。
在某些情况下,在生成第一深度估计230之前,从捕获装置(诸如相机)获得表示场景的两个或更多个视图的图像数据。在这样的情况下,生成第一深度估计230包括:获得相机的姿态估计,并且通过使光度误差最小化来生成第一深度估计230,所述光度误差是至少姿态估计和图像数据的函数。
相机的姿态估计通常指示相机在由图像数据表示的图像的捕获期间的位置和定向。在图像数据表示一系列视图的情况下,例如对应于视频的帧,姿态估计可以随着视频帧的时间推移而指示相机的位置和定向。例如,可以通过在环境(诸如房间内部)周围移动相机(诸如RGB相机)来获得图像数据。视频的帧的至少子集(以及因此由图像数据表示的图像的子集)因此可以具有表示在记录帧时相机的位置和定向的对应姿态估计。姿态估计可能不是对于视频的所有帧(或一系列图像中的所有图像)都存在,但可以对于视频的记录时间范围内的时间子集或由相机获得的多个图像的图像子集来确定。
可以使用各种不同的方法来获得相机的姿态估计。例如,相机的姿态可以使用接收图像数据并输出姿态的已知的SLAM***来估计,可以使用相机的指示位置和定向的传感器和/或使用自定义姿态跟踪方法来估计。例如,在SLAM***中,可以基于对相机随时间捕获的图像的处理来估计相机的姿态。
通过使作为至少姿态估计和图像数据的函数的光度误差最小化,可以获得第一深度估计230。在某些情况下,可以应用映射函数将第一图像(对应于场景的第一视图)中的像素映射到第二图像(对应于场景的第二视图)中的对应位置,以获得第一图像的再映射版本。例如,这样的映射函数取决于相机在捕获第一图像期间的估计姿态和第一图像中像素的深度。然后可以为第一图像的再映射版本中的每个像素确定光度特性(例如,使用返回给定像素的强度值的强度函数)。然后可以使用相同的强度函数为第一图像(如由相机获得的)中的每个像素确定对应的光度特性。由于与给定深度的像素相关联的光度特性(诸如像素强度值)应与相机姿态无关,因此如果深度被正确估计,则第一图像的再映射版本和第一图像本身的光度特性应该相同。以这种方式,第一图像中像素的深度可以被迭代地改变并且对于每次迭代可以计算光度误差(其例如基于第一图像和第一图像的再映射版本的光度特性之间的差异)。可以将给定像素的第一深度估计230作为最小化这种光度误差的深度值。在示例中,在光度误差最小化过程期间迭代地使用的深度估计可以位于图像中的极线。如果已经存在给定像素的深度估计(例如从具有与给定像素对应的像素的前一帧或图像获得),则迭代地输入到光度误差计算的深度估计可能在前一深度估计的给定范围内,例如在与前一深度估计相关联的不确定性测量的正负2倍以内。这可以通过在更可能的深度值范围内集中搜索合适的深度值来提高第一深度估计230的生成效率。在某些情况下,可以在两个相邻深度值之间执行插值,这些相邻深度值围绕或包括与最小光度误差相关联的深度值。获得第一深度估计230的合适方法在J.Engel等人的论文“Semi-Dense VisualOdometry for a Monocular Camera”中描述,所述论文发表在2013年国际计算机视觉会议(ICCV)的论文集中。然而,可以替代地使用其他方法。
通常存在与第一深度估计230相关联的不确定性。例如,不确定性表示第一深度估计230正确对应于实际深度的置信度。例如,不确定性可以取决于光度不确定性(其可能受限于或取决于捕获装置的光度分辨率),这可能限制可以进行第一深度估计230的准确度。如果第一深度估计230的生成涉及插值过程,则不确定性可以进一步或替代地取决于用于生成第一深度估计230的方法和与该方法相关联的任何固有不确定性,诸如相邻插值点之间的步长。不确定性可以被认为对应于与第一深度估计230相关联的误差。在图2的示例中,几何重建引擎被配置为输出以下两者:第一深度估计230和第一深度估计230的不确定性测量235。几何重建引擎可以被布置为生成包含对应于第一深度估计230的均值μ和对应于不确定性测量235的方差θ的阵列或矩阵,尽管这仅是示例。可以为以下各者中的一个或多个提供均值和方差:整个图像、一个或多个图像部分、和图像的像素。
在第一深度估计230的生成涉及光度误差的最小化(或其他优化)的示例中,可以基于用于插值以获得第一深度估计230的两个深度值之间的光度误差的差异,并且基于这两个深度值之间的差异,通过计算雅可比项J来获得与第一深度估计230相关联的不确定性测量235。在这样的情况下,第一深度估计230的不确定性θgeo可以被视为:
θgeo=(JTJ)-1
然而,这仅仅是示例,并且可以在其他示例中使用其他不确定性测量。
在某些情况下,第一深度估计230可以是多个像素的第一深度图。例如,第一深度估计230可以包括场景的输入图像的每个像素的每像素深度估计。因此,输入图像和对应于第一深度估计230的第一深度图的分辨率可以相同。应当理解,在生成第一深度估计230之前,输入图像可能已经经历了预处理,其可以包括改变输入图像的分辨率。例如,输入图像的分辨率可能已经降低,例如通过对图像进行下采样,以减少处理输入图像的计算需求。在其他情况下,第一深度估计230可以包括多个像素的单个深度值,在深度值和输入图像的像素之间具有一对多的对应关系。例如,可以将多个像素组合在一起,例如具有诸如类似的色彩或强度等类似光度特性的图像,并且可以为该像素组合获得深度值。
在一些情况下,第一深度估计230可以是所谓的“半密集”深度估计。在这样的情况下,第一深度估计230可以包括场景部分的子集(例如在输入图像(或多个图像)中捕获的)的深度估计。例如,半密集深度估计可以包括对图像数据中表示场景的两个或更多个视图的像素的一部分的深度估计,其例如对应于场景的两个或更多个视图的一部分。获得第一深度估计230所针对的场景部分可以对应于满足特定图像标准(诸如特定光度标准)的像素部分。例如,可以针对被识别为包括足够量的细节或信息的图像部分获得第一深度估计230。这可以通过计算图像梯度来识别,所述图像梯度例如指示给定区域上的光度特性(诸如亮度或色彩)的变化。图像梯度可以对应于或用作深度梯度的代理,指示场景的给定区域上的深度变化。在具有大量细节的图像区域中,例如对应于场景的特征丰富的部分,其中在场景的相对小的区域中具有相对大的深度变化,图像梯度通常相对较大。在其他情况下,第一深度估计230可以是所谓的“稀疏”深度估计。在这些情况下,可以针对已经被识别为对应于特定图像特征的图像部分获得第一深度估计230。例如,可以识别图像的关键点,其通常对应于图像中的独特位置,其可以从一系列视点、旋转、比例和照明稳健地可定位。在这样的情况下,可以为包括关键点的图像块获得第一深度估计230,而无需获得其他图像部分的深度估计。在又一些情况下,第一深度估计230可以是所谓的“密集”深度估计,其中为整个图像(或图像部分)获得深度估计,而与图像或图像部分的内容无关。
在一些情况下,第一深度估计230的不确定性测量235可以与第一深度估计230是相同类型或包括相同的分辨率。例如,如果第一深度估计230包括输入图像的每像素深度估计,则也可存在每个像素的对应的不确定性测量。相反,如果第一深度估计230包括输入图像的多个像素的深度估计,则也可存在所述多个像素的对应的不确定性测量。类似地,如果第一深度估计230是稀疏的、半密集的或密集的,则不确定性测量235也可以分别是稀疏的、半密集的或密集的。然而,在其他情况下,不确定性测量235的类型或分辨率可以与第一深度估计230的类型或分辨率不同。
图2的图像处理***200还被布置为生成第二深度估计240和第二深度估计240的不确定性测量245,其可以统称为第二深度数据260。可以使用神经网络架构生成第二深度数据260,神经网络架构可以在无监督或有监督(即标记的)图像数据上训练,以预测深度估计和相关联的不确定性测量。可以使用各种不同的神经网络架构。例如,神经网络架构可以包括至少一个卷积神经网络(CNN),其可以是具有多个层的所谓的“深度”神经网络。
在某些示例中,在生成第一深度估计230之前,从捕获装置(诸如相机)获得表示场景的一个或多个视图的图像数据。在这样的情况下,生成第二深度估计240可以包括在神经网络架构处接收图像数据。图像数据可以是任何合适的格式,并且可以例如表示从多个不同位置捕获的场景的多个2D图像。然后可以使用神经网络架构并且对于一组图像部分中的每一个来预测深度估计,以生成第二深度估计240。所述一组图像部分可以对应于图像(或多个图像)的整体、或者图像或多个图像的子集。
类似于第一深度估计230,第二深度估计240可以是多个像素的第二深度图,例如具有深度值与场景的输入图像的像素之间的一对一映射。然而,在其他情况下,第二深度估计240可以包括多个像素的单个深度值,在深度值和输入图像的像素之间具有一对多的对应关系。此外,第二深度估计240可以是稀疏、半密集或密集的深度估计。在一种情况下,两个深度估计具有不同的密度,例如第一深度估计230可以是半密集深度估计并且第二深度估计240可以是密集深度估计。另外,如参考第一深度估计230所解释,第二深度估计240的不确定性度量245可以具有与第二深度估计240相同或不同的类型或分辨率。
图2的图像处理***200包括融合引擎270,其被配置为从几何重建引擎接收第一深度估计230和第一深度估计230的不确定性测量235,以及从神经网络架构接收第二深度估计240和第二深度估计240的不确定性测量245。融合引擎270被配置为使用第一深度估计230的不确定性测量235和第二深度估计240的不确定性测量245来概率地融合第一深度估计230和第二深度估计240以输出场景的融合深度估计280。以这种方式,第一和第二深度估计230、240两者都有助于融合深度估计280,与单独采用的第一或第二深度估计230、240相比,这可以提高融合深度估计280的准确度。
例如,第一深度估计230(其基于几何约束)的不确定性在具有低纹理(例如具有相对不变或缓慢变化的深度,诸如墙壁)的场景区域中可能更高。此外,在场景的一部分被部分遮挡的区域中,第一深度估计230可以另外地或替代地相对不确定。相比之下,第二深度估计240(由神经网络架构获得)在模糊区域(例如低纹理区域)中可能比第一深度估计230具有更低的不确定性,但是然而在由第一深度估计230准确地捕获的高纹理区域中仍然可能不太准确。不确定性测量235、245的使用通过例如基于第一深度估计230和第二深度估计240中的每一个的相对不确定性适当地平衡它们对融合深度估计280的贡献来帮助第一深度估计230和第二深度估计240的概率融合。例如,在与第一深度估计230相关联的不确定性测量235比与第二深度估计240相关联的不确定性测量245更高的场景区域中,第二深度估计240可以比第一深度估计230更大程度地有助于融合深度估计280。此外,可以保持全局一致性,使得融合深度估计280在全局级别,而不仅仅是在选定的局部场景区域中,准确地捕获场景的深度。
在某些情况下,第一深度估计230是半密集深度估计,而第二深度估计240和融合深度估计280均包括密集深度估计。例如,可以针对具有足够纹理的场景的部分获得第一深度估计230,对于所述部分第一深度估计230可能足够准确。在这样的情况下,对于场景的缺少纹理的其他部分,可能无法获得第一深度估计230。然而,可以针对在图像(或图像部分)中捕获的整个场景获得第二深度估计240。因此,通过在这样的情况下融合第一深度估计230和第二深度估计240,还可以针对图像中捕获的整个场景获得融合深度估计280。在这样的情况下,融合深度估计280的一部分可以通过融合第一深度估计230和第二深度估计240两者来获得(例如,融合深度估计280的与场景的更多纹理部分对应的一部分)。然而,融合深度估计280的不同部分可以仅从第二深度估计240获得(诸如融合深度估计280的与场景的平滑部分对应的一部分,第一深度估计230对于其可能不太可靠)。
可以使用各种不同的方法来概率地融合第一深度估计230和第二深度估计240。例如,可以优化基于第一深度估计230和第二深度估计240以及不确定性测量235、245的成本函数,以便概率地融合第一深度估计230和第二深度估计240并且获得融合深度估计280。成本函数的优化可以涉及针对不同的输入深度估计迭代地计算成本函数的值,从而获得融合深度估计280,针对其获得成本函数的最小值。成本函数可以替代地称为损失函数或误差函数。
在图2的示例中,成本函数包括与第一深度估计230相关联的第一成本项和与第二深度估计240相关联的第二成本项。第一成本项包括融合深度估计值、第一深度估计值(例如取自从几何重建引擎获得的第一深度估计230)和第一深度估计230的不确定性值(例如取自第一深度估计230的不确定性测量235)的函数。类似地,第二成本项包括融合深度估计值、第二深度估计值(例如取自从神经网络架构获得的第二深度估计240)和第二深度估计240的不确定性值(例如取自第二深度估计240的不确定性测量245)的函数。成本函数被优化以确定融合深度估计值,其形成融合引擎270输出的融合深度估计280。例如,这涉及迭代地改变融合深度估计值以确定针对其来优化成本函数的融合深度估计值。例如,可以认为成本函数在其值满足预定义标准的情况下被优化,例如,其中它的值满足或低于预定义最小值。在其他情况下,成本函数的优化可以包括成本函数的最小化。以这种方式,第一深度估计230和第二深度估计240以及不确定性测量235、245都充当对所获得的融合深度估计280的约束,从而提高融合深度估计280的准确度。
然而,应当理解,成本函数的使用仅仅是示例。在其他示例中,第一和第二深度估计可以以不同的方式使用不确定性测量进行概率融合。
因此,本文中的某些示例提供场景的深度估计的准确重建,并因此促进机器人装置与真实世界环境之间的交互。特别地,本文中的某些示例被设计为实现实时或接近实时的操作(与其他深度估计方法相反),并提供对包括室外和室内场所的各种不同环境中场景深度的估计。
图3是根据另一个示例的图像处理***300的示意图。图3的图像处理***300在各个方面类似于图2的图像处理***200。与图2的对应特征相同的图3的特征用相同的参考数字加上100来标记。
在图3中,除了第一和第二深度估计以及不确定性度量之外,融合引擎370还被配置为接收表面定向估计320和表面定向估计320的不确定性度量325。融合引擎370被配置为使用表面定向估计320和表面定向估计320的不确定性度量325来概率地融合第一深度估计和第二深度估计。
表面定向估计320例如指示与捕获装置捕获的场景图像的像素或其他图像区域相对应的表面的方向或倾斜度。例如,表面的定向可以被认为是捕获由捕获装置捕获的场景的图像的像素或其他图像区域的表面的定向角。例如,表面定向对应于表面法线,即垂直于给定表面的轴线。在其他情况下,表面定向估计320可以对应于表面梯度,例如表面变化率的度量。多个像素的表面定向可以用于获得与多个像素对应的表面的性质的指示。例如,相对平滑且不变的表面可以具有相对恒定的表面定向。相反,高度纹理化的表面可能与多种不同的表面定向相关联。
表面定向估计320和表面定向估计320的不确定性度量325可以以各种不同的方式获得。例如,可以例如基于诸如图像像素的像素强度值等光度特性的变化,处理场景的图像以确定表面定向估计320和表面定向估计320的不确定性度量325。
图4是根据再一个示例的图像处理***400的示意图。图4的图像处理***400在各个方面类似于图3的图像处理***300,但是明确地示出了几何重建引擎430和神经网络架构420。
在图4中,接收到视频数据帧410。帧410例如由诸如相机之类的捕获装置捕获,并且包括场景的视图。应当理解,在其他情况下,图4的图像处理***400可以用于处理表示静止图像的图像数据,而不是表示视频的视频数据。
帧410由几何重建引擎430和神经网络架构420处理。几何重建引擎430和神经网络架构420可以如参考图2所描述的那样被配置以生成第一深度数据450和第二深度数据460。
在图4的示例中,第二深度数据460包括表面定向估计和表面定向估计的不确定性度量。在该示例中,除了第二深度估计和第二深度估计的不确定性测量之外,神经网络架构420还生成表面定向估计和表面定向估计的不确定性度量。
图4的神经网络架构420可以包括一个或多个神经网络,并且被配置为接收视频数据帧的像素值,诸如图4中所示的帧410。神经网络架构420被配置为预测第一组图像部分中的每一个的深度估计以生成第二深度估计,以及第二组图像部分中的每一个的至少一个表面定向估计。第一组图像部分可以与第二组图像部分相同或不同。例如,第一组和第二组图像部分可以完全重叠、部分重叠或完全不重叠。深度估计和至少一个表面定向可以在不同的相应分辨率下获得。在这样的情况下,深度估计和至少一个表面定向之一或两者的分辨率可以随后被改变(例如通过插值)以获得期望的分辨率。例如,可以以比深度估计低的分辨率获得至少一个表面定向,但随后可以将其放大到与深度估计相同的分辨率。神经网络架构420还被配置为预测与每个深度估计相关联的一个或多个不确定性度量以及与每个表面定向估计相关联的一个或多个不确定性度量。
使用融合引擎470概率地融合第一深度数据450和第二深度数据460以获得融合深度估计480。在图中,融合引擎470还使用至少一个表面定向来获得融合深度估计480。在成本函数被优化以获得融合深度估计480的示例中,成本函数可以包括与至少一个表面定向估计相关联的第三成本项。在这样的情况下,第三成本项可以包括融合深度估计值、表面定向估计值(例如从神经网络架构420获得的)和至少一个表面定向估计中的每一个的不确定性值(例如取来自每个相应表面定向估计的不确定性测量)的函数。例如,第三成本项可以包括每个相应表面定向估计的成本项的总和。成本函数的优化可以如关于图2所描述的那样,但是增加了表面定向信息。
使用表面定向信息来获得融合深度估计480可以进一步提高融合深度估计480的准确度。例如,表面定向估计(及其相关联的不确定性测量)可能会在给定像素与其相邻像素之间施加约束。以这种方式,可以改进融合深度估计480的全局一致性。
图5是根据示例500的示出表面定向估计320和表面定向估计320的不确定性度量325的示意图。在图5中,表面定向估计320包括在第一方向(在这种情况下沿着x轴)上的深度梯度估计510和在与第一方向正交的方向(在其中存在笛卡尔坐标系的这种情况下沿着y轴)上的深度梯度估计520。
例如,在给定方向上的深度梯度估计表示在该给定方向上场景(例如在图像中捕获的)深度变化的估计。深度梯度估计可以用于识别场景图像中深度的快速或独特变化。例如,深度梯度在与对于场景的一部分上深度不同的该场景部分相对应的图像区域中可能相对较高。相反,深度梯度在与相机相比处于相对恒定深度的场景的不同部分相对应的图像的其他区域中可能相对较低。通过估计两个不同方向(诸如彼此正交,即垂直的两个方向)上的深度梯度,可以更精确和/或更有效地识别图像中捕获的场景的深度特性。
在其他示例中,除了深度梯度估计510、520之外或代替深度梯度估计510、520,表面定向估计320可以包括其他定向估计。例如,表面定向估计320可以包括表面法线估计。
在一些情况下,诸如图5,每个表面定向估计都有对应的不确定性度量。因此,在图5中,存在与第一方向上的深度梯度估计510相关联的第一不确定性度量530,以及与第一方向正交的方向上的深度梯度估计520相关联的第二不确定性度量540。
每个表面定向估计的不确定性度量可以以各种不同的方式生成。例如,可以训练神经网络架构(其可以用于生成第二深度估计,所述第二深度估计由融合引擎与第一深度估计概率地融合)以生成表面定向估计以及与相应的表面定向估计相关联的对应的不确定性度量。
在一些情况下,第二深度估计和/或表面定向估计可以是对数估计。这可以有助于神经网络架构生成这些估计,因为负值在数值上是有意义的。此外,两个对数深度之间的差异(其例如对应于对数深度的梯度)对应于两个深度的比率,其是比例不变的。另外,如果在两个正交方向上预测对数深度梯度(如图5的示例中),则第二深度估计与第一深度估计的概率融合(其例如使用对数深度梯度)是线性的,并且可以在没有点积和归一化操作的情况下执行。因此,可以比其他方式更有效地执行融合过程。
图6是根据再一个示例的图像处理***600的示意图。图像处理***600包括单目捕获装置605,其是用于捕获场景图像的捕获装置或相机的示例。单目捕获装置605被布置为捕获表示场景视频的视频数据。在第一视频帧中捕获场景,所述第一视频帧在图6的示例中可以称为关键帧610。关键帧610例如对应于要针对其获得更完整深度估计的视频的帧,并且例如对应于或包括先前尚未针对其来估计深度的场景的新部分或被识别为比其他部分特征更丰富的场景的部分。例如,先前没有针对其来获得深度估计的视频的第一帧可以被认为是关键帧。关键帧可以是由外部***例如外部SLAM***指定的关键帧。在其他情况下,在单目捕获装置605移动超过阈值距离的距离之后获得的帧可以是关键帧。由单目捕获装置605捕获的其他帧可以被认为是参考帧615。
使用跟踪***625处理图6的示例中由单目捕获装置605捕获的帧(无论它们是关键帧610还是参考帧615)。跟踪***625用于在观察场景期间(例如在捕获帧期间)确定单目捕获装置605的姿态。如参考图2所解释,跟踪***625可以包括运动传感器,其可以耦合到致动器或形成致动器的一部分,所述致动器被布置为移动耦合到或支撑单目捕获装置605的机器人装置。以这种方式,跟踪***625可以捕获里程计数据并处理里程计数据以生成用于单目捕获装置605的姿态估计。
在图6中,跟踪***625在参考帧615的捕获期间生成单目捕获装置605的姿态的估计640和在关键帧的捕获期间生成单目捕获装置605的姿态的估计635。几何重建引擎630使用单目捕获装置605的估计姿态640、635和单目捕获装置605捕获的视频数据来为来自视频数据帧的至少像素子集生成深度估计。在某些情况下,几何重建引擎630被配置为最小化光度误差以生成深度估计。这将参考图2进一步解释。图6中的几何重建引擎630输出第一深度数据650,其包括深度估计和深度估计的不确定性测量。
在一些情况下,第一深度数据650为由单目捕获装置605获得的每个帧重新生成,例如第一深度数据650可以与关键帧有关,但可以针对获得和处理的每个附加参考帧迭代地更新。第一深度数据650可以实时或接近实时地生成,并且因此可以诸如以对应于单目捕获装置605的帧速率的速率频繁地执行。
对于被识别为对应于关键帧610的帧,图6的图像处理***600另外涉及使用神经网络架构620处理关键帧610以生成第二深度数据660。然而,在一些情况下,可以省略使用神经网络架构620处理参考帧615。这在图6中通过使用虚线示意性地指示。虚线对应于可以由图像处理***600选择性地执行的图像处理流水线的部分。例如,尽管可以针对一个帧执行第一深度数据650的生成而不管它是参考帧615还是关键帧610,但是可以针对关键帧610选择性地执行第二深度数据的生成。在图6的示例中,第二深度数据660包括第二深度估计、第二深度估计的不确定性测量、至少一个表面定向估计和表面定向估计的不确定性测量,尽管这仅仅是示例。神经网络架构620可以与本文描述的其他示例的神经网络架构类似或相同。
图6的图像处理***600还包括融合引擎670,其被配置为使用相关联的不确定性测量统计地融合第一和第二深度估计(分别由几何重建引擎630和神经网络架构620获得)。在图6中,融合引擎670还使用至少一个表面定向估计以及与至少一个表面定向估计相关联的相应的不确定性测量来统计地融合第一和第二深度估计。然而,在其他情况下可以省略使用至少一个表面定向估计以及与至少一个表面定向估计相关联的相应的不确定性测量。
融合引擎670被配置为通过统计地融合第一和第二深度估计来生成融合深度估计680。图6的融合引擎670还被配置为当概率地融合第一深度估计和第二深度估计时确定比例估计。例如,在融合引擎670被配置为优化成本函数以确定融合深度估计680的情况下,优化成本函数可以包括确定融合深度估计680的比例因子685。在这样的情况下,比例因子685指示关于场景的融合深度估计680的比例。因此,比例因子可以补偿由第一和第二深度估计提供的场景比例中的不准确性。比例因子可以是标量。例如,因为第一深度估计是基于由图6中的单目捕获装置605提供的姿态生成的,所以第一深度估计具有任意比例。然而,比例因子的生成允许获得按比例的深度估计。
在成本函数被优化以确定融合深度估计680的情况下,成本函数的第一成本项可以包括融合深度估计值、第一深度估计值、第一深度估计的不确定性值以及比例因子的函数。成本函数的优化可以包括迭代地改变比例因子以及融合深度估计680以确定优化(例如最小化)成本函数的比例因子和融合深度估计680。在这样的情况下,成本函数还可以包括第二成本项和/或第三成本项,如参考图2和图4所述。在这样的情况下,第二成本项和/或第三成本项可以独立于比例因子。
如所解释的,与几何重建引擎630生成第一深度数据650相比,第二深度数据660可以以更低频率由神经网络架构620生成。例如,可以为关键帧610生成第一深度数据650和第二深度数据660两者。关键帧610可能比参考帧615少,为此可以省略第二深度数据的生成。
作为示例,可以在第一视频数据帧中捕获场景,并且可以针对第一视频数据帧接收第二深度估计。第二深度估计可以由神经网络架构620生成。因此,第一视频数据帧可以被认为是关键帧615。在该示例中,获得多个第一深度估计。使用与第一视频数据帧不同的第二视频数据帧生成多个第一深度估计中的至少一个。例如,多个第一深度估计(由几何重建引擎630生成)可以包括第一帧(其为关键帧610)的第一深度估计和第二帧(其为参考帧615)的第一深度估计。在这种情况下,融合引擎670被配置为迭代地输出场景的融合深度估计680,在每次迭代时处理第二深度估计并处理多个深度估计之一。例如,在接收到第一帧时,融合引擎670可以融合使用第一帧生成的第一深度估计和使用第一帧生成的第二深度估计。然而,在接收到第二帧时,融合引擎670可以代替融合使用第二帧生成的第一深度估计和先前使用第一帧生成的第二深度估计。换句话说,第二深度估计可能不会针对每一帧重新生成,而是可以根据先前的帧(诸如先前的关键帧615)重新使用。换句话说,融合深度估计680的生成可以迭代地重复。对于随后的迭代,所述方法可以涉及确定是否生成第二深度估计。如上所解释,可以基于在图像中捕获的场景的内容做出这样的确定,诸如与场景的先前图像相比它是否已经显著改变(例如,由于单目捕获装置605的移动)或它是否特征丰富。响应于确定不生成第二深度估计(例如,对于参考帧615),这些示例涉及使用第二深度估计的先前值集合来概率地融合第一深度估计和第二深度估计。这消除了使用神经网络架构620处理图像的需要。
在诸如此类的示例中,可以比第二深度估计(由于神经网络架构620的使用,其生成可能更慢)更频繁地生成第一深度估计。在这样的情况下,可以基于更新的第一深度估计和预先存在的第二深度估计来精炼融合深度估计680。因此,与在第一和第二深度估计都已更新之后更新深度的其他情况相比,可以以更高的速率更新场景的深度。实际上,通过分别生成第一和第二深度估计并随后融合第一和第二深度估计,与其他方法相比,本文的方法更灵活并且可以更有效地执行。
图7A是示出计算***700的部件的示意图,所述计算***可以用于实现本文所述的任何方法。计算***700可以是单个计算装置(例如,台式、膝上型、移动和/或嵌入式计算装置)或者可以是分布在多个离散计算装置上的分布式计算***(例如某些部件可以由一个或多个服务器计算装置基于来自一个或多个客户端计算装置的通过网络发出的请求来实现)。
计算***700包括视频捕获装置710以提供视频帧,其例如包括对场景的观察。计算***700还包括同时定位和映射(SLAM)***720。机器人映射和导航领域内的SLAM***用于构建和更新未知环境的地图,同时在环境内定位与所述地图相关联的机器人装置。例如,机器人装置可以是构建、更新和/或使用地图的装置。SLAM***720被布置为为视频捕获装置710提供姿态数据。计算***700的半密集多视图立体部件730被布置为接收姿态数据和视频帧并且实现在上面其他示例中描述的几何重建引擎。如上所述,半密集多视图立体部件730可以说是“半密集”;术语“多视图立体”指示部件730用于通过替代使用来自单目(例如非立体)相机的连续数据帧来模拟立体图像对以确定深度数据。在这种情况下,来自移动相机的帧可以提供共同环境的不同视图,从而允许如前所述生成深度数据。计算***700还包括神经网络电路740,其是例如用于实现参考上面的示例描述的神经网络架构的电子电路。计算***700还包括图像处理***750,其被布置为实现本文示例的融合引擎。图像处理***750例如概率地融合来自半密集多视图立体部件730的第一深度数据和来自神经网络电路740的第二深度数据以获得融合深度数据。
图7B是根据示例的示出机器人装置760的部件的示意图。机器人装置760包括图7A的计算***700。机器人装置760还包括一个或多个致动器770以使得机器人装置760能够与周围的三维环境交互。周围的三维环境的至少一部分可以显示在由计算***700的视频捕获装置710捕获的场景中。在图7B的情况下,机器人装置760可以被配置为在机器人装置导航特定环境时捕获视频数据(例如,按照图1A中的装置130)。然而,在另一种情况下,机器人装置760可以扫描环境,或对从第三方接收的视频数据进行操作,所述第三方诸如具有移动装置的用户或另一机器人装置。当机器人装置760处理视频数据时,它可以被布置为生成场景的深度估计,其例如是融合深度估计。
机器人装置760还包括交互引擎780,其包括至少一个处理器以控制一个或多个致动器770。图7B的交互引擎780被配置为使用融合深度估计来与周围的三维环境交互。交互引擎780可以使用融合深度估计来控制一个或多个致动器770与环境交互。例如,融合深度估计可以用于抓取环境内的对象,和/或避免与障碍物(诸如墙壁)发生碰撞。
如本文参考图7A和图7B所描述的功能部件的示例可以包括专用处理电子器件和/或可以通过由至少一个计算装置的处理器执行的计算机程序代码的方式来实现。在某些情况下,可以使用一个或多个嵌入式计算装置。本文描述的部件可以包括至少一个处理器,所述处理器与存储器相关联地操作以执行加载到计算机可读介质上的计算机程序代码。该介质可以包括固态存储装置,诸如可擦除可编程只读存储器,并且计算机程序代码可以包括固件。在其他情况下,部件可以包括适当配置的片上***、专用集成电路和/或一个或多个适当编程的现场可编程门阵列。在一种情况下,部件可以通过移动计算装置和/或台式计算装置中的计算机程序代码和/或专用处理电子器件来实现。在一种情况下,以及或代替之前的情况,可以通过执行计算机程序代码的一个或多个图形处理单元来实现部件。在某些情况下,部件可以通过例如在多个处理器和/或图形处理单元的核心上并行实现的一个或多个功能来实现。
图8是示出了参考图1至图7描述的各种特征的示例800的示意图。图8示出了三维(3D)环境805的示例,其可以被称为场景。3D环境805包括捕获装置810,诸如图1的捕获装置120,以及两个对象815、820。捕获装置810被布置为捕获对3D环境805的观察(例如以静止图像或视频的形式)。这些观察例如包括对对象815、820的观察并且可以示出对象815、820相对于彼此以及相对于3D环境的其他对象或特征(诸如支撑对象815、820的表面或对象815、820后面的墙)的位置。图8中还示出了视频帧825的示例,其示出了由捕获装置810捕获的对3D环境805的观察。可以看出,两个对象815、820在视频帧825中是可见的。
图8还示意性地示出了由几何重建引擎获得的第一深度估计830的示例。可以看出,场景中对象815、820的存在在第一深度估计830中由轮廓832、834指示。因此,第一深度估计830例如允许识别图像中的边界或其他边缘(例如,对应于深度的突然变化,如可能发生在场景中对象的边缘处)。
图8中还示意性地示出了通过神经网络架构获得的第二深度估计835。可以看出,场景中对象815、820的存在在第二深度估计835中通过阴影836、838指示。例如,阴影的灰度值指示对象的一部分的相对深度。
在图8的示例中,两个对象815、820朝向捕获装置810突出。例如,第一对象815是圆柱体,其纵轴在图8中竖直延伸。因此,第一对象815在其中心向捕获装置810凸出,并在其侧面从捕获装置810后退(如从捕获装置810查看)。在第二深度估计835中捕获第一对象815的形状,这指示第一对象815的深度相对于捕获装置810朝向第一对象815的中心减少(如阴影836朝向第二深度估计835中的第一对象的中心的更暗区域所指示)。然而,第一对象的边缘在第一深度估计830中比在第二深度估计835中更尖锐或更明显。这说明第一深度估计830可以更准确地捕获场景的较高纹理区域中的深度,而第二深度估计835可以更准确地捕获场景的较低纹理(即平滑)区域中的深度。这可以从第二深度估计835进一步看出,其包括在左上角和左下角处的阴影,指示这些区域的深度与场景的其他区域相比存在差异。该差异未被第一深度估计830识别,因为它是深度的相对细微或小的变化。
图8还示意性地示出了在第一方向(在该示例中,水平方向)上的第一深度梯度估计840和与第一方向正交的方向(在该示例中,竖直方向)上的第二深度梯度估计845的示例。在第一深度梯度估计840中分别用箭头842、844指示对象815、820的存在。在第二深度梯度估计845中分别用箭头846、848指示对象815、820的存在。如参考第一和第二深度估计830、835所解释,对象815沿其纵轴朝向捕获装置810凸出。这可以在第一深度梯度估计840中看出,其中箭头842在中心区域比朝向对象815的侧面更靠近在一起(指示深度梯度的较慢变化),在所述侧面处对象815由于其圆柱形形状而远离捕获装置810弯曲得更快。
图9是示出估计场景的深度的示例方法900的流程图。方法900包括生成第一深度估计的第一操作910。第一深度估计可以使用场景的几何重建来生成,所述几何重建被配置为输出第一深度估计的不确定性度量。在第二操作920中,使用神经网络架构生成第二深度估计。神经网络架构被配置为输出第二深度估计的不确定性度量。在第三操作930中,使用不确定性度量来概率地融合第一深度估计和第二深度估计,以生成场景的融合深度估计。本文描述的任何***均可以用于实施图9的方法900。
图10是示出估计场景的深度的另一种示例方法1000的流程图。在第一操作1010中,获得图像数据。图像数据可以从被布置为捕获场景的图像的捕获装置获得。在第二操作1020中,在第一操作1010的获取图像数据期间,生成捕获装置的姿态估计。在第三操作1030中,例如使用参考本文中的其他示例描述的几何重建引擎来获得场景深度的半密集估计。在第四操作1040中,确定捕获装置捕获的图像是否是关键帧,如参考图6所解释。如果是,则在第五操作1050中生成神经网络输出,以便生成第二深度估计。然而,如果图像不对应于关键帧,则在操作1060中替代地使用现有的神经网络输出(例如,针对先前图像获得的)。神经网络输出例如包括第二深度估计、至少一个表面定向估计以及分别与第二深度估计和至少一个表面定向估计中的每一个相关联的不确定性测量。最后,在第七操作1070处,第三操作1030的第一深度估计和第五操作1050或第六操作1060的第二深度估计以概率方式融合,所述概率方式例如使用分别与第一和第二深度估计相关联的不确定性测量。在该示例中,在融合操作期间还使用至少一个表面定向估计和对应的不确定性测量,以获得融合深度图和比例因子。图10的方法100可以例如使用图6的***600来实现。
图11是示出处理器1110和包括计算机可执行指令1130的非暂时性计算机可读存储介质1120的示例1100的示意图。计算机可执行指令1130在由处理器1110执行时使计算装置,诸如包括处理器1110的计算装置,来估计场景的深度。指令可以导致执行与上述示例方法类似的方法。例如,计算机可读存储介质1120可以被布置为存储多个第一深度数据1140,其可以针对如参考图6所述的多个参考帧获得。计算机可读存储介质1120还可以被布置为存储关键帧的第二深度数据1150。可以概率地融合第一深度数据和第二深度数据以获得融合深度估计。尽管在图11中,第一深度数据1140和第二深度数据1150被示为存储在计算机可读存储介质1120上,但是在其他示例中,第一深度数据1140和第二深度数据1150中的至少一个可以存储在计算机可读存储介质1120的外部(但可由其访问)的存储装置中。
图12是根据另一个示例的示出场景的第一和第二深度估计的融合的示意图。在图12中,使用几何重建为场景生成第一深度概率体积1200。第一深度概率体积1200包括第一多个深度估计(其在这种情况下包括本文其他示例中讨论的第一深度估计)和第一多个不确定性度量,每个与第一多个深度估计的相应深度估计相关联。因此,第一多个不确定性度量包括第一深度估计的不确定性度量。
在图12中示意性地示出了第一深度概率体积1200,图12是为了便于说明的简化示例。在图12中,表示对场景的观察的帧包括9个像素,在图12中标记为P1到P9。每个像素对应于对场景的不同的相应部分的观察。对于图12中的每个像素,有3个深度估计(尽管其他示例可能每个像素具有更多或更少的深度估计),标记为D1、D2和D3。图12的每个深度估计都与相应的不确定性度量相关联。对于第n个像素Pn的与第m个深度估计Dm相关联的不确定性度量在图12中标记为unm。图12中针对上排像素(P1、P2和P3)示出了不确定性度量。然而,应当理解,帧的其他像素(P4到P9)的深度估计也具有对应的不确定性度量(图12中未示出)。在该示例中,与二维像素阵列的相应深度估计相关联的不确定性度量的三维布置形成三维概率体积。
在图12中,与第一深度概率体积1200的第一多个深度估计的给定深度估计相关联的不确定性度量表示场景的给定区域(在给定像素中捕获对其的观察)处于由第一多个深度估计的给定深度估计表示的深度处的概率。因此,在图12中,u11表示在第一像素P1中捕获的场景区域处于与第一深度估计D1的深度相对应的深度的概率。
图12还包括使用神经网络架构为场景生成的第二深度概率体积1202。在这种情况下,第二深度概率体积1202另外与第一深度概率体积1200类似并且包括第二多个深度估计,其包括第二深度估计,和第二多个不确定性度量,每个与第二多个深度估计中的相应深度估计相关联。第二多个不确定性度量因此包括第二深度估计的不确定性度量。关于第一深度概率体积1200,与第二多个深度估计中的给定深度估计相关联的不确定性度量表示场景的给定区域处于由第二多个深度估计中的给定深度估计表示的深度处的概率。
在图12的示例中,第一深度概率体积1200和第二深度概率体积1202包括与给定像素的相同的相应深度估计(D1、D2和D3)相关联的不确定性度量。然而,应当理解,在其他示例中,第一深度概率体积1200和第二深度概率体积1202的深度估计可以彼此不同。例如,第一深度概率体积1200和第二深度概率体积1202中的一个可以包括比另一个更大数量的深度估计和/或彼此不同值的深度估计。
应当理解,与给定深度估计相关联的不确定性度量通常在第一深度概率体积1200与第二深度概率体积1202之间不同,因为几何重建和神经网络架构的准确度对于场景的给定部分通常不同。这可能会导致场景给定部分的概率分布取决于使用的是几何重建还是神经网络架构而不同。例如,如果给定技术(几何重建或涉及使用神经网络架构)无法准确表征场景给定部分的深度,则与表示场景给定部分的像素相关联的深度概率分布可能相对平坦,从而难以断定场景的该部分的最可能深度。相反,如果给定技术能够准确地确定场景的给定部分的深度,则深度概率分布在对应于场景的给定部分的深度的深度估计处可能具有更尖锐的峰值。
通过融合与第一深度概率体积1200和第二深度概率体积1202相关联的不确定性测量,与第一深度概率体积1200和第二深度概率体积1202相关联的深度估计本身可以被概率地融合,从而生成融合深度概率体积1204。这在图12中示意性地示出,其中融合深度概率体积1204类似于第一深度概率体积1200和第二深度概率体积1202,但通常由于来自第一深度概率体积1200和第二深度概率体积1202的深度估计的概率融合而包括与第一深度概率体积1200和第二深度概率体积1202的不确定性度量unm不同值的不确定性度量。以这种方式概率地融合第一深度概率体积1200和第二深度概率体积1202允许从两个不同来源(几何重建和神经网络架构)组合关于场景深度的信息,与单独使用每个来源相比,这通常提高深度估计的准确度。
图13是用于获得第二深度概率体积1302的示例***1300的示意图,其可以与图12的第二深度概率体积1202类似或相同。***1300被布置为接收表示对场景的观察的帧1304。在这种情况下,帧1304由表示场景图像的图像数据表示。***1300的神经网络架构1306被配置为处理帧1304以生成第二深度概率体积1302,其在这种情况下包括第二多个深度估计1308和第二多个不确定性度量1310(其在这种情况下表示场景的给定区域处于由第二多个深度估计1308中的深度估计表示的深度处的相应概率)。
图13的***1300被布置为输出包括多组深度估计的第二多个深度估计1308,每组深度估计与场景图像的不同的相应部分相关联。因此,如果***1300用于输出图12的第二深度概率体积1202,则可以认为用于给定像素的深度估计D1、D2和D3对应于一组深度估计。因此,可以使用图13的***1300处理包括多个像素的图像以生成多组深度估计,每组深度估计与多个像素中的不同的相应像素相关联。
图13的示例中的神经网络架构1306被配置为输出与具有预定义值的相应深度估计1308相关联的不确定性度量1310。换句话说,不是为每个像素输出单个深度值,而是图13的神经网络架构1306被布置为为每个像素的多个离散的、预定义的深度估计1308中的每一个输出不确定性度量1310。以这种方式,神经网络架构1306针对给定像素输出给定范围内的离散深度概率分布,其在这种情况下是非参数的。这允许神经网络架构1306表达关于预测深度的不确定性(如由与给定深度估计相关联的不确定性度量表示,在这种情况下是概率值)。它还允许神经网络架构1306进行多假设深度预测,其在与通过几何重建获得的深度估计融合时,允许更准确地估计场景的深度。
由神经网络架构1306输出的预定义值之间可以具有不均匀的间距。使用这种方法,神经网络架构1306被布置为对于给定像素输出在由深度估计占用的深度范围内的具有可变分辨率的深度概率分布。例如,预定义值可以包括预定义深度范围(其可以是由深度估计占用的深度范围的全部或部分)内的多个对数深度值。使用对数深度参数化允许在对数空间中均匀划分深度范围。这为更靠近用于捕获对场景的观察的捕获装置的区域提供了更高的深度分辨率,并且为更远的区域提供了更低的分辨率。
对于使用图13的***1300处理的图像的给定像素,在图14中示意性地示出与第二多个深度估计1308的相应深度估计相关联的不确定性度量1310。在图14中,不确定性度量是概率密度值,如y轴1400上所指示,且深度估计是以米为单位的对数深度值,如x轴1402上所指示。图14中的深度估计具有离散值。因此,图14以条形图1406的形式示出离散概率分布1400。
在一些情况下,可以从离散概率分布1400获得连续概率函数以减少离散化误差并有助于获得场景的深度估计。从离散概率分布1400获得的连续概率函数1408在图14中示意性地示出。连续概率函数1408可以是平滑函数,并在下面参考图16进一步讨论。
返回参考图13,各种不同的神经网络架构可以用作神经网络架构1306。在一个示例中,神经网络架构1306包括残差神经网络(ResNet)编码器,然后是三个上采样块,每个上采样块包括双线性上采样层,与输入图像级联,然后是两个卷积层,使得输出的分辨率与表示对场景的观察的输入图像的分辨率相同。
为了训练图13的神经网络架构1306来预测与离散深度估计相关联的概率值,可以使用有序损失函数。合适的有序损失函数
Figure BDA0003175608030000365
的示例如下:
Figure BDA0003175608030000361
其中:
Figure BDA0003175608030000362
并且其中θ是神经网络架构1306的权重集,K是深度范围被离散化的区间的数量,
Figure BDA0003175608030000363
是包含像素i的地面真值深度的区间的索引,以及
Figure BDA0003175608030000364
是神经网络架构1306对地面真值深度在区间j中的概率的预测。然而,这仅仅是示例,并且可以在其他示例中使用其他损失函数。
转向图15,图15是用于获得第一深度概率体积1502的示例***1500的示意图,其可以与图12的第一深度概率体积1200类似或相同。图15的***1500被布置为处理表示对场景的第一观察的第一帧1504和表示对场景的第二观察的第二帧1506,例如在对场景的第一观察之前或之后。示例中的第一和第二观察最后部分重叠(例如,使得两者都包括对场景的同一部分的观察)。
第一帧1504和第二帧1506由光度误差计算引擎1508处理,以针对第一帧1504的多个部分中的每一个生成一组光度误差1510,每个与第一多个深度估计1512中的不同的相应深度估计相关联。光度误差可以通过针对第一多个深度估计1512中的每一个将第一帧1504扭曲为第二帧1506并确定经扭曲的第一帧1504与第二帧1506之间的差异来获得。在一些情况下,差异是针对像素块(例如大小为3乘3像素)的经扭曲的第一帧1504与第二帧1506的像素值之间的平方差之和,但是这仅仅是说明性示例。第一帧1504以这种方式的扭曲可以被认为对应于将第一帧1504的像素映射到第二帧1506中的对应位置,例如参考图2所描述。例如,针对相应的深度估计迭代地计算以便确定使参考图2描述的示例中的光度误差最小化的深度值的光度误差可以由图15的示例中的光度误差计算引擎1508输出为一组光度误差1510。图2的示例涉及计算与通过最小化光度误差获得的深度估计相关联的不确定性度量,例如使用雅可比项计算。相反,在图15的示例中,所述一组光度误差1510本身被视为相应的不确定性度量,每个与相应的深度估计相关联。
第一帧1504的扭曲旨在复制在第二帧1506中捕获的对场景的第二观察(例如,如用姿态与相机在第二帧1506的捕获期间的第二姿态相同的相机观察到的)。以这种方式为第一多个深度估计1512中的每一个变换第一帧1504(其中深度估计中的每一个是相对于相机在第一帧1504的捕获期间的第一姿态的场景的假设深度)。尽管场景的深度通常相对于第一姿态是不均匀的,但是通过假定整个场景处于相同的深度,然后计算每个像素(或以每图像块为基础)上的该深度估计的光度误差,可以更有效地执行扭曲。可以针对第一帧1504的多个像素中的每一个的第一多个深度估计1512重复执行该方法以生成成本体积,从中可以获得第一深度概率体积1502。应当理解,可以使用任何合适的方法来获得相机的第一和第二姿态,如参考图2所解释。
为了简化第一深度概率体积1502与使用图13的***1300获得的第二深度概率体积的融合,由神经网络架构1306输出概率值的每个深度区间的中点可以用作第一深度概率体积1502的相应深度估计。但是,在其他示例中不必如此。
在一些示例中,第一帧1504和第二帧1506在扭曲第一帧1504之前和/或在计算一组光度误差1510之前被归一化。可以通过分别针对第一帧1504和第二帧1506中的每一个从像素值中的每一个减去平均像素值并且通过将输出值中的每一个分别除以第一帧1504和第二帧1506的标准偏差来执行归一化。这允许更准确地确定用于给定深度估计的经扭曲的第一帧1504与第二帧1506之间的潜在光度差异,而不会受到对场景的第一和第二观察之间的照明变化的过度影响。
如上所述,由图15的光度误差计算引擎1508获得的一组光度误差1510可以被认为形成成本体积。为了从一组光度误差1510中获得第一深度概率体积1502,图15的***1500包括缩放引擎1512,其被配置为将光度误差1510缩放到相应的概率值1514(其可以被认为对应于与第一多个深度估计1512中的深度估计相关联的不确定性度量)。在一种情况下,缩放包括单独缩放每个像素的平方光度误差的负数,使得在缩放之后,给定像素的第一多个深度估计1512中的每一个的平方光度误差的负数总和为1。然后可以将缩放值作为与第一多个深度估计1512中的给定深度估计相关联的相应概率值1514,从而生成第一概率体积1502。
图16是示出获得场景的融合深度估计的示例方法1600的流程图,在多个帧中捕获对场景的观察,每个帧包括像素阵列。使用诸如参考图12至图15描述的第一和第二深度概率体积获得融合深度估计。
图16的项目1602涉及获得融合概率体积。在项目1602处,通过组合第一和第二多个不确定性度量来概率地融合第一和第二深度估计(其分别形成第一和第二深度概率体积的一部分),以生成融合概率体积。可以以各种不同的方式组合第一和第二多个不确定性度量。在一种情况下,其中第一和第二多个不确定性度量是与第一和第二深度概率体积相关联的概率值,融合概率体积通过以下方式获得:组合(例如,通过相乘)与第一多个深度估计中的深度估计相关联的概率值和与第二多个深度估计中的对应深度估计相关联的概率值以获得每个深度估计的融合值。在一些情况下,然后将给定像素的每个深度估计的融合值缩放为总和为1,以生成每个深度估计的融合概率值。然而,这在其他情况下可以省略,例如,如果与第一和第二多个深度估计相关联的概率值先前已经被缩放以对于给定像素总和为1。
在图16的示例中,为了避免量化使用融合概率体积获得的场景的深度估计并获得合适的函数以用于随后的优化步骤(参考图16的项目1604和1606进一步讨论),使用融合概率体积获得深度概率函数。深度概率函数表示融合概率体积的参数化,允许获得连续深度值(而不仅仅是融合概率体积的离散深度估计)。可以使用用于参数化离散分布的任何合适的技术获得深度概率函数,诸如例如与高斯基函数一起的核密度估计(KDE)技术。
在图16的项目1604和1606处,场景的融合深度估计从融合概率体积中获得(在这种情况下,从融合概率体积中获得的深度概率函数,但是这仅是示例)。在图16的示例中,获得场景的融合深度估计包括在项目1604处优化成本函数。这种情况下的成本函数包括使用融合概率体积获得的第一成本项和包括对深度值的局部几何约束的第二成本项。成本函数c(d)可以表示为:
c(d)=c1(d)+λc2(d)
其中d是要估计的深度值,c1(d)是第一成本项,c2(d)是第二成本项,且λ是用于调整第二成本项对成本函数的贡献的参数。参数λ可以根据经验调整以获得对深度值的适当估计。在一种情况下,参数λ的合适值是1×107,但是这仅是示例。
第一成本项取决于融合概率体积,且在图16的示例中取决于从融合概率体积获得的深度概率函数。在这种情况下,第一成本项可以表示为:
Figure BDA0003175608030000391
其中fi(di)是在深度di处评估的给定输入帧(表示对场景的观察)的像素i的深度概率函数的输出。
通过融合第一和第二深度概率体积,融合概率体积通常比单独使用几何重建或神经网络架构具有更大的局部一致性。在图16的示例中,通过包括可以被视为正则化项的第二成本项来提高局部一致性。在这种情况下,第二成本项在成本函数的优化过程中强加局部几何约束,这提供了更好的对局部几何结构的保留。
图17中示意性地示出了用于使用图16的方法1600获得融合深度估计1702的***1700。融合深度概率体积1704被输入到***1700的深度估计引擎1706。深度估计引擎1706执行图16的项目1604的成本函数优化。成本函数的第一成本项取决于输入到深度估计引擎1706的融合深度概率体积1704,并且在这种情况下,可以使用c1(d)的上述公式来表示。因此,在图17中,深度估计引擎1706被布置为从融合深度概率体积1704获得深度概率函数,以便计算第一成本项。然而,在其他情况下,第一成本项可以从融合深度概率体积1704本身获得,或者深度估计引擎1706可以被布置为接收深度概率函数而不是融合深度概率体积1704。
图17的***1700还包括另一神经网络架构1708,其被布置为接收表示对要为其生成融合深度估计的场景的观察的输入帧1710,并且被布置为生成几何约束数据1712以用于生成成本函数的第二成本项。在这种情况下,输入帧1710是由神经网络架构处理以生成第二深度概率体积的输入帧和由几何重建引擎处理以生成第一深度概率体积的帧之一,但是这仅是示例。
图17的示例中的几何约束数据1712表示表面定向估计和遮挡边界估计。表面定向估计和遮挡边界估计用于生成第二成本项。表面定向估计例如表示输入帧1710的给定像素的表面法线,如由另一神经网络架构1708所预测。如技术人员将理解的,任何适当训练的神经网络架构都可以用作另一神经网络架构1708。在第二成本项中使用表面定向估计改进了通过优化成本函数获得的融合深度估计中局部几何结构的保留。例如,第二成本项通常较小,其中表面定向估计对于相邻像素是类似的(例如,指示这些像素处于类似的定向,如连续的平面表面所预期的那样)。
然而,场景通常包括对象边界(其可以被称为遮挡边界)处的深度不连续性。在这样的边界处,表示对场景的观察的输入帧的相邻像素的表面定向估计通常彼此不同。表面定向估计在这些区域中可能不可靠,因为这些区域中的对象的一部分可能由于对象边界处对象深度的急剧变化而被遮挡。因此,从输入帧中可能不存在对对象的这些部分的观察,这会影响表面定向估计的可靠性和基于表示对场景的观察的图像的相邻像素的表面定向估计之间的差异的成本项的可靠性。
为了弥补这一点,图17示例中的第二成本项掩盖遮挡边界处的正则化项。换句话说,第二成本项由值(诸如介于零和一之间的值)加权,以调整第二成本项对于输入帧1710的各个像素的贡献,例如使得第二成本项的贡献对于对应于输入帧1710的不可靠区域的像素(诸如对应于遮挡边界的像素)较低,而对于对应于更可靠区域的像素较高。例如,对于位于遮挡边界上的像素,第二成本项可以通过具有零值的权重来加权,因此第二成本项对这些像素的成本函数的优化没有贡献。
在一些情况下,另一神经网络架构1708输出给定像素属于遮挡边界的概率作为遮挡边界估计。在这样的情况下,可以认为像素位于遮挡边界上,在所述遮挡边界处该概率采用等于或超过预定阈值(诸如0.4)的值。
在图17的示例中,由深度估计引擎1706生成并用于优化成本函数的第二成本项,c2(d)可以表示为:
Figure BDA0003175608030000411
其中bi∈{0,1}是基于输入帧1710的像素i的遮挡边界估计的掩盖值,<.,.>表示点积运算符,
Figure BDA0003175608030000412
是另一神经网络架构1708输出的表面定向估计,K是表示与用于捕获输入帧1710的相机相关联的内在参数的矩阵(有时称为相机内在矩阵),
Figure BDA0003175608030000413
表示像素i的齐次像素坐标,且W是以像素为单位的图像宽度。
在图17中,成本函数由深度估计引擎1706使用梯度下降来优化,以获得对应于使成本函数值最小化的深度值d的融合深度估计1702(图16的项目1606)。然而,这仅仅是示例,而在其他情况下,可以使用不同的优化技术来获得融合深度估计。
图18是示出获得第二融合深度概率体积的示例方法1800的流程图。图18的方法1800可以用于从与表示对场景的第一观察的例如在第二帧之前或之后的第一视频帧相关联的第一融合深度概率体积获得与表示对场景的第二观察的第二视频数据帧相关联的第二融合深度概率体积。通过使用第一融合深度概率体积来获得第二融合深度概率体积,可以跨多个帧保留关于场景深度的信息。与不使用来自第一帧的信息重新计算该深度估计相比,这可以改进第二帧的深度估计。
将由第一融合深度概率体积表示的信息传播到第二帧中是意义重大的,因为第一融合深度概率体积表示第一帧的各个像素的深度概率分布。为了解决这个问题,图18的项目1802涉及将第一融合深度概率体积转换为第一占用概率体积。可以使用参考图12至图17描述的任何方法来获得第一帧的第一融合深度概率体积。第一占用概率体积可以被认为是基于占用的概率体积,使得对于沿着从具有与第一帧的捕获相关联的第一姿态的相机朝向场景传播的光线的每个深度,存在空间中的关联点被占用的概率。
在一种情况下,通过首先确定体素Sk,i(其例如是与沿着与第一帧的像素i相关联的光线的第一深度概率体积的区间k相关联的深度估计相对应的三维体积元素)被占用的概率来获得第一占用概率体积,条件是属于第一深度概率体积的区间j的深度:
Figure BDA0003175608030000421
由此,可以使用以下方程式获得第一占用概率体积p(Sk,i=1):
Figure BDA0003175608030000422
其中
Figure BDA0003175608030000423
是第一帧像素i的第一深度概率体积的区间k的概率值,且K是以像素为单位的第一帧的宽度。
图18的项目1804涉及基于表示相机在观察场景期间的姿态的姿态数据来扭曲第一占用概率体积,以获得与第二帧相关联的第二占用概率体积。第一占用概率体积的扭曲可以另外类似于第一帧的扭曲以获得如参考图15所述的光度误差1510,并且通常使用表示相机在第一帧的捕获期间的第一姿态的第一姿态数据和表示相机在第二帧的捕获期间的第二姿态的第二姿态数据作为姿态数据。以这种方式,第一占用概率体积可以被扭曲到第二帧中。在一些情况下,第二帧可以包括一些像素,这些像素没有对应的经扭曲的第一占用概率体积。对于这些像素,预定(例如默认)值可以用于占用概率,诸如值0.01(但是这仅是示例)。
在图18的项目1806处,第二占用概率体积被转换为与第二帧相关联的第二融合深度概率体积。可以使用以下公式执行该转换以获得第二帧的像素i的第二深度概率分布的区间k的概率值
Figure BDA0003175608030000431
Figure BDA0003175608030000432
该公式可以用于为第二帧的多个像素中的每个像素生成第二融合深度概率分布的相应区间的概率值。然后可以缩放第二融合深度概率分布,使得沿着一条光线的分布总和为1,以获得第二融合深度概率体积。然后可以从第二融合深度概率体积获得第二帧的融合深度估计,例如如参考图16和图17所描述。
图19是根据另一个示例的示出估计场景的深度的示例方法1900的流程图。
在项目1902处,使用场景的几何重建生成场景的第一深度概率体积。第一深度概率体积例如与参考图12描述的第一深度概率体积相同或类似,并且可以例如如参考图15描述的那样来生成。
在项目1904处,使用神经网络架构生成场景的第二深度概率体积。第二深度概率体积例如与参考图12描述的第二深度概率体积相同或类似,并且可以例如如参考图13和图14描述的那样来生成。
在项目1906处,第一深度概率体积和第二深度概率体积用于生成场景的融合深度概率体积,并且在项目1908处,使用融合深度概率体积生成场景的融合深度估计。图19的项目1906和1908的融合深度概率体积和融合深度估计的生成可以使用与图16和/或图17的方法类似或相同的方法。
图20是根据另一个示例的用于估计场景的深度的图像处理***2000的示意图。图像处理***2000包括融合引擎2002,用于接收来自几何重建引擎2006的第一深度概率体积2004和来自神经网络架构2010的第二深度概率体积2008,并且用于融合第一深度概率体积2004和第二深度概率体积2008以输出场景的融合深度概率体积2012。图像处理***2000还包括深度估计引擎2014,用于使用融合深度概率体积2012来估计场景的深度(其可以被称为融合深度估计2016)。
在图20的示例中,图像处理***2000被布置为处理表示场景的各个观察的输入帧2018以生成融合深度估计2016。输入帧2018例如包括第一帧,其由神经网络架构2010处理以生成第二深度概率体积2008,例如如参考图12至图14所描述。输入帧2018还可以包括第二帧。在这样的示例中,第一和第二帧都可以由几何重建引擎2006处理以生成第一深度概率体积2004,例如如参考图12和图15所描述。融合引擎2002生成融合深度概率体积2012和深度估计引擎2014生成融合深度估计2016可以例如如参考图16和图17所描述的那样。
以上示例应被理解为说明性的。设想了其他的示例。
在图16的示例中,成本函数包括第一成本项和第二成本项。在另外与图16的示例相同或类似的其他示例中,成本函数可以不包括第二成本项,并且可以例如仅包括第一成本项。
通过图19的方法1900或图20的***2000为第一帧获得的融合深度概率体积可以如参考图18所描述的那样扭曲以获得第二帧的深度概率体积。
应当理解,不需要针对场景的每次观察来执行如参考图12至图17以及图19和图20所描述的估计场景深度。相反,可以为观察的子集(例如,帧的子集)估计深度,其可以被称为关键帧。这可以降低处理要求。类似地,对于深度被估计的关键帧之后的每一帧,不需要执行图19的方法。例如,在相机的姿态在第一帧与第二帧之间发生显著变化的情况下,可以省略图19的方法。
对于要针对其估计深度的第一视频帧,可以使用诸如上述那些的神经网络架构来估计深度(例如,通过从第二深度概率体积计算深度估计,而不融合第二深度概率体积与第一深度概率体积)。在获得视频的至少一个另外的帧之后,可以计算第一深度概率体积并且将其与第二深度概率体积融合以获得融合深度概率体积用于生成场景的融合深度估计。
在图16和图17的示例中,使用基于从融合深度概率体积得到的深度概率函数的成本函数生成融合深度估计。这种方法在无特征区域中往往更准确,在所述无特征区域中,来自神经网络架构的预测相对不确定,且因此易受错误最小值的影响。然而,在其他示例中,可以将给定像素的融合深度估计作为来自融合深度概率体积的像素的具有最大概率的深度估计。
在图12至图20的示例中,融合深度估计是密集深度估计。然而,在其他情况下,可以使用类似的方法或***来例如通过使用本文的方法处理输入帧的像素子集来获得半密集或稀疏深度估计。另外或替代地,在根据图12至图20中任一个的示例获得的融合深度估计中的各个深度估计与针对其来获得融合深度估计的输入帧的像素之间可以存在一对一、一对多或多对一映射。
参考处理表示对场景的观察的帧来描述图12至图20的示例。然而,应当理解,这些方法和/或***可以替代地用于处理静止图像而不是视频帧。
图19的方法1900和/或图20的***2000可以使用本文描述的任何***或设备,诸如图1A至图1C的捕获装置、图7A的计算***700和/或图7B的机器人装置760。用于执行图19的方法1900或用于实现图20的***2000的指令可以存储在诸如参考图11描述的那样的非暂时性计算机可读存储介质上。
应理解,关于任一个示例描述的任何特征都可以单独使用,或者与描述的其他特征组合使用,并且还可以与任何其他示例的一个或多个特征组合使用,或者与任何其他示例的任何组合组合使用。此外,在不脱离所附权利要求限定的本发明的范围的情况下,还可以采用上面未描述的等效物和修改。

Claims (35)

1.一种估计场景的深度的图像处理***,其包括:
融合引擎,其用于接收来自几何重建引擎的第一深度估计和来自神经网络架构的第二深度估计,并用于概率地融合所述第一深度估计和所述第二深度估计以输出所述场景的融合深度估计,
其中所述融合引擎被配置为接收来自所述几何重建引擎的所述第一深度估计的不确定性测量和来自所述神经网络架构的所述第二深度估计的不确定性测量,并且
其中所述融合引擎被配置为使用所述不确定性测量来概率地融合所述第一深度估计和所述第二深度估计。
2.如权利要求1所述的***,其中所述融合引擎被配置为从所述神经网络架构接收表面定向估计和所述表面定向估计的不确定性度量,并被配置为使用所述表面定向估计和所述表面定向估计的所述不确定性度量来概率地融合所述第一深度估计和所述第二深度估计。
3.如权利要求2所述的***,其中所述表面定向估计包括以下各者中的一个或多个:
第一方向上的深度梯度估计;
与所述第一方向正交的方向上的深度梯度估计;和
表面法线估计。
4.如权利要求1至3中任一项所述的***,其中所述融合引擎被配置为当概率地融合所述第一深度估计和所述第二深度估计时确定比例估计。
5.如权利要求1至4中任一项所述的***,
其中在第一视频数据帧中捕获所述场景,
其中针对所述第一视频数据帧接收所述第二深度估计,
其中所述第一深度估计包括用于所述第一视频数据帧的多个第一深度估计,所述多个第一深度估计中的至少一个是使用与所述第一视频数据帧不同的第二视频数据帧生成的,并且
其中所述融合引擎被配置为迭代地输出所述场景的所述融合深度估计,在每次迭代时处理所述第二深度估计并处理所述多个深度估计之一。
6.如权利要求1至5中任一项所述的***,其中所述第一深度估计、所述第二深度估计和所述融合深度估计均包括多个像素的深度图。
7.如权利要求1至6中任一项所述的***,其中所述第一深度估计为半密集深度估计,以及所述第二深度估计和所述融合深度估计均包括密集深度估计。
8.如权利要求1至7中任一项所述的***,其包括:
单目相机,其用于捕获视频数据帧;
跟踪***,用于确定所述单目相机在观察所述场景期间的姿态;和
所述几何重建引擎,
其中所述几何重建引擎被配置为使用来自所述跟踪***的所述姿态和所述视频数据帧来为来自所述视频数据帧的像素的至少子集生成深度估计,所述几何重建引擎被配置为使光度误差最小化以生成所述深度估计。
9.如权利要求1至8中任一项所述的***,其包括:
所述神经网络架构,
其中所述神经网络架构包括一个或多个神经网络并且被配置为接收视频数据帧的像素值并预测:
第一组图像部分中的每一个的深度估计以生成所述第二深度估计;
第二组图像部分中的每一个的至少一个表面定向估计;
与每个深度估计相关联的一个或多个不确定性度量;和
与每个表面定向估计相关联的一个或多个不确定性度量。
10.一种估计场景的深度的方法,其包括
使用所述场景的几何重建生成所述场景的第一深度估计,其中所述几何重建被配置为输出所述第一深度估计的不确定性度量;
使用神经网络架构生成所述场景的第二深度估计,其中所述神经网络架构被配置为输出所述第二深度估计的不确定性度量;以及
使用所述不确定性度量来概率地融合所述第一深度估计和所述第二深度估计,以生成所述场景的融合深度估计。
11.如权利要求10所述的方法,其包括在生成所述第一深度估计之前:
从相机获得表示所述场景的两个或更多个视图的图像数据,
其中生成所述第一深度估计包括:
获得所述相机的姿态估计;以及
通过使光度误差最小化来生成所述第一深度估计,所述光度误差是至少所述姿态估计和所述图像数据的函数。
12.如权利要求10所述的方法,其包括在生成所述第一深度估计之前:
从相机获得表示所述场景的一个或多个视图的图像数据,
其中生成所述第二深度估计包括:
在所述神经网络架构处接收所述图像数据;
使用所述神经网络架构为一组图像部分中的每一个预测深度估计以生成所述第二深度估计;
使用所述神经网络架构为所述一组图像部分中的每一个预测至少一个表面定向估计;以及
使用所述神经网络架构预测每个深度估计和每个表面定向估计的一组不确定性度量。
13.如权利要求12所述的方法,其中所述表面定向估计包括以下各者中的一个或多个:
第一方向上的深度梯度估计;
与所述第一方向正交的方向上的深度梯度估计;和
表面法线估计。
14.如权利要求10所述的方法,其包括在生成所述第一深度估计之前:
从相机获得表示所述场景的两个或更多个视图的图像数据,所述图像数据包括多个像素,
其中生成所述第一深度估计包括:
获得所述相机的姿态估计;以及
生成半密集深度估计,所述半密集深度估计包括所述图像数据中所述像素的一部分的深度估计,
其中生成所述第二深度估计包括为所述图像数据中的所述像素生成密集深度估计,以及
其中概率地融合所述第一深度估计和所述第二深度估计包括为所述图像数据中的所述像素输出密集深度估计。
15.如权利要求10至14中任一项所述的方法,
其中迭代地重复所述方法,并且对于随后的迭代:
所述方法包括确定是否生成所述第二深度估计,以及
概率地融合所述第一深度估计和所述第二深度估计包括响应于确定不生成所述第二深度估计而使用所述第二深度估计的先前的一组值。
16.如权利要求10至15中任一项所述的方法,其中将所述方法应用于视频数据帧并且概率地融合所述第一深度估计和所述第二深度估计包括,对于给定的视频数据帧:
优化成本函数,所述成本函数包括与所述第一深度估计相关联的第一成本项和与所述第二深度估计相关联的第二成本项,
其中所述第一成本项包括融合深度估计值、第一深度估计值和所述第一深度估计的不确定性值的函数,
其中所述第二成本项包括融合深度估计值、第二深度估计值和所述第二深度估计的不确定性值的函数,并且
其中优化所述成本函数以确定所述融合深度估计值。
17.如权利要求16所述的方法,其中优化所述成本函数包括确定所述融合深度估计的比例因子,所述比例因子指示相对于所述场景的所述融合深度估计的比例。
18.如权利要求16或权利要求17所述的方法,使用所述神经网络架构生成所述场景的至少一个表面定向估计,其中所述神经网络架构被配置为输出所述至少一个表面定向估计中的每一个的不确定性度量,
其中所述成本函数包括与所述至少一个表面定向估计相关联的第三成本项,
其中所述第三成本项包括融合深度估计值、表面定向估计值和所述至少一个表面定向估计中的每一个的不确定性值的函数。
19.如权利要求10所述的方法,其中所述场景的所述几何重建被配置为生成所述场景的第一深度概率体积,所述第一深度概率体积包括:
第一多个深度估计,包括所述第一深度估计;和
第一多个不确定性度量,每个与所述第一多个深度估计中的相应深度估计相关联,其中与所述第一多个深度估计中的给定深度估计相关联的不确定性度量表示所述场景的给定区域处于由所述第一多个深度估计中的所述给定深度估计表示的深度处的概率;以及
所述神经网络架构被配置为输出所述场景的第二深度概率体积,所述第二深度概率体积包括:
第二多个深度估计,包括所述第二深度估计;和
第二多个不确定性度量,每个与所述第二多个深度估计中的相应深度估计相关联,其中与所述第二多个深度估计中的给定深度估计相关联的不确定性度量表示所述场景的给定区域处于由所述第二多个深度估计中的所述给定深度估计表示的深度处的概率。
20.如权利要求19所述的方法,其中生成所述场景的所述第二深度估计包括使用所述神经网络架构处理表示所述场景的图像的图像数据以生成所述第二深度概率体积,
其中所述第二多个深度估计包括多组深度估计,每组与所述场景的所述图像的不同的相应部分相关联。
21.如权利要求19或权利要求20所述的方法,其中所述第二多个深度估计包括具有预定义值的深度估计。
22.如权利要求21所述的方法,其中所述预定义值之间具有不均匀的间距。
23.如权利要求21或权利要求22所述的方法,其中所述预定义值包括预定义深度范围内的多个对数深度值。
24.如权利要求19至23中任一项所述的方法,其中生成所述场景的所述第一深度概率体积包括:
处理表示所述场景的第一观察的第一视频数据帧和表示所述场景的第二观察的第二视频数据帧以针对所述第一帧的多个部分中的每一个生成一组光度误差,每个与所述第一多个深度估计中的不同的相应深度估计相关联;以及
缩放所述光度误差以将所述光度误差转换为相应的概率值。
25.如权利要求19至24中任一项所述的方法,其中使用所述不确定性度量来概率地融合所述第一深度估计和所述第二深度估计包括将所述第一多个不确定性度量与所述第二多个不确定性度量组合以生成融合概率体积。
26.如权利要求25所述的方法,其中生成所述场景的所述融合深度估计包括从所述融合概率体积获得所述场景的所述融合深度估计。
27.如权利要求25或权利要求26所述的方法,其包括:
使用所述融合概率体积获得深度概率函数;和
使用所述深度概率函数获得所述融合深度估计。
28.如权利要求25至27中任一项所述的方法,其中获得所述融合深度估计包括优化成本函数,所述成本函数包括:
使用所述融合概率体积获得的第一成本项;和
包括对深度值的局部几何约束的第二成本项。
29.如权利要求28所述的方法,其包括:
从另一神经网络架构接收表面定向估计和遮挡边界估计;和
使用所述表面定向估计和所述遮挡边界估计来生成所述第二成本项。
30.如权利要求25至29中任一项所述的方法,其中所述融合深度概率体积为与表示所述场景的第一观察的第一视频数据帧相关联的第一融合深度概率体积,并且所述方法包括:
将所述第一融合深度概率体积转换为第一占用概率体积;
基于表示相机在观察所述场景期间的姿态的姿态数据来扭曲所述第一占用概率体积,以获得与表示所述场景的第二观察的第二视频数据帧相关联的第二占用概率体积;以及
将所述第二占用概率体积转换为与所述第二帧相关联的第二融合深度概率体积。
31.一种估计场景的深度的图像处理***,其包括:
融合引擎,其用于接收来自几何重建引擎的第一深度概率体积和来自神经网络架构的第二深度概率体积,并且用于融合所述第一深度概率体积和所述第二深度概率体积以输出所述场景的融合深度概率体积;和
深度估计引擎,其用于使用所述融合深度概率体积来估计所述场景的所述深度。
32.一种估计场景的深度的方法,其包括:
使用所述场景的几何重建来生成所述场景的第一深度概率体积;
使用神经网络架构来生成所述场景的第二深度概率体积;
融合所述第一深度概率体积和所述第二深度概率体积,以生成所述场景的融合深度概率体积;以及
使用所述融合深度概率体积来生成所述场景的融合深度估计。
33.一种计算***,其包括:
单目捕获装置,其用于提供视频帧;
同时定位和映射***,其用于提供所述单目捕获装置的姿态数据;
权利要求1或权利要求31所述的***;
半密集多视图立体部件,其用于接收所述姿态数据和所述视频帧并且实现所述几何重建引擎;以及
电子电路,其用于实现所述神经网络架构。
34.一种机器人装置,其包括:
权利要求33所述的计算***;
一个或多个致动器,其用于使所述机器人装置能够与周围三维环境交互,其中在所述场景中显示所述周围三维环境的至少一部分;和
交互引擎,其包括至少一个处理器以控制所述一个或多个致动器,
其中所述交互引擎使用所述融合深度估计与所述周围三维环境交互。
35.一种包括计算机可执行指令的非暂时性计算机可读存储介质,所述计算机可执行指令在由处理器执行时使计算装置执行权利要求10至30中任一项所述的方法。
CN202080010503.0A 2019-01-24 2020-01-15 深度估计 Pending CN113330486A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1901007.3 2019-01-24
GB1901007.3A GB2580691B (en) 2019-01-24 2019-01-24 Depth estimation
PCT/GB2020/050084 WO2020152437A1 (en) 2019-01-24 2020-01-15 Depth estimation

Publications (1)

Publication Number Publication Date
CN113330486A true CN113330486A (zh) 2021-08-31

Family

ID=65656005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080010503.0A Pending CN113330486A (zh) 2019-01-24 2020-01-15 深度估计

Country Status (6)

Country Link
US (1) US11941831B2 (zh)
JP (1) JP2022519194A (zh)
KR (1) KR20210119417A (zh)
CN (1) CN113330486A (zh)
GB (1) GB2580691B (zh)
WO (1) WO2020152437A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113870334A (zh) * 2021-09-29 2021-12-31 北京百度网讯科技有限公司 深度检测方法、装置、设备以及存储介质
CN114820755A (zh) * 2022-06-24 2022-07-29 武汉图科智能科技有限公司 一种深度图估计方法及***

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11940277B2 (en) * 2018-05-29 2024-03-26 Regents Of The University Of Minnesota Vision-aided inertial navigation system for ground vehicle localization
US20210366139A1 (en) * 2020-05-21 2021-11-25 Samsung Electronics Co., Ltd. Method and apparatus for generating depth image
JP7379299B2 (ja) * 2020-08-28 2023-11-14 株式会社東芝 位置姿勢推定装置、位置姿勢推定方法及びプログラム
WO2022071730A1 (en) * 2020-09-29 2022-04-07 Samsung Electronics Co., Ltd. Method and device for performing plane detection
US12002213B2 (en) 2020-09-29 2024-06-04 Samsung Electronics Co., Ltd. Method and device for performing plane detection
WO2022099522A1 (en) 2020-11-11 2022-05-19 Huawei Technologies Co., Ltd. Device and method for verifying estimated depth information
US11688090B2 (en) 2021-03-16 2023-06-27 Toyota Research Institute, Inc. Shared median-scaling metric for multi-camera self-supervised depth evaluation
CN115082540B (zh) * 2022-07-25 2022-11-15 武汉图科智能科技有限公司 一种适用于无人机平台的多视图深度估计方法及装置
CO2022011603A1 (es) * 2022-08-17 2024-02-26 Univ Simon Bolivar Proceso de inteligencia artificial para pronosticar el tamaño de objetos

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101590767B1 (ko) * 2009-06-09 2016-02-03 삼성전자주식회사 영상 처리 장치 및 방법
US9111350B1 (en) * 2012-02-10 2015-08-18 Google Inc. Conversion of monoscopic visual content to stereoscopic 3D
EP2674913B1 (en) * 2012-06-14 2014-07-23 Softkinetic Software Three-dimensional object modelling fitting & tracking.
CN103413347B (zh) * 2013-07-05 2016-07-06 南京邮电大学 基于前景背景融合的单目图像深度图提取方法
US10455212B1 (en) * 2014-08-25 2019-10-22 X Development Llc Projected pattern motion/vibration for depth sensing
CN108416840B (zh) * 2018-03-14 2020-02-18 大连理工大学 一种基于单目相机的三维场景稠密重建方法
GB2577915B (en) * 2018-10-10 2021-06-16 Dyson Technology Ltd Path planning

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113870334A (zh) * 2021-09-29 2021-12-31 北京百度网讯科技有限公司 深度检测方法、装置、设备以及存储介质
CN114820755A (zh) * 2022-06-24 2022-07-29 武汉图科智能科技有限公司 一种深度图估计方法及***
CN114820755B (zh) * 2022-06-24 2022-10-04 武汉图科智能科技有限公司 一种深度图估计方法及***

Also Published As

Publication number Publication date
US11941831B2 (en) 2024-03-26
JP2022519194A (ja) 2022-03-22
WO2020152437A1 (en) 2020-07-30
GB2580691A (en) 2020-07-29
US20210350560A1 (en) 2021-11-11
GB2580691B (en) 2022-07-20
KR20210119417A (ko) 2021-10-05
GB201901007D0 (en) 2019-03-13

Similar Documents

Publication Publication Date Title
US11941831B2 (en) Depth estimation
AU2020200811B2 (en) Direct meshing from multiview input using deep learning
CN108335353B (zh) 动态场景的三维重建方法、装置和***、服务器、介质
CN109003325B (zh) 一种三维重建的方法、介质、装置和计算设备
RU2713611C2 (ru) Способ моделирования трехмерного пространства
US10636151B2 (en) Method for estimating the speed of movement of a camera
JP6560480B2 (ja) 画像処理システム、画像処理方法、及びプログラム
EP2656309B1 (en) Method for determining a parameter set designed for determining the pose of a camera and for determining a three-dimensional structure of the at least one real object
US9426444B2 (en) Depth measurement quality enhancement
KR20210042942A (ko) 비디오 데이터를 이용한 객체 인스턴스 매핑
KR100793838B1 (ko) 카메라 모션 추출장치, 이를 이용한 해상장면의 증강현실 제공 시스템 및 방법
CN109191554B (zh) 一种超分辨图像重建方法、装置、终端和存储介质
US11082633B2 (en) Method of estimating the speed of displacement of a camera
KR102608956B1 (ko) 스테레오 이미지의 정류를 위한 방법 및 시스템
JP2022547288A (ja) 画像処理を使用したシーン表示
CN113689578A (zh) 一种人体数据集生成方法及装置
CN116129037B (zh) 视触觉传感器及其三维重建方法、***、设备及存储介质
CN113439289A (zh) 用于确定对象厚度的图像处理
US20210118160A1 (en) Methods, devices and computer program products for 3d mapping and pose estimation of 3d images
JP2024510230A (ja) 顔表情、身体ポーズ形状及び衣服パフォーマンスキャプチャのための暗黙的微分可能レンダラーを用いたマルチビューニューラル人間予測
Ruchay et al. Accuracy analysis of 3D object reconstruction using RGB-D sensor
Fan et al. Large-scale dense mapping system based on visual-inertial odometry and densely connected U-Net
CN111598927A (zh) 一种定位重建方法和装置
CN115239559A (zh) 一种融合视图合成的深度图超分辨率方法及***
Fujimura 3D Reconstruction in Scattering Media

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination