用于同时定位与建图的端到端深度生成模型的制作方法

文档序号:19933260发布日期:2020-02-14 22:16阅读:119来源:国知局
用于同时定位与建图的端到端深度生成模型的制作方法

本公开涉及用于对环境中的设备进行同时定位与建图的方法、系统和设备,并且具体地,涉及使用变分自编码器生成式对抗网络对车辆进行同时定位与建图。



背景技术:

实时定位、建图和深度感知是某些自主系统(包括自主驾驶系统或移动机器人系统)的要求。定位、建图和深度感知中的每一者是用于执行某些任务(诸如障碍躲避、路线规划、建图、定位、行人检测和人机交互)的关键组成部分。传统上,深度感知和定位是由昂贵的主动传感系统(诸如激光雷达传感器)或被动传感系统(诸如双目视觉或立体摄像机)来执行的。

用于计算定位、建图和深度感知的系统、方法和装置可以集成在诸如自主车辆的汽车和驾驶辅助系统中。目前正在开发和部署此类系统以提供安全性特征、减少所需的用户输入量,或甚至完全消除用户参与。例如,一些驾驶辅助系统(诸如防撞系统)可以在人类驾驶时监控车辆的驾驶、位置和速度以及其他物体。当系统检测到即将发生碰撞或撞击时,防撞系统可以介入并施加制动、使车辆转向或执行其他避让或安全操纵。作为另一示例,自主车辆可以在很少或没有用户输入的情况下驾驶、导航和/或停驻车辆。然而,由于驾驶所涉及的危险和车辆的成本,自主车辆和驾驶辅助系统安全地操作并且能够在各种不同的驾驶环境中准确地导航道路是极其重要的。



技术实现要素:

本公开目的在于提供用于机器学习和图像处理的改进系统、方法和装置。提供本公开的方法以用于利用神经网络进行成像处理。所述方法包括从车辆的摄像机接收图像。所述方法包括将所述图像提供到变分自编码器生成式对抗网络(vae-gan)。所述方法包括从所述vae-gan接收基于所述图像的重建的姿态矢量数据和重建的深度图。所述方法包括基于所述重建的姿态矢量数据和所述重建的深度图来计算所述车辆的同时定位与建图。所述方法包括其中所述vae-gan包括用于接收多个输入的潜在空间。

附图说明

参考以下附图描述本公开的非限制和非详尽实现方式,其中除非另有说明,否则相同的附图标记在各个附图中指代相同部件。参考以下描述和附图将更好地理解本公开的优点,在附图中:

图1是示出根据一个实施例的示例车辆控制系统或自主车辆系统的示意框图;

图2是根据一个实施例的在训练阶段的变分自编码器生成式对抗网络的示意框图;

图3是根据一个实施例的在计算阶段的变分自编码器生成式对抗网络的示意框图;

图4是示出根据一个实施例的用于确定环境的深度图的过程的示意框图;

图5是根据一个实施例的用于利用对环境中的车辆进行的同时定位和建图的方法的示意流程图;

图6是根据一个实施例的用于利用对环境中的车辆进行的同时定位和建图的方法的示意流程图;

图7是根据一个实施例的用于训练变分自编码器生成式对抗网络的方法的示意流程图;以及

图8是示出根据一个实施例的示例计算系统的示意框图。

具体实施方式

对车辆的定位以及对可行驶表面或区域的建图和深度感知是允许和改进自主车辆或驾驶员辅助特征的操作的重要方面。例如,车辆必须精确地知道障碍物或可行驶表面所处的位置以便安全地围绕物体导航。

同时定位与建图(slam)形成移动机器人(包括自主车辆和其他移动机器人)的操作功能的基础。此类机器人的示例包括被配置为在仓库中递送物品的室内移动机器人或者被配置为在灾难情形下穿过建筑物或其他环境的自主无人机。slam涉及感测机器人的环境并且当机器人在其环境中移动时建立其周围环境的地图。slam还涉及通过提取姿态矢量数据来同时地定位机器人环境内的机器人,所述姿态矢量数据包括相对于机器人的起始点的六自由度(dof)姿态。因此,slam逐步地生成机器人的环境的地图。在机器人重复它先前已经建图的路线的情况下,机器人可以解决问题的定位子集而不生成新地图。建立新区域的地图的生成需要slam。

slam通常利用诸如激光雷达传感器或立体摄像机的深度传感器来实施。slam通常需要此类装置以使得slam过程能够测量三维标志的深度和距离并且计算机器人相对于这些标志的位置。slam还可以使用单目视觉来实施,但通过随时间推移对来自移动的摄像机的标志进行三角测量所恢复的深度仅仅是按比例,使得在没有绝对深度测量的情况下恢复场景中的物体的相对深度。

申请人认识到,机器人中的联合问题是障碍躲避之一。机器人必须知道物体距机器人有多远,使得机器人可以确定物体周围的无碰撞路径。机器人利用激光雷达传感器和立体摄像机来确定机器人周围的障碍物的稠密深度图。通过这个过程确定的相同障碍物中的一些可以用作slam实施中的三维标志。

申请人已经开发出用于改进slam和障碍躲避两者的操作的系统、方法和装置。申请人提出了用于生成障碍躲避的稠密深度图、确定机器人的位置并且在机器人穿过其环境时确定姿态矢量数据的系统、方法和装置。本公开的系统、方法和装置利用单目摄像机并且不需要使用进一步要求密集计算资源的昂贵激光雷达传感器或立体摄像机。本公开提出了用于感测机器人的周围环境、在机器人的环境内定位机器人并且使得机器人能够生成障碍躲避移动程序的轻便、便宜且低计算方法。本公开的此类系统、方法和装置可以在任何合适的机器人系统上实施,包括例如自主车辆、移动机器人和/或无人机或智能机动车辆。

变分自编码器(vae)是提供数据的压缩型潜在表示的一类潜在变量模型。vae可以充当自编码器,同时还充当生成模型,通过来自潜在流形的采样可以从所述生成模型生成新数据。vae由将输入映射到压缩型潜在表示的编码器构成。vae还包括被配置为将潜在矢量解码回到输出的解码器。整个vae系统可以作为深度神经网络端到端地训练。

