专利名称:使用机器学习的增强图像深度感测
专利类型:实用新型专利
专利申请号:CN201980018591.6
专利申请(专利权)人:奇跃公司
权利人地址:美国佛罗里达州
专利发明(设计)人:V·巴德里娜拉亚楠,Z.陈,A·拉比诺维奇
专利摘要:公开了用于基于单个图像训练和使用神经网络用于计算深度图的系统和方法。公开了用于训练和使用神经网络用于计算深度图的一种方法系统和方法。用于训练神经网络的一种方法包括向神经网络提供图像输入。图像输入可以包括训练场景的相机图像。该方法还可以包括向神经网络提供深度输入。深度输入可以基于训练场景的高密度深度图和采样掩码。该方法可以进一步包括基于图像输入和深度输入,使用神经网络生成训练场景的计算深度图。该方法可以进一步包括基于计算深度图和高密度深度图之间的误差来修改神经网络。
主权利要求:
1.一种训练用于深度计算的神经网络的方法,所述方法包括:向所述神经网络提供图像输入,所述图像输入包括训练场景的相机图像;
向所述神经网络提供深度输入,所述深度输入包括:所述训练场景的稀疏深度图,其中,所述稀疏深度图通过以下方式来生成:对于由采样掩码限定的多个采样点中的每一个采样点,将所述稀疏深度图设置为等于使用高密度深度传感器生成的所述训练场景的高密度深度图;以及对于由所述采样掩码限定的多个剩余点中的每一个剩余点,将所述稀疏深度图设置为等于在所述多个采样点中的最近点处的所述高密度深度图;以及所述训练场景的距离图,其中,所述距离图通过以下方式来生成:对于所述多个采样点中的每一个采样点,将所述距离图设置为等于零;以及对于所述多个剩余点中的每一个剩余点,将所述距离图设置为等于距所述多个采样点中的所述最近点的距离;
使用所述神经网络基于所述图像输入和所述深度输入来生成所述训练场景的计算深度图;
计算所述计算深度图与所述高密度深度图之间的误差;以及基于所述误差修改所述神经网络。
2.一种训练用于深度计算的神经网络的方法,所述方法包括:向所述神经网络提供图像输入,所述图像输入包括训练场景的相机图像;
向所述神经网络提供深度输入,所述深度输入至少部分地基于所述训练场景的高密度深度图,其中,所述深度输入包括稀疏深度图和距离图,以及其中,使用高密度深度传感器捕获所述训练场景的所述高密度深度图;
使用所述神经网络生成所述训练场景的计算深度图;以及基于所述计算深度图和所述高密度深度图之间的误差来修改所述神经网络。
3.根据权利要求2所述的方法,还包括:
使用所述神经网络基于所述图像输入和所述深度输入来生成所述计算深度图。
4.根据权利要求2所述的方法,还包括:
使用相机捕获所述相机图像;以及
使用高密度深度传感器捕获所述高密度深度图。
5.根据权利要求2所述的方法,其中,所述相机图像是具有H×W×1的尺寸的灰度图像。
6.根据权利要求2所述的方法,其中,所述相机图像是具有H×W×3的尺寸的RGB图像。
7.根据权利要求2所述的方法,其中,基于以下来生成所述稀疏深度图:所述高密度深度图;以及
指示低密度深度传感器的多个采样点的采样掩码。
8.根据权利要求7所述的方法,其中,所述稀疏深度图是通过以下方式生成的:对于所述多个采样点中的每一个采样点,将所述稀疏深度图设置为等于所述高密度深度图;以及对于多个剩余点中的每一个剩余点,将所述稀疏深度图设置为等于在所述多个采样点中的最近点处的所述高密度深度图。
9.根据权利要求7所述的方法,其中,通过以下方式生成所述距离图:对于所述多个采样点中的每一个采样点,将所述距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将所述距离图设置为等于距所述多个采样点中的最近点的距离。
10.一种使用用于深度计算的经训练的神经网络的方法,所述方法包括:使用相机捕获运行时场景的相机图像;
使用低密度深度传感器捕获所述运行时场景的低密度深度图;
向所述经训练的神经网络提供运行时图像输入,所述运行时图像输入包括所述运行时场景的所述相机图像;
向所述经训练的神经网络提供运行时深度输入,所述运行时深度输入至少部分地基于所述运行时场景的所述低密度深度图,其中,所述运行时深度输入包括稀疏深度图和距离图;以及使用所述经训练的神经网络,基于所述运行时图像输入和所述运行时深度输入,生成所述运行时场景的计算深度图。
11.根据权利要求10所述的方法,其中,所述运行时深度输入包括通过以下方式生成的所述运行时场景的稀疏深度图:对于由所述运行时场景的所述低密度深度图确定的多个采样点中的每一个采样点,将所述运行时场景的所述稀疏深度图设置为等于所述运行时场景的所述低密度深度图;以及对于多个剩余点中的每一个剩余点,将所述运行时场景的所述稀疏深度图设置为等于在所述多个采样点中的最近点处的所述运行时场景的所述低密度深度图。
12.根据权利要求10所述的方法,其中,所述运行时深度输入包括通过以下方式生成的所述运行时场景的距离图:对于由所述运行时场景的所述低密度深度图确定的多个采样点中的每一个采样点,将所述运行时场景的所述距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将所述运行时场景的所述距离图设置为等于距所述多个采样点中的最近点的距离。
13.根据权利要求10所述的方法,其中,所述神经网络预先通过以下方式来训练:向所述神经网络提供训练图像输入,所述训练图像输入包括训练场景的相机图像;
向所述神经网络提供训练深度输入,所述训练深度输入至少部分地基于所述训练场景的高密度深度图,其中,使用高密度深度传感器捕获所述训练场景的所述高密度深度图;
使用所述神经网络生成所述训练场景的计算深度图;以及基于所述训练场景的所述计算深度图和所述训练场景的所述高密度深度图之间的误差来修改所述神经网络。
14.根据权利要求13所述的方法,还包括:使用所述神经网络基于所述训练图像输入和所述训练深度输入来生成所述计算深度图。
15.根据权利要求13所述的方法,还包括:使用所述相机捕获所述训练场景的所述相机图像;以及使用高密度深度传感器捕获所述训练场景的所述高密度深度图。
16.根据权利要求13所述的方法,其中,所述训练场景的所述相机图像是具有H×W×1的尺寸的灰度图像。
17.根据权利要求13所述的方法,其中,所述训练场景的所述相机图像是具有H×W×3的尺寸的RGB图像。
18.根据权利要求13所述的方法,其中,所述训练深度输入包括基于以下方式生成的所述训练场景的稀疏深度图:所述高密度深度图;以及
指示所述低密度深度传感器的多个采样点的采样掩码。
19.根据权利要求18所述的方法,其中,所述训练场景的所述稀疏深度图通过以下方式来生成:对于所述多个采样点中的每一个采样点,将所述训练场景的所述稀疏深度图设置为等于所述高密度深度图;以及对于多个剩余点中的每一个剩余点,将所述训练场景的所述稀疏深度图设置为等于在所述多个采样点中的最近点处的所述高密度深度图。
20.根据权利要求18所述的方法,其中,所述训练深度输入还包括通过以下方式生成的所述训练场景的距离图:对于所述多个采样点中的每一个采样点,将所述训练场景的所述距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将所述训练场景的所述距离图设置为等于距所述多个采样点中的最近点的距离。 说明书 : 使用机器学习的增强图像深度感测[0001] 相关申请的交叉引用[0002] 本申请要求于2018年3月13日提交的题为“用于构造深度图的系统和方法(SYSTEMANDMETHODFORCONSTRUCTINGDEPTHMAPS)”的美国临时专利申请号62/642,528的优先权,出于所有目的,通过引用将其全部公开内容并入本文,如同在此完全阐述一样。背景技术[0003] 广泛的技术依赖于真实世界的准确和最新的深度图的可用性。自主车辆可以使用其周围的深度图来生成导航路径并识别障碍物和相关标志。增强现实(AR)设备可以使用深度图来生成虚拟图像元素,并将虚拟图像元素投影到光学头戴式显示器、监视器或手持设备上,它们可以由用户感知为相对于围绕虚拟元素的真实世界对象被正确地放置。作为另一示例,游戏设备可以使用深度图来使用户能够使用他/她的身体来控制控制台或计算机并与之交互,从而替换或补充其它游戏控制器。此类深度图可以包括二维(2D)图像,该二维图像包含与场景中的点与特定参考点(诸如捕获距离的深度传感器的参考点)之间的距离相对应的像素值。[0004] 深度图传感器可以采用利用光、电磁和/或声信号的传输的各种技术,其中的许多技术关于飞行时间原理进行操作,该飞行时间原理将发射的信号与所接收的反射信号之间的时间与深度图传感器和引起反射的对象之间的距离相关。鉴于可以收集数据的准确性和速度,基于光的方法的普及已显著增长。例如,利用所发射的脉冲激光的返回时间和波长的差异的LiDAR传感器在许多深度感测应用(诸如自动驾驶汽车和无人驾驶飞机)中已几乎普及。[0005] 深度感测的一种显著应用是用于虚拟现实(VR)或AR显示系统,其中以看起来或可能被感知为真实的方式将数字再现的图像或其部分呈现给用户。VR场景通常涉及数字或虚拟图像信息的呈现,而对其它实际真实世界的视觉输入不透明,而AR场景通常涉及数字或虚拟图像信息的呈现,以增强用户周围实际世界的可视化。尽管当前的深度感测技术取得了进步,但仍需要可与VR和AR头戴耳机配合使用的精确、低成本和轻便的深度传感器。发明内容[0006] 本发明总体上涉及用于在计算机视觉应用中计算深度图的方法和系统。更具体地,本公开的实施例提供了用于以非常少量的深度信息作为输入并产生极高质量的密集深度图的系统和方法。稀疏深度信息的灵活参数化导致如下模型,该模型即使在相当激进的下采样因子下,在室内产生可与全硬件深度传感器的性能相当的小于1%的平均绝对相对误差。如在此所述的可训练网络可以同时应用于室外数据集,从而对于例如1m至80m的所有深度都实现了良好的准确性。尽管参考AR设备描述了本发明,但是本公开适用于计算机视觉和图像显示系统中的各种应用。参考以下描述的实施例提供了本发明的概述。如下面所使用的,对一系列示例的任何引用应被理解为分别对这些示例中的每一个示例的引用(例如,“示例1‑4”应被理解为“示例1、2、3或4”)。[0007] 示例1是训练用于深度计算的神经网络的方法,该方法包括:向神经网络提供图像输入,该图像输入包括训练场景的相机图像;向神经网络提供深度输入,该深度输入包括:训练场景的稀疏深度图,其中,该稀疏深度图是通过以下方式生成的:对于由采样掩码限定的多个采样点中的每一个采样点,将稀疏深度图设置为等于使用高密度深度传感器生成的训练场景的高密度深度图;以及对于由采样掩码限定的多个剩余点中的每一个剩余点,将稀疏深度图设置为等于在多个采样点中的最近点处的高密度深度图;以及训练场景的距离图,其中,距离图是通过以下方式生成的:对于多个采样点中的每一个采样点,将距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将距离图设置为等于距多个采样点中的最近点的距离;使用神经网络基于图像输入和深度输入来生成训练场景的计算深度图;计算计算深度图与高密度深度图之间的误差;以及基于误差修改神经网络。[0008] 示例2是训练用于深度计算的神经网络的方法,该方法包括:向神经网络提供图像输入,该图像输入包括训练场景的相机图像;向神经网络提供深度输入,该深度输入至少部分地基于训练场景的高密度深度图;使用神经网络生成训练场景的计算深度图;以及基于计算深度图与高密度深度图之间的误差来修改神经网络。[0009] 示例3是示例2的方法,进一步包括:使用神经网络基于图像输入和深度输入来生成计算深度图。[0010] 示例4是示例2‑3的方法,进一步包括:使用相机捕获相机图像;并使用高密度深度传感器捕获高密度深度图。[0011] 示例5是示例2‑4的方法,其中,相机图像是具有H×W×1的尺寸的灰度图像。[0012] 示例6是示例2‑5的方法,其中,相机图像是具有H×W×3的尺寸的RGB图像。[0013] 示例7是示例2‑6的方法,其中,深度输入包括基于以下内容生成的稀疏深度图:高密度深度图;以及指示低密度深度传感器的多个采样点的采样掩码。[0014] 示例8是示例2‑7的方法,其中,通过以下方式生成稀疏深度图:对于多个采样点中的每一个采样点,将稀疏深度图设置为等于高密度深度图;对于多个剩余点中的每一个剩余点,将稀疏深度图设置为等于在多个采样点中的最近点处的高密度深度图。[0015] 示例9是示例2‑8的方法,其中,深度输入进一步包括通过以下方式生成的距离图:对于多个采样点中的每一个采样点,将距离图设置为等于零;对于多个剩余点中的每一个剩余点,将距离图设置为等于距多个采样点中的最近点的距离。[0016] 示例10是使用用于深度计算的神经网络的方法,该方法包括:使用相机捕获运行时场景的相机图像;使用低密度深度传感器捕获运行时场景的低密度深度图;向神经网络提供运行时图像输入,该运行时图像输入包括运行时场景的相机图像;向神经网络提供运行时深度输入,该运行时深度输入至少部分地基于运行时场景的低密度深度图;以及使用神经网络,基于运行时图像输入和运行时深度输入,生成运行时场景的计算深度图。[0017] 示例11是示例10的方法,其中,运行时深度输入包括通过以下方式生成的运行时场景的稀疏深度图:对于由运行时场景的低密度深度图确定的多个采样点中的每一个采样点,将运行时场景的稀疏深度图设置为等于运行时场景的低密度深度图;以及对于多个剩余点中的每一个剩余点,将运行时场景的稀疏深度图设置为等于在多个采样点中的最近点处的运行时场景的低密度深度图。[0018] 示例12是示例10‑11的方法,其中,运行时深度输入包括由以下方式生成的运行时场景的距离图:对于由运行时场景的低密度深度图确定的多个采样点中的每一个采样点,将运行时场景的距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将运行时场景的距离图设置为等于距多个采样点中的最近点的距离。[0019] 示例13是示例10‑12的方法,其中,通过以下方式预先训练神经网络:向神经网络提供训练图像输入,训练图像输入包括训练场景的相机图像;向神经网络提供训练深度输入,该训练深度输入至少部分地基于训练场景的高密度深度图;使用神经网络生成训练场景的计算深度图;以及基于训练场景的计算深度图与训练场景的高密度深度图之间的误差来修改神经网络。[0020] 示例14是示例11‑13的方法,进一步包括:使用神经网络,基于训练图像输入和训练深度输入,生成计算深度图。[0021] 示例15是示例11‑14的方法,进一步包括:使用相机捕获训练场景的相机图像;并使用高密度深度传感器捕获训练场景的高密度深度图。[0022] 示例16是示例11‑15的方法,其中,训练场景的相机图像是具有H×W×1的尺寸的灰度图像。[0023] 示例17是示例11‑16的方法,其中,训练场景的相机图像是具有H×W×3的尺寸的RGB图像。[0024] 示例18是示例11‑17的方法,其中,训练深度输入包括基于以下内容生成的训练场景的稀疏深度图:高密度深度图;指示低密度深度传感器的多个采样点的采样掩码。[0025] 示例19是示例11‑18的方法,其中通过以下方式生成训练场景的稀疏深度图:对于多个采样点中的每一个采样点,将训练场景的稀疏深度图设置为等于高密度深度图;以及对于多个剩余点中的每一个剩余点,将训练场景的稀疏深度图设置为等于在多个采样点中的最近点处的高密度深度图。[0026] 示例20是示例11‑19的方法,其中,训练深度输入进一步包括由以下方式生成的训练场景的距离图:对于多个采样点中的每一个采样点,将训练场景的距离图设置为等于零;以及对于多个剩余点中的每一个剩余点,将训练场景的距离图设置为等于距多个采样点中的最近点的距离。[0027] 示例21是一种计算深度图的方法,该方法包括:使用相机捕获运行时场景的相机图像;分析运行时场景的相机图像,以确定捕获运行时场景的深度所处的多个目标采样点;基于多个目标采样点,调节与低密度深度传感器相关联的设置;使用低密度深度传感器捕获多个目标采样点处的运行时场景的低密度深度图;以及基于运行时场景的相机图像和运行时场景的低密度深度图,生成运行时场景的计算深度图。[0028] 示例22是示例21的方法,其中,分析运行时场景的相机图像以确定多个目标采样点包括:检测运行时场景的相机图像中的一个或多个感兴趣点;以及基于一个或多个感兴趣点确定多个目标采样点。[0029] 示例23是示例21‑22的方法,其中,分析运行时场景的相机图像以确定多个目标采样点包括:使用神经网络基于运行时场景的相机图像生成多个目标采样点。[0030] 示例24是示例21‑23的方法,其中,神经网络预先使用由相机捕获的训练场景的相机图像和由高密度深度传感器捕获的训练场景的高密度深度图来训练。[0031] 示例25是示例21‑24的方法,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机向多个目标采样点发送信号;以及使低密度深度传感器的多个像素接收机的第一子集被供电而多个像素接收机的第二子集不被供电,其中,第一子集对应于多个目标采样点,以及其中,对第一子集供电使第一子集从多个目标采样点接收反射信号。[0032] 示例26是示例21‑25的方法,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机顺序地向多个目标采样点发送信号;以及使低密度深度传感器的接收机从多个目标采样点接收反射信号。[0033] 示例27是示例21‑26的方法,其中,生成基于运行时场景的计算深度图的步骤包括:使用神经网络基于运行时场景的相机图像和运行时场景的低密度深度图,生成运行时场景的计算深度图。[0034] 示例28是一种用于计算深度图的系统,该系统包括:相机;低密度深度传感器;以及一个或多个处理器,其被配置为执行以下操作,该操作包括:使用相机捕获运行时场景的相机图像;分析运行时场景的相机图像,以确定捕获运行时场景的深度所处的多个目标采样点;基于多个目标采样点,调节与低密度深度传感器相关联的设置;使用低密度深度传感器捕获在多个目标采样点处的运行时场景的低密度深度图;以及基于运行时场景的相机图像和运行时场景的低密度深度图,生成运行时场景的计算深度图。[0035] 示例29是示例28的系统,其中,分析运行时场景的相机图像以确定多个目标采样点包括:在运行时场景的相机图像中检测一个或多个感兴趣点;以及基于一个或多个感兴趣点确定多个目标采样点。[0036] 示例30是示例28‑29的系统,其中,分析运行时场景的相机图像以确定多个目标采样点包括:使用神经网络,基于运行时场景的相机图像生成多个目标采样点。[0037] 示例31是示例28‑30的系统,其中,神经网络预先使用由相机捕获的训练场景的相机图像和由高密度深度传感器捕获的训练场景的高密度深度图来训练。[0038] 示例32是示例28‑31的系统,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机向多个目标采样点发送信号;以及使低密度深度传感器的多个像素接收机的第一子集被供电而多个像素接收机的第二子集不被供电,其中,第一子集对应于多个目标采样点,其中,对第一子集供电使第一子集从多个目标采样点接收反射信号。[0039] 示例33是示例28‑32的系统,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机顺序地向多个目标采样点发送信号;以及使低密度深度传感器的接收机从多个目标采样点接收反射信号。[0040] 示例34是示例28‑33的系统,其中,生成基于运行时场景的计算深度图包括:使用神经网络基于运行时场景的相机图像和运行时场景的低密度深度图生成运行时场景的计算深度图。[0041] 示例35是一种非暂态计算机可读介质,其包括指令,该指令当由处理器执行时使处理器执行以下操作,该操作包括:使用相机捕获运行时场景的相机图像;分析运行时场景的相机图像,以确定捕获运行时场景的深度所处的多个目标采样点;基于多个目标采样点,调节与低密度深度传感器相关联的设置;使用低密度深度传感器捕获多个目标采样点处的运行时场景的低密度深度图;以及基于运行时场景的相机图像和运行时场景的低密度深度图,生成运行时场景的计算深度图。[0042] 示例36是示例35的非暂态计算机可读介质,其中,分析运行时场景的相机图像以确定多个目标采样点包括:检测运行时场景的相机图像中的一个或多个感兴趣点;以及基于一个或多个感兴趣点确定多个目标采样点。[0043] 示例37是示例35‑36的非暂态计算机可读介质,其中,分析运行时场景的相机图像以确定多个目标采样点包括:使用神经网络基于运行时场景的相机图像来生成多个目标采样点。[0044] 示例38是示例35‑37的非暂态计算机可读介质,其中,神经网络预先使用由相机捕获的训练场景的相机图像和由高密度深度传感器捕获的训练场景的高密度深度图来训练。[0045] 示例39是示例35‑38的非暂态计算机可读介质,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机向多个目标采样点发送信号;以及使低密度深度传感器的多个像素接收机的第一子集被供电而多个像素接收机的第二子集不被供电,其中,第一子集对应于多个目标采样点,以及其中,对第一子集供电使第一子集从多个目标采样点接收反射信号。[0046] 示例40是示例35‑39的非暂态计算机可读介质,其中,基于多个目标采样点来调节与低密度深度传感器相关联的设置包括:使低密度深度传感器的发射机顺序地向多个目标采样点发送信号;以及使低密度深度传感器的接收机从多个目标采样点接收反射信号。[0047] 通过本公开,与传统技术相比,获得了许多益处。例如,描述了用于密集场景深度估计的单个深度网络模型,该模型可与室内和室外场景的传统深度传感器准确性相当。另外,描述了一种参数化稀疏深度输入的灵活可逆的方法。这可以轻松地使模型适应来自各种来源(飞行时间深度传感器、LIDAR、立体声匹配等)的任意采样模式,并且甚至可以使单个模型适应多种稀疏模式。本公开的其它益处对于本领域技术人员将是显而易见的。附图说明[0048] 图1示出根据本发明的一些实施例的通过可穿戴AR设备观看的增强现实(AR)场景。[0049] 图2示出根据本发明的一些实施例的可穿戴AR设备的示意图。[0050] 图3示出根据本发明的一些实施例的用于AR设备的训练模式的设备设置。[0051] 图4示出根据本发明的一些实施例的用于AR设备的运行时模式的设备设置。[0052] 图5A、5B和5C示出AR设备的各种训练模式的示意图。[0053] 图6A和图6B示出AR设备的各种运行时模式的示意图。[0054] 图7示出根据本发明的一些实施例的对神经网络的输入的表征的示意图。[0055] 图8示出可以在AR设备的训练模式或运行时模式期间捕获/生成的各种图像、图和掩码的示例。[0056] 图9示出可以在AR设备的训练模式或运行时模式期间捕获/生成的各种图像、图和掩码的示例。[0057] 图10A‑10D示出可以被调节以捕获目标采样点处的深度测量的各种深度传感器的示例。[0058] 图11示出根据本发明的一些实施例的用于训练神经网络的方法。[0059] 图12示出根据本发明的一些实施例的使用神经网络来计算深度图的方法。[0060] 图13示出根据本发明的一些实施例的用于训练神经网络的方法。[0061] 图14示出根据本发明的一些实施例的用于计算深度图的方法。[0062] 图15示出根据在此描述的实施例的简化的计算机系统。具体实施方式[0063] 高效、准确和实时的深度估计对于诸如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、自动驾驶汽车、无人机、游戏系统和机器人技术的领域中的各种场景理解很有用。一种当前可用的消费级深度传感器消耗大约15W的功率,具有大约4.5m的有限范围,仅在室内工作,并且具有受增加的周围环境光影响的性能。未来的VR/MR头戴式深度相机优选较小,消耗功率量的1/100,并且具有与RGB相机的视野和分辨率匹配的至少1至80m(室内和室外)之间的范围。因此,需要新颖的节能深度硬件和深度估计模型。[0064] 根据单个单眼RGB图像进行深度估计是计算机视觉界普遍存在的问题,但是由于其固有的尺度模糊性,因此是不明确的问题。因此,不足为奇的是,现有的深度估计模型在流行的NYUv2室内数据集上仍然都产生了大于12%的相对(相对于真实深度)的误差。此类误差对于在诸如用于MR/AR的三维(3D)重建和/或用于自动驾驶的城市导航的应用中的稳健使用中太高。传统的深度传感器具有约1%的室内的量级的相对深度误差(其中误差定义为时间抖动),这表明深度单眼深度估计距离与此类传感器的性能相差甚远。[0065] 鉴于单眼深度估计的局限性,本发明提供了一种利用少量深度输入的模型。例如,这可以从专门设计的稀疏高能效传感器中获得,或者通过在飞行时间传感器中稀疏密集照明模式来获得。对于室外场景,这可能来自确信的立体匹配或类似LiDAR的设备。获得稀疏的深度读数立即解决深度估计中的尺度模糊性问题,并且将描述深度网络可以提供与完整深度传感器相当的性能,尽管仅可以获得深度图的一小部分。因此,本发明的一个目的是结合记录的RGB或灰度图像来使稀疏深度图致密。[0066] 根据本发明的密集深度预测模型的一个优点在于,它适合于稀疏深度输入的任何可能的采样模式,每个采样模式都可以对应于相关的物理场景。规则的网格采样模式使问题等同于深度超分辨率的问题,而稀疏的深度图可能来自有效的深度传感器。与某些感兴趣点分布(诸如ORB或SIFT)对应的采样模式将使模型成为SLAM系统内的合理元素,该系统在感兴趣点位置处提供稀疏深度。由于它们易于解释并且与现有深度传感器硬件直接相关,因此本公开的一些实施例可以集中于规则网格模式,但是不需要规则网格模式。[0067] 图1示出根据本发明的一些实施例的通过可穿戴AR设备观看的AR场景。描绘了AR场景100,其中AR技术的用户看到具有人、树、背景中的建筑物的真实世界的公园般的设置106以及混凝土平台120。除了这些项目之外,AR技术的用户还感知到他“看到”了站在真实世界平台120上的机器人雕像110,以及似乎是大黄蜂的拟人的飞行的类似卡通的化身角色102,即使这些元素(角色102和雕像110)在真实世界中不存在。由于人类视觉感知和神经系统的极度复杂性,产生促进舒适、自然感觉、丰富的虚拟图像元素呈现以及其它虚拟或真实世界图像元素的VR或AR技术是有挑战性的。[0068] 图2示出根据本发明的一些实施例的可穿戴AR设备200的示意图。AR设备200可以包括各种组件,各种组件包括左目镜202A、右目镜202B、直接附接在左目镜202A上或附近的面向左前方的世界相机206A、直接附接在右目镜202B上或附近的面向右前方的世界相机202B、面向左侧的世界相机206C、面向右侧的世界相机206D、光学链接到左目镜202A的左投影仪、光学连接到右目镜202B的右投影仪以及处理模块250。AR设备200的一些或所有组件可以被头戴,使得投影图像可以被用户观看。在一个特定的实施方式中,图2中所示的AR设备200的所有组件都安装到用户可佩戴的单个设备(例如,单个头戴耳机)上。在另一实施方式中,处理模块250经由有线或无线连接与AR设备200的其它组件物理上分离并且通信耦合至AR设备200的其它组件。例如,处理模块250可以以各种配置安装,诸如固定地附接到框架,固定地附接到用户佩戴的头盔或帽子,嵌入耳机中、或以其它方式可移除地附接到用户(例如,背包式配置、皮带耦合式配置等)。[0069] 处理模块250可以包括处理器252以及数字存储器,诸如非易失性存储器(例如,闪存),两者均可以用于辅助数据的处理、缓存和存储。数据可以包括从传感器(例如,可以可操作地耦合到AR设备200)捕获或以其它方式附接到用户(诸如图像捕获设备(例如,相机206)、低密度深度传感器254、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备和/或陀螺仪)的数据。例如,处理模块250可以从相机206接收图像220,或者具体地,从面向左前方的世界相机206A接收左前方图像220A,从面向右前方的世界相机206B接收右前方图像220B,从面向左侧的世界相机206C接收左侧图像220C,以及从面向右侧的世界相机206D接收右侧图像220D。在一些实施例中,图像220可以包括单个图像、一对图像、包括图像流的视频、包括成对图像流的视频等。图像220可以在AR设备200通电时被周期性地生成并发送到处理模块250,或者可以响应于由处理模块250发送给一个或多个相机的指令而生成。作为另一示例,处理模块250可以从低密度深度传感器254接收低密度深度图C(x,y)。[0070] 目镜202A、202B可以包括被配置为分别引导来自投影仪214A、214B的光的透明或半透明的波导。具体地,处理模块250可以使左投影仪214A将左投影图像222A输出到左目镜202A上,并且可以使右投影仪214B将右投影图像222B输出到右目镜202B中。在一些实施例中,目镜202A、202B中的每一个目镜可以包括与不同颜色和/或不同深度平面对应的多个波导。[0071] 相机206A、206B可以定位成捕获分别与用户的左眼和右眼的视野基本上重叠的图像。因此,相机206A、206B的放置可以在用户的眼睛附近,但不能如此近以至于遮挡用户的视野。可替代地或另外地,相机206A、206B可以被定位成分别与投影图像222A、222B的入耦合位置对准。相机206C、206D可以被定位成例如在用户的外围视觉中或在用户的外围视觉之外将图像捕获到用户的侧面。使用相机206C、206D捕获的图像220C、220D可以与或者可以不与使用相机206A、206B捕获的图像220A、220B部分地重叠。[0072] 在AR设备200的操作期间,处理模块250可基于由低密度深度传感器254生成的低密度深度图与一个或多个图像220组合,使用一个或多个训练的神经网络(诸如神经网络256、272)来计算(在AR设备200的视野内)场景的深度图。网络256、272可以是人工神经网络、卷积神经网络、深度网络或者可以通过处理示例逐渐“学习”的任何类型的网络或系统。在一些实施例中,网络256、272包括能够将数据从一个节点中继到另一个节点的连接节点的集合。网络256、272可以作为编译代码存储在处理模块内。网络256、272的训练和使用在下面进一步详细描述。[0073] 图3示出根据本发明的一些实施例的用于AR设备200的训练模式(即,网络256、272中的一个或二者的训练模式)的设备设置。当AR设备200在训练模式中操作时,高密度深度传感器258可被定位在AR设备200内或附近,使得高密度深度传感器258的视野对应于相机206的视野。在训练模式期间,网络256、272使用了使用高密度深度传感器258生成的训练场景302的高密度深度图D(x,y)和由相机260捕获/生成的训练场景302的相机图像I(x,y,c)进行训练。低密度深度传感器254可以在训练模式期间不通电、移除和/或忽略。在一些实施例中,高密度深度传感器258在训练期间临时附接到AR设备200的前部。在一些实施例中,相机206和高密度深度传感器258中的每一个被顺序地定位在预定位置处,使得设备的视野可以紧密对准。在一些实施例中,可以使用预先生成的图像和深度图来执行训练,使得AR设备200的各种硬件组件在训练期间不需要操作。[0074] 图4示出根据本发明的一些实施例的用于AR设备200的运行时模式(即,神经网络256、272中的一个或二者的运行时模式)的设备设置。在运行时模式期间,高密度深度传感器258被移除(和/或不供电或被修改以用于低密度深度感测),并且网络256、272用于基于由低密度深度传感器254捕获的运行时场景402的低密度深度图C(x,y)和由相机206捕获的运行时场景402的相机图像I(x,y,c)来生成计算的深度图 在一些实施例中,当训练场景302和运行时场景402相似时,提高了计算的深度图 的准确性。也就是说,当训练图像代表运行时图像时,运行时性能得到改善。例如,两个场景都可以在内部或外部,并且可以在场景内具有相似的照明、纹理和项目分布。[0075] 图5A、5B和5C示出AR设备200的各种训练模式的示意图。图5A示出其中训练深度图神经网络256的第一训练模式。在一些情况下,可以在每个训练步骤处提供三个输入:具有H×W×C的尺寸的相机图像I(x,y,c),具有H×W的尺寸的二进制采样掩码M(x,y)(在此可替代地称为采样掩码),以及具有H×W的尺寸的高密度深度图D(x,y)(在此可替代地称为地面真实深度图)。变量C是相机图像I(x,y,c)的通道数,并且对于RGB图像等于3,以及对于灰度图像等于1。如果D(x,y)的特定像素(x,y)具有无效或缺失的深度值,则可以将深度值设置为0或无穷大。[0076] 在一些实施例中,对于从D(x,y)采样的点(x,y),将二进制采样掩码M(x,y)设置为等于1。这些点在此可以统称为多个采样点。二进制采样掩码M(x,y)的剩余值可以设置为等于0。使用采样掩码M(x,y)采样高密度深度图D(x,y)的结果是低密度深度图C(x,y),同样具有H×W的尺寸。这在图5A中使用乘法运算(例如,矩阵D(x,y)和M(x,y)之间的逐元素乘法)示出。对于本模型,假设通过使用M(x,y)采样D(x,y)获得的低密度深度图C(x,y)与由低密度深度传感器254生成的低密度深度图C(x,y)相同或基本上相似。[0077] 到网络256的输入包括相机图像I(x,y,c)、具有H×W尺寸的稀疏深度图S1(x,y)和具有H×W尺寸的距离图S2(x,y)。通过用最近邻的深度值填充C(x,y)来根据低密度深度图C(x,y)生成稀疏深度图S1(x,y)。换句话说,对于多个采样点中的每一个采样点(如最初由具有等于1的值的M(x,y)的点(x,y)定义),S1(x,y)的值设置为等于C(x,y)的值(如最初由D(x,y)定义),并且对于剩余点中的每一个剩余点,将S1(x,y)的值设置为等于最近邻采样点的C(x,y)的值(如最初由D(x,y)定义)。在一些实施例中,可以由稀疏深度图生成器262执行从C(x,y)到S1(x,y)的变换。在一些实施例中,可以直接从M(x,y)和D(x,y)计算S1(x,y),而不计算C(x,y)。[0078] 通过计算M(x,y)的欧几里德距离变换,从采样掩码M(x,y)生成距离图S2(x,y)。这包括将S2(x,y)的值设置为(x,y)与最近点(x'y')之间的欧几里得距离,其中M(x',y')等于1,假设M(x,y)已更正为仅从有效深度点采样。换句话说,对于多个采样点中的每一个采样点(如最初由具有等于1的值的M(x,y)的点(x,y)定义),S2(x,y)的值设置为等于0(因为一个点与其自身之间的欧几里德距离为0),并且对于剩余点中的每一个剩余点,将S2(x,y)的值设置为等于(x,y)与最近的采样点(x',y')之间的欧几里德距离。在一些实施例中,可以通过欧几里德距离变换264来执行从M(x,y)到S2(x,y)的变换。在一些实施例中,可以从C(x,y)而不是M(x,y)计算S2(x,y)(因为可以从C(x,y)重新创建M(x,y))。[0079] 在向网络256提供相机图像I(x,y,c)、稀疏深度图S1(x,y)和距离图S2(x,y)之后,网络256可以生成计算的深度图 可以将计算的深度图 与高密度深度图D(x,y)进行比较以计算估计误差(即,误差)。该误差可以是单个值,或者可以是具有H×W的尺寸的矩阵,该矩阵被计算为矩阵 和D(x,y)之间的逐元素差。然后可以基于在计算的深度图 与高密度深度图D(x,y)之间的计算误差来修改网络256(使用例如修改器266)。对网络256的修改的大小可以与误差的大小成比例,使得较大的误差导致对网络256的更大的修改。在一些实施例中,对网络256进行修改,使得使用相同输入的计算深度图 的后续输出会产生较小的误差(即 成为D(x,y)的更好预测)。可以预先确定训练步骤的数量N,该数量N等于 的计算和/或对网络256的修改的次数,或可替代地,N可以是可变的,使得执行训练步骤直到误差降至阈值以下和/或误差收敛到一个值。[0080] 在一些实施例中,网络256可以可替代地直接输出误差来代替计算的深度图在该实施方式中,误差可立即用于训练目的,并且尽管在训练期间不一定需要,但是计算的深度图 可以通过将误差添加到高密度深度图D(x,y)或从高密度深度图D(x,y)中减去误差来获得,具体取决于计算误差的方法。因为计算深度图 可容易地从误差中得到并且隐含在误差中,所以在此类实施例中,计算误差可以理解为计算计算深度图[0081] 图5B示出了第二训练模式,其中采样掩码神经网络272被训练。在一些情况下,可以在每个训练步骤处提供两个输入:相机图像I(x,y,c)和高密度深度图D(x,y)。相机图像I(x,y,c)被提供为到采样掩码神经网络272的输入。响应于相机图像I(x,y,c)被提供为输入,网络272可以分析相机图像I(x,y,c),并且可以基于分析生成采样掩码M(x,y)。所生成的采样掩码M(x,y)可以包括要确定训练场景的深度所处的多个目标采样点。可以将采样掩码M(x,y)的剩余值设置为等于0。使用采样掩码M(x,y)对高密度深度图D(x,y)进行采样的结果是低密度深度图C(x,y),这可以通过矩阵D(x,y)和M(x,y)之间的逐元素乘法来执行。[0082] 到网络256的输入包括相机图像I(x,y,c)、稀疏深度图S1(x,y)(参考图5A描述其计算)和距离图S2(x,y)(参考图5A描述其计算)。在向网络256提供相机图像I(x,y,c)、稀疏深度图S1(x,y)和距离图S2(x,y)之后,网络256可以生成计算的深度图 可以将该计算的深度图 与高密度深度图D(x,y)进行比较以计算估计误差(即,误差)。然后可以基于所计算的误差来修改网络272(使用例如修改器274)。对网络272的修改的大小可以与误差的大小成比例,使得较大的误差导致对网络272进行较大的修改。在一些实施例中,对网络272进行修改,使得使用相同输入的计算的深度图 的后续输出产生较小的误差(即, 成为D(x,y)的更好预测)。可以预先确定训练步骤的数量N,该数量N等于的计算和/或对网络272的修改的次数,或可替代地,N可以是可变的,使得执行训练步骤直到误差降至阈值以下和/或误差收敛到一个值。[0083] 以该方式,网络272“学习”应当对相机图像I(x,y,c)的哪些像素进行采样以进行深度测量,使得计算的深度图 更好地近似于高密度深度图D(x,y)。在一些情况下,网络272可以分析相机图像I(x,y,c)并检测相机图像I(x,y,c)内的一个或多个感兴趣点,并且多个目标采样点可以基于检测到的感兴趣点。例如,在一些实施例中,可以在边缘(两个图像区域之间存在边界的点)、角落(边缘具有快速变化的方向的点)或斑点(图像区域具有一些特性(例如近似恒定的颜色)的点)处检测感兴趣点。网络272可以基于感兴趣点“学习”将多个目标采样点放置在何处。例如,目标采样点可以放置在一个或多个感兴趣点处或附近,或放置在感兴趣点之间。作为另一示例,可以将目标采样点放置在不同对的感兴趣点之间的中点处或附近。作为另一示例,可以将目标采样点放置在具有较高感兴趣点浓度的图像区域处或附近。[0084] 图5C示出第三训练模式,其中在每个训练步骤期间各自训练深度图神经网络256和采样掩码神经网络272。例如,在第三训练模式的每个训练步骤期间,采样掩码M(x,y)可以由网络272生成,计算的深度图 可以由网络256生成,估计误差(即,误差)可以基于计算的深度图 与高密度深度图D(x,y)之间的比较来计算,并且可以基于估计误差(如参考图5A和图5B所述)来修改网络256、272中的每一个。在一些实施例中,可以在一些训练步骤期间单独地训练(即,修改)网络256、272,并且在其它训练步骤期间同时地训练(即,修改)网络256、272。在总共N个训练步骤的一个示例中,可以在N/2个训练步骤期间训练网络256,并且可以在其它N/2个训练步骤期间训练网络272。训练步骤可以在每个训练步骤之间在网络256、272之间交替,或者可以在交替到另一个网络之前针对每个网络执行几个训练步骤。在另一示例中,可以在N/3训练步骤期间训练网络256,可以在N/3训练步骤期间训练网络272,并且可以在N/3训练步骤期间训练网络256、272二者。可以考虑其它可能性。[0085] 图6A和图6B示出AR设备200的各种运行时模式的示意图。图6A示出第一运行时模式,其中基于相机图像I(x,y,c)和运行时场景捕获的低密度深度图C(x,y)生成计算的深度图 并且独立于相机图像I(x,y,c)确定采样掩码M(x,y)。可以启动第一运行时模式以促进AR设备200以规则或不规则的间隔执行。例如,每当请求计算深度图 时,或者以预定间隔,相机206捕获相机图像I(x,y,c),低密度深度传感器254捕获低密度深度图C(x,y),并且采样掩码M(x,y)基于低密度深度传感器254的设置或通过对C(x,y)的分析来确定(如虚线所示)。可以例如通过确定捕获深度测量所处的像素位置(即,低密度深度图C(x,y)包含非零值所处的像素位置)来确定采样掩码M(x,y)。如上所述,然后可以分别基于C(x,y)和M(x,y)来生成稀疏深度图S1(x,y)和距离图S2(x,y)。然后,基于相机图像I(x,y,c)、稀疏深度图S1(x,y)和距离图S2(x,y),由网络256生成计算的深度图 并将其发送到处理器252,该处理器252将 合并到投影图像222A、222B的生成中。[0086] 图6B示出第二运行时模式,其中基于相机图像I(x,y,c)和运行时场景捕获的低密度深度图C(x,y)生成计算的深度图 并基于相机图像I(x,y,c)确定采样掩码M(x,y)。采样掩码M(x,y)用于调节与低密度深度传感器254相关联的设置,使得低密度深度传感器254根据采样掩码M(x,y)捕获深度测量。可以启动第二运行时模式以促进AR设备200以规则或不规则的间隔执行。例如,每当请求计算深度图 时,或者以预定间隔,相机206捕获相机图像I(x,y,c),低密度深度传感器254捕获低密度深度图C(x,y),并基于相机图像I(x,y,c)确定采样掩码M(x,y)。如上所述,然后可以分别基于C(x,y)和M(x,y)来生成稀疏深度图S1(x,y)和距离图S2(x,y)。然后,基于相机图像I(x,y,c)、稀疏深度图S1(x,y)和距离图S2(x,y),由网络256生成计算的深度图 并将其发送到处理器252,该处理器252将合并到投影图像222A、222B的生成中。[0087] 本发明的实施例提供了关于稀疏输入如何被参数化以用于网络256的创新。与在训练开始之前就锁定了样本的数量和采样模式(必要时是网格状模式)的深度超分辨率方法不同,在此的实施例搜索可以适应高密度深度图上的任意采样模式并且可以针对每个训练步骤采样可变数量的点的参数化。此类方法不仅可以跨不同的模型,而且甚至可以在同一训练运行中探索各种不同的采样策略,这提高了模型性能。应该注意,为了适应任何采样模式,稀疏深度输入可以与地面真实深度图具有相同的分辨率。[0088] 本发明的另一个益处是,与传统方法相比,参数化是快速的,在计算最终的稀疏输入(S1(x,y)和S2(x,y))时最多涉及两个欧几里德变换。另一个益处是,输入稀疏图可能不包含零(与如一些传统方法中的稀疏参数化相反),这之后可以使密集化问题被视为稀疏图顶部的残差预测。然而,将问题简化为残差预测的一个潜在问题是该模型会丢失所有先验知识,即哪些像素位置对应于M(x,y)等于1的采样位置。距离图S2(x,y)为模型提供了一种平滑的方法来恢复M(x,y),从而允许稀疏深度图S1(x,y)在模型选择时被反转。[0089] 本发明的另一个优点是,不仅在不同的模型之间,而且在训练期间在相同模型内,采样模式都可以改变。例如,可以遵循训练步骤t的规则 采用慢衰减学习时间表,该步骤以六倍于所需采样密度N的速度开始训练,并随着训练的进行朝着所需最终采样密度N平滑衰减。演示了该动态采样策略,以提高网络性能。[0090] 图7示出根据本发明的一些实施例的对网络256的输入的表征的示意图。如图7中所示,相机图像I(x,y,c)可以被表征为图像输入268,并且稀疏深度图S1(x,y)和距离图S2(x,y)可以被表征为深度输入270。因此,在一些实施例中,网络256可以设置有两个输入,该输入包括图像输入268和深度输入270。深度输入270可以包括C(x,y)、M(x,y)、S1(x,y)和S2(x,y)中的一个或多个。在一些实施例中,深度输入270包括具有H×W×2的尺寸的S1(x,y)和S2(x,y)的级联。在一些实施例中,图像输入268和深度输入270可以被组合,使得可以使用包括具有H×W×(C+2)的尺寸的I(x,y,c)、S1(x,y)和S2(x,y)的级联的输入。在一些实施例中,深度输入270可替代地称为稀疏输入。[0091] 图8示出可以在AR设备200的训练模式或运行时模式期间捕获/生成的各种图像、图和掩码的示例。如采样掩码M(x,y)的非零值所示,采样点不规则,不符合网格。在一些实施例中,通过比具有较少感兴趣点的区域采样具有带有更多样本的较高浓度的感兴趣点的区域,提高深度图的准确性。例如,在一些实施例中,可以首先分析相机图像I(x,y,c)以确定感兴趣点的位置。随后可以确定采样点的位置以与感兴趣点的位置一致。在所示的实施例中,每个像素的亮度可以对应于像素的值。例如,距离图S2(x,y)的值与亮度成比例,使得较亮的像素对应于较大的欧几里得距离。[0092] 图9示出可以在AR设备200的训练模式或运行时模式期间捕获/生成的各种图像、图和掩码的示例。由于采样点(如采样掩码M(x,y)的非零值所示)是网格状的,图9中所示的一些项目与图8中所示的项目不同。在所示的实施例中,每个像素的亮度可以对应于像素的值。[0093] 图10A‑10D示出各种深度传感器1054的示例,可以对该深度传感器1054进行调节以如采样掩码M(x,y)中所示在目标采样点处捕获深度测量。如在此所述,深度传感器1054中的每一个深度传感器可对应于低密度深度传感器254。深度传感器1054中的每一个深度传感器可以采用各种技术,该技术利用信号(诸如光、电磁、声以及其它可能性)的发送和接收。当修改控制信号1014、1016中的任何一个控制信号时,可以认为深度传感器1054中的每一个深度传感器的设置被调节。[0094] 参考图10A,示出了深度传感器1054A,其具有通信地耦合到发射机电路1004和接收机电路1006的控制电路1002。发射机电路1004包括布置在包括多个行和列的网格中的多个像素发射机1008。像素发射机1008中的每一个像素发射机可以基于控制信号1014被供电或不供电,并且当被供电时,可以以有向或无向方式向场景中的目标采样点发送信号。例如,控制电路1002可以使一个或多个像素发射机1008将发送的信号导向目标采样点。在一个示例中,控制电路1002可以使像素发射机1008的第一子集被供电而像素发射机1008的第二子集不被供电。像素发射机1008的第一子集可以在默认方向中发送信号,或者可以被导向特定的目标采样点。在另一示例中,控制电路1002可以使所有像素发射机1008通电,并且可以使发送的信号被导向目标采样点。像素发射机1008可以同步、同时和/或顺序地通电和/或导向。[0095] 接收机电路1006包括布置在包括多个行和列的网格中的多个像素接收机1012。像素接收机1012中的每一个像素接收机可以基于控制信号1016被供电或不供电,并且可以以有向或无向方式从场景中的目标采样点接收信号。例如,控制电路1002可以使一个或多个像素接收机1012被导向,以便从目标采样点接收反射信号。在一个示例中,控制电路1002可以使像素接收机1012的第一子集被供电而像素接收机1012的第二子集不被供电。像素接收机1012的第一子集可以从默认方向接收信号,或者可以被导向以便从特定目标采样点接收信号。在另一示例中,控制电路1002可以使所有像素接收机1012通电,并且可以使像素接收机1012被导向以便从特定目标采样点接收反射信号。像素接收机1012可以同步、同时和/或顺序地通电和/或导向。在接收到反射信号之后,数据经由数据信号1018从像素接收机1012发送到控制电路1002。[0096] 参考图10B,如先前所述,深度传感器1054B被示出为具有控制电路1002,该控制电路1002经由控制信号1014、1016和数据信号1018通信地耦合至发射机电路1004和接收机电路1006。深度传感器1054B与先前的实施例的不同之处在于,发射机电路1004包括全局发射机1020而不是多个像素发射机1008。全局发射机1020可以基于控制信号1014被供电或不被供电,并且当被供电时,可以同步或顺序地向所有目标采样点发送信号。在一个示例中,控制电路1002可以使全局发射机1020同步照射所有目标采样点。在另一示例中,控制电路1002可以使全局发射机1020根据扫描路径1024顺序照射目标采样点。[0097] 在一些实施例中,深度传感器1054B可以包括用于距离测量的飞行时间(ToF)成像系统中的一个或多个特征,其参考2017年9月29日提交的题为“飞行时间深度测量的实时校准(REALTIMECALIBRATIONFORTIME‑OF‑FLIGHTDEPTHMEASUREMENT)”的美国专利申请号15/721,640和2018年12月13日提交的题为“全局快门像素电路和计算机视觉应用方法(GLOBALSHUTTERPIXELCIRCUITANDMETHODFORCOMPUTERVISIONAPPLICATIONS)”的美国专利申请号16/219,829描述,其公开内容通过引用全部并入本文,如同在此完全阐述一样。例如,全局发射机1020可以包括被配置为发送光脉冲以照射目标对象的照明器,并且像素接收机1012可以包括光敏像素阵列。可以通过控制电路1002通过打开和关闭用作快门的电子开关来控制到达像素接收机1012的光量。[0098] 参考图10C,如前所述,深度传感器1054C示出具有控制电路1002,该控制电路1002经由控制信号1014、1016和数据信号1018通信地耦合到发射机电路1004和接收机电路1006。深度传感器1054C可以与先前的实施例的不同之处在于,接收机电路1006包括全局接收机1022而不是多个像素接收机1012。全局接收机1022可以基于控制信号1016被供电或不被供电,并且当被供电时可以同步或顺序地从所有目标采样点接收反射信号。在一个示例中,控制电路1002可以使全局接收机1022根据扫描路径1026顺序地从目标采样点接收反射信号。[0099] 参考图10D,深度传感器1054D被示出为具有控制电路1002,该控制电路1002经由控制信号1014、1016和数据信号1018通信地耦合到发射机电路1004和接收机电路1006。深度传感器1054D与先前的实施例的不同之处在于,发射机电路1004包括全局发射机1020而不是像素发射机1008,并且接收机电路1006包括全局接收机1022而不是像素接收机1012。在一个示例中,控制电路1002可以使全局发射机1020同步照射所有目标采样点,同时使全局接收机1022根据扫描路径1026顺序地从目标采样点接收反射信号。在另一示例中,控制电路1002可以使全局发射机1020根据扫描路径1024顺序地照射目标采样点,同时使全局接收机1022同步地从所有目标采样点接收反射信号。在另一示例中,控制电路1002可以使全局发射机1020同步地根据扫描路径1024顺序照射目标采样点,同时使全局接收机1022根据扫描路径1026顺序地从目标采样点接收反射信号。可以设想其它可能性。[0100] 图11示出根据本发明的一些实施例的用于训练神经网络(例如,深度图神经网络256)的方法1100。可以以与所示实施例中所示的顺序不同的顺序来执行方法1100的一个或多个步骤,并且在执行方法1100期间可以省略一个或多个步骤。方法1100的一个或多个步骤可以由处理器252或由另一个计算系统来执行。[0101] 在步骤1102处,将图像输入提供给网络256。图像输入可以包括训练场景的相机图像。可以使用相机捕获/生成相机图像。除其它可能性外,相机图像可以是具有H×W×1的尺寸的灰度图像或具有H×W×3的尺寸的RGB图像。[0102] 在步骤1104处,将深度输入提供给网络256。该深度输入可以至少部分地基于训练场景的高密度深度图。高密度深度图可以使用高密度深度传感器来捕获/生成。深度输入可以包括基于高密度深度图生成的稀疏深度图和指示多个采样点的采样掩码。例如,可通过对于多个采样点中的每一个采样点,将稀疏深度图设置为等于高密度深度图,并且对于多个剩余点中的每一个剩余点,将稀疏深度图设置等于多个采样点中的最近点处的高密度深度图,来生成稀疏深度图。深度输入可以进一步包括:通过对于多个采样点中的每一个采样点,将距离图设置为等于零,并且对于多个剩余点中的每一个剩余点,将距离图设置为等于距多个采样点中的最近点的距离而生成的距离图。多个采样点的样本数量和样本位置可以基于要在运行时模式中使用的低密度深度传感器的能力或设置。[0103] 在步骤1106处,使用网络256生成训练场景的计算深度图。计算深度图可以由网络256基于图像输入和深度输入来生成。在一些实施例中,步骤1106可选地包括以下步骤:从网络256接收计算深度图和/或使网络256生成计算深度图。在一些实施例中,步骤1106包括在计算深度图和高密度深度图之间生成误差,并且(可选地)使用该误差来生成计算深度图。[0104] 在步骤1108处,基于计算深度图和高密度深度图之间的误差来修改网络256。除其它可能性外,网络256可以基于误差进行自校正,或者网络256可以由外部过程修改。[0105] 图12示出根据本发明的一些实施例的用于使用神经网络(例如,深度图神经网络256)来计算深度图的方法1200。可以以与所示的实施例中所示的顺序不同的顺序来执行方法1200的一个或多个步骤,并且在执行方法1200期间可以省略一个或多个步骤。方法1200的一个或多个步骤可以由处理器252或由另一个计算系统执行。[0106] 在步骤1202处,使用相机捕获运行时场景的相机图像。除其它可能性外,相机图像可以是具有H×W×1的尺寸的灰度图像或具有H×W×3的尺寸的RGB图像。如参考方法1100所述,用于捕获运行时场景的相机图像的相机可以与用于捕获训练场景的相机图像的相机相同或不同。[0107] 在步骤1204处,使用低密度深度传感器捕获运行时场景的低密度深度图。低密度深度图可以在多个采样点处包含非零深度值。多个采样点的样本数量和样本位置可以基于低密度深度传感器的能力或设置。在一些实施例中,低密度深度图可以与在多个采样点处的运行时场景的高密度深度图的采样版本等效或类似。[0108] 在步骤1206处,将图像输入提供给网络256。图像输入可以包括在步骤1202中捕获的运行时场景的相机图像。[0109] 在步骤1208处,将深度输入提供给网络256。该深度输入可以至少部分地基于在步骤1204中捕获的运行时场景的低密度深度图。该深度输入可以包括基于运行时场景的低密度深度图生成的运行时场景的稀疏深度图。例如,可以通过对于多个采样点中的每一个采样点,将运行时场景的稀疏深度图设置为等于运行时场景的低密度深度图,并且对于多个剩余点中的每一个剩余点,将运行时场景的稀疏深度图设置为等于在多个采样点中最近点处的运行时场景的低密度深度图,来生成运行时场景的稀疏深度图。深度输入可以进一步包括基于运行时场景的低密度深度图和/或多个采样点生成的运行时场景的距离图。例如,可以通过对于多个采样点中的每一个采样点,将运行时场景的距离图设置为等于零,并且对于多个剩余点中的每一个剩余点,将运行时场景的距离图设置为等于距多个采样点中的最近点的距离,来生成运行时场景的距离图。[0110] 在步骤1210处,使用网络256生成运行时场景的计算深度图。网络256可以基于图像输入和深度输入来生成运行时场景的计算深度图。例如,网络256可以在接收到图像输入和深度输入作为输入时生成运行时场景的计算深度图。在一些实施例中,步骤1210可选地包括以下步骤:从网络256接收运行时场景的计算深度图和/或使网络256生成运行时场景的计算深度图。在一些实施例中,步骤1210包括生成误差并使用该误差来生成运行时场景的计算深度图。[0111] 图13示出根据本发明的一些实施例的用于训练神经网络(例如,采样掩码神经网络272)的方法1300。可以以与所示实施例中所示的顺序不同的顺序来执行方法1300的一个或多个步骤,并且在执行方法1300期间可以省略一个或多个步骤。方法1300的一个或多个步骤可以由处理器252或由另一个计算系统执行。[0112] 在步骤1302处,由网络272生成包括多个目标采样点的采样掩码。可以由网络272基于训练场景的相机图像来生成采样掩码。多个目标采样点可以对应于训练场景的深度测量将被捕获的位置。可以使用相机捕获/生成相机图像。在一些实施例中,步骤1302可选地包括以下步骤:从网络272接收采样掩码和/或使网络272生成采样掩码。[0113] 在步骤1304处,将图像输入提供给网络256。图像输入可以包括相机图像。[0114] 在步骤1306处,将深度输入提供给网络256。该深度输入可以至少部分地基于训练场景的高密度深度图。高密度深度图可以使用高密度深度传感器来捕获/生成。深度输入可以包括基于高密度深度图和采样掩码的多个目标采样点生成的稀疏深度图。例如,可以通过对于多个目标采样点中的每一个目标采样点,将稀疏深度图设置为等于高密度深度图,并且对于多个剩余点中的每一个剩余点,将稀疏深度图设置为等于在多个目标采样点中的最近点处的高密度深度图,来生成稀疏深度图。深度输入可以进一步包括通过对于多个目标采样点中的每一个采样点,将距离图设置为等于零,并且对于多个剩余点中的每一个剩余点,将距离图设置为等于距多个目标采样点中的最近点的距离而生成的距离图。[0115] 在步骤1308处,使用网络256生成训练场景的计算深度图。计算深度图可以由网络256基于图像输入和深度输入来生成。在一些实施例中,步骤1308可选地包括以下步骤:从网络256接收计算深度图和/或使网络256生成计算深度图。在一些实施例中,步骤1308包括在计算深度图和高密度深度图之间生成误差,并且(可选地)使用该误差来生成计算深度图。[0116] 在步骤1310处,基于计算深度图和高密度深度图之间的误差来修改网络272。除其它可能性外,网络272可以基于误差进行自校正,或者网络272可以通过外部过程进行修改。[0117] 图14示出根据本发明的一些实施例的用于计算深度图的方法1400。可以以与所示实施例中所示的顺序不同的顺序来执行方法1400的一个或多个步骤,并且在执行方法1400期间可以省略一个或多个步骤。方法1400的一个或多个步骤可以由处理器252或由另一个计算系统来执行。[0118] 在步骤1402处,使用相机捕获运行时场景的相机图像。除其它可能性外,相机图像可以是具有H×W×1的尺寸的灰度图像或具有H×W×3的尺寸的RGB图像。如参考方法1300所述,用于捕获运行时场景的相机图像的相机可以与用于捕获训练场景的相机图像的相机相同或不同。[0119] 在步骤1404处,分析运行时场景的相机图像以确定多个目标采样点。多个目标采样点可以对应于运行时场景的深度测量将被捕获的位置。在一些实施例中,步骤1404包括检测相机图像中的一个或多个感兴趣点,并基于一个或多个感兴趣点确定多个目标采样点。在一些实施例中,步骤1404包括使用神经网络(例如,采样掩码神经网络272)来确定多个目标采样点。例如,网络272可以被训练为在接收到相机图像作为输入时生成多个目标采样点。[0120] 在步骤1406处,基于多个目标采样点来调节与低密度深度传感器相关联的设置。与低密度深度传感器相关联的设置可以是馈送深度传感器的控制信号,由深度传感器执行的代码,控制深度传感器的操作的一个或多个变量等。在一些实施例中,步骤1406(和/或步骤1408)包括使低密度深度传感器的发射机向多个目标采样点发送信号,以及使低密度深度传感器的多个像素接收机的子集被供电以便从多个目标采样点接收反射信号。在一些实施例中,步骤1406(和/或步骤1408)包括使低密度深度传感器的发射机顺序地向多个目标采样点发送信号,并使低密度深度传感器的接收机从多个目标采样点接收反射信号。[0121] 在步骤1408处,使用低密度深度传感器在多个目标采样点处捕获运行时场景的低密度深度图。低密度深度图可以在多个目标采样点处包含非零深度值。在一些实施例中,低密度深度图可以与在多个目标采样点处的运行时场景的高密度深度图的采样版本等同或类似。[0122] 在步骤1410处,基于相机图像和低密度深度图来生成运行时场景的计算深度图。在一些实施例中,由神经网络(例如,深度图神经网络256)基于图像输入和深度输入来生成运行时场景的计算深度图。图像输入可以包括相机图像,并且深度输入可以包括和/或可以基于多个目标采样点和/或低密度深度图。在一些示例中,网络256可以在接收到图像输入和深度输入作为输入时生成运行时场景的计算深度图。在一些实施例中,步骤1410可选地包括以下步骤:从网络256接收运行时场景的计算深度图和/或使网络256生成运行时场景的计算深度图。在一些实施例中,步骤1410包括生成误差并使用该误差来生成运行时场景的计算深度图。[0123] 图15示出根据在此描述的实施例的简化的计算机系统1500。如图15中所示的计算机系统1500可以结合到诸如在此所述的AR设备200的设备中。图15提供了可以执行由各种实施例提供的方法的一些或全部步骤的计算机系统1500的一个实施例的示意图。应该注意,图15仅意在提供各种组件的一般性图示,可以适当地利用其中的任何或全部。因此,图15广泛地示出可以如何以相对分离或相对更集成的方式来实现各个系统元件。[0124] 示出了计算机系统1500,其包括可以经由总线1505电耦合或者可以适当地以其它方式通信的硬件元件。硬件元件可以包括一个或多个处理器1510,包括但不限于一个或多个通用处理器和/或一个或多个专用处理器,诸如数字信号处理芯片、图形加速处理器等;一个或多个输入设备1515,其可以包括但不限于鼠标、键盘、相机等;以及一个或多个输出设备1520,其可以包括但不限于显示设备、打印机等。[0125] 计算机系统1500可以进一步包括一个或多个非暂态存储设备1525和/或与之通信,该非暂态存储设备1525可以包括但不限于本地和/或网络可访问的存储装置,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光存储设备、固态存储设备(诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”),它们可以是可编程的,可更新等)。此类存储设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构等。[0126] 计算机系统1500还可能包括通信子系统1530,该通信子系统1530可以包括但不限TM于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备和/或诸如蓝牙 设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等的芯片组,等等。通信子系统1530可以包括一个或多个输入和/或输出通信接口,以允许与诸如以下描述的网络的网络交换数据,以列举一个示例,其它计算机系统、电视和/或在此描述的任何其它设备。取决于所需的功能性和/或其它实施方式,便携式电子设备或类似设备可以经由通信子系统1530来传送图像和/或其它信息。在其它实施例中,便携式电子设备(例如,第一电子设备)可以被并入计算机系统1500中,例如作为输入设备1515的电子设备。在一些实施例中,如上所述,计算机系统1500将进一步包括工作存储器1535,该工作存储器1535可以包括RAM或ROM设备。[0127] 计算机系统1500还可包括被示为当前位于工作存储器1535内的软件元件,包括操作系统1540、设备驱动器、可执行库和/或其它代码,诸如一个或多个应用1545,如在此所述,该应用1545可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其它实施例提供的方法和/或配置系统。仅作为示例,关于上述方法所描述的一个或多个过程可以被实现为可由计算机和/或计算机内的处理器执行的代码和/或指令,因此,一方面,根据所描述的方法,此类代码和/或指令可以用于配置和/或适配通用计算机或其它设备以执行一个或多个操作。[0128] 这些指令和/或代码的集合可以存储在非暂态计算机可读存储介质上,诸如上述存储设备1525。在一些情况下,该存储介质可能被并入诸如计算机系统1500的计算机系统内。在其它实施例中,该存储介质可能与计算机系统(例如诸如光盘的可移动介质)分离,和/或设置在安装包中,使得存储介质可用于对通用计算机及其上存储的指令/代码进行编程、配置和/或适配。这些指令可能采取可以由计算机系统1500执行的可执行代码的形式,和/或可能采取源代码和/或可安装代码的形式,该源代码和/或可安装代码例如使用各种通常可用的编译器、安装程序、压缩/解压缩实用程序等在计算机系统1500上编译和/或安装时然后采用可执行代码的形式。[0129] 对于本领域技术人员而言显而易见的是,可以根据特定要求进行实质性的变化。例如,也可能使用定制的硬件,和/或可能在硬件、包括便携式软件(诸如小应用程序等)的软件或二者中实现特定的元件。此外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。[0130] 如上所述,一方面,一些实施例可以采用诸如计算机系统1500的计算机系统来执行根据本技术的各种实施例的方法。根据一组实施例,此类方法的一些或全部过程由计算机系统1500响应于处理器1510执行一个或多个指令的一个或多个序列来执行,该一个或多个指令可能被并入操作系统1540和/或工作存储器1535中包含的其它代码,诸如应用程序1545。此类指令可以从另一计算机可读介质(诸如一个或多个存储设备1525)读入工作存储器1535。以示例的方式,包含在工作存储器1535中的指令序列的执行可能使处理器1510执行在此描述的方法的一个或多个过程。另外地或可替代地,在此描述的方法的部分可以通过专用硬件来执行。[0131] 如在此所使用,术语“机器可读介质”和“计算机可读介质”是指参与提供使机器以特定方式操作的数据的任何介质。在使用计算机系统1500实现的实施例中,各种计算机可读介质可能涉及向处理器1510提供指令/代码以供执行和/或可用于存储和/或承载此类指令/代码。在许多实施方式中,计算机可读介质是物理和/或有形存储介质。此类介质可以采取非易失性介质或易失性介质的形式。非易失性介质包括例如光盘和/或磁盘,诸如存储设备1525。易失性介质包括但不限于动态存储器,诸如工作存储器1535。[0132] 物理和/或有形计算机可读介质的常见形式包括,例如,软盘、柔性盘、硬盘、磁带或任何其它磁性介质、CD‑ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH‑EPROM、任何其它存储芯片或盒式磁带或计算机可以从中读取指令和/或代码的任何其它介质。[0133] 各种形式的计算机可读介质可涉及将一个或多个指令的一个或多个序列承载给处理器1510以供执行。仅作为示例,指令可以最初承载在远程计算机的磁盘和/或光盘上。远程计算机可能将指令加载到其动态存储器中,并通过传输介质将指令作为信号发送,以由计算机系统1500接收和/或执行。[0134] 通信子系统1530和/或其组件通常将接收信号,并且然后总线1505可能将信号和/或信号所承载的数据、指令等承载到工作存储器1535,处理器1510从该工作存储器1535中取得并执行指令。由工作存储器1535接收的指令可以可选地在由处理器1510执行之前或之后被存储在非暂态存储设备1525上。[0135] 上面讨论的方法、系统和设备是示例。各种配置可以适当地省略、替代或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行该方法,和/或可以添加、省略和/或组合各个阶段。此外,关于某些配置描述的特征可以在各种其它配置中组合。可以以类似方式组合配置的不同方面和元素。此外,技术在发展,并且因此,许多元素是示例,并不限制本公开或权利要求的范围。[0136] 在说明书中给出了具体细节以提供对包括实施方式的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以便避免使配置模糊。该描述仅提供示例配置,并不限制权利要求的范围、适用性或配置。相反,配置的先前描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元素的功能和布置进行各种改变。[0137] 此外,可以将配置描述为过程,该过程被描述为示意性流程图或框图。尽管每个操作都可以将操作描述为顺序过程,但是许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。过程可具有图中未包括的附加步骤。此外,方法的示例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以存储在诸如存储介质的非暂态计算机可读介质中。处理器可以执行所描述的任务。[0138] 已经描述了几种示例配置,在不脱离本公开的精神的情况下,可以使用各种修改、替代构造和等同形式。例如,以上元素可以是较大系统的组件,其中其它规则可以优先于或以其它方式修改技术的应用。同样,在考虑以上元素之前、之中或之后可以采取许多步骤。因此,以上描述不限制权利要求的范围。[0139] 如在此和所附权利要求书中所使用的,单数形式“一”、“一个”和“该”包括复数引用,除非上下文另外明确指出。因此,例如,对“用户”的引用包括多个此类用户,而对“处理器”的引用包括对一个或多个处理器及其本领域技术人员已知的等同形式的引用,等等。[0140] 此外,当在本说明书和所附权利要求书中使用时,词语“包括了”、“包括”、“包含了”、“包含”、“已包括”和“正包括”旨在指定所陈述的特征、整数、组件或步骤的存在,但它们并不排除一个或多个其它特征、整数、组件、步骤、动作或组的存在或添加。[0141] 还应理解,在此所述的示例和实施例仅用于说明目的,并且根据其各种修改或改变将被本领域技术人员建议,并且将被包括在本申请的精神和范围以及所附权利要求的范围之内。
专利地区:美国
专利申请日期:2019-03-13
专利公开日期:2024-07-26
专利公告号:CN111837144B