vae可以被配置为对其潜在流形中的关于各种数据属性的有意义信息进行编码,然后可以用来执行相关任务。在本公开的实现方式中,申请人提出在图像、图像的姿态矢量数据与图像的深度图之间利用vae的共享潜在空间假设,以有助于结合vae来使用slam。

生成式对抗网络(gan)是被配置为从感兴趣的概率分布产生高品质样本的一类生成模型。在图像域中,gan可以生成一流艺术品质的输出样本。gan的训练方法是对抗的,因为生成器(产生通常被称为“伪”的样本的网络)通过欺骗被称为判别器的另一网络进行学习,所述判别器决定所产生的样本是真的还是伪的。生成器网络和判别器网络串联地训练,其中生成器网络最终学习产生成功地欺骗判别器网络的样本。在这样的点上,gan能够在生成过程下从概率分布生成样本。

申请人认识到,vae带来提供数据的潜在表示以便进一步使用的优点。然而,vae的一个缺点是所产生的样本的模糊强度。另一方面,gan产生优良的样本但没有可用的有用潜在表示。变分自编码器生成式对抗网络(vae-gan)利用并组合每个系统,使得获得易处理的vae潜在表示,同时还通过将gan用作vae的解码器中的生成器来改进样本的品质。这导致比单独vae更清晰的图像。

本公开的系统、方法和装置将vae-gan用作slam算法中的中心机制。此类系统、方法和装置接收诸如红绿蓝(rgb)图像的输入并且输出捕获所述rgb图像的摄像机的对应深度图和姿态矢量数据。系统使用常规立体视觉slam流水线进行训练,其中立体视觉同时定位和建图(vslam)在立体摄像机在空间中移动时接收立体图像序列、生成深度图和对应的六自由度姿态。立体vslam使用rgb图像序列、图像的对应深度图和图像的对应姿态矢量数据来训练vae-gan-slam算法。vae-gan被训练以重建rgb图像、图像的姿态矢量数据和图像的深度图,同时创建它们的共享潜在空间表示。假设rgb图像、图像的深度图和图像的姿态矢量数据是从现实世界中靠得很近的位置采样的、在所学习的共享潜在空间中也靠得很近。在网络被训练之后,vae-gan将来自在相同环境中移动的单目摄像机的rgb图像用作其输入并且产生用于单目摄像机的深度图和姿态矢量数据两者。

在实施例中,vae-gan的潜在空间表示还支持解缠和潜在空间算术。此类实施例的示例将是隔离出潜在矢量中的负责某一感兴趣属性的维度,诸如姿态维度,并且通过改变姿态矢量来创建场景的先前未看见的视图。

申请人认识到,本文中公开的系统、方法和装置使得能够将系统用作有助于快速和容易的单图像推断的slam框,从而产生机器人的姿态和机器人周围的环境中的障碍物的位置。

生成式对抗网络(gan)已经表明,与常规卷积神经网络相比,通过以对抗方式训练生成网络和判别网络,可以用较少量的训练数据实现图像到图像的转换,例如分割或标记任务。申请人提出了使用gan对单个图像进行深度估计的系统、方法和装置。此类系统、方法和装置相对于已知的深度估计系统改进了性能,并且进一步需要较少数量的训练图像。与常规卷积神经网络相反,gan的使用使得能够在每种环境下、通常在数百个图像中(而不是在卷积神经网络所需的数十万个图像中)收集少量训练数据。此类系统、方法和装置将数据收集的负担减小了一个数量级。

申请人还提出了利用视觉同时定位与建图(vslam)方法进行深度估计以确保当摄像机在环境中移动时由gan产生的所生成的深度图的时间一致性的系统、方法和装置。vslam模块提供摄像机的姿态信息,例如,摄像机在连续图像之间移动的程度。将此类姿态信息作为关于训练gan的时间约束提供到gan以促进gan生成连续图像的一致深度图。

在公开和描述用于确定机器人的同时定位与建图的方法、系统和装置之前,应当理解,本公开不限于本文公开的配置、过程步骤和材料,因为此类配置、过程步骤和材料可能会有所不同。还应当理解,本文采用的术语仅用于描述实现方式,而不意图限制,因为本公开的范围将仅由所附权利要求以及其等效物限制。

在描述并要求保护本公开时,将根据下文陈述的定义来使用以下术语。

应当注意,除非上下文另有明确说明,否则在本说明书和附图中所用的单数形式“一个”和“所述”包括复数参考形式。

如本文所使用,术语“包括”、“包含”、“其特征在于”以及其语法等效物是包括性或开放式术语,其不排除附加的、未列举的元件或方法步骤。

在一个实施例中,公开了一种用于建图和定位环境中的机器人(诸如自主车辆)的方法。所述方法包括从车辆的摄像机接收图像。所述方法包括将所述图像提供到变分自编码器生成式对抗网络(vae-gan)。所述方法包括从所述vae-gan接收基于所述图像的重建的姿态矢量数据和重建的深度图。所述方法包括基于所述重建的姿态矢量数据和所述重建的深度图来计算所述车辆的同时定位与建图。所述方法使得所述vae-gan包括用于对多个输入进行编码的单个潜在空间。

下面将结合附图讨论进一步的实施例和示例。

现在参考附图,图1示出了可以用于自主或辅助驾驶的示例车辆控制系统100。自动化驾驶/辅助系统102可以用于使车辆的操作自动化或控制车辆的操作或者辅助人类驾驶员。例如,自动化驾驶/辅助系统102可以控制以下一者或多者:车辆的制动、转向、加速、车灯、警报、驾驶员通知、无线电或任何其他辅助系统。在另一示例中,自动化驾驶/辅助系统102可能不能够提供对驾驶(例如,转向、加速或制动)的任何控制,但是可以提供通知和警报以辅助人类驾驶员安全驾驶。自动化驾驶/辅助系统102可以使用神经网络或其他模型或算法以基于由一个或多个传感器收集的感知数据来检测或定位物体。

车辆控制系统100还包括一个或多个传感器系统/装置以检测主车辆(例如,包括车辆控制系统100的车辆)附近或在其传感器范围内的物体的存在。例如,车辆控制系统100可以包括一个或多个雷达系统106、一个或多个激光雷达系统108、一个或多个摄像机系统110、全球定位系统(gps)112,和/或一个或多个超声波系统114。车辆控制系统100可以包括数据存储装置116以存储导航和安全性的相关或有用数据,诸如地图数据、驾驶历史或其他数据。车辆控制系统100还可以包括收发器118,所述收发器118用于与移动或无线网络、其他车辆、基础设施或任何其他通信系统进行无线通信。

车辆控制系统100可以包括车辆控制致动器120以控制车辆驾驶的各个方面(诸如电动马达、开关或其他致动器),以控制制动、加速、转向等。车辆控制系统100还可以包括一个或多个显示器122、扬声器124或其他装置,使得可以向人类驾驶员或乘客提供通知。显示器122可以包括抬头显示器、仪表盘显示器或指示器、显示屏或车辆的驾驶员或乘客可以看见的任何其他可视指示器。抬头显示器可以用于提供通知或指示检测到的物体的位置或覆盖指令或用于辅助驾驶员的驾驶操纵。扬声器124可以包括车辆的音响系统的一个或多个扬声器,或者可以包括专用于驾驶员通知的扬声器。

应当了解,图1的实施例仅以举例的方式给出。在不脱离本公开的范围的情况下,其他实施例可以包括更少或另外的部件。另外,所示部件可以组合或包括在其他部件内而没有限制。

在一个实施例中,自动化驾驶/辅助系统102被配置为控制主车辆的驾驶或导航。例如,自动化驾驶/辅助系统102可以控制车辆控制致动器120以在道路上的路径、停车场、行车道或其他位置行驶。例如,自动化驾驶/辅助系统102可以基于由部件106至114中的任一者提供的信息或感知数据来确定路径。传感器系统/装置106至114可以用于获得实时传感器数据,使得自动化驾驶/辅助系统102可以实时辅助驾驶员或驾驶车辆。

图2示出了变分自编码器生成式对抗网络(vae-gan)201的训练阶段200的示意框图。vae-gan201包括图像编码器204和对应的图像解码器206。vae-gan201包括姿态编码器212和对应的姿态解码器214。vae-gan201包括深度编码器222和对应的深度解码器224。图像解码器206、姿态解码器214和深度解码器224中的每一者包括生成式对抗网络(gan),所述gan包括gan生成器(例如,见404)和gan判别器(例如,见408)。vae-gan201包括由图像编码器204、图像解码器206、姿态编码器212、姿态解码器214、深度编码器222和深度解码器224中的每一者共享的潜在空间230。vae-gan201在图像编码器204处接收训练图像202并且基于训练图像202而生成重建的图像208。vae-gan201在姿态编码器212处接收基于训练图像202的训练姿态矢量数据210,并且vae-gan201基于训练姿态矢量数据210而生成重建的姿态矢量数据216。vae-gan201在深度编码器222处接收基于训练图像202的训练深度图220,并且输出基于训练深度图220的重建的深度图226。

vae-gan201是本公开的同时定位与建图(slam)算法中的中心机制。在实施例中,vae-gan201利用常规立体视觉slam流水线进行训练。在此类实施例中,随着摄像机在空间中移动,立体视觉slam获得立体图像序列并且生成立体摄像机的深度图和对应的六自由度姿态。立体视觉slam使用红绿蓝(rgb)图像序列(其中仅使用立体对中的左图像)以及rgb图像序列的对应的深度图和六自由度姿态矢量数据来训练vae-gan-slam算法。vae-gan201在以下假设下进行训练:rgb图像、图像的深度图和图像的姿态矢量数据是从现实世界中靠得很近的位置采样的,它们在所学习的共享潜在空间230中也靠得很近。在网络被训练之后,vae-gan201可以将来自在相同环境中移动的单目摄像机的rgb图像用作其输入并且产生摄像机的深度图和六自由度姿态矢量数据两者。

训练图像202提供到vae-gan201以用于训练vae-gan201来基于图像生成姿态矢量数据和/或深度图数据。在实施例中,训练图像202是由单目摄像机捕获的红蓝绿(rgb)图像。在实施例中,训练图像202是由立体摄像机捕获的立体图像对中的单个图像。重建的图像208由vae-gan201基于训练图像202而生成。图像编码器204和图像解码器206是彼此对抗的并且被配置为生成重建的图像208。图像编码器204被配置为接收训练图像202并且将训练图像202映射到潜在空间230中的压缩潜在表示。图像解码器206包括具有gan生成器和gan判别器的gan。图像解码器206被配置为对来自潜在空间230的训练图像202的压缩型潜在表示进行解码。图像解码器206的gan被配置为生成重建的图像208。

训练姿态矢量数据210提供到vae-gan201以用于训练vae-gan201来生成图像的姿态矢量数据。在实施例中,训练姿态矢量数据210包括捕获训练图像202的摄像机的六自由度姿态数据,其中六自由度姿态数据指示在摄像机穿过环境时摄像机在图像被捕获时的相对姿态。重建的姿态矢量数据216由vae-gan201基于训练姿态矢量数据210而生成。姿态编码器212被配置为接收训练姿态矢量数据210并且将训练姿态矢量数据210映射到vae-gan201的潜在空间230中的压缩型潜在表示。姿态解码器214被配置为对来自潜在空间230的训练姿态矢量数据210的压缩型潜在表示进行解码。姿态解码器214包括具有gan生成器和gan判别器的gan。姿态解码器214的gan被配置为基于训练姿态矢量数据210而生成重建的姿态矢量数据216。

训练深度图220提供到vae-gan201以用于训练vae-gan201来生成图像的深度图。在实施例中,深度图220基于训练图像202并且包括训练图像202的深度信息。重建的深度图226由vae-gan201基于训练深度图220而生成。深度编码器222被配置为接收训练深度图220并且将训练深度图220映射到vae-gan201的潜在空间230中的压缩型潜在表示。深度解码器224包括具有gan生成器和gan判别器的gan。深度解码器224被配置为对来自潜在空间230的训练深度图220的压缩型潜在表示进行解码。深度解码器224的gan被配置为基于训练深度图220而生成重建的深度图226。

vae-gan201的潜在空间230由图像编码器204、图像解码器206、姿态编码器212、姿态解码器214、深度编码器222和深度解码器224中的每一者共享。因此,vae-gan201被串联训练以生成重建的图像208、重建的姿态矢量数据216和重建的深度图226中的每一者。在实施例中,潜在空间230包括适用于图像、图像的姿态矢量数据和图像的深度图中的每一者的已编码的潜在空间矢量。vae-gan201的潜在空间230表示支持解缠和潜在空间算术。解缠和潜在空间算术的示例包括隔离出潜在空间230中的负责某一感兴趣属性的维度,诸如姿态维度。这可以使得能够通过改变姿态矢量来创建场景的先前未看见的视图。在实施例中,同时针对所有的三个属性(即,图像、姿态矢量数据和深度图)来训练潜在空间230会迫使潜在空间230对于每一个属性是一致的。这提供简洁的规划,其中没有针对图像、姿态矢量数据和深度图中的每一者单独地训练vae-gan201。因此,由于串联地训练vae-gan201,因此经训练的vae-gan201可以接收输入图像并且生成任何外部输出,诸如基于输入图像的姿态矢量数据或基于输入图像的深度图。

图3示出了变分自编码器生成式对抗网络(vae-gan)301的计算阶段300(替代地,可以被称为生成或执行阶段)的示意框图。vae-gan301包括图像编码器304和对应的图像解码器306,其中图像解码器306包括被配置为基于rgb图像302而生成重建的图像的gan。在如图3所示的实施例中,图像编码器304和图像解码器306已经被训练(见图2)。vae-gan301包括姿态编码器312和对应的姿态解码器314,其中姿态解码器314包括被配置为基于rgb图像302而生成重建的姿态矢量数据316的gan。在如图3所示的实施例中,姿态编码器312和姿态解码器314已经被训练(见图2)。vae-gan301包括深度编码器322和对应的深度解码器324,其中深度解码器324包括被配置为基于rgb图像302而生成重建的深度图326的gan。在如图3所示的实施例中,深度编码器322和深度解码器324已经被训练(见图2)。vae-gan301包括由图像编码器304、图像解码器306、姿态编码器312、姿态解码器314、深度编码器322和深度解码器324共享的潜在空间330。vae-gan301在图像编码器304处接收rgb图像302。vae-gan在经训练的姿态解码器314处输出重建的姿态矢量数据316。vae-gan在经训练的深度解码器324处输出重建的深度图326。

在实施例中,rgb图像302是由单目摄像机捕获并在vae-gan301被训练之后提供到vae-gan301的红绿蓝图像。在实施例中,rgb图像302由车辆的单目摄像机捕获、提供到车辆控制器,并且实时地提供到vae-gan301。rgb图像302可以提供对车辆的环境的捕获,并且可以用来确定车辆周围环境的深度感知。在此类实施例中,车辆控制器可以将vae-gan301的结果实施到slam算法中,以用于实时地计算车辆的同时定位与建图。车辆控制器可以进一步向驾驶员提供通知、确定驾驶操纵,或者基于slam算法的结果而执行驾驶操纵。

重建的姿态矢量数据316由嵌入在vae-gan301的姿态解码器314中的gan生成。vae-gan301可以被训练以基于单目图像而生成重建的姿态矢量数据316。在如图3所示的实施例中,vae-gan301包括由图像编码器/解码器、姿态编码器/解码器和深度编码器/解码器中的每一者共享的潜在空间330。共享的潜在空间330使得vae-gan301能够基于rgb图像302(或非rgb图像)而生成任何经训练的输出,如图所示。重建的姿态矢量数据316包括单目摄像机的六自由度姿态数据。重建的姿态矢量数据316可以由车辆用来确定车辆在其环境中的位置,并且进一步用于当车辆在空间中移动时通过在slam算法中实施所述数据来对车辆进行同时定位与建图。

重建的深度图326由嵌入在vae-gan301的深度解码器324中的gan生成。vae-gan301可以被训练以仅基于rgb图像302而生成重建的深度图326。重建的深度图326提供基于rgb图像302的稠密深度图,并且可以提供机器人或自主车辆的周围环境的稠密深度图。重建的深度图326可以提供到slam算法以用于当机器人在其环境中移动时计算机器人的同时定位与建图。在机器人是自主车辆的实施例中,车辆控制器然后可以基于重建的深度图326和slam算法的结果而向驾驶员提供通知、确定驾驶操纵,和/或执行驾驶操纵,诸如障碍躲避操纵。

潜在空间330由图像编码器304、图像解码器306、姿态编码器312、姿态解码器314、深度编码器322和深度解码器324中的每一者共享。在实施例中,潜在空间330包括用于图像、图像的姿态矢量数据和图像的深度图中的每一者的已编码的潜在空间矢量。在此类实施例中,vae-gan301能够基于rgb图像302输入而确定任何合适的输出,例如,重建的姿态矢量数据316和/或重建的深度图326。编码器中的每一者(包括图像编码器304、姿态编码器312和深度编码器322)被配置为将输入映射到潜在空间330处的压缩型潜在表示。相反,解码器中的每一者(包括图像解码器306、姿态解码器314和深度解码器324)被配置为对来自潜在空间330的输入的压缩型潜在表示进行解码。vae-gan301的解码器还包括被配置为基于输入的解码版本而生成输出的gan。

图4示出了根据一个实施例的确定环境的深度图的过程400的示意框图。在实施例中,过程400在深度解码器324中实施,所述深度解码器324包括被配置为生成重建的深度图326的gan。应当了解,相似的过程400可以在姿态解码器314中实施,所述姿态解码器314包括被配置为生成重建的姿态矢量数据316的gan。过程400包括接收rgb图像402并且将rgb图像402馈送到生成式对抗网络(下文称为“gan”)生成器404。gan生成器404基于rgb图像402而生成深度图406。生成式对抗网络(“gan”)判别器408接收rgb图像402(即,原始图像)和由gan生成器404生成的深度图406。gan判别器408被配置为区分真图像和伪图像对410,例如,从摄像机接收的真实图像与由gan生成器404生成的深度图图像。

在实施例中,rgb图像402是从单目摄像机接收的,并且可以实时地从单目摄像机接收。在实施例中,单目摄像机附接到移动装置,诸如车辆,并且当单目摄像机处于独特位置或处于独特姿态时捕获每个rgb图像402。在实施例中,单目摄像机附接到车辆的外部并向车辆控制器提供rgb图像402,并且车辆控制器与gan生成器404通信。

gan(即,gan生成器404和gan判别器408的组合)包括深度神经网络架构,所述深度神经网络架构包括零和博弈框架中的两个对抗网。在实施例中,gan生成器404被配置为生成新数据实例,并且gan判别器408被配置为评估新数据实例的真实性。在此类实施例中,gan判别器408被配置为分析新数据实例并确定每个新数据实例是否属于实际训练数据集或者是不是人工生成的(见410)。gan生成器404被配置为创建新图像,所述新图像传送到gan判别器408,并且gan生成器404被训练以生成欺骗gan判别器408确定人工新数据实例属于实际训练数据的图像。

在实施例中,gan生成器404接收rgb图像402并且基于rgb图像402而返回深度图406。深度图406与来自实际数据集的摄像机图像流一起馈送到gan判别器408,并且gan判别器408确定每个图像的真实性预测,即,所述图像是来自实际数据集的摄像机图像还是由gan生成器404生成的深度图406。因此,在此类实施例中,gan包括双反馈回路,其中gan判别器408处于具有图像的基础事实的反馈回路中,并且gan生成器404处于具有gan判别器408的反馈回路中。在实施例中,gan判别器408是被配置为对馈送给它的图像进行分类的卷积神经网络,并且gan生成器404是逆卷积神经网络。在实施例中,gan生成器404和gan判别器408两者都在寻求优化不同且相反的目标函数或损失函数。因此,当gan生成器404改变其行为时,gan判别器408也改变其行为,反之亦然。gan生成器404和gan判别器408的损失相互推动以改进gan的输出。

在实施例中,在gan生成器404从单目摄像机接收rgb图像402之前,gan生成器404离线进行预训练。在实施例中,gan判别器408在gan生成器404被训练之前进行预训练,并且这可以提供更明显的梯度。在实施例中,使用已知数据集作为gan判别器408的初始训练数据来训练gan生成器404。gan生成器404可以用从预定义潜在空间采样的随机化输入进行播种,并且此后,由gan生成器404合成的样本由gan判别器408进行评估。

在实施例中,gan生成器404避开了本领域已知的编码器-解码器网络中常见的信息的瓶颈。在此类实施例中,gan生成器404包括gan生成器404的每个层之间的跳层连接,其中每个跳层连接使gan生成器404的所有通道级联。在实施例中,gan生成器404通过在对抗网络上进行一个梯度下降步然后在gan生成器404上进行一步之间交替来优化。在干扰时,生成器网以与训练阶段相同的方式运行。在实施例中,将实例归一化应用于gan生成器404,其中在测试时应用信号丢失并且使用测试批次的统计而不是训练批次的聚合统计来应用批次归一化。

在实施例中,gan包括如图4中所示的编码器-解码器架构。在此类实施例中,gan生成器404接收rgb图像402并且生成深度图406。gan判别器408区分包括rgb图像402和深度图406的一对。替代地,训练gan生成器404和gan判别器408,直到gan判别器408无法分清rgb图像402与深度图406之间的差异为止。这可以鼓励gan生成器404生成尽可能接近基本事实的深度图。

深度图406构成由gan生成器404执行并且基于rgb图像402的图像到图像转化。在生成深度图406时,gan生成器404从随机噪声矢量z学习建图,以确定深度图406输出图像。gan生成器404被训练以产生通过对抗gan判别器408无法与真图像区分开的输出。在实施例中,对抗gan判别器408学习在rgb图像402与深度图406之间进行分类,并且gan生成器404被训练以欺骗对抗gan判别器408。在此类实施例中,对抗gan判别器408和gan生成器404两者都观察深度图406输出图像。

在实施例中,输入图像(即,rgb图像402)和输出图像(即,深度图406)的表面外观不同,但是两者都包括相同底层结构的渲染。因此,rgb图像402中的结构与深度图406中的结构大致一致。在实施例中,围绕这个考虑来设计gan生成器404架构。

图5示出了用于定位环境中的车辆并且对车辆的环境进行建图的方法500的示意流程图。方法500可以由任何合适的计算装置执行,包括例如车辆控制器,诸如自主驾驶/辅助系统102。方法500开始并且在502处,计算装置从车辆的摄像机接收图像。在504处,计算装置将图像提供到变分自编码器生成式对抗网络(vae-gan)。在506处,计算装置从vae-gan接收基于图像的重建的姿态矢量数据和重建的深度图。在508处,计算装置基于重建的姿态矢量数据和重建的深度图来计算车辆的同时定位与建图。vae-gan使得vae-gan包括用于接收多个输入的潜在空间(见510)。

图6示出了用于定位环境中的车辆并且对车辆的环境进行建图的方法600的示意流程图。方法100可以由任何合适的计算装置执行,包括例如车辆控制器,诸如自主驾驶/辅助系统102。方法600开始并且在602处,计算装置从车辆的摄像机接收图像。在604处,计算装置将图像提供到变分自编码器生成式对抗网络(vae-gan)。vae-gan使得利用多个输入来串联地训练vae-gan,使得图像编码器、图像解码器、姿态编码器、姿态解码器、深度编码器和深度解码器中的每一者利用vae-gan的单个潜在空间进行训练(见606)。vae-gan使得vae-gan包括:经训练的图像编码器,所述经训练的图像编码器被配置为接收图像;经训练的姿态解码器,所述经训练的姿态解码器包括被配置为基于图像来生成重建的姿态矢量数据的gan;以及经训练的深度解码器,所述经训练的深度解码器包括被配置为基于图像来生成重建的深度图的gan(见608)。在610处,计算装置从vae-gan接收基于图像的重建的姿态矢量数据。在612处,计算装置从vae-gan接收基于图像的重建的深度图。在614处,计算装置基于重建的姿态矢量数据和重建的深度图来计算车辆的同时定位与建图。

图7示出了用于训练vae-gan的方法700的示意流程图。方法700可以由任何合适的计算装置执行,包括例如车辆控制器,诸如自主驾驶/辅助系统102。方法700开始并且在702处,计算装置将训练图像提供到变分自编码器生成式对抗网络(vae-gan)的图像编码器。在704处,计算装置将基于训练图像的训练姿态矢量数据提供到vae-gan的姿态编码器。在706处,计算装置将基于训练图像的训练深度图提供到vae-gan的深度编码器。vae-gan使得利用多个输入来串联地训练vae-gan,使得图像编码器、姿态编码器和深度编码器中的每一者利用vae-gan的潜在空间进行串联训练(见708)。vae-gan使得vae-gan包括已编码的潜在空间矢量,所述已编码的潜在空间矢量适用于训练图像、训练姿态矢量数据和训练深度图中的每一者(见710)。

现在参考图8,示出了示例计算装置800的框图。计算装置800可以用来执行各种程序,诸如本文所讨论的那些程序。在一个实施例中,计算装置800可以用作诸如gan生成器404的神经网络、诸如自主驾驶/辅助系统102的车辆控制器、vae-gan201、服务器等等。计算装置800可以执行如本文所讨论的各种监控功能,并且可以执行一个或多个应用程序,诸如本文描述的应用程序或功能。计算装置800可以是各种计算装置中的任一种,诸如台式计算机、内置式计算机、车辆控制系统、笔记本计算机、服务器计算机、手持计算机、平板计算机等。

计算装置800包括一个或多个处理器802、一个或多个存储器装置804、一个或多个接口806、一个或多个大容量存储装置808、一个或多个输入/输出(i/o)装置810和显示装置830,所有这些装置都耦合到总线812。处理器802包括执行存储在存储器装置804和/或大容量存储装置808中的指令的一个或多个处理器或控制器。处理器802还可以包括各种类型的计算机可读介质,诸如高速缓存存储器。

存储器装置804包括各种计算机可读介质,诸如易失性存储器(例如,随机存取存储器(ram)814)和/或非易失性存储器(例如,只读存储器(rom)816)。存储器装置804还可以包括可重写rom,诸如快闪存储器。

大容量存储装置808包括各种计算机可读介质,诸如磁带、磁盘、光盘、固态存储器(例如,快闪存储器)等。如图8中所示,特定的大容量存储装置是硬盘驱动器824。各种驱动器也可以包括在大容量存储装置808中,以使得能够从各种计算机可读介质读取和/或写入各种计算机可读介质。大容量存储装置808包括可移动介质826和/或不可移动介质。

i/o装置810包括允许将数据和/或其他信息输入到计算装置800或从计算装置800检索数据和/或其他信息的各种装置。示例性i/o装置810包括光标控制装置、键盘、小键盘、麦克风、监视器或其他显示装置、扬声器、打印机、网络接口卡、调制解调器等。

显示装置830包括能够向计算装置800的一个或多个用户显示信息的任何类型的装置。显示装置830的示例包括监视器、显示终端、视频投影装置等。

接口806包括允许计算装置800与其他系统、装置或计算环境交互的各种接口。示例性接口806可以包括任何数量的不同网络接口820,诸如局域网(lan)、广域网(wan)、无线网络和互联网的接口。其他接口包括用户接口818和外围装置接口822。接口806还可以包括一个或多个用户接口元件818。接口806还可以包括一个或多个外围接口,诸如用于打印机、指示装置(鼠标、跟踪板或现在为本领域普通技术人员所知的或稍后发现的任何合适的用户接口)、键盘等的接口。

总线812允许处理器802、存储器装置804、接口806、大容量存储装置808和i/o装置810彼此通信,以及与耦合到总线812的其他装置或部件通信。总线812表示几种类型的总线结构中的一种或多种,诸如系统总线、pci总线、ieee总线、usb总线等等。

出于说明目的,程序和其他可执行程序部件在本文中示为离散块,但是应理解,此类程序和部件可以在不同时间驻留在计算装置800的不同存储部件中并由处理器802执行。替代地,本文中描述的系统和程序可以用硬件或者硬件、软件和/或固件的组合来实施。例如,一个或多个专用集成电路(asic)可以被编程为执行本文描述的系统和程序中的一者或多者。

示例

以下示例涉及其他实施例。

示例1是一种用于对环境中的机器人进行同时定位与建图的方法。所述方法包括:从车辆的摄像机接收图像;将所述图像提供到变分自编码器生成式对抗网络(vae-gan);从所述vae-gan接收基于所述图像的重建的姿态矢量数据和重建的深度图;以及基于所述重建的姿态矢量数据和所述重建的深度图来计算所述车辆的同时定位与建图;其中所述vae-gan包括用于接收多个输入的潜在空间。

示例2是如示例1所述的方法,所述方法还包括训练所述vae-gan,其中训练所述vae-gan包括:将训练图像提供到所述vae-gan的图像编码器,其中所述图像编码器被配置为将所述训练图像映射到压缩型潜在表示;将基于所述训练图像的训练姿态矢量数据提供到所述vae-gan的姿态编码器,其中所述姿态编码器被配置为将所述训练姿态矢量数据映射到所述压缩型潜在表示;以及将基于所述训练图像的训练深度图提供到所述vae-gan的深度编码器,其中所述深度编码器被配置为将所述训练深度图映射到所述压缩型潜在表示。

示例3是如示例1至2中任一项所述的方法,其中利用多个输入来串联地训练所述vae-gan,使得以下每一者:所述图像编码器和图像解码器;所述姿态编码器和姿态解码器;以及所述深度编码器和深度解码器利用所述vae-gan的所述潜在空间进行串联训练。

示例4是如示例1至3中任一项所述的方法,其中所述训练图像、所述训练姿态矢量数据和所述训练深度图中的每一者共享所述vae-gan的所述潜在空间。

示例5是如示例1至4中任一项所述的方法,其中所述vae-gan包括已编码的潜在空间矢量,所述已编码的潜在空间矢量适用于所述训练图像、所述训练姿态矢量数据和所述训练深度图中的每一者。

示例6是如示例1至5中任一项所述的方法,所述方法还包括基于所述训练图像来确定所述训练姿态矢量数据,其中确定所述训练姿态矢量数据包括:接收形成立体图像序列的多个立体图像;以及使用立体视觉测程法来计算所述立体图像序列的连续图像的六自由度姿态矢量数据;其中提供到所述vae-gan的所述训练图像包括所述立体图像序列的立体图像对中的单个图像。

示例7是如示例1至6中任一项所述的方法,其中所述车辆的所述摄像机包括被配置为捕获所述车辆的环境的图像序列的单目摄像机,并且其中所述图像包括红绿蓝(rgb)图像。

示例8是如示例1至7中任一项所述的方法,其中所述vae-gan包括与解码器相对的编码器,并且其中所述解码器包括被配置为生成输出的生成式对抗网络(gan),其中所述gan包括gan生成器和gan判别器。

示例9是如示例1至8中任一项所述的方法,其中所述vae-gan包括:经训练的图像编码器,所述经训练的图像编码器被配置为接收所述图像;经训练的姿态解码器,所述经训练的姿态解码器包括被配置为基于所述图像来生成所述重建的姿态矢量数据的gan;以及经训练的深度解码器,所述经训练的深度解码器包括被配置为基于所述图像来生成所述重建的深度图的gan。

示例10是如示例1至9中任一项所述的方法,其中所述vae-gan包括:图像编码器,所述图像编码器被配置为将所述图像映射到压缩型潜在表示;姿态解码器,所述姿态解码器包括与gan判别器对抗的gan生成器;深度解码器,所述深度解码器包括与gan判别器对抗的gan生成器;以及潜在空间,其中所述潜在空间为所述图像编码器、所述姿态解码器和所述深度解码器中的每一者所共用。

示例11是如示例1至10中任一项所述的方法,其中所述vae-gan的所述潜在空间包括用于所述图像编码器、所述姿态解码器和所述深度解码器中的每一者的已编码的潜在空间矢量。

示例12是如示例1至11中任一项所述的方法,其中所述重建的姿态矢量数据包括与所述车辆的所述摄像机有关的六自由度姿态数据。

示例13是非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储指令,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器:从车辆的摄像机接收图像;将所述图像提供到变分自编码器生成式对抗网络(vae-gan);从所述vae-gan接收基于所述图像的重建的姿态矢量数据和重建的深度图;以及基于所述重建的姿态矢量数据和所述重建的深度图来计算所述车辆的同时定位与建图;其中所述vae-gan包括用于接收多个输入的潜在空间。

示例14是如示例13所述的非暂时性计算机可读存储介质,其中所述指令进一步致使所述一个或多个处理器训练所述vae-gan,其中训练所述vae-gan包括:将训练图像提供到所述vae-gan的图像编码器,其中所述图像编码器被配置为将所述训练图像映射到压缩型潜在表示;将基于所述训练图像的训练姿态矢量数据提供到所述vae-gan的姿态编码器,其中所述姿态编码器被配置为将所述训练姿态矢量数据映射到所述压缩型潜在表示;以及将基于所述训练图像的训练深度图提供到所述vae-gan的深度编码器,其中所述深度编码器被配置为将所述训练深度图映射到所述压缩型潜在表示。

示例15是如权利要求13至14中任一项所述的非暂时性计算机可读存储介质,其中所述指令致使所述一个或多个处理器利用多个输入来串联地训练所述vae-gan,使得以下每一者:所述图像编码器和图像解码器;所述姿态编码器和姿态解码器;以及所述深度编码器和深度解码器进行串联训练,使得所述训练图像、所述训练姿态矢量数据和所述训练深度图中的每一者共享所述vae-gan的所述潜在空间。

示例16是如示例13至15中任一项所述的非暂时性计算机可读存储介质,其中所述指令进一步致使所述一个或多个处理器基于所述训练图像来计算所述训练姿态矢量数据,其中计算所述训练姿态矢量数据包括:接收形成立体图像序列的多个立体图像;以及使用立体视觉测程法来计算所述立体图像序列的连续图像的六自由度姿态矢量数据;其中提供到所述vae-gan的所述训练图像包括所述立体图像序列的立体图像对中的单个图像。

示例17是如示例13至16中任一项所述的非暂时性计算机可读存储介质,其中所述vae-gan包括与解码器相对的编码器,并且其中所述解码器包括被配置为生成输出的生成式对抗网络(gan),其中所述gan包括gan生成器和gan判别器。

示例18是一种用于对环境中的车辆进行同时定位与建图的系统,所述系统包括:车辆的单目摄像机;车辆控制器,所述车辆控制器与所述单目摄像机通信,其中所述车辆控制器包括存储指令的非暂时性计算机可读存储介质,所述指令在由一个或多个处理器执行时致使所述一个或多个处理器:从所述车辆的所述单目摄像机接收图像;将所述图像提供到变分自编码器生成式对抗网络(vae-gan);从所述vae-gan接收基于所述图像的重建的姿态矢量数据;从所述vae-gan接收基于所述图像的重建的深度图;以及基于所述重建的姿态矢量数据和所述重建的深度图中的一者或多者来计算所述车辆的同时定位与建图;其中所述vae-gan包括用于接收多个输入的潜在空间。

示例19是如示例18所述的系统,其中所述vae-gan包括:图像编码器,所述图像编码器被配置为将所述图像映射到压缩型潜在表示;姿态解码器,所述姿态解码器包括与gan判别器对抗的gan生成器;深度解码器,所述深度解码器包括与gan判别器对抗的gan生成器;以及潜在空间,其中所述潜在空间为所述图像编码器、所述姿态解码器和所述深度解码器中的每一者所共用。

示例20是如示例18至19中任一项所述的系统,其中所述vae-gan包括:图像编码器,所述图像编码器被配置为将所述图像映射到压缩型潜在表示;姿态解码器,所述姿态解码器包括与gan判别器对抗的gan生成器;深度解码器,所述深度解码器包括与gan判别器对抗的gan生成器;以及潜在空间,其中所述潜在空间为所述图像编码器、所述姿态解码器和所述深度解码器中的每一者所共用。

示例21是一种系统或装置,所述系统或装置包括用于实施示例1至20中任一项所述的方法、系统或装置的手段。

在以上公开内容中,参考附图,所述附图形成本公开的一部分并且其中通过图示的方式示出可以实践本公开的具体实现方式。应当理解,在不脱离本公开的范围的情况下,可以利用其他实现方式并且可以做出结构改变。本说明书中对于“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每一个实施例可以不必包括所述特定特征、结构或特性。此外,此类短语不一定指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,应当认为,无论是否明确描述,结合其他实施例实现此类特征、结构或特性都在本领域技术人员的知识范围内。

本文公开的系统、装置和方法的实现方式可以包括或利用包括计算机硬件(诸如,例如本文所讨论的一个或多个处理器和系统存储器)的专用或通用计算机。本公开的范围内的实现方式还可以包括用于携载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。此类计算机可读介质可以是能够由通用或专用计算机系统存取的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(装置)。携载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实现方式可以包括至少两种截然不同的计算机可读介质:计算机存储介质(装置)和传输介质。

计算机存储介质(装置)包括ram、rom、eeprom、cd-rom、固态驱动器(“ssd”)(例如,基于ram)、快闪存储器、相变存储器(“pcm”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁存储装置、或者可以用于以计算机可执行指令或数据结构的形式存储所需程序代码手段并可已由通用或专用计算机访问的任何其他介质。

本文公开的装置、系统以及方法的实现方式可以通过计算机网络进行通信。“网络”被限定为能够在计算机系统和/或模块和/或其他电子装置之间传输电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬接线、无线或者硬接线或无线的组合)向计算机传递或提供信息时,计算机适当地将连接视为传输介质。传输介质可以包括网络和/或数据链路,所述网络和/或数据链路可以用于以计算机可执行指令或数据结构的形式携载所需的程序代码手段并且可以由通用或专用计算机访问。上述的组合也应当包括在计算机可读介质的范围内。

计算机可执行指令包括例如指令和数据,所述指令和数据当在处理器处执行时致使通用计算机、专用计算机或专用处理装置执行特定功能或功能组。计算机可执行指令可以是例如二进制代码、中间格式指令(诸如汇编语言)或者甚至源代码。虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于已描述的上述特征或动作。相反,所描述的特征和动作被公开作为实施权利要求的示例性形式。

本领域技术人员将了解,本公开可以在具有许多类型的计算机系统配置的网络计算环境中实践,所述计算机系统配置包括内置式车辆计算机、个人计算机、台式计算机、膝上型计算机、消息处理器、手持装置、多处理器系统、基于微处理器的或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板计算机、寻呼机、路由器、交换机、各种存储装置等。本公开还可以在分布式系统环境中实践,其中通过网络链接(通过硬接线数据链路、无线数据链路或通过硬接线与无线数据链路的组合)的本地和远程计算机系统都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储装置两者中。

此外,在适当的情况下,本文描述的功能可以在以下一者或多者中执行:硬件、软件、固件、数字部件或模拟部件。例如,一个或多个专用集成电路(asic)可以被编程为执行本文描述的系统和程序中的一者或多者。某些术语在整个说明书和权利要求中用于指代特定的系统部件。术语“模块”和“部件”用在某些部件的名称中以反映它们在软件、硬件、电路、传感器等中的实现独立性。本领域技术人员将了解,可以通过不同名称来提及部件。本文件并不意图区分名称不同但功能相同的部件。

应当注意,上面讨论的传感器实施例可以包括计算机硬件、软件、固件或它们的任何组合以执行其功能的至少一部分。例如,传感器可以包括被配置为在一个或多个处理器中执行的计算机代码,并且可以包括由计算机代码控制的硬件逻辑/电路。这些示例装置在本文中提供用于说明目的,而不意图进行限制。本公开的实施例可以在其他类型的装置中实施,如相关领域的技术人员将了解。

本公开的至少一些实施例涉及计算机程序产品,所述计算机程序产品包括存储在任何计算机可用介质上的此类逻辑(例如,呈软件形式)。此类软件在一个或多个数据处理装置中执行时致使装置如本文所述进行操作。

虽然上文已描述了本公开的各种实施例,但是应当理解,它们仅通过示例方式呈现,而非限制。相关领域技术人员应明白,在不脱离本公开的精神和范围的情况下,可以作出形式和细节方面的各种改变。因此,本公开的广度和范围不应受上述示例性实施例中的任一者限制,而是应仅根据所附权利要求及其等效物来限定。出于示出和描述目的已呈现了以上描述。这并非旨在穷举或将本公开限制为所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。此外,应当注意,任何或所有上述替代实现方式可以以期望的任何组合使用以形成本公开的附加混合实现方式。

此外,虽然已经描述和示出了本公开的具体实现方式,但是本公开不限于如此描述和示出的各部分的特定形式或布置。本公开的范围由所附权利要求、在此提交的和在不同申请中提交的任何未来权利要求以及其等效物来限定。

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