CN111695717A - 自主机器应用中的时间信息预测 - Google Patents

自主机器应用中的时间信息预测 Download PDF

Info

Publication number
CN111695717A
CN111695717A CN202010009841.4A CN202010009841A CN111695717A CN 111695717 A CN111695717 A CN 111695717A CN 202010009841 A CN202010009841 A CN 202010009841A CN 111695717 A CN111695717 A CN 111695717A
Authority
CN
China
Prior art keywords
data
image
vehicle
sequential
images
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
CN202010009841.4A
Other languages
English (en)
Inventor
吴越
P·贾妮斯
童心
杨证杰
M·帕克
D·尼斯特
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN111695717A publication Critical patent/CN111695717A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • 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/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • G05D1/0289Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G06N3/0418Architecture, e.g. interconnection topology using chaos or fractal principles
    • 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
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/59Context or environment of the image inside of a vehicle, e.g. relating to seat occupancy, driver state or inner lighting conditions
    • G06V20/597Recognising the driver's state or behaviour, e.g. attention or drowsiness
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems
    • G08G1/166Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes
    • 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/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • 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/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30261Obstacle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Evolutionary Biology (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Electromagnetism (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Tourism & Hospitality (AREA)

Abstract

在各种示例中,可以使用通过将传感器数据与表示图像序列的图像数据相关联(例如,通过交叉传感器融合)生成的地面实况数据来训练顺序深度神经网络(DNN)。在部署中,顺序DNN可以利用传感器相关性来仅使用图像数据计算各种预测。预测可以包括自我车辆的视场中的对象在世界空间中的速度、图像空间中的对象的当前和未来位置,和/或对象物体与自我车辆之间的碰撞时间(TTC)。这些预测可以用作感知***的一部分来理解和响应自我车辆的当前物理环境。

Description

自主机器应用中的时间信息预测
相关申请的交叉引用
本申请要求2019年3月15日提交的美国临时申请No.62/819,412的优先权,其通过引用整体并入本文。
背景技术
准确地预测时间信息的能力对于生成用于障碍物分析的世界模型和用于辅助车辆的控制确定是至关重要的。例如,时间信息预测可以作为自动驾驶软件栈的感知层的一部分生成,并且可以由世界模型管理器使用-除了绘制地图、定位和其他感知功能之外-还帮助车辆理解环境。时间信息预测还可以作为高级驾驶员辅助***(ADAS)的基本输入,例如自动紧急制动(AEB)和自适应巡航控制(ACC)。
一些传统***已经使用传统的计算机视觉算法(例如跟踪算法)来估计局部外观的变化以提取可用于生成时间信息估计的局部运动信息。然而,作为非限制性示例,这些计算机视觉算法对非刚性运动和观察方向(例如,障碍物的旋转)敏感,这可能导致较差的预测-尤其对于诸如行人的对象类型。环境中的物体或障碍物的背景也无法使用传统的计算机视觉算法来考虑,因此主流算法通常不能捕获或创建对象或障碍物如何相对于其静态环境移动的理解。此外,这些算法使用简单的内部机制来执行,这些机制依赖于固定的时基线来计算时间信息-从而不单独地考虑环境中的不同对象、场景和/或条件,并且导致较少提供有用信息的和准确的预测。
发明内容
本公开的实施例涉及用于自主机应用中的感知的时间信息预测。公开了涉及使用顺序深度神经网络(DNN)(例如,递归神经网络(RNN))来预测自主机器应用中使用的碰撞时间(TTC)、二维(2D)物体运动以及三维(3D)物体运动的***和方法。
与传统***(诸如上述那些)相比,本公开的***使用传感器数据和图像数据之间的相关性来生成地面实况数据,用于训练顺序DNN以预测-在部署中-TTC、2D物体运动和3D物体运动,无需传感器数据作为输入。结果,顺序DNN能够仅从图像生成预测,而不需要在部署期间车辆的密集光流或运动以产生预测-如传统***所需要的那样。为了在部署期间生成准确的结果而不需要传感器数据输入,本公开的***利用使用交叉传感器融合的自动地面实况数据生成管道(pipeline),用于过滤掉不一致的地面实况或训练数据的专用预处理步骤,增加训练数据集的鲁棒性的训练数据的时间增加,以及平滑预测的后处理步骤。
另外,取决于顺序DNN的实现,本***实现了无状态或状态训练和推断方法,其提高了***的准确性和计算效率。例如,描述了无状态推断方法,其利用先前的计算或执行并行计算来提高顺序DNN的预测的运行时效率和准确性。作为另一示例,描述了状态训练方法,其通过随机化训练数据集的小批量中的帧的序列长度、步幅和/或方向来降低过度拟合到训练数据集的可能性。
附图说明
下面参考附图详细描述用于自主机应用中的感知的时间信息预测的本***和方法,其中:
图1是示出了根据本公开的一些实施例的用于对环境中的对象进行时间预测的示例过程的数据流程图;
图2-3是根据本公开的一些实施例的顺序深度神经网络(DNN)的时间信息预测的示例可视化;
图4是示出根据本公开的一些实施例的使用顺序DNN进行时间信息预测的方法400的流程图;
图5A是根据本公开的一些实施例的用于无状态推断的示例数据流程图;
图5B是示出根据本公开的一些实施例的使用缓冲区的无状态推断的方法的流程图;
图6A是根据本公开的一些实施例的用于无状态推断的示例数据流程图;
图6B是示出根据本公开的一些实施例的使用并行处理的无状态推断的方法的流程图;
图7是示出根据本公开的一些实施例的用于训练顺序DNN以预测关于环境中的对象的时间信息的示例过程的数据流程图;
图8是根据本公开的一些实施例的用于生成地面实况的交叉传感器融合技术的示例可视化;
图9是示出根据本公开的一些实施例的使用交叉传感器融合生成自动地面实况的方法的流程图;
图10是根据本公开的一些实施例的时间增强的示例图示;
图11是示出根据本公开的一些实施例的用于时间增强的方法的流程图;
图12是根据本公开的一些实施例的用于状态训练的训练数据集的示例图示;
图13是示出根据本公开的一些实施例的用于状态训练的方法的流程图;
图14A是根据本公开的一些实施例的示例性自主车辆的图示;
图14B是根据本公开的一些实施例的图14A的示例性自主车辆的相机位置和视场的示例;
图14C是根据本公开的一些实施例的图14A的示例性自主车辆的示例性***架构的框图;
图14D是根据本公开的一些实施例的用于基于云的服务器和图14A的示例性自主车辆之间的通信的***图;以及
图15是适用于实现本公开的一些实施例的示例性计算设备的框图。
具体实施方式
本文公开的***和方法涉及用于自主机应用中的感知的时间信息预测。尽管可以关于示例性自主车辆1400(在本文中可选地称为“车辆1400”或“自主车辆1400”,其示例参考图14A-14D描述)来描述本公开,但这不是限制。例如,本文描述的***和方法可以由非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、机器人、货车、越野车、飞行器、船、航天飞机、应急响应车辆、摩托车、电动或机动自行车、飞机、工程车辆、水下航行器、无人驾驶飞机和/或其他车辆类型使用,但不限于此。此外,尽管本公开可以关于自动驾驶描述,这不是限制性的。例如,本文描述的***和方法可以用在机器人、航空***、船舶***和/或其他技术领域,例如用于感知、世界模型管理、路径规划、避障和/或其他过程。
使用顺序深度神经网络的时间预测
可以使用与传感器数据(例如,LIDAR数据、RADAR数据等)相关的图像数据来训练本公开的深度神经网络(DNN),例如通过使用交叉传感器融合技术。DNN可以包括递归神经网络(RNN),其可以具有一个或更多个长短期记忆(LSTM)层和/或门控递归单元(GRU)层。结果,可以使用图像数据和传感器数据的组合来训练DNN以预测时间信息,诸如对应于环境中的对象的碰撞时间(TTC)、二维(2D)运动和/或三维(3D)运动。与传统***相比,并且作为本文描述的训练方法的结果,DNN可以被配置为仅使用图像数据生成部署中的时间信息的准确预测(例如,部署中的RNN可以学习无需补充传感器数据生成具有补充传感器数据准确度的时间信息)。
用于训练DNN的图像数据可以表示为图像序列,并且图像序列可以应用于DNN。然后,DNN可以预测作为输出的数据,该数据表示对象的当前位置和对象的一个或多个未来位置(例如,作为边界框位置),和/或表示对象的速度的数据。可以使用对象的当前和未来位置处的边界形状之间的比例变化来生成对应于TTC的倒数(例如,1/TTC)的紧急度预测。通过训练DNN来预测TTC的倒数,推动到无穷远(例如,在自我车辆和另一车辆之间的相对运动为零处)的输出可以被估计为接近零(例如,被有效地移除),从而导致更有效的处理和预测值的可用性。此外,在训练期间,使用TTC的倒数更有利于基于梯度下降的优化方法。图像数据可以包括时间戳(例如,对应于帧速率),并且除了比例变化之外,***还可以使用时间戳(或帧速率)。例如,时间戳(或帧速率)和比例变化可以用于生成紧急度或TTC(例如,TTC可以表达或表示为等于或近似等于Δt/Δs,其中t是捕获两帧之间的时间,s是两帧中对象的边界形状之间的比例变化)。在一些示例中,DNN可以隐含地考虑Δt,使得DNN的输出可以以最小的后处理直接使用(例如,不必在后处理计算中使用帧速率以生成TTC的最终预测)。在其他示例中,可以训练DNN以输出Δs值,并且可以使用后处理来使用Δt的值来确定TTC(例如,其中DNN不隐含地考虑对于Δt)。
在一些示例中,除了尺寸信息(例如,边界形状的边的长度)之外,当前和未来位置可以由DNN输出为边界形状的原点或中心的位置。在其他示例中,除了尺寸信息之外,当前位置可以被输出为边界形状的原点或中心的位置,并且未来位置可以作为当前边界形状的原点或中心的平移输出,除了边界形状尺寸的比例变化值之外。可以通过查看图像序列中的图像上的时间戳和对象的位置变化来为对象计算速度信息。
一旦输出由DNN预测,就可以解码输出。例如,在计算1/TTC的情况下,1/TTC值可以转换为TTC。在预测当前和未来位置的情况下,输出可用于生成边界形状(例如,将边界形状与图像中的对应像素位置相关联)。另外,在一些示例中,时间平滑可以应用于一个或更多个输出。时间平滑可以包括状态估计器(诸如卡尔曼滤波器)。时间平滑可以应用于图像空间中,或者可以相对于自我车辆应用于3D世界空间,相对于世界空间中的某个固定原点应用于3D世界空间,或者应用于2D世界空间中的鸟瞰视图中。
现在参考图1,图1是示出根据本公开的一些实施例的用于对环境中的对象进行时间预测的示例过程100的数据流程图。在高级别,过程100可以包括一个或更多个顺序深度神经网络(DNN)104,其接收一个或更多个输入,例如图像数据102,以及生成一个或更多个输出110,例如碰撞时间(TTC)112、对象二维(2D)运动114和/或对象三维(3D)运动116。图像数据102可包括由自主车辆(例如,车辆1400,如本文至少关于图14A-14D所述)的一个或更多个相机生成的图像数据。在一些实施例中,除了图像数据102之外或作为替代,顺序DNN104可以使用来自一个或更多个LIDAR传感器1464的LIDAR数据,来自一个或更多个RADAR传感器1460的RADAR数据,来自一个或更多个SONAR传感器的SONAR数据,来自一个或更多个超声波传感器1462的数据,来自一个或更多个麦克风1496的音频数据等。
可以训练顺序DNN 104以生成TTC 112,对象2D运动114和/或对象3D运动116。这些输出110可以由世界模型管理器(例如,自动驾驶软件栈的世界模型管理器层),感知组件(例如,自动驾驶软件栈的感知层),计划组件(例如,自动驾驶软件栈的计划层),障碍物避让组件(例如,自动驾驶软件栈的障碍物或撞击避让层),和/或自动驾驶软件栈的其他组件或层使用,以帮助自主车辆1400执行一个或更多个环境中的操作(例如,世界模型管理、避障、路径规划等)。
在一些实施例中,图像数据102可以包括表示车辆的一个或更多个相机(例如立体相机1468、宽视野相机1470(例如,鱼眼相机)、红外相机1472、环绕相机1474(例如,360度相机)、远程和/或中程相机1498和/或自主车辆1400(图14A-14D)的其他相机类型)的视场的图像的数据。在一些非限制性示例中,可以使用一个或更多个面向前相机和/或一个或更多个侧向相机。从面向前和/或侧向视角捕获的图像数据102可用于导航时的感知-例如,在车道内、通过车道变换、通过转弯、通过交叉路口等-因为面向前相机和/或侧向相机可以包括视场,其包括车辆1400的当前行驶车道、车辆1400的相邻车道、其他对象的迎面而来的车道、行人区和/或驾驶表面的边界。在一些示例中,可以使用多于一个相机或其他传感器(例如,LIDAR传感器、RADAR传感器等)来合并多个视场(例如,远程相机1498、环绕相机1474、面向前立体相机1468和/或图14B的面向前宽视野相机1470的视场)。
在一些示例中,可以以一种格式(例如,RCCB、RCCC、RBGC等)捕获图像数据102,然后将其转换(例如,在图像数据的预处理期间)为另一种格式。在一些其他示例中,可以将图像数据作为输入提供给图像数据预处理器(未示出)以生成预处理的图像数据。许多类型的图像或格式可以用作输入,例如,压缩图像(诸如联合图像专家组(JPEG)、红绿蓝(RGB)或亮度/色度(YUV)格式),压缩的图像作为源自压缩视频格式(例如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC)),原始图像(例如源自红色清除蓝色(RCCB)、红色清除(RCCC)或其他类型成像传感器)的帧。在一些示例中,不同的格式和/或分辨率可以用于训练顺序DNN 104而不是用于推断(例如,在自主车辆1400中部署顺序DNN期间)。
图像数据预处理器可以使用表示一个或更多个图像(或其他数据表示)的图像数据102,并以多维阵列/矩阵的形式将图像数据加载到存储器中(或者称为张量,或者更具体地,在一些示例中称为输入张量)。阵列大小可以被计算和/或表示为W x H x C,其中W代表像素的图像宽度,H代表像素的高度,C代表颜色通道的数量。在不失一般性的情况下,输入图像分量的其他类型和顺序也是可能的。另外,批量大小B可以在使用批处理时用作维度(例如,另外的第四维度)。批处理可用于训练和/或推断。因此,输入张量可以表示维度的阵列W x H x C x B。维度的任何排序都是可能的,这可以取决于用于实现传感器数据预处理器的特定硬件和软件。可以选择该排序以最大化顺序DNN 104的训练和/或推断性能。
在一些实施例中,图像数据预处理器可以采用预处理图像管线来处理由相机获取并包括在图像数据102中的原始图像以产生预处理图像数据,其可以表示到顺序DNN 104的输入层的输入图像。合适的预处理图像管线的示例可以使用来自相机的图像的原始RCCB拜耳(例如,1通道)类型并将该图像转换为以固定精度(例如,每通道16位)格式存储的RCB(例如,3通道)平面图像。预处理图像管线可以包括解压缩、降噪、去马赛克、白平衡、直方图计算和/或自适应全局色调映射(例如,以该顺序或以替代顺序)。
在图像数据预处理器采用降噪的情况下,它可以包括拜耳域中的双边去噪。在图像数据预处理器采用去马赛克的情况下,它可以包括双线性插值。在图像数据预处理器采用直方图计算的情况下,其可以涉及计算C通道的直方图,并且在一些示例中可以与解压缩或降噪合并。在图像数据预处理器采用自适应全局色调映射的情况下,其可以包括执行自适应伽马-对数变换。这可以包括计算直方图、获得中间色调级别和/或利用中间色调级别估计最大亮度。
顺序DNN 104可以包括递归神经网络(RNN)、门控递归单元(GRU)DNN、长短期记忆(LSTM)DNN和/或其他类型的顺序DNN 104(例如,使用顺序数据(例如图像序列)作为输入的DNN)。尽管本文关于使用顺序DNN,特别是RNN、LSTM和/或GRU作为顺序DNN 104来描述示例,但是这不是限制性的。例如但不限于,顺序DNN 104可以更广泛地包括任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、
Figure BDA0002356725310000071
Bayes、k-最近邻(Knn)、K表示聚类、随机森林、降维算法、梯度增强算法、神经网络(例如,自动编码器、卷积、递归、感知器、LSTM、GRU、Hopfield、Boltzmann、深信念、反卷积、生成对抗、液体状态机等)的机器学习模型和/或其他类型的机器学习模型。
顺序DNN 104可以生成或预测可以经历解码106的输出数据,并且在一些实施例中,可以经历后处理108(例如,时间平滑)以最终生成输出110。可以输出TTC 112信息,用于图像数据102中的每个检测到的对象,作为以1/秒为单元表示的1/TTC的值。例如,关于图2的可视化200,顺序RNN 104可以预测公共汽车202的值3.07 1/s,车辆206的值0.03 1/s,以及行人210的值1.98 1/s。顺序DNN 104还可以预测图像中的每个对象的边界形状,例如公共汽车202的边界形状204,车辆206的边界形状208,以及行人210的边界形状212。在可视化200中,边界形状可以用具有不同显示变化的边界来表示,以指示紧急性(例如,对于车辆1400和对象即将到来的路径的交叉)。例如,边界形状204可以由第一虚线类型指示,以指示中等紧急度,边界形状212可以由第二虚线类型指示,以指示高紧急度,并且边界形状208可以是用实线表示,以指示低紧急度。尽管在可视化200中用虚线和实线示出,但这不是限制性的。在一些实施例中,紧急度可以用使用不同的颜色、图案、显示频率、形状、线型和/或其他视觉指示器可以用于指示相对紧急性的显示器表示。作为包括1/TTC的值的顺序RNN 104的输出的结果,解码可以包括检索该值,并将该值转换为TTC 112(例如,通过将1除以该值)。在一些实施例中,1/TTC或TTC 112的值可以经历后处理,如本文中更详细描述的,例如以在时间上平滑值。根据实施例,车辆1400可以使用1/TTC的值或者可以使用TTC 112的值来执行一个或更多个操作,例如但不限于世界模型管理、路径规划和/或避障。
尽管TTC包括“碰撞”,但这不是字面意思。例如,TTC可以是车辆1400(例如,自我车辆)和环境中的物体何时将沿着水平面会合的指示符(例如,环境中的物体将与平面相遇的地方,该平面相对于地面垂直并且与例如车辆1400的后轴平行),但不应该被解释为实际碰撞的指示。例如,参考图2,公共汽车202可以在车辆1400的相反方向上行驶(例如,自我车辆的相机捕获在可视化200中使用的图像)在道路的相对侧。这样,只要车辆1400和公共汽车202都停留在它们各自的车道中,就不会发生碰撞。类似地,关于车辆1400和车辆206,只要两辆车都停留在他们的车道中,就不会发生碰撞-仅仅是在水平方向上在两辆车之间延伸的平面的两辆车的重叠或交叉(例如,关于图2,从页面右侧到页面左侧)。
对于每个图像中的每个检测到的对象,对象2D运动114可以输出作为对象的当前位置的边界形状(例如,以2D像素距离测量的边界框的长度和宽度)的2D图像空间和尺寸中的边界形状的原点或中心的位置(例如,像素(x,y)坐标)。在一些示例中,为了确定对象的一个或多个未来位置,顺序DNN 104可以在2D图像空间中输出用于原点的平移值(例如,像素距离中的x和y平移)以及维度的比例尺寸的变化。这样,当前边界形状的值和平移值以及比例尺寸的变化可以用于确定(例如,在解码106期间)2D图像空间中的位置和未来边界形状的2D图像空间中的尺寸。在其他示例中,为了确定对象的一个或多个未来位置,可以由顺序DNN 104输出未来边界形状原点和未来边界形状的未来维度。在任一示例中,可以在顺序DNN 104的输出上执行解码106以确定每个对象的当前和未来边界形状的2D图像空间中的位置,以便跟踪或确定对象2D运动114。如本文所述,在一些示例中,由顺序DNN 104输出的值和/或解码后的值可以进行后处理,例如在时间上平滑值。
作为非限制性示例,并且如图3所示,可视化300包括具有各自的当前边界形状(由实线表示)和未来的边界形状(由虚线表示)公共汽车302、车辆308和行人314。例如,公共汽车302具有当前边界形状304和基于顺序DNN 104的对象2D运动116的输出而生成的未来边界形状306。汽车308具有当前边界形状310和基于顺序DNN 104的对象2D运动116的输出生成的未来边界形状312。类似地,行人314具有当前边界形状316和基于顺序DNN 104的对象2D运动116的输出生成的未来边界形状318。物体2D运动114可以用于确定相机的视场中的对象的未来位置,并且关于图像序列中的每个图像。对象2D运动-包括对象未来位置-可以用于帮助自动驾驶软件堆栈确定对象将来可能在何处(例如,合并、改变车道、停留在车道、转向等),从而协助避障、路径规划、世界模型生成和/或车辆1400的其他过程或操作。
对于每个图像中的每个检测到的对象,可以输出对象3D运动116,作为包括世界空间中x方向上的速度、y方向上的速度和z方向上的速度的三维阵列。这样,可以使用LIDAR数据和RADAR数据与图像数据的交叉传感器融合来训练顺序DNN 104,以生成3D速度向量作为输出,该输出对应于图象中的一个或更多个对象的对象3D运动116。这样,可以训练顺序DNN104以使用图像序列内的对象的位置的变化以及时间戳(例如,以确定每个连续图像之间的时间)来学***滑值。
如本文所述,后处理108可包括时间平滑。例如,时间平滑可以包括状态估计器(诸如卡尔曼滤波器)。时间平滑可以应用于图像空间中,或者可以应用于相对于车辆1400的3D世界空间,相对于世界空间中的某些固定原点的3D世界空间,或者2D世界空间中的鸟瞰视图。
现在参考图4,本文描述的方法400的每个块包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由存储在存储器中的处理器执行指令执行。方法400还可以体现为存储在计算机存储介质上的计算机可用指令。方法400可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,参考图1的过程100描述了方法400。然而,方法400可以附加地或替代地由任何一个过程或任何过程组合中的任何一个***或任何***组合执行,包括但不限于本文所述的那些。
图4是示出根据本公开的一些实施例的使用顺序DNN进行时间信息预测的方法400的流程图。在框B402,方法400包括接收表示图像序列的图像数据。例如,可以接收图像数据102,其中图像数据102表示图像序列(例如,由车辆1400上的一个或更多个相机捕获)。
在框B404,方法400包括将图像数据应用于顺序深度神经网络(DNN)。例如,图像数据102可以应用于顺序DNN 104。如本文所述,因为可以通过将交叉传感器融合或另一传感器数据应用于图像数据相关技术来训练顺序DNN 104,所以顺序DNN 104可以仅使用图像数据102作为输入来预测时间信息。
在框B406,方法400包括通过顺序DNN计算对应于在图像序列的一个或更多个图像中描绘的对象在世界空间中的速度的第一输出。例如,顺序DNN 104可以预测对象3D运动116,如本文所述。
在框408处,方法400包括通过顺序DNN计算对应于图像空间中对象的当前位置和对象的未来位置的第二输出。例如,顺序DNN 104可以预测对象2D运动114,如本文所述。
在框B410,方法400包括通过顺序DNN计算对应于碰撞时间(TTC)的第三输出。例如,顺序DNN 104可以预测TTC的倒数(例如,1/TTC),并且1/TTC值可以被转换为TTC 112。在其他示例中,顺序DNN 104可以被训练以直接预测TTC 112,或***可以使用TTC的倒数。
在一些实施例中,块B406、B408和B410中的一个或更多个可以并行执行(例如,使用并行处理)。结果,可以在保持准确性的同时减少运行时间。
在框B412,方法400包括使用第一输出、第二输出或第三输出中的至少一个来执行一个或更多个操作。例如,车辆1400(或其自动驾驶软件栈)可以使用TTC 112、对象2D运动114和/或对象3D运动116来执行一个或更多个操作。一个或更多个操作可以包括但不限于世界模型管理、路径规划,车辆控制和/或障碍或碰撞避免。
顺序深度神经网络的无状态推断
本文描述的无状态推断应用可以用于任何顺序模型的任何推断方法,并且不限于本文描述的特定实施例。然而,在顺序DNN 104的部署期间,可以在本公开的一些示例中使用无状态推断。例如,在无状态模式下训练顺序DNN 104(例如,在每个图像序列处重置隐藏状态),提供输入数据(例如,图像数据102)的方法可能要求来自多个图像的数据(例如,特征映射)由顺序DNN 104处理以确定基于时间的预测。传统***使用强力方法,其中在跨DNN的每一层的每个迭代处计算所考虑的每个图像的每个特征映射。然而,这些传统的DNN需要增加计算能力并最终降低***实时运行的能力,例如在自主机应用中。
与这些传统***相比,本***可以利用先前计算的特征映射来减少无状态推断期间每次迭代时***的计算量。例如,可以计算第一帧的特征映射,然后可以计算每个连续帧的特征映射。许多这些特征映射可以存储在缓冲区中,并且作为输入提供给具有对应于最新帧的特征映射的RNN。一旦提供了特征映射作为输入,就可以将最新的特征映射添加到缓冲区中,并且可以从缓冲区中移除缓冲区中最旧的或次新的特征映射。可以对序列中的每个帧重复该过程,以减少在每次迭代时为每个帧生成新特征映射的处理需求。
作为示例,并且参考图5A,可以将在时间T捕获的图像502(例如,由图1的图像数据102表示的图像)输入到特征提取器504,以生成用于图像502的特征映射FT508A。对应于图像502的特征映射FT可以馈送到DNN的顺序层510(例如,GRU、LSTM和/或其他顺序层类型),例如图1的顺序DNN 104。除了来自图像502的特征映射FT 508A之外,可以将特征映射FT-1至FT-(N-1)(508B-508D)馈送到DNN的顺序层510中。特征映射FT-1至FT-(N-1)(508B-508D)中的每一个可以对应于来自在图像502之前(或之后,在一些实施例中)之后捕获的图像的特征映射508(例如,图像502和每个其他图像可以对应于图像序列)。这样,顺序层510可以使用来自N个图像的N个特征映射508来生成预测,其中图像的数量N可以是DNN的超参数(例如,图1的顺序DNN 104)。
作为非限制性示例,特征映射508的数量N可以是四,使得四个特征映射508在任何一个时间输入到顺序层510以生成时间T的预测512。在这样的示例中,循环缓冲区506(和/或另一存储器或存储设备类型)可以用于存储三个先前特征映射(例如,FT-1至FT-3)中的每一个,使得特征映射不需要在DNN的每次迭代中再次生成。结果-并且与传统的强力方法相反-节省了处理时间,因为来自特征提取器504的先前特征映射预测被重新用于在时间T生成预测512。
现在参考图5B,本文描述的方法514的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。方法514还可以体现为存储在计算机存储介质上的计算机可用指令。方法514可以由独立应用、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,参考图5A描述方法514。然而,方法514可以附加地或替代地由任何一个***或任何任何***的组合在任何一个过程或任何过程组合中执行,包括但不限于本文所述的那些。
图5B是示出根据本公开的一些实施例的用于使用缓冲区的无状态推断的方法514的流程图。在框B516,方法514包括生成第一特征映射,每个第一特征映射对应于N个帧中的一个。例如,可以生成特征映射508B-508D。
在框B518,方法514包括将N个帧中的每一个的第一特征映射存储在缓冲区中。例如,特征映射508B-508D可以存储在缓冲区506中。
在框B520,方法514包括生成N+1帧的第二特征映射。例如,可以生成特征映射508A。
在框B522,方法514包括将第一特征映射和第二特征映射应用于部署的神经网络。例如,特征映射508A-508D可以应用于顺序DNN 104。
在框B524,方法514包括从缓冲区中移除对应于N帧中最早帧的第一特征映射的最早特征映射。例如,当添加特征映射504A时,可以从缓冲区506移除特征映射508D。结果,缓冲区可以总是存储N帧的特征映射508。
在框B526,方法514包括将第二特征映射添加到缓冲区。例如,可以将特征映射508A添加到缓冲区506。
与传统***相比,本***的另一个过程包括在无状态推断期间为帧序列的每个帧生成特征映射。帧序列中的帧数可以等于用于基于特征映射计算隐藏状态的顺序DNN 104中的层(或层组)的数量。对于每个层(或层组),除了来自帧序列中的先前帧的任何特征映射之外,还可以应用帧序列中的对应帧的特征映射。例如,在使用四个特征映射的情况下,顺序DNN104的第一层(或层组)可以计算对应于最新帧的第一特征映射的隐藏状态,顺序DNN 104的第二层(或层组)可以计算对应于最新帧的第一特征映射的隐藏状态和对应于第二最新帧的第二特征映射等等,使得每个层(或层组)总是使用来自一个附加帧的(至少)一个附加特征映射而不是序列中的先前层(或层组)计算隐藏状态。另外,来自每个层(或层组)的隐藏状态可以被传递到层序列中的下一层(或层组)。每个层(或层组)可以并行计算隐藏状态,从而减少***在生成时间信息的预测时的运行时间。
作为示例,并且参考图6A,第一组顺序层608A的隐藏状态(例如,一个或更多个层可以包括在顺序层组608中)可以被设置为零,如614所示。可以将在时间T处捕获的图像602(例如,由图1的图像数据102表示的图像)输入到特征提取器604,以生成用于图像602的特征映射FT606A。可以将对应于图像602的特征映射FT606A馈送到DNN的每组顺序层608(例如,GRU、LSTM和/或其他顺序层类型),例如图1的顺序DNN 104。除了来自图像502的特征映射FT606A之外,可以将特征映射FT-1至F{T-(N-1)}馈送到DNN的每组顺序层608(例如,在图6A的非限制性示例中,顺序层608-608D组)。特征映射FT-1至F{T-(N-1)}606A-606D中的每一个可以对应于来自在图像602之前(或之后,在一些实施例中)捕获的图像的特征映射606(例如,图像602和每个其他图像可以对应于图像序列)。这样,顺序层组608可以生成隐藏状态的更新值-在一些实施例中并行地-使用来自多个图像的多个特征映射606以及使用来自顺序层608的顺序组中先前顺序层组608的隐藏状态。在一些示例中,图像的数量可以是DNN的超参数(例如,图1的顺序DNN 104),使得顺序层组608的数量序列对应于图像数量。
作为非限制性示例,特征映射606的数量可以是四个,使得四个特征映射606用作顺序层组608的输入(例如,第一特征映射FT 608A输入顺序层组608A,第一特征映射FT606A和第二特征映射F{T-(N-3)}606B输入到顺序层组608B,第一特征映射F{T}606A、第二特征映射特征映射F{T}606A以及第三特征映射F{T-(N-2)}606C输入到顺序层组608C,并且第一特征映射FT606A、第二特征映射F{T-(N-3)}606B、第三特征映射F{T-F{T-(N-2)}606C以及第四特征映射FT-(N-1)606D输入到该组顺序层组608D)。另外,在这样的示例中,可以在第一组顺序层608A处将隐藏状态设置为零,第一组顺序层608A的计算隐藏状态(例如,使用第一特征映射FT606A)传递到第二组顺序层608B,第二组顺序层608B的计算隐藏状态(例如,使用第一特征映射FT 606A、第二特征映射F{T-(N-3)}606B以及来自第一组顺序层608A的隐藏状态)可以被传递到第三组顺序层608C,等等。在一些实施例中,可以将特征映射606输入到顺序层组608,使得顺序层组608可以并行计算隐藏状态(例如,第一特征映射FT 606A可以在第一次应用于每个顺序层组,在第一次之后的第二次,第二特征映射F{T-(N-3)}606B可以应用于第一组顺序层608A之后的每个顺序层组608,等等。可以将最后一组顺序层608的输出(例如,图6A的图示中的顺序层组608D)作为输入提供给DNN的附加层610(例如,卷积层、反卷积层等)以生成图像602的预测612。结果,与传统的强力方法相比,处理时间被保存为用于并行计算顺序层组608的隐藏状态。
关于图6A描述的过程可以根据以下等式描写。例如,用于顺序层(例如,顺序层组608)的隐藏状态变量可以表示为hT N,其是使用N个图像在时间T计算的状态。本文,hT -1是初始状态零,在一些实施例中,对于所有T,其可以是零。当用N个图像进行无状态推断时,可以在计算时间T处的输出预测(例如,预测612)时使用的隐藏状态,可以是hT N。hT N可以是N+1个特征映射FT的函数,在N+1个输入图像序列上,并且可以根据下面的等式(1)表示:
hT N=f(FT,FT-1,…,FT-(N-1)) (1)
因此,在每个时刻,可以计算hT N。另外,因为计算隐藏状态h的层可以是递归的(例如,LSTM、GRU等),所以函数g可以用于表示当前隐藏状态作为当前输入和前面的隐藏状态的函数,如下面的等式(2)所示:
hT N=g(FT,hT-1N-1) (2)
因此,写出g的所有应用(例如,及时展开重现),给出下面的等式(3)-(6):
hT-(N-1) -1=0 (3)
hT-N 0=g(FT-N,hT-(N-1) -1) (4)
hT-1 N-1=g(FT-1,hT-2 N-2) (5)
hT N=g(FT,hT-1 N-1) (6)
因此,在非限制性示例中,可以示出g的应用,如下面的等式(7):
hT N=g(FT,g(FT-1,g(FT-2,…,g(FT-N,0)))) (7)
另外,为了计算所有时间实例的输出,可以在计算输入特征映射FT时在每个时刻并行地计算N个不同长度的图像序列的N个隐藏状态。这样,在每个时刻,根据作为非限制性示例,可以计算N个状态,下面的等式(8)-(10):
hT 0=g(FT,0) (8)
hT N-1=g(FT,hT-1 N-2) (9)
hT N=g(FT,hT-1 N-1) (10)
其可以被示为图6A中的N+1组顺序层608。
在一些实施例中,取决于递归函数g,一些或所有计算可独立于先前隐藏状态,从而允许进一步的计算节省和增加的运行时效率。对于非限制性示例,在使用包括六个卷积的GRU层的情况下,可以将三个面向前卷积层单独应用于输入(例如,一个用于z门,一个用于r门,一个用于下一个隐藏状态)。这些值可以计算一次,结果可以重复使用N次。
现在参考图6B,本文描述的方法616的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。方法616还可以体现为存储在计算机存储介质上的计算机可用指令。方法616可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,关于图6A描述了方法616。然而,方法616可以附加地或替代地由在任何一个过程或任何过程组合中的任何一个***或任何***的组合执行,包括但不限于本文所述的那些。
图6B是示出根据本公开的一些实施例的用于使用并行计算的无状态推断的方法616的流程图。在框B618,方法616包括在部署的神经网络的层组的序列中初始化每组层的隐藏状态的值。例如,顺序层608A-608D的隐藏状态可以被初始化为零、随机数或者通过优化过程获得的状态。
在框B620,方法616包括生成帧序列的当前帧的特征映射。例如,特征映射606可以由特征提取器604针对当前帧生成。
在框B622,方法616包括对于层组序列中的每组层应用帧序列中的对应帧的特征映射以及在所述对应帧之前帧序列的帧的先前特征映射。例如,顺序层608A可以具有应用于其的特征映射606A,顺序层608B可以具有应用于其的特征映射606B(其可以包括特征映射606A),等等。
在框B624,方法616包括并行地并且由层组序列的每个层组生成隐藏状态的更新值。例如,当特征映射606应用于顺序层608时,顺序层608可以计算隐藏值。
在框B626,方法616包括通过层组序列的每个层组将隐藏状态的更新值传递到层序列中的下一个层组。例如,由顺序层608A计算的隐藏状态的值可以被传递到顺序层608B,由顺序层608B计算的隐藏状态的值可以被传递到顺序层608C,等等。
在框B628,方法616包括通过部署的神经网络计算并使用层组序列的每个层组的隐藏状态计算一个或更多个输出。例如,部署的神经网络(例如,顺序DNN 104)可以使用每个顺序层608的隐藏状态来生成预测612。
训练顺序深度神经网络用于时间预测
在训练期间,顺序DNN可以使用从训练图像数据和训练传感器数据的组合生成的地面实况数据(例如,使用交叉传感器融合)。例如,训练图像数据可以用于生成与图像序列的每个图像中的对象的位置相对应的边界框。训练传感器数据可以用于确定与每个对象相对应的速度信息。训练传感器数据可以表示来自一个或更多个LIDAR传感器的LIDAR数据、来自一个或更多个RADAR传感器的RADAR数据、来自一个或更多个SONAR传感器的SONAR数据和/或来自一个或更多个其他传感器类型的其他训练传感器数据。
为了生成用于2D运动和3D运动的地面实况数据,可以将训练传感器数据与训练图像数据相关联或融合。例如,对于LIDAR数据,可以使用相机和LIDAR传感器之间的校准信息将LIDAR数据点与图像空间中的像素相关联。对于RADAR数据,RADAR数据可以检测其视场中的对象,并且对象可以与在由图像数据表示的图像中检测到的对象相关。类似的技术可以用于其他传感器类型。在任何示例中,可以利用来自LIDAR数据、RADAR数据和/或其他数据的信息来增强与图像中的检测到的对象(例如,如使用对象检测技术检测和识别的)相对应的像素。例如,对应于对象的一个或多个像素(或对应于对象的边界形状)可以与使用训练传感器数据确定的速度数据相关联。对于LIDAR数据,例如,可以在序列中的两个或更多个图像上确定对象的深度信息,使得深度值的改变可以指示速度。对于RADAR数据,作为另一个示例,可以确定RADAR传感器的视场中的物体的速度数据。这样,因为对象检测可以相对于图像自动生成(例如,使用卷积神经网络、使用对象检测计算机视觉算法、使用对象跟踪算法等),并且训练传感器数据可以是自动地与训练图像数据相关,可以自动生成用于训练顺序DNN的地面实况数据。
参考图7,图7包括根据本公开的一些实施例的训练顺序深度神经网络104的过程700的数据流程图。训练图像数据702(其可以类似于图像数据102,但是可以对应于用于训练顺序DNN的训练数据)和/或训练传感器数据704可以用于生成用于训练顺序DNN 104的地面实况。训练传感器数据704可包括来自一个或更多个LIDAR传感器1464的LIDAR数据、来自一个或更多个RADAR传感器1460的RADAR数据、来自一个或更多个SONAR传感器(例如,超声传感器1462)的SONAR数据和/或来自一个或更多个其他传感器类型的其他训练传感器数据类型。训练图像数据702可以表示图像序列,并且训练传感器数据704可以包括至少部分地与训练图像数据702同时生成的传感器数据。这样,训练传感器数据704(例如,使用时间戳)可以是与图像序列的各个图像相关联以生成地面实况。
如本文所述,地面实况生成706可包括使用训练图像数据702和训练传感器数据的组合的自动地面实况生成-例如但不限于通过交叉传感器融合。作为自动生成表示地面实况的标签或注释的结果,在一些实施例中,可能不需要用于生成地面实况数据的手动标记。然而,在一些示例中,手动标记可能除了自动标记另外地执行或可替代地执行。因此,在任何示例中,标签可以是合成生成的(例如,从计算机模型或渲染生成),由真实和/或原始数据(例如,从真实世界数据设计和生成)、机器自动化(例如,使用特征分析和学习从数据中提取特征然后生成标签)、人类注释(例如,贴标机或注释专家,定义标签的位置)和/或其组合生成。
在执行自动地面实况生成的情况下,训练传感器数据704可以与训练图像数据702相关联或融合。车辆1400可以配备有不同类型的传感器以及相机(包括但不限于图14A-14C中所示的传感器和相机)。例如,除了多个相机之外,许多RADAR传感器1460、LIDAR传感器1464和/或其他传感器类型可以定位在车辆1400上,使得相机的视场和传感器的视场或传感区域之间存在重叠。在一些实施例中,可以通过自校准算法校准传感器的空间布局,并且可以控制传感器的同步以展示传感器捕获的时间对准。这可以帮助将训练传感器数据704准确地传播到图像空间或相机域以用于自动地面实况生成706。
例如,并且关于图8的可视化800,对于LIDAR数据、LIDAR数据点820可以与使用生成训练图像数据102的相机和LIDAR传感器1464之间的校准信息的图像空间中的像素相关联。对于RADAR数据,RADAR数据可以表示在RADAR传感器1460的视场(或传感区域)中的物体(例如,货车802、车辆808和行人814)的速度。然后,由RADAR数据表示的对象可以与在由训练图像数据702表示的图像中检测到的对象(例如,使用为视觉和RADAR对象融合设计的算法)相关联。不同的技术可以用于其他传感器类型,以将来自传感器的训练传感器数据704与图像空间中的训练图像数据702相关联。与图像中检测到的对象相对应的像素(例如,如使用对象检测技术检测和识别,并且由图8中的边界形状804、810和816表示)可以利用来自LIDAR数据、RADAR数据和/或其他训练传感器数据704的信息来增强。
例如,对应于对象(或对应于对象的边界形状)的一个或更多个像素可以与使用训练传感器数据704确定的速度数据相关联。对于LIDAR数据,例如,可以在序列中的两个或更多个图像上确定对象的深度信息,使得深度值的改变可以指示速度。对于RADAR数据,作为另一示例,可以确定RADAR传感器1460(或传感器场)的视场中的对象的速度数据。因此,因为可以自动生成关于图像的对象检测(例如,使用卷积神经网络、使用对象检测计算机视觉算法、使用对象跟踪算法等),并且训练传感器数据704可以自动与训练图像数据702相关联,用于训练顺序DNN 104的地面实况可以自动生成。然后,训练传感器数据704可以用于确定世界空间中的对象的位置以及世界空间中的每个对象的二维或三维速度。如图8中所示,对应于公共汽车802的位置和速度数据806,对应于车辆808的位置和速度数据812,以及对应于行人814的位置和速度数据818可以使用训练传感器数据704确定,并且可以与图像空间中的对象相关联并且用于训练顺序DNN 104以在部署中仅从图像数据预测位置和速度信息。位置和速度数据806可以表示公共汽车802的世界空间中的x,y和z位置(例如,相对于车辆1400的原点)。此外,位置和速度数据806可以表示物体3D运动712,其可以在世界空间中对应于x方向上的速度Vx,y方向上的速度Vy和/或z方向上的速度Vz。
当生成地面实况数据时,可以使用对象检测深度神经网络(例如,卷积DNN)、对象检测计算机视觉算法、对象跟踪算法和/或另一种对象检测方法来识别货车802、车辆808和行人814。例如,对于图像序列中的每个图像,可以单独检测货车802、车辆808和行人814。在其他示例中,一旦在图像中检测到货车802、车辆808和/或行人814(例如,使用对象检测算法、深度神经网络等),可以使用对象跟踪算法来在存在货车802、车辆808和/或行人814的图像序列的剩余图像中跟踪和识别货车802、车辆808和/或行人814。因此,可以为存在对象的每个图像中的每个对象生成边界形状804、810和/或816。从图像空间中的像素到世界空间中的位置的转换可以是***已知的,因此-在一些实施例中-可以使用图像空间中的位置来确定每个对象的世界空间中的位置。对于每个对象,可以通过跨帧序列利用与对象相关的边界形状的位置和大小来生成对象2D运动710。例如,可以通过分析与不同帧中的对象相关的边界形状的差异来确定比例变化Δs。图像空间内的对象的移动(例如,跨帧序列的帧的边界形状的位置的改变)可以用于生成对象2D运动710地面实况数据。
为了确定地面实况的碰撞时间(TTC)708,可以在一些非限制性实施例中使用比例变化Δs。例如,对于对象角度恒定的理想相机,可以使用等式(11):
TTC=Δt/Δs (11)
其中Δs是比例变化,Δt是计算比例变化Δs的两个连续帧之间的时间。结果,顺序DNN 104的预测可以取决于输入图像的采样间隔。在一些示例中,可以训练顺序DNN 104以隐含地假设时间(例如,Δt)基线,使得顺序DNN 104输出的值可以直接用于确定TTC(例如,如本文所述,顺序DNN104可以被训练为输出1/TTC,因此1/TTC的值可以直接用于计算TTC)。在实践中,在理想相机和/或恒定对象角度不可能的情况下,所使用的实际相机和/或恒定对象角度之间的差异可能不会产生显着影响,因此仍然可以使用等式(11)。然而,在一些实施例中,下面的等式(12)可以是TTC的更准确表示:
TTC≈Δt/Δs (12)
然而,直接使用TTC作为训练顺序DNN 104的地面实况可以导致无界值(例如,[-∞,-a]∪[b,∞])。因此,当车辆1400(例如,自我车辆和另一个对象相对于彼此是静止的,TTC的值可以变为无穷大。这样,在训练顺序DNN 104时用于地面实况的TTC 708可以是倒数TTC(例如,1/TTC)。例如,1/TTC产生良好有界值(例如,[-1/a,1/b]),这可允许使用基于梯度下降的方法进行优化。因此,下面的等式(13)可以用于生成用于训练网络的地面实况,然后可以使用后处理将1/TTC转换为TTC:
Figure BDA0002356725310000201
在一些示例中,可以对数据使用预处理714以确保用于地面实况的数据是准确的。在一些实施例中,训练图像数据702和/或训练传感器数据704上的预处理714可以包括本文关于图像数据102描述的预处理。此外,预处理714可以包括从训练传感器数据704和/或训练图像数据702中清除或去除噪声。例如,可以使用一个或更多个滤波器来滤除可能并非不准确的,或可能不一致的地面实况数据。例如,除非在相同对象的图像序列的图像上存在一致的跟踪结果(例如,对于图8中的公共汽车802),否则可能不使用那些跟踪结果。在这样的示例中,关于在那些图像中跟踪该对象,可以忽略对象的至少两个或更多个连续检测的图像。结果,可以从地面实况中去除这些错误或不准确的检测,以努力减少顺序DNN 104的预测中的噪声。
作为另一示例,在地面实况生成期间可以去除在顺序图像中不一致的视觉(例如,图像)和RADAR关联和/或视觉和LIDAR关联(和/或视觉和其他传感器类型关联)。在这样的示例中,当生成地面实况时,可以忽略对应于存在不一致的对象的训练传感器数据704,使得仅图像和LIDAR数据之间的一致关联(例如,LIDAR点投影到图像空间中)和/或图像和RADAR数据用于关于任何一个对象的地面实况生成。因此,如果与从LIDAR数据确定的图像空间中的对象相关联的值与从RADAR数据确定的图像空间中的对象相关联的值的相似度不在阈值内,则LIDAR数据或RADAR数据中的至少一个可以被忽略。
在一些示例中,在地面实况数据集中可能需要包括交叉传感器的一致性。例如,对于来自RADAR传感器1460和LIDAR传感器1464(和/或其他传感器类型)的地面实况数据,在使用地面实况数据之前,可能要求地面事实在多个传感器之间是一致的。这可以包括来自两个或更多个相同传感器类型的数据的一致性和/或来自两个或更多个不同传感器类型的数据的一致性,其中在它们的视场-或感觉场中具有类似的对象。
可以在训练图像数据702和/或训练传感器数据704上使用数据增强716,以增加训练集的大小和/或减少连续DNN 104预测的过度拟合的可能性。例如,训练图像数据702中表示的图像可以被裁剪、旋转、下采样、上采样、偏斜、移位和/或以其他方式增强,以训练顺序DNN 104。此外,可以类似地增强与图像相关联的地面实况数据,使得地面实况标签和注释相对于增强图像是准确的。在一些示例中,时间增加可以用于在不同于图像的序列内按照图像间隔(例如,每隔一个图像、每隔四个图像等)在图像的间隔上训练顺序DNN 104,和/或可以是以相反的顺序训练图像序列,至少在本文中至少关于图10和11更详细地描述。
现在参考图9,本文描述的方法900的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。方法900还可以体现为存储在计算机存储介质上的计算机可用指令。方法900可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,参考图7描述方法900。然而,方法900可以附加地或替代地由任何一个***或任何***的组合在任何一个过程或任何过程组合中执行,包括但不限于本文所述的那些。
图9是示出根据本公开的一些实施例的用于使用交叉传感器融合生成自动地面实况的方法900的流程图。在框B902,方法900包括接收表示在一段时间内产生的图像序列的图像数据。例如,可以接收训练图像数据702,其中在一段时间内生成训练图像数据702。
在框B904,方法900包括确定图像序列的图像中的对象的位置。例如,可以使用对象检测算法、对象跟踪算法和/或对象检测神经网络来确定图像序列的图像中的对象的位置。
在框B906,方法900包括在一段时间内接收由LIDAR传感器或RADAR传感器中的至少一个产生的传感器数据。例如,可以在一段时间内接收训练传感器数据704。
在框B908,方法900包括将传感器数据与图像数据相关联。例如,使用一种或多种技术(包括但不限于交叉传感器融合),训练传感器数据704可以与训练图像数据702相关联。
在框B910,方法900包括分析与图像中的对象的位置相对应的传感器数据,以确定在生成图像的时间段内的对象的速度。例如,对应于对象的训练传感器数据704可用于确定对象的位置。
在框B912,方法900包括使用对象的速度和位置来自动生成对应于图像的地面实况数据。例如,对象的速度和位置可以用于通过例如将速度与对应于图像中的对象的一个或多个像素相关联来自动生成对应于图像的地面实况数据。
在框B914,方法900包括使用地面实况数据训练顺序深度神经网络(DNN)。例如,可以使用地面实况数据来训练顺序DNN 104。
用于训练顺序深度神经网络的时间增强
除了用于自主车辆感知***的运动预测之外,本文描述的时间增强可以是适用于关于任何域的任何顺序DNN的任何地面实况生成和/或训练的过程。然而,关于本公开,时间增强可以至少用于比例变化Δs、速度预测、边界形状位置和/或TTC预测。
在一些实施例中,训练数据的时间增强可以用于训练顺序DNN 104。例如,可以按训练期间输入到顺序DNN 104的顺序使用图像序列(例如,按连续顺序的每个帧)。然而,因为地面实况的计算可以基于时间信息(例如,帧速率),所以图像序列可以在不同的帧间隔(例如,每帧、每隔一帧、每隔三帧等)中使用,作为到顺序DNN 104的输入。此外,图像可以按正向顺序输入,或者可以以相反的顺序输入。这样,帧间隔改变、顺序改变或其组合可以用于增强训练图像,使得训练数据大小和***的鲁棒性增加。例如,因为可以改变帧间隔,所以可以训练顺序DNN 104以解释跨帧的对象的不同转换(例如,当按顺序使用帧时,对象可以缓慢移动,并且当使用每隔一帧时或者每隔三帧,对象可能快速移动)。在这样的示例中,训练示例可以从地面实况数据生成,该地面实况数据对应于危险交通状况,其在现实世界中可能不安全的。
这样,并且参考图10,时间增强可以用于图像序列中的每个K图像,其中K可以是任何正(例如,沿着线1012的时间向前)或负数(例如,沿着线1010的时间向后)。例如,可以在面向前或后向序列中每个帧1002、每两个帧1002、每四个帧1002等生成比例改变的地面实况数据。例如,每个帧1002(例如,1002A-1002I)可以来自在时间T-4到T+4捕获的帧序列。括号1004可以指示K等于1的位置,括号1006可以指示K等于2的位置,并且括号1008可以指示K等于4的位置。尽管图10中仅示出了具有1、2和4的K的增强,但这不是限制性的。任何数字都可以用于K以在时间上增加训练数据。通过调整K的值,可以增加训练数据集的大小,并且可以增加***的鲁棒性。
在传统的顺序模型训练中,可以通过形成满足以下关系(14)的N个连续帧的序列来使用时间批次:
{ImageT-i},i∈{0,1,…,N-1} (14)
然而,在本公开的时间增强技术中,代替使用固定时间步长增量1,如在传统***中,批处理可以替代地由以下关系(15)表示:
Figure BDA0002356725310000231
在一些实施例中,K可以是从整数上的离散概率分布中随机采样的。例如,K可以均匀地分布在{-4,-2,-1,1,2,4}上,如图10所示。
取决于顺序DNN 104(或不同应用中的任何其他顺序模型)将要预测的内容,可能需要根据K的变化来增强一些地面实况值,而其他地面实况值可能没有类似的增强。作为示例,并且对于应用现状,时间T处的边界形状可以不需要调整,时间T处的物距可以不需要调整,并且时间T处的对象取向可以不需要调整。然而,一些动态或时间属性可能需要调整,例如TTC、Δs、速度和/或X步之后的边界形状,如下面的(16)-(19)所示:
TTC←TTC/K (16)
Δs←Δs*K (17)
Velocity←Velocity*K (18)
Boundingshapeafter X steps←Bounding shape after X*K steps (19)
现在参考图11,本文描述的方法1100的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。方法1100还可以体现为存储在计算机存储介质上的计算机可用指令。方法1100可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,参考图10描述方法1100。然而,方法1100可以附加地或替代地由任何一个***或任何***的组合在任何一个过程或任何过程组合中执行,包括但不限于本文所述的那些。
图11是示出根据本公开的一些实施例的用于时间增强的方法1100的流程图。在框B1102,方法1100包括计算捕获图像序列的第一图像的第一时间和捕获图像序列的第二图像的第二时间之间的第一时间差。例如,可以确定捕获帧序列的第一帧1002E的第一时间和第二帧1002F之间的第一时间差。
在框B1104,方法1100包括计算第一捕获时间和捕获图像序列的第三图像的第三时间之间的第二时间差。例如,可以确定第一帧1002E的捕获的第一时间与第三帧1002G之间的第二时间差。
在框B1106,方法1100包括为第一图像中的对象生成第一边界形状,为第二图像中的对象生成第二边界形状,以及为第三图像中的对象生成第三边界形状。例如,可以为三个帧1002E-1002G的每一个中的对象生成边界形状(例如,图8的边界形状804)。
在框B1108,方法1100包括计算第一边界形状和第二边界形状之间的第一比例变化以及第一边界形状和第三边界形状之间的第二比例变化。例如,可以计算第一边界形状和第二边界形状之间的比例变化s以及第一边界形状和第二边界形状。
在框B1110,方法1100包括使用第一时间差与第一比例变化之间的第一比率生成对应于第二图像的第一地面实况数据,以及使用第二时间差与第二比例变化之间的第二比率生成对应于第三图像的第二地面实况数据。例如,Δt/Δs的比率可以用于生成第二帧1002F和第三帧1002G的地面实况数据。结果,第一帧1002E可以用于在不同步幅(例如,每帧、每隔一帧、每四帧等)生成地面实况,以便增加训练数据集的鲁棒性并训练顺序DNN 104(或任何DNN)用于否则可能难以生成训练数据的情况(例如,危险情况)。
在框B1112,方法1100包括使用第一地面实况数据和第二地面实况数据来训练神经网络。例如,第一地面实况数据和第二地面实况数据可用于训练神经网络(例如,顺序DNN104)以使用更鲁棒的训练数据集来预测各种时间信息。
顺序深度神经网络的状态训练
本文描述的状态训练应用可以用于任何顺序模型的任何训练方法,并且不限于本文描述的特定实施例。与可以用稀疏标记的数据更有效地执行的无状态训练(本文所述)相反,状态训练和推断可以用密集标记的数据更有效地执行。例如,密集标记的数据可以允许利用连续计算的预测来进行多个梯度计算。
在推断期间(例如,在部署期间),顺序模型可以以完全有状态模式运行,其中隐藏状态可以仅在启动时重置。结果,每个时间实例可能需要单个正向通过计算,如下面的等式(20)所示:
{yt,ht}=DNN{xt,ht-1}
其中y是预测,x是输入(例如,图像),h表示隐藏状态,t是时间索引,DNN表示具有两个输入和两个输出的单个前馈神经网络。尽管DNN可以包含多个隐藏状态,但是隐藏状态可以通过单个状态变量h在等式(20)中联合表示。
在本公开的一些实施例中,状态训练可以用于顺序DNN 104以解决和补救训练和推断之间的这种对比。例如,可以通过在训练期间随机化有效序列长度来实现完全不相关的小批量和完全连续的训练数据输入之间的平衡。例如,可以训练顺序DNN以维持或存储跨帧序列的隐藏状态而不重置隐藏状态。例如,每个小批量可以包括帧或图像的网格,其中小批量的每一行包括特征向量。为了防止顺序DNN 104过度拟合,跨小批量的图像序列可以变化。例如,从第一小批量到第二小批量,图像序列可以继续(例如,第一小批量中的帧1、2、3,然后是第二小批量中的帧4、5、6)。作为另一示例,从第一小批量(例如,在不同行)到第二小批量(在不同行),图像序列可能不继续(例如,第一小批量中的帧3、5、7,然后是第二小批量中的帧3、2、1)。
通过交错顺序、帧间隔和跨小批量的序列,可以训练顺序DNN 104以预测输出而不过度拟合到训练数据集。例如,顺序DNN 104的循环层可能无法适应和过度拟合到特定固定数量的上下文帧,并且可以调整优化器迭代之间的相关量,使得保持快速收敛。另外,可以使训练数据包含具有大量上下文的示例,其可以在完全重复或有状态模式的推断期间很好地适应于准确的预测。本文描述的状态训练方法的另一个好处是有效使用计算和存储器资源。例如,每个小批量不仅可以用于在单个小批量的时间范围内通过时间反向更新权重和偏差,而且每个小批量也可以用于将网络隐藏状态设置为完全逼真的隐藏状态,用于下一个小批量和优化器迭代。
图12包括随机化训练数据集中的小批量的有效长度、步幅和/或方向的示例。例如,训练数据集1200可以包括多个小批量MB0(1202A)-MB7(1202H),其中每个小批量1202可以包括小批量大小(例如,在图12的示例中为四个)对应于多个示例1204(例如,图12中的示例1204A-1204D)。另外,每个小批量1202内的每个示例1204可以包括帧的序列长度(例如,其中每个帧由帧索引1206指示,诸如1206A-1206C)。在单个小批量1202的示例1204中的帧序列和相关联的地面实况标签和其他元数据在本文中可以称为特征向量。帧序列中的帧可以处于不同的步幅(例如,步幅随机化),使得小批量1202A处的示例1204A可以处于-1的步幅(例如,3、2、1),并且示例小批量1202A处的1204D可以处于+2(例如,1、3、5)的步幅。另外,尽管每个小批量1202中的每个示例1204可以仅包括设定的序列长度(例如,图12中为3),但是示例内的小批量1202的序列可以具有更长的序列长度(例如,主序列长度)。这样,主序列长度也可以是随机的(例如,主序列随机化),使得-作为非限制性示例并且关于图12-主序列长度可以是三、六、九和/或一些其他三的因素。例如,在示例性跨1204D中的小批量1202A-1202C中,主序列长度1208A可以是九,跨示例1204A中的小批量1202F-1202G,主序列长度1208B可以是六,并且对于示例1204D中的小批量1202F,主序列长度1208C可以是三。为了确定要输入到小批量中以生成训练数据集1200的帧索引,可以使用随机化和/或概率算法。
在训练期间,训练数据集1200可以被输入到顺序DNN 104(当顺序DNN 104被训练用于有状态模式时)。在该训练期间,并且作为非限制性示例,可以在顺序DNN 104处理帧12、11和10之后存储示例1204A处的小批量1202F的隐藏状态。然后,当下一个小批量1202G在示例1204A处被接收,可以在计算帧9、8和7的更新的隐藏状态时使用存储的隐藏状态。这样,当示例1204包括跨小批量的连续帧时,隐藏状态可以被存储(例如,不重置为随机值或零值)。作为另一个非限制性示例,可以在顺序DNN 104处理帧5、3和1之后计算示例1204D处的小批量1202F的隐藏状态。然后,当下一个小批量1202G在示例1204A处被接收时,当计算帧14、13和12的隐藏状态时,来自示例1204D的先前小批量1202F的隐藏状态可以被重置为随机值或零值。因此,当示例1204不包括跨小批量的连续帧时,可以重置隐藏状态。在一些示例中,尽管可以在小批量1202F的示例1204D之后重置隐藏状态,但是无论如何都可以存储隐藏状态。如果小批量1202E处的示例1204D与小批量1202F处的示例1204D的序列邻接,则这可能是有益的。通过交错和随机化跨示例1204和小批量1202的帧的主序列长度、步幅和/或方向,可以实现完全不相关的小批量和完全连续的训练数据集之间的平衡-从而导致顺序DNN 104在部署中更准确,同时还允许采用基于随机梯度下降的优化方法。
现在参考图13,本文描述的方法1300的每个块包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。方法1300还可以体现为存储在计算机存储介质上的计算机可用指令。方法1300可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几个例子。另外,作为示例,参考图12描述方法1300。然而,方法1300可以附加地或替代地由任何一个***或任何***的组合在任何一个过程或任何过程的组合中执行,包括但不限于本文所述的那些。
图13是示出根据本公开的一些实施例的用于状态训练的方法1300的流程图。在框B1302,方法1300包括选择第一小批量的第一特征向量的第一图像序列和紧接在第一小批量之后的第二小批量的第二特征向量的第二图像序列,第一图像序列中的第一图像和第二图像序列以第一步幅连续排序。例如,使用随机化或概率算法,第一图像序列(例如,小批量1202F的示例1204A处的帧)和第二图像序列(例如,小批量1202G的示例1204A处的帧)可以选择,其中帧以相反的顺序以一个步幅连续排序(例如,12、11、10、9、8、7)。
在框B1304,方法1300包括选择第一小批量的第三特征向量的第三图像序列和第二小批量的第四特征向量的第四图像序列,第三个图像序列中的第二图像和第四图像序列是非连续排序的。例如,使用随机化或概率算法,第三图像序列(例如,小批量1202A的示例1204C处的帧)和第四图像序列(例如,小批量1202B的示例1204C处的帧)可以选择,其中帧是非连续排序的(例如,5、3、1、1、3、5)。
在框B1306,方法1300包括在训练期间将第一小批量和第二小批量应用于神经网络。例如,第一小批量(例如,小批量1202A)和第二小批量(例如,小批量1202B)可以在训练期间应用于神经网络(例如,顺序DNN 104)。结果,图像序列的主序列长度、步幅和/或方向可以随机化,以帮助防止在训练期间对数据集的过度拟合。
本文描述的用于状态训练的方法可以同样适用于任何顺序模型的任何训练,因此可以在除了用于自主车辆感知***的运动预测之外的其他域或技术领域中找到应用。例如,当训练数据包含所有帧索引的标签时,这些方法可以容易地应用,因为帧索引可以用于损失和梯度计算。这些方法也适用于每个第N帧以规则模式标记的情况。例如,可以迭代数据,使得标记的帧总是作为每个小批量的最后一帧出现。
示例性自主车辆
图14A是根据本公开的一些实施例的示例性自主车辆1400的图示。自主车辆1400(在本文中可选地称为“车辆1400”)可以包括但不限于客运车辆,例如汽车、卡车、公共汽车、急救车辆、班车、电动或机动自行车、摩托车、消防车、警车、救护车、船、施工车辆、水下飞行器、无人驾驶飞机和/或其他类型的车辆(例如,无人驾驶和/或容纳一个或更多个乘客)。自动驾驶车辆通常根据自动化水平进行描述,由国家公路交通安全管理局(NHTSA),美国交通部的一个部门和汽车工程师协会(SAE)定义“公路机动车辆驾驶自动化***相关术语的分类和定义”(标准号J3016-201806,发布于2018年6月15日,标准号为J3016-201609,发布于2016年9月30日,以及该标准的先前和未来版本)。车辆1400可以具有根据自动驾驶级别的级别3至级别5中的一个或更多个的功能。例如,车辆1400可以具有条件自动化(级别3)、高自动化(级别4)和/或完全自动化(级别5),取决于实施例。
车辆1400可包括部件,诸如底盘、车身、车轮(例如,2、4、6、8、18等)、轮胎、车轴和车辆的其他部件。车辆1400可包括推进***1450,例如内燃发动机、混合动力发电站、全电动发动机和/或其他推进***类型。推进***1450可以连接到车辆1400的传动系,其可以包括变速器,以实现车辆1400的推进。推进***1450可以响应于接收来自节气门/加速器1452的信号而被控制。
当推进***1450运行时(例如,当车辆运动时),可以使用可以包括方向盘的转向***1454来操纵车辆1400(例如,沿着期望的路径或路线)。转向***1454可以从转向致动器1456接收信号。对于完全自动化(等级5)功能,方向盘可以是可选的。
制动传感器***1446可用于响应于从制动致动器1448和/或制动传感器接收信号而操作车辆致动器。
可以包括一个或更多个片上***(SoC)1404(图14C)和/或GPU的控制器1436可以向车辆1400的一个或更多个组件或***提供信号(例如,代表命令)。例如,控制器可以发送信号以通过一个或更多个制动致动器1448操作车辆制动器,以通过一个或更多个转向致动器1456操作转向***1454,以通过一个或更多个节气门/加速器1452操作推进***1450。控制器1436可以包括一个或更多个机载(例如,集成)计算设备(例如,超级计算机),其处理传感器信号,并输出操作命令(例如,信号代表信号)以使自动驾驶和/或协助驾驶员驾驶车辆1400。控制器1436可包括用于自动驾驶功能的第一控制器1436,用于功能安全功能的第二控制器1436,用于人工智能功能(例如,计算机视觉)的第三控制器1436,用于信息娱乐功能的第四控制器1436,用于在紧急情况下冗余的第五控制器1436,和/或其他控制器。在一些示例中,单个控制器1436可以处理两个或更多个上述功能,两个或更多个控制器1436可以处理单个功能,和/或其任何组合。
控制器1436可以响应于从一个或更多个传感器(例如,传感器输入)接收的传感器数据来提供用于控制车辆1400的一个或更多个部件和/或***的信号。传感器数据可以从例如但不限于全球导航卫星***传感器1458(例如,全球定位***传感器)、RADAR传感器1460、超声波传感器1462、LIDAR传感器1464、惯性测量单元(IMU)传感器1466(例如,加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风1496、立体相机1468、宽视野相机1470(例如,鱼眼相机)、红外相机1472、环绕相机1474(例如,360度相机)、远程和/或中程相机1498、速度传感器1444(例如,用于测量车辆1400的速度)、振动传感器1442、转向传感器1440、制动传感器(例如,作为制动传感器***1446)的一部分和/或其他传感器类型接收。
一个或更多个控制器1436可以从车辆1400的仪表组1432接收输入(例如,由输入数据表示)并通过人机界面(HMI)显示器1434、可听信号器、扬声器和/或通过车辆1400的其他组件提供输出(例如,由输出数据、显示数据等表示)。输出可包括信息,诸如车辆速度、速度、时间、地图数据(例如,图14C的HD地图1422)、位置数据(例如,车辆1400的位置,例如在地图上)、方向、其他车辆的位置(例如,占用网格)、关于对象的信息和由控制器1436等所感知的对象的状态等。例如,HMI显示器1434可以显示关于一个或更多个对象的存在的信息(例如,路牌、警告标志、交通灯改变等),和/或关于驾驶机动车辆制造、正在制造或将要制造(例如,现在改变车道、出口34B在两英里处等)的信息。
车辆1400还包括网络接口1424,其可以使用一个或更多个无线天线1426和/或调制解调器来通过一个或更多个网络进行通信。例如,网络接口1424可以能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等进行通信。无线天线1426还可以实现环境中的对象之间的通信(例如,车辆、移动设备等),使用局域网,如蓝牙、蓝牙LE、Z-Wave、ZigBee等,和/或低功率广域网(LPWAN),如LoRaWAN、SigFox等。
图14B是根据本公开的一些实施例的图14A的示例性自主车辆1400的相机位置和视场的示例。相机和相应的视场是一个示例性实施例,并不旨在限制。例如,可以包括附加和/或替代相机和/或相机可以位于车辆1400上的不同位置。
用于相机的相机类型可以包括但不限于可以适用于车辆1400的组件和/或***的数字相机。相机可以在汽车安全完整性水平下操作(ASIL)B和/或另一个ASIL上运行。取决于实施例,相机类型可以具有任何图像捕获率,诸如60帧/秒(fps)、1420fps、240fps等。相机可能能够使用卷帘门、全局快门、其他类型的快门或其组合。在一些示例中,滤色器阵列可以包括红色透明透明(RCCC)滤色器阵列、红色透明透明蓝色(RCCB)滤色器阵列、红色蓝绿色透明(RBGC)滤色器阵列、Foveon X3颜色滤波器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或其他类型的滤色器阵列。在一些实施例中,可以使用清晰像素相机,例如具有RCCC、RCCB和/或RBGC滤色器阵列的相机,以努力增加感光度。
在一些示例中,一个或更多个相机可以用于执行高级驾驶员辅助***(ADAS)功能(例如,作为冗余或故障安全设计的一部分)。例如,可以安装多功能单声道相机以提供包括车道偏离警告、交通标志辅助和智能前照灯控制的功能。一个或更多个相机(例如,所有相机)可以同时记录和提供图像数据(例如,视频)。
一个或更多个相机可以安装在安装组件中,例如定制设计的(3D打印)组件,以便去除车内的杂散光和反射(例如,来自仪表板的反射、在挡风玻璃镜中反射),去可能会干扰相机的图像数据捕获能力。参考翼镜安装组件,翼镜组件可以定制3D打印,使得相机安装板与翼镜的形状相匹配。在一些示例中,相机可以集成到机翼镜中。对于侧视相机,相机也可以集成在机舱每个角落的四个支柱内。
具有包括车辆1400前方的部分环境的视场的相机(例如,面向前相机)可用于环绕观察,以帮助识别面向前方的路径和障碍物,以及在一个或更多个控制器1436和/或控制SoC的帮助下,辅助提供对产生占用网格和/或确定优选车辆路径至关重要的信息。面向前相机可用于执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和防撞。面向前相机还可以用于ADAS功能和***,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”)和/或其他功能,例如交通标志识别。
可以在面向前配置中使用各种相机,包括例如包括CMOS(互补金属氧化物半导体)彩色成像器的单眼相机平台。另一示例可以是宽视野相机1470,其可以用于感知从周边进入视场的对象(例如,行人、穿越交通或自行车)。尽管图14B中仅示出了一个宽视野相机,车辆1400上可以有任意数量的宽视野相机1470。此外,远程相机1498(例如,长视场立体相机对)可以用于基于深度的对象检测,尤其是对于尚未训练神经网络的对象。远程相机1498还可以用于对象检测和分类,以及基本对象跟踪。
一个或更多个立体相机1468也可以包括在面向前配置中。立体相机1468可以包括集成控制单元,其包括可缩放处理单元,其可以在单个芯片上提供可编程逻辑(FPGA)和具有集成CAN或以太网接口的多核心微处理器。这样的单元可以用于生成车辆环境的3-D地图,包括图像中所有点的距离估计。替代的立体相机1468可以包括紧凑的立体视觉传感器,其可以包括两个相机镜头(左右各一个)和可以测量从车辆到目标对象的距离的图像处理芯片,并使用生成的信息(例如,元数据)来激活自主紧急制动和车道偏离警告功能。除了本文描述的那些之外或者作为另外一种选择,可以使用其他类型的立体相机1468。
具有包括车辆1400的侧面的部分环境的视场的相机(例如,侧视相机)可以用于环绕观察,提供用于创建和更新占用网格的信息,以及至于产生侧面碰撞碰撞警告。例如,环绕相机1474(例如,如图14B所示的四个环绕相机1474)可以定位在车辆1400上。环绕相机1474可以包括宽视野相机1470、鱼眼相机、360度相机等等。例如,四个鱼眼相机可以定位在车辆的前部、后部和侧面。在替代布置中,车辆可以使用三个环绕相机1474(例如,左、右和后),并且可以利用一个或更多个其他相机(例如,面向前相机)作为第四环绕观察相机。
具有包括车辆1400后部的部分环境视场的相机(例如,后视相机)可用于停车辅助、环绕视图、后碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为面向前相机的相机(例如,远程和/或中程相机1498、立体相机1468、红外相机1472等),如本文所述。
图14C是根据本公开的一些实施例的图14A的示例性自主车辆1400的示例性***架构的框图。应该理解的是,本文描述的这个和其他布置仅作为示例阐述。除了所示的那些之外或代替所示的那些,可以使用其他布置和元件(例如,机器、接口、功能、顺序、功能分组等),并且可以完全省略一些元件。此外,本文描述的许多元件是功能实体,其可以实现为离散或分布式组件或者与其他组件一起实现,并且可以以任何合适的组合和位置实现。本文描述的由实体执行的各种函数可以由硬件、固件和/或软件来执行。例如,各种函数可以由执行存储在存储器中的指令的处理器执行。
图14C中的车辆1400的组件、特征和***中的每一个都被示出为经由总线1402连接。总线1402可以包括控制器区域网络(CAN)数据接口(在本文中可选地称为“CAN总线”)。CAN可以是车辆1400内部的网络,用于辅助控制车辆1400的各种特征和功能,例如制动器的致动、加速、制动、转向、挡风玻璃刮水器等。CAN总线可以被配置为具有数十个甚至数百个节点,每个节点都有自己唯一的标识符(例如,CAN ID)。可以读取CAN总线以找到方向盘角度、地面速度、发动机每分钟转数(RPM)、按钮位置和/或其他车辆状态指示器。CAN总线可能符合ASIL B.
尽管本文将总线1402描述为CAN总线,但是这不是限制性的。例如,除CAN总线之外或作为其替代,可以使用FlexRay和/或以太网。另外,尽管使用单条线来表示总线1402,但这不是限制性的。例如,可以存在任何数量的总线1402,其可以包括一个或更多个CAN总线、一个或更多个FlexRay总线、一个或更多个以太网总线,和/或使用不同协议的一个或更多个其他类型的总线。在一些示例中,两个或更多个总线1402可以用于执行不同的功能,和/或可以用于冗余。例如,第一总线1402可以用于防撞功能,第二总线1402可以用于致动控制。在任何示例中,每个总线1402可以与车辆1400的任何组件通信,并且两个或更多个总线1402可以与相同的组件通信。在一些示例中,车辆内的每个SoC 1404、每个控制器1436和/或每个计算机可以访问相同的输入数据(例如,来自车辆1400的传感器的输入),并且可以连接到公共总线,例如CAN总线。
车辆1400可以包括一个或更多个控制器1436,例如本文关于图14A描述的那些控制器。控制器1436可以用于各种功能。控制器1436可以耦合到车辆1400的各种其他部件和***中的任何一个,并且可以用于控制车辆1400、车辆1400的人工智能,车辆1400的信息娱乐等等。
车辆1400可以包括片上***(SoC)1404。SoC 1404可以包括CPU1406、GPU 1408、处理器1410、高速缓存1412、加速器1414、数据存储1416和/或未示出的其他组件和特征。SoC1404可用于在各种平台和***中控制车辆1400。例如,SoC 1404可以在***(例如,车辆1400的***)中与HD地图1422组合,HD地图1422可以经由网络接口1424从一个或更多个服务器(例如,图14D的服务器1478)获得地图刷新和/或更新。
CPU(一个或更多个)1406可以包括CPU集群或CPU复合体(在本文中可选地称为“CCPLEX”)。CPU 1406可以包括多个核心和/或L2高速缓存。例如,在一些实施例中,CPU1406可以包括相干多处理器配置中的八个核心。在一些实施例中,CPU 1406可以包括四个双核心集群,其中每个集群具有专用L2高速缓存(例如,2MB L2高速缓存)。CPU 1406(例如,CCPLEX)可以被配置为支持同时群集操作,使得CPU 1406的群集的任何组合在任何给定时间都是活动的。
CPU 1406可以实现包括以下特征中的一个或更多个的功率管理能力:在空闲时可以自动时钟门控各个硬件块以节省动态功率;当核心由于执行WFI/WFE指令而没有主动执行指令时,每个核心时钟可以被门控;每个核心可以独立电源门控;当所有内核心都是时钟门控或电源门控时,每个核心集群可以独立地进行时钟门控;和/或当所有核心都是电源门控时,每个核心集群可以独立地进行电源门控。CPU 1406可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和预期的唤醒时间,并且硬件/微代码确定为核心、集群和CCPLEX输入的最佳功率状态。处理核心可以在软件中支持简化的功率状态输入序列,其中工作被卸载到微代码。
GPU1408可以包括集成GPU(在本文中可选地称为“iGPU”)。GPU1408可以是可编程的,并且对于并行工作负载可以是有效的。在一些示例中,GPU 1408可以使用增强张量指令集。GPU 1408可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如,具有至少96KB存储容量的L1高速缓存),并且两个或更多个流式微处理器可以共享L2高速缓存(例如,具有512KB存储容量的L2高速缓存)。在一些实施例中,GPU 1408可以包括至少八个流式微处理器。GPU1408可以使用计算应用程序编程接口(API)。另外,GPU 1408可以使用一个或更多个并行计算平台和/或编程模型(例如,NVIDIA的CUDA)。
GPU 1408可以进行功率优化以在汽车和嵌入式使用情况下获得最佳性能。例如,GPU 1408可以在鳍片式场效应晶体管(FinFET)上制造。然而,这不是限制性的,并且可以使用其他半导体制造工艺来制造GPU 1408。每个流式微处理器可以包括分成多个块的多个混合精度处理核心。例如但不限于,可以将64个PF32核心和32个PF64核心划分为四个处理块。在这样的示例中,每个处理块可以被分配16个FP32核心、8个FP64核心、16个INT32核心、用于深度学习矩阵算术的两个混合精度NVIDIA TENSOR CORE、L0指令高速缓存、线程束(warp)调度器、调度单元,和/或64KB的寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以通过混合计算和寻址计算来提供工作负载的有效执行。流式微处理器可以包括独立的线程调度能力,以实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
GPU 1408可以包括高带宽存储器(HBM)和/或16GB HBM2存储器子***,以在一些示例中提供大约900GB/秒的峰值存储器带宽。在一些示例中,除了HBM存储器之外或作为其替代,可以使用同步图形随机存取存储器(SGRAM),例如图形双倍数据速率类型五同步随机存取存储器(GDDR5)。
GPU1408可以包括统一存储器技术,其包括访问计数器,以允许更准确地将存储器页面迁移到最频繁访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用于允许GPU 1408直接访问CPU 1406页表。在这样的示例中,当GPU1408存储器管理单元(MMU)经历未命中时,可以将地址转换请求发送到CPU 1406。作为响应,CPU 1406可以查看其页面用于地址的虚拟到物理映射的表并将转换发送回GPU1408。因此,统一存储器技术可以允许单个统一的虚拟地址空间用于CPU 1406和CPU 1408的存储器,从而简化了GPU1408编程和对GPU 1408的应用移植。
另外,GPU 1408可以包括访问计数器,其可以跟踪GPU 1408对其他处理器的存储器的访问频率。访问计数器可以帮助确保将存储器页面移动到最频繁访问页面的处理器的物理存储器。
SoC 1404可以包括任何数量的高速缓存1412,包括本文描述的那些高速缓存。例如,高速缓存1412可以包括可用于CPU 1406和GPU 1408的L3高速缓存(例如,其连接CPU1406和GPU 1408两者)。高速缓存1412可以包括回写高速缓存,其可以跟踪行的状态,例如通过使用高速缓存一致性协议(例如,MEI、MESI、MSI等)。取决于实施例,L3高速缓存可以包括4MB或更多,尽管可以使用更小的高速缓存大小。
SoC 1404可以包括一个或更多个加速器1414(例如,硬件加速器、软件加速器或其组合)。例如,SoC 1404可以包括硬件加速集群,其可以包括优化的硬件加速器和/或大的片上存储器。大的片上存储器(例如,4MB的SRAM)可以使硬件加速集群能够加速神经网络和其他计算。硬件加速集群可以用于补充GPU 1408并且卸载GPU 1408的一些任务(例如,以释放GPU 1408的更多周期以执行其他任务)。作为示例,加速器1414可以用于目标工作负载(例如,感知、卷积神经网络(CNN)等),其足够稳定以适于加速。本文使用的术语“CNN”可以包括所有类型的CNN,包括基于区域或区域的卷积神经网络(RCNN)和快速RCNN(例如,用于对象检测)。
加速器1414(例如,硬件加速群集)可以包括深度学习加速器(DLA)。DLA可以包括一个或更多个张量处理单元(TPU),其可以被配置为每秒为深度学习应用和推断提供额外的10万亿次操作。TPU可以是被配置为并且被优化用于执行图像处理功能的加速器(例如,用于CNN、RCNN等)。DLA还可以针对特定的一组神经网络类型和浮点运算以及推断进行优化。DLA的设计可以提供比通用GPU更高的每毫米性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积功能,例如支持用于特征和权重的INT8、INT16和FP16数据类型,以及后处理器功能。
对于各种函数中的任何一种,DLA可以快速且有效地对处理或未处理的数据执行神经网络,尤其是CNN,包括例如但不限于:用于使用来自相机传感器的数据的对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行紧急车辆检测和识别和检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;以及/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 1408的任何功能,并且通过使用推断加速器,例如,设计者可以针对DLA或GPU 1408用于任何功能。例如,设计者可以将对CNN的处理和浮点运算集中在DLA上,并将其他功能留给GPU 1408和/或其他加速器1414。
加速器1414(例如,硬件加速群集)可以包括可编程视觉加速器(PVA),其可以替代地在本文中称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自动驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以在性能和灵活性之间提供平衡。例如,每个PVA可以包括,例如但不限于,任意数量的精简指令集计算机(RISC)核心、直接存储器访问(DMA)和/或任何数量的向量处理器。
RISC核心可以与图像传感器(例如,本文描述的任何相机的图像传感器)、图像信号处理器等交互。每个RISC核心可以包括任何数量的存储器。根据实施例,RISC核心可以使用许多协议中的任何协议。在一些示例中,RISC核心可以执行实时操作***(RTOS)。可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储器设备来实现RISC核心。例如,RISC核心可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使PVA的组件独立于CPU 1406访问***存储器。DMA可以支持用于向PVA提供优化的任何数量的特征,包括但不限于,支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持多达六维或更多维的寻址,其可以包括块宽度、块高度、块深度、水平块步进、垂直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为有效且灵活地执行用于计算机视觉算法的编程并提供信号处理能力。在一些示例中,PVA可以包括PVA核心和两个向量处理子***分区。PVA核心可以包括处理器子***、DMA引擎(例如,两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎操作,并且可以包括向量处理单元(VPU)、指令缓存和/或向量存储器(例如,VMEM)。VPU核心可以包括数字信号处理器,例如单指令、多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以提高吞吐量和速度。
每个向量处理器可以包括指令高速缓存,并且可以耦合到专用存储器。结果,在一些示例中,每个向量处理器可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行性。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上。在其他示例中,包括在特定PVA中的向量处理器可以在同一图像上同时执行不同的计算机视觉算法,或者甚至在顺序图像或图像的部分上执行不同的算法。其中,任何数量的PVA可以包括在硬件加速集群中,并且任何数量的向量处理器可以包括在每个PVA中。此外,PVA可以包括附加的纠错码(ECC)存储器,以增强整体***安全性。
加速器1414(例如,硬件加速群集)可以包括片上计算机视觉网络和SRAM,用于为加速器1414提供高带宽、低延迟的SRAM。在一些示例中片上存储器可以包括至少4MB的SRAM,其包括例如但不限于八个场可配置存储器块,PVA和DLA都可以访问这些存储器块。每对存储器块可以包括高级***总线(APB)接口、配置电路、控制器和多路复用器。可以使用任何类型的存储器。PVA和DLA可以通过骨干网访问存储器,该骨干网为PVA和DLA提供对存储器的高速访问。主干可以包括片上计算机视觉网络,其将PVA和DLA互连到存储器(例如,使用APB)。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA都提供就绪和有效信号的接口。这种接口可以提供单独的相位和用于发送控制信号/地址/数据的单独信道,以及用于连续数据传输的突发类型通信。尽管可以使用其他标准和协议,但是这种类型的接口可以符合ISO 26262或IEC 61508标准。
在一些示例中,SoC 1404可以包括实时光线跟踪硬件加速器,诸如在2018年8月10日提交的美国专利申请No.16/101,232中描述的。实时光线-跟踪硬件加速器可用于快速有效地确定对象的位置和范围(例如,在世界模型内),生成实时可视化模拟,用于RADAR信号解释,用于声音传播合成和/或分析,用于模拟SONAR***,用于一般波传播模拟,用于与LIDAR数据进行比较以用于定位和/或其他功能,和/或用于其他用途。
加速器1414(例如,硬件加速器集群)具有用于自动驾驶的广泛用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自动车辆中的关键处理阶段。PVA的功能非常适合需要可预测处理的算法域,低功耗和低延迟。换句话说,PVA在半密集或密集的常规计算上表现良好,即使在小数据集上也是如此,这些数据集需要具有低延迟和低功率的可预测运行时间。因此,在用于自动驾驶车辆的平台的背景下,PVA被设计为运行经典的计算机视觉算法,因为它们在对象检测和对整数数学运算方面是有效的。
例如,根据本技术的一个实施例,PVA用于执行计算机立体视觉。在一些示例中可以使用基于半全局匹配的算法,但是这不是限制性的。用于3-5级自动驾驶的许多应用运行中需要动态估计/立体匹配(例如,来自运动、行人识别、车道检测等的结构)。PVA可以对来自两个单眼相机的输入执行计算机立体视觉功能。
在一些实例中,PVA可用于执行致密光流。根据处理原始RADAR数据(例如,使用4D快速傅里叶变换)来提供处理的RADAR。在其他示例中,例如,通过处理原始飞行时间数据以提供处理的飞行时间数据,PVA用于飞行时间深度处理。
DLA可以用于运行任何类型的网络以增强控制和驾驶安全性,包括例如输出每个对象检测的置信度度量的神经网络。这样的置信度值可以被解释为概率,或者与其他检测相比提供每个检测的相对“权重”。该置信度值使***能够做出关于哪些检测应被视为真正的阳性检测而不是假阳性检测的进一步决定。例如,***可以设置置信度的阈值,并且仅考虑超过阈值的检测作为真阳性检测。在自动紧急制动(AEB)***中,假阳性检测将导致车辆自动执行紧急制动,这显然是不希望的。因此,只有最自信的检测应被视为AEB的触发因素。DLA可以运行神经网络来回归置信值。神经网络可以将至少一些参数子集作为其输入,例如边界框尺寸、获得的地平面估计(例如,来自另一子***)、惯性测量单元(IMU)传感器1466输出,其与从神经网络和/或其他传感器(例如,LIDAR传感器1464或RADAR传感器1460)获得的对象的车辆1400的方向、距离、3D位置估计等相关。
SoC 1404可以包括数据存储1416(例如,存储器)。数据存储1416可以是SoC 1404的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,数据存储1416可以足够大以存储神经网络的多个实例以用于冗余和安全。数据存储1412可以包括L2或L3高速缓存1412。对数据存储1416的引用可以包括对与PVA、DLA和/或其他加速器1414相关联的存储器的引用,如本文所述。
SoC 1404可以包括一个或更多个处理器1410(例如,嵌入式处理器)。处理器1410可以包括启动和电源管理处理器,其可以是专用处理器和子***,以处理启动电源和管理功能以及相关的安全实施。启动和电源管理处理器可以是SoC 1404引导序列的一部分,并且可以提供运行时电源管理服务。启动功率和管理处理器可以提供时钟和电压编程,协助***低功率状态转换,SoC 1404热和温度传感器的管理,和/或SoC 1404功率状态的管理。每个温度传感器可以实现为其输出频率与温度成比例的环形振荡器,并且SoC 1404可以使用环形振荡器来检测CPU 1406、GPU 1408以及加速器1414的温度。如果确定温度超过阈值,则启动和电源管理处理器可以进入温度故障例程并将SoC 1404置于较低功率状态和/或将车辆1400置于司机到安全停止模式(例如,使车辆1400安全停止)。
处理器1410还可以包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是音频子***,其通过多个接口实现对多声道音频的全硬件支持,以及广泛且灵活的音频I/O接口范围。在一些示例中,音频处理引擎是专用处理器核心,其具有带有专用RAM的数字信号处理器。
处理器1410还可以包括始终在线处理器引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。始终在线处理器引擎可以包括处理器核心、紧密耦合的RAM、支持的***设备(例如,定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器1410还可以包括安全集群引擎,其包括专用处理器子***以处理汽车应用的安全管理。安全集群引擎可以包括两个或更多个处理器核心、紧密耦合的RAM、支持的***设备(例如,定时器,中断控制器等)和/或路由逻辑。在安全模式中,两个或更多个核心可以以锁步模式操作并且用作具有比较逻辑的单个核心以检测它们的操作之间的任何差异。
处理器1410还可以包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子***。
处理器1410还可以包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是作为相机处理管线的一部分的硬件引擎。
处理器1410可以包括视频图像合成器,其可以是处理块(例如,在微处理器上实现),其实现视频回放应用程序所需的视频后处理功能以产生玩家窗口窗口的最终图像。视频图像合成器可以在宽视野相机1470、环绕相机1474和/或机舱内监视相机传感器上执行镜头失真校正。机舱内监控相机传感器优选地由在高级SoC的另一个实例上运行的神经网络监控,被配置为在机舱事件中识别并相应地响应。舱内***可执行唇读以激活蜂窝服务并拨打电话、指示电子邮件、改变车辆的目的地、激活或改变车辆的信息娱乐***和设置,或提供语音激活的网上冲浪。仅当车辆在自主模式下操作时,某些功能才可用于驾驶员,否则将被禁用。
视频图像合成器可以包括用于空间和时间噪声降低的增强的时间噪声降低。例如,在视频中发生运动的情况下,降噪适当地对空间信息进行加权,从而减小由相邻帧提供的信息的权重。在图像或图像的一部分不包括运动的情况下,由视频图像合成器执行的时间噪声降低可以使用来自先前图像的信息来减少当前图像中的噪声。
视频图像合成器还可以被配置为在输入立体镜头帧上执行立体声校正。当操作***桌面正在使用时,视频图像合成器还可以用于用户界面合成,并且GPU 1408不需要连续地渲染新表面。即使当GPU 1408通电并且活动进行3D渲染时,视频图像合成器也可用于卸载GPU 1408以改善性能和响应性。
SoC 1404还可以包括用于接收来自相机、高速接口和/或可以用于相机和相关的像素输入功能的视频输入块的视频和输入的移动工业处理器接口(MIPI)相机串行接口。SoC 1404还可以包括输入/输出控制器,其可以由软件控制并且可以用于接收未提交给特定角色的I/O信号。
SoC 1404还可以包括宽范围的***接口,以实现与***设备、音频编解码器、电源管理和/或其他设备的通信。SoC 1404可用于处理来自相机(例如,通过千兆位多媒体串行链路和以太网连接)的数据,传感器(例如,LIDAR传感器1464、RADAR传感器1460等,其可以通过以太网连接),来自总线1402的数据(例如,车辆1400的速度、方向盘位置等),来自GNSS传感器1458的数据(例如,通过以太网或CAN总线连接)。SoC 1404还可以包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且可以用于将CPU 1406从常规数据管理任务中释放出来。
SoC 1404可以是具有跨越自动化级别3-5的灵活架构的端到端平台,从而提供综合的功能安全架构,其利用并有效利用计算机视觉和ADAS技术以实现多样性和冗余,为灵活、可靠的驾驶软件堆栈提供平台,以及深度学***台。
因此,该技术提供了传统***无法实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,其可以使用高级编程语言(诸如C编程语言)来配置,以跨多种视觉数据执行各种处理算法。然而,CPU通常不能满足许多计算机视觉应用的性能要求,例如与执行时间和功耗相关的应用。特别是,许多CPU无法实时执行复杂的对象检测算法,这是车载ADAS应用的要求,也是实际3-5级自动驾驶汽车的要求。
与传统***相比,通过提供CPU复合体、GPU复合体和硬件加速集群,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起启用Level 3-5自动驾驶功能。例如,在DLA或dGPU(例如,GPU 1420)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通标志,包括神经网络尚未具体训练的标志。DLA还可以包括神经网络,其能够识别、解释和提供对符号的语义理解,并且将该语义理解传递给在CPU复合体上运行的路径规划模块。
作为另一个示例,可以同时运行多个神经网络,如3级、4级或5级驾驶所需。例如,警告标志包含“小心:闪烁的灯指示结冰状况”以及电灯,可以由若干神经网络独立地或共同地解释。标志本身可以通过第一部署的神经网络(例如,已经训练的神经网络)被识别为交通标志,文本“闪烁灯指示结冰状况”可以由第二部署的神经网络解释,其通知车辆的路径规划软件(最好在CPU Complex上执行),当检测到闪光时,存在结冰的情况。可以通过在多个帧上操作第三部署的神经网络来识别闪光,从而向车辆的路径规划软件通知闪光的存在(或不存在)。所有三个神经网络可以同时运行,例如在DLA内和/或GPU 1408上。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据来识别车辆1400的授权驾驶员和/或所有者的存在。当车主接近驾驶员车门并打开车灯时,始终在线传感器处理引擎可以用于解锁车辆,并且在安全模式下,当车主离开车辆时禁用车辆。以这种方式,SoC 1404提供防盗和/或劫车的安全性。
在另一个示例中,用于紧急车辆检测和识别的CNN可以使用来自麦克风1496的数据来检测和识别紧急车辆警报器。与使用通用分类器来检测警报器并手动提取特征的传统***相比,SoC 1404使用CNN来分类环境和城市声音,以及分类视觉数据。在优选实施例中,训练在DLA上运行的CNN以识别紧急车辆的相对闭合速度(例如,通过使用多普勒效应)。CNN还可以被训练以识别特定于车辆正在操作的局部区域的紧急车辆,如GNSS传感器1458所识别的。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报器,而在美国,CNN将寻求仅识别北美警报器。一旦检测到紧急车辆,就可以使用控制程序来执行紧急车辆安全例程,使车辆减速、拖到路边、停放车辆和/或在超声波传感器1462的辅助下使车辆空转,直到紧急车辆通过。
车辆可以包括CPU 1418(例如,离散的CPU或dCPU),其可以经由高速互连(例如,PCIe)耦合到SoC 1404。例如,CPU 1418可以包括X86处理器。例如,CPU 1418可以用于执行各种函数中的任何功能,包括仲裁ADAS传感器和SoC 1404之间可能不一致的结果,和/或监控控制器1436和/或信息娱乐SoC 1430的状态和健康状况。
车辆1400可以包括GPU1420(例如,离散的GPU或dGPU),其可以经由高速互连(例如,NVIDIA的NVLINK)耦合到SoC 1404。GPU1420可以提供额外的人工智能功能,例如通过执行冗余和/或不同的神经网络,并且可以用于基于来自车辆1400的传感器的输入(例如,传感器数据)来训练和/或更新神经网络。
车辆1400还可以包括网络接口1424,其可以包括一个或更多个无线天线1426(例如,用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等)。网络接口1424可以用于通过具有云的因特网(例如,与服务器1478和/或其他网络设备),与其他车辆和/或与计算设备(例如,客户端设备)实现无线连接。为了与其他车辆通信,可以在两个车辆之间建立直接链路和/或可以建立间接链路(例如,跨网络和通过因特网)。可以使用车辆到车辆通信链路来提供直接链接。车辆到车辆通信链路可以向车辆1400提供关于车辆1400附近的车辆的信息(例如,车辆1400前方、侧面和/或后方的车辆)。该功能可以是车辆1400的协作自适应巡航控制功能的一部分。
网络接口1424可以包括提供调制和解调功能的SoC,并且使得控制器1436能够通过无线网络进行通信。网络接口1424可以包括射频前端,用于从基带到射频的上转换,以及从射频到基带的下转换。频率转换可以通过众所周知的过程来执行,和/或可以使用超外差过程来执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z-Wave、ZigBee、LoRaWAN和/或其他无线协议进行通信的无线功能。
车辆1400还可以包括数据存储1428,其可以包括片外(例如,SoC 1404以外)存储。数据存储1428可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一位数据的其他组件和/或设备。
车辆1400还可以包括GNSS传感器1458。GNSS传感器1458(例如,GPS和/或辅助GPS传感器),以帮助映射、感知、占用网格生成和/或路径规划功能。可以使用任何数量的GNSS传感器1458,包括,例如但不限于,使用具有以太网到串行(RS-232)桥的USB连接器的GPS。
车辆1400还可以包括RADAR传感器1460。即使在黑暗和/或恶劣天气条件下,车辆1400也可以使用RADAR传感器1460进行远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器1460可以使用CAN和/或总线1402(例如,传输由RADAR传感器1460生成的数据)来控制和访问对象跟踪数据,在某些示例中可以访问以太网来访问原始数据。可以使用各种RADAR传感器类型。例如但不限于,RADAR传感器1460可适用于前、后和侧RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器1460可以包括不同的配置,例如具有窄视野的长距离,具有宽视野的短距离,短距离侧覆盖等。在一些示例中,远程RADAR可以是用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多个独立扫描实现的宽视野,例如在250米范围内。RADAR传感器1460可以帮助区分静止和移动对象,并且可以由ADAS***用于紧急制动辅助和向前碰撞警告。远程RADAR传感器可以包括具有多个(例如,六个或更多个)固定RADAR天线和高速CAN和FlexRay接口的多模RADAR。在具有六个天线的示例中,中央四个天线可以创建聚焦波束图案,其被设计为以更高的速度记录车辆1400的周围环境,并且相邻车道中的交通具有最小的干扰。另外两个天线可以扩展视场,使得可以快速检测进入或离开车辆1400车道的车辆。
作为示例,中程RADAR***可以包括,作为示例,高达1460m(前)或80m(后)的范围,以及高达42度(前)或1450度(后)的视场。短程RADAR***可以包括但不限于设计成安装在后保险杠两端的RADAR传感器。当安装在后保险杠的两端时,这种RADAR传感器***可以产生两个横梁,其持续监控车辆后部和车辆旁边的盲点。
短程RADAR***可以在ADAS***中用于盲点检测和/或车道变换辅助。
车辆1400还可以包括超声波传感器1462。可以将超声波传感器1462定位在车辆1400的前部、后部和/或侧面,可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声波传感器1462,并且不同的超声波传感器1462可以用于不同的检测范围(例如,2.5m、4m)。超声波传感器1462可以在ASIL B的功能安全水平下操作。
车辆1400可以包括LIDAR传感器1464。LIDAR传感器1464可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器1464可以是功能安全级别ASIL B。在一些示例中,车辆1400可以包括可以使用以太网的多个LIDAR传感器1464(例如,两个、四个、六个等)(例如,用于提供数据到千兆以太网交换机)。
在一些示例中,LIDAR传感器1464能够从360度视场提供对象列表及对象的距离。商用LIDAR传感器1464可以具有大约1400m的通知范围,精度为2cm-3cm,并且例如支持1400Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出LIDAR传感器1464。在这样的示例中,LIDAR传感器1464可以被实现为可以嵌入车辆1400的前部、后部、侧面和/或角落的小型设备。在这样的示例中,LIDAR传感器1464,可提供高达1420度的水平和35度垂直视场,即使对于低反射率对象也可提供200米的范围。前置LIDAR传感器1464可以被配置用于45度和135度之间的水平视场。
在一些示例中,还可以使用LIDAR技术,例如3D闪光激光LIDAR。3D闪光激光LIDAR使用激光闪光灯作为发射源,照亮车辆周围约200米。闪光激光LIDAR单元包括接收器,其记录每个像素上的激光脉冲传播时间和反射光,其反过来对应于从车辆到对象的范围。闪光激光LIDAR可以允许每次激光闪光产生高度精确和无失真的周围环境图像。在一些示例中,可以部署四个闪光激光LIDAR传感器,一个在车辆1400的每一侧。可用的3D闪光激光LIDAR***包括固态3D凝视阵列LIDAR相机,除了风扇之外没有移动部件(例如,非扫描LIDAR设备)。闪光激光LIDAR装置可以每帧使用5纳秒级别I(人眼安全)激光脉冲,并且可以以3D范围点云和共同登记的强度数据的形式捕获反射的激光。通过使用闪光激光LIDAR,并且因为闪光激光LIDAR是没有移动部件的固态设备,所以LIDAR传感器1464可能不太容易受到运动模糊、振动和/或震动的影响。
车辆还可以包括IMU传感器1466。在一些示例中,IMU传感器1466可以位于车辆1400的后轴的中心。IMU传感器1466可以包括,例如但不限于,加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器1466可以包括加速计和陀螺仪,而在九轴应用中,IMU传感器1466可以包括加速计、陀螺仪和磁力计。
在一些实施例中,IMU传感器1466可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合了微机电***(MEMS)惯性传感器、高敏GPS接收器和先进的卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器1466可以通过直接观察和关联从GPS到IMU传感器1466的速度变化来使车辆1400能够估计航向而不需要来自磁传感器的输入。在一些示例中,IMU传感器1466和GNSS传感器1458可以组合在单个集成单元中。
车辆可以包括放置在车辆1400中和/或周围的麦克风1496。麦克风1496可以用于紧急车辆检测和识别等。
车辆还可包括任何数量的相机类型,包括立体相机1468、宽视野相机1470、红外相机1472、环绕相机1474、远程和/或或中程相机1498,和/或其他相机类型。相机可用于捕获车辆1400的整个车辆1400周边周围的图像数据。所使用的相机类型取决于车辆1400的实施例和要求,并且相机类型的任何组合可用于提供围绕该车辆1400的必要覆盖。另外,根据实施例,相机的数量可以不同。例如,车辆可包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为示例而非限制,相机可以支持千兆位多媒体串行链路(GMSL)和/或千兆位以太网。本文关于图14A和图14B更详细地描述了每个相机。
车辆1400还可以包括振动传感器1442。振动传感器1442可以测量车辆的部件(例如轴)的振动。例如,振动的变化可以指示路面的变化。在另一示例中,当使用两个或更多个振动传感器1442时,振动之间的差异可用于确定路面的摩擦或滑动(例如,当振动的差异在动力驱动轴和自由旋转轴之间时)。
车辆1400可以包括ADAS***1438。在一些示例中,ADAS***1438可以包括SoC。ADAS***1438可包括自主/自适应/自动巡航控制(ACC)、协同自适应巡航控制(CACC)、前方碰撞警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后部交叉警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器1460、LIDAR传感器1464和/或相机。ACC***可包括纵向ACC和/或横向ACC。纵向ACC监视并控制紧接在车辆1400前方的到车辆的距离,并自动调节车辆速度以保持与前方车辆的安全距离。横向ACC执行距离保持,并且建议车辆1400在必要时改变车道。横向ACC与其他ADAS应用相关,例如LCA和CWS。
CACC使用来自其他车辆的信息,其可以经由网络接口1424和/或无线天线1426经由无线链路从其他车辆接收,或者间接地通过网络连接(例如,通过因特网)接收。直接链路可以由车辆到车辆(V2V)通信链路提供,而间接链路可以是基础设施到车辆(I2V)通信链路。通常,V2V通信概念提供关于紧接在前的车辆的信息(例如,紧接在车辆1400之前和与车辆1400在相同的车道中的车辆),而I2V通信概念提供关于更前方的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或两者。给定车辆1400前方车辆的信息,CACC可能更可靠并且它具有改善交通流畅通性和减少道路拥堵的潜力。
FCW***被设计成警告驾驶员危险,从而驾驶员可以采取纠正措施。FCW***使用面向前相机和/或RADAR传感器1460,耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。FCW***可以提供警告,例如以声音、视觉警告、振动和/或快速制动脉冲的形式。
AEB***检测与另一车辆或其他对象即将发生的面向前碰撞,并且如果驾驶员未在指定时间或距离参数内采取校正动作,则AEB***可自动应用制动。AEB***可以使用面向前相机和/或RADAR传感器1460,耦合到专用处理器、DSP、FPGA和/或ASIC。当AEB***检测到危险时,它通常首先警告驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,则AEB***可以自动应用制动器以努力防止或至少缓解预测的碰撞的影响。AEB***可包括诸如动态制动支撑和/或即将发生碰撞的制动等技术。
LDW***提供视觉、听觉和/或触觉警告,例如方向盘或座椅振动,以在车辆1400越过车道标记时警告驾驶员。当驾驶员通过激活转向信号指示故意车道偏离时,LDW***不会激活。LDW***可以使用面向前侧的相机,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到驱动器反馈,例如显示器、扬声器和/或振动组件。
LKA***是LDW***的变体。如果车辆1400开始离开车道,则LKA***提供转向输入或制动以校正车辆1400。
BSW***检测并警告驾驶员汽车盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。当驾驶员使用转向信号时,***可以提供附加警告。BSW***可以使用面向后侧的相机和/或RADAR传感器1460,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动组件。
当车辆1400正在后退时,当在面向后相机范围之外检测到对象时,RCTW***可以提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB,以确保应用车辆制动器以避免碰撞。RCTW***可以使用一个或更多个面向后RADAR传感器1460,其耦合到专用处理器、DSP、FPGA和/或ASIC,其电耦合到驾驶员反馈,例如显示器、扬声器和/或振动元件。
传统的ADAS***可能容易产生误报结果,这可能令驾驶员烦恼并分散注意力,但通常不是灾难性的,因为ADAS***警告驾驶员并允许驾驶员确定安全条件是否真正存在并因此行动。然而,在自主车辆1400中,在结果冲突的情况下,车辆1400本身必须决定是否注意来自主计算机或辅助计算机(例如,第一控制器1436或第二控制器1436)的结果。例如,在一些实施例中,ADAS***1438可以是备份和/或辅助计算机,用于向备份计算机合理性模块提供感知信息。备份计算机合理性监视器可以在硬件组件上运行冗余的各种软件,以检测感知和动态驱动任务中的故障。可以将来自ADAS***1438的输出提供给监督MCU。如果主计算机和辅助计算机的输出发生冲突,则监督MCU必须确定如何协调冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度分数,指示主计算机对所选结果的置信度。如果置信度得分超过阈值,则监督MCU可以遵循主计算机的指示,而不管辅助计算机是否提供冲突或不一致的结果。在置信度分数不满足阈值并且主计算机和辅助计算机指示不同结果(例如,冲突)的情况下,监督MCU可以在计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,该神经网络被训练和配置成基于来自主计算机和辅助计算机的输出来确定辅助计算机提供错误警报的条件。因此,监控MCU中的神经网络可以了解辅助计算机的输出何时可信以及何时不可信。例如,当辅助计算机是基于RADAR的FCW***时,监控MCU中的神经网络可以了解FCW***何时识别实际上不存在危险的金属对象,例如引发警报的排水栅或井盖。类似地,当辅助计算机是基于相机的LDW***时,监控MCU中的神经网络可以学习在存在骑自行车者或行人时超越LDW并且车道偏离实际上是最安全的操纵。在包括在监控MCU上运行的神经网络的实施例中,监控MCU可以包括适合于运行具有相关存储器的神经网络的DLA或GPU中的至少一个。在优选实施例中,监控MCU可以包括和/或被包括作为SoC 1404的组件。
在其他示例中,ADAS***1438可以包括使用传统的计算机视觉规则来执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典计算机视觉规则(如果-然后),并且监督MCU中神经网络的存在可以提高可靠性、安全性和性能。例如,多样化的实现和有意的非身份使整个***更具容错性,尤其是由软件(或软件-硬件接口)功能引起的故障。例如,如果主计算机上运行的软件中存在软件漏洞或错误,并且在辅助计算机上运行的不相同的软件代码提供相同的总体结果,则监控MCU可能更有信心整体结果是正确的,主计算机上的软件或硬件中的漏洞不会导致重大错误。
在一些示例中,ADAS***1438的输出可以被馈送到主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***1438由于紧接在前面的对象而指示面向前碰撞警告,则感知块可在识别对象时使用该信息。在其他示例中,如本文所述,辅助计算机可以具有其自己的训练的神经网络,从而降低误报的风险。
车辆1400还可以包括信息娱乐***SoC 1430(例如,车载信息娱乐***(IVI))。尽管图示和描述为SoC,但信息娱乐***可以不是SoC,并且可以包括两个或更多个分立组件。信息娱乐SoC 1430可以包括可以用于向车辆1400提供音频(例如,音乐、个人数字助理、导航指令、新闻、广播等)、视频(例如,电视、电影、流媒体等)、电话(例如,免提呼叫)、网络连接(例如,LTE、Wi-Fi等)和/或信息服务(例如,导航***、后停车辅助、无线电数据***、车辆相关信息,例如燃料水平、所覆盖的总距离、制动燃料水平、油位、门打开/关闭、空气过滤器信息等)的硬件和软件的组合。例如,信息娱乐***SoC 1430可以是无线电、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载、车载娱乐、Wi-Fi、方向盘音频控制、免提语音控制、抬头显示器(HUD)、HMI显示器1434、远程信息处理设备、控制面板(例如,用于控制和/或与各种组件、特征和/或***交互)和/或其他组件。信息娱乐***SoC 1430还可用于向车辆的用户提供信息(例如,视觉和/或听觉),例如来自ADAS***1438的信息,自动驾驶信息诸如计划的车辆操纵、轨迹、周围环境信息(例如,交叉口信息、车辆信息、道路信息等)和/或其他信息。
信息娱乐SoC 1430可以包括GPU功能。信息娱乐***SoC 1430可以通过总线1402(例如,CAN总线、以太网等)与车辆1400的其他设备、***和/或组件通信。在一些示例中,信息娱乐***SoC 1430可以耦合到监督MCU,使得信息娱乐***的GPU可以在主控制器1436(例如,车辆1400的主和/或备用计算机)发生故障的情况下执行一些自驱动功能。在这样的示例中,信息娱乐***SoC 1430可以将车辆1400置于司机至安全停止模式,如本文所述。
车辆1400还可以包括仪表组1432(例如,数字仪表板、电子仪表组、数字仪表板等)。仪表组1432可以包括控制器和/或超级计算机(例如,离散控制器或超级计算机)。仪表组1432可包括一组仪表,例如速度表、燃油油位、油压、转速计、里程表、转向指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机-功能性灯、安全气囊(SRS)***信息、照明控制、安全***控制、导航信息等。在一些示例中,可以在信息娱乐***SoC 1430和仪表组1432之间显示和/或共享信息。换句话说,仪表组1432可以被包括作为信息娱乐***SoC1430的一部分,反之亦然。
图14D是根据本公开的一些实施例的用于图14A的示例性自主车辆1400的基于云的服务器之间的通信的***图。***1476可以包括服务器1478、网络1490和车辆,包括车辆1400。服务器1478可以包括多个GPU 1484(A)-1484(H)(本文统称为GPU 1484)、PCIe交换机1482(A)-1482(H)(本文统称为PCIe交换机1482)和/或CPU 1480(A)-1480(B)(本文统称为CPU 1480)。GPU 1484、CPU 1480和PCIe交换机可以与高速互连互连,例如但不限于由NVIDIA和/或PCIe连接1486开发的NVLink接口1488。在一些示例中,GPU 1484是经由NVLink和/或NVSwitch SoC连接并且GPU 1484和PCIe交换机1482经由PCIe互连连接。虽然示出了八个GPU 1484、两个CPU 1480和两个PCIe开关,但是这不是限制性的。根据实施例,每个服务器1478可以包括任何数量的GPU 1484、CPU 1480和/或PCIe交换机。例如,服务器1478可以各自包括八个、十六个、三十二个和/或更多个GPU 1484。
服务器1478可以通过网络1490和从车辆接收表示意外或改变的道路状况的图像的图像数据,例如最近开始的道路工程。服务器1478可以通过网络1490和车辆、神经网络1492、更新的神经网络1492和/或地图信息1494发送,包括关于交通和道路状况的信息。对地图信息1494的更新可以包括HD地图1422的更新,例如关于建筑工地、坑洼、弯路、洪水和/或其他障碍物的信息。在一些示例中,神经网络1492、更新的神经网络1492和/或地图信息1494可以由在从环境中的任何数量的车辆接收的数据中表示的新训练和/或体验产生,和/或基于在数据中心执行的训练(例如,使用服务器1478和/或其他服务器)。
服务器1478可用于基于训练数据训练机器学习模型(例如,神经网络)。训练数据可以由车辆生成,和/或可以在模拟中生成(例如,使用游戏引擎)。在一些示例中,训练数据被标记(例如,神经网络受益于监督学习)和/或经历其他预处理,而在其他示例中,训练数据未被标记和/或预处理(例如,神经网络不需要监督学习)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如,通过网络1490传输到车辆,和/或机器学习模型可以由服务器1478使用以远程监控车辆。
在一些示例中,服务器1478可以从车辆接收数据并将数据应用于最新的实时神经网络以用于实时智能推断。服务器1478可以包括由GPU 1484供电的深度学习超级计算机和/或专用AI计算机,例如由NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器1478可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器1478的深度学习基础设施可以能够进行快速、实时的推断,并且可以使用该能力来评估和验证处理器、软件和/或相关硬件的健康状况。例如,深度学习基础设施可以从车辆1400接收周期性更新,诸如车辆1400已经在该图像序列中定位的一系列图像和/或对象(例如,经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行其自己的神经网络来识别对象并将它们与车辆1400识别的对象进行比较,并且如果结果不匹配并且基础设施断定车辆1400中的AI发生故障,则服务器1478可以向车辆1400发送信号,指示车辆1400的故障安全计算机进行控制,通知乘客,并完成安全停车操纵。
对于推断,服务器1478可以包括GPU1484和一个或更多个可编程推断加速器(例如,NVIDIA的TensorRT)。GPU驱动的服务器和推断加速的组合可以使实时响应成为可能。在其他示例中,例如在性能不太重要的情况下,由CPU、FPGA和其他处理器供电的服务器可以用于推断。
示例性计算设备
图15是适合用于实现本公开的一些实施例的示例性计算设备1500的框图。计算设备1500可以包括直接或间接耦合以下设备的总线1502:存储器1504、一个或更多个中央处理单元(CPU)1506、一个或更多个图形处理单元(GPU)1508、通信接口1510、输入/输出(I/O)端口1512、输入/输出组件1514、电源1516以及一个或更多个呈现组件1518(例如,显示器)。
尽管图15的各种块示出了通过总线1502与线路连接,这不是限制性的并且仅为了清楚起见。例如,在一些实施例中,呈现组件1518(诸如显示设备)可以被认为是I/O组件1514(例如,如果显示器是触摸屏)。作为另一示例,CPU 1506和/或GPU 1508可以包括存储器(例如,除了GPU1508、CPU 1506和/或其他组件的存储器之外,存储器1504可以代表存储设备)。换句话说,图15的计算设备仅仅是说明性的。“工作站”、“服务器”、“笔记本电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持设备”、“游戏机”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型等类别之间没有区别,如在图15的计算设备的范围内所预期的那样。
总线1502可以表示一个或更多个总线,例如地址总线、数据总线、控制总线或其组合。总线1502可以包括一种或多种总线类型,例如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连快速(PCIe)总线和/或其他类型的总线。
存储器1504可以包括各种计算机可读介质中的任何一种。计算机可读介质可以是可以由计算设备1500访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块和/或其他数据类型)的任何方法或技术实现的易失性和非易失性介质和/或可移除和不可移除介质。例如,存储器1504可以存储计算机可读指令(例如,表示程序和/或程序元素,例如操作***。计算机存储介质可以包括但不限于,RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用光盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备,或可以用于存储期望的信息并且可以由计算设备1500访问任何其他介质。如本文所使用的,计算机存储介质本身不包括信号。
通信介质可以在已调制数据信号(诸如载波或其他传输机制)中体现计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息传递介质。术语“已调制数据信号”可以指的是以对信号中的信息进行编码的方式设置或改变其一个或更多个特征的信号。作为示例而非限制,通信介质可以包括有线介质(诸如有线网络或直接有线连接),以及无线介质(诸如声学、RF、红外和其他无线介质)。上述任何组合也应包括在计算机可读介质的范围内。
CPU 1506可以被配置为执行计算机可读指令以控制计算设备1500的一个或更多个组件以执行本文描述的方法和/或过程中的一个或更多个。每个CPU 1506可以包括能够同时处理多个软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU 1506可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于所实现的计算设备1500的类型(例如,用于移动设备的具有较少核心的处理器和用于服务器的具有更多核心的处理器)。例如,取决于计算设备1500的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或辅助协处理器(例如数学协处理器)之外,计算设备1500还可以包括一个或更多个CPU 1506。
计算设备1500可以使用GPU 1508来渲染图形(例如,3D图形)。GPU 1508可以包括数百或数千个能够同时处理数百或数千个软件线程的核心。GPU 1508可以响应于渲染命令(例如,经由主机接口接收来自CPU1506的渲染命令)生成输出图像的像素数据。GPU 1508可以包括用于存储像素数据的图形存储器,例如显示存储器。显示存储器可以被包括作为存储器1504的一部分。GPU708可以包括并行操作的两个或更多个GPU(例如,经由链路)。当组合在一起时,每个GPU 1508可以生成用于输出图像的不同部分或用于不同输出图像的像素数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每个GPU可以包括其自己的存储器,或者可以与其他GPU共享存储器。
在计算设备1500不包括GPU 1508的示例中,CPU 1506可用于渲染图形。
通信接口1510可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备通信。通信接口1510可以包括用于实现通过多个不同网络中的任何网络进行通信的组件和功能,例如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或因特网。
I/O端口1512可以使计算设备1500能够逻辑地耦合到其他设备(包括I/O组件1514、呈现组件1518和/或其他组件),其中一些组件可以可以内置到(例如,集成在)计算设备1500中。示例性I/O组件1514包括麦克风、鼠标、键盘、操纵杆、游戏手柄、游戏控制器、卫星天线、扫描仪、打印机、无线设备等。I/O组件1514可以提供处理由用户生成的空中手势、语音或其他生理输入的自然用户界面(NUI)。在某些情况下,可以将输入发送到适当的网络元件以进行进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪以及与计算设备1500的显示相关联的的触摸识别(如下面更详细描述的)的任何组合。计算设备1500可以包括深度相机,诸如立体相机***、红外相机***、RGB相机***、触摸屏技术以及它们的组合,用于手势检测和识别。另外,计算设备1500可以包括能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的一部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备1500使用以呈现沉浸式增强现实或虚拟现实。
电源1516可以包括硬连线电源、电池电源或其组合。电源1516可以向计算设备1500提供电力以使计算设备1500的组件能够操作。
呈现组件1518可以包括显示器(例如,监视器、触摸屏、电视屏幕、抬头显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他演示组件。呈现组件1518可以从其他组件(例如,GPU 1508、CPU 1506等)接收数据,并输出数据(例如,作为图像、视频、声音等)。
可以在计算机代码或机器可用指令的一般上下文中描述本公开,包括由计算机或其他机器(诸如个人数据助理或其他手持设备)执行的计算机可执行指令,诸如程序模块。通常,包括例程、程序、对象、组件、数据结构等的程序模块指代执行特定任务或实现特定抽象数据类型的代码。本公开可以在各种***配置中实践,包括手持设备、消费电子产品、通用计算机、更多专业计算设备等。本公开还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程-处理设备执行。
如本文所用,关于两个或更多个元素的“和/或”的叙述应被解释为仅表示一个元素或元素的组合。例如,“元素A、元素B和/或元素C”可以仅包括元素A、仅包括元素B、仅包括元素C、元素A和元素B、元素A和元素C、元素B和元素C、或元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A的至少一个、元素B中的至少一个、或元素A和元素B中的至少一个。此外,“元素A和元素B中的至少一个”可以包括元素A中的至少一个、元素B中的至少一个,或元素A和元素B中的至少一个。
本文中具体描述了本公开的主题以满足法定要求。然而,描述本身并不旨在限制本公开的范围。相反,发明人已经预期所要求保护的主题还可以以其他方式体现,以包括与本文件中描述的步骤类似的不同步骤或步骤组合,结合其他现有或未来技术。此外,尽管本文可以使用术语“步骤”和/或“块”来表示所采用的方法的不同元素,但是这些术语不应被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非和当明确描述各个步骤的顺序时。

Claims (20)

1.一种方法,包括:
接收由车辆的图像传感器生成的表示图像序列的图像数据;
将所述图像数据应用于顺序深度神经网络(DNN);
通过所述顺序DNN并至少部分地基于所述图像数据计算:
第一输出,对应于在所述图像序列的一个或更多个图像中描绘的对象在世界空间中的速度;以及
第二输出,对应于图像空间中所述对象的当前位置和所述对象的未来位置;以及
由所述车辆至少部分地基于所述第一输出或所述第二输出中的至少一个来执行一个或更多个操作。
2.如权利要求1所述的方法,还包括:
计算第三输出,所述第三输出对应于在所述车辆和所述对象被预测相交之前的碰撞时间(TTC)的倒数;以及
使用所述TTC的倒数计算所述TTC,
其中,执行所述一个或更多个操作还至少部分地基于所述第三输出。
3.如权利要求1所述的方法,还包括生成所述第三输出的可视化,所述可视化包括与所述对象相对应的边界形状和与所述边界形状相对应的视觉指示器,所述视觉指示器代表所述TTC。
4.如权利要求3所述的方法,其中,当所述TTC低于阈值时间时,所述视觉指示器包括第一类型的视觉指示器,当所述TTC超过所述阈值时间时,所述视觉指示器包括第二类型的视觉指示器。
5.如权利要求1所述的方法,其中,使用通过将训练传感器数据与表示图像的训练序列的训练图像数据相关联而生成的地面实况数据来训练所述顺序DNN,所述传感器数据包括来自一个或更多个LIDAR传感器的LIDAR数据、来自一个或更多个RADAR传感器的RADAR数据、来自一个或更多个SONAR传感器的SONAR数据、或来自一个或更多个超声波传感器的超声数据中的至少一个。
6.如权利要求5所述的方法,其中,使用交叉传感器融合来将所述训练传感器数据与所述训练图像数据相关联。
7.如权利要求1所述的方法,其中,所述当前位置包括在与所述对象对应的第一边界形状的所述第一原点的图像内的第一像素位置,并且所述未来位置包括在与对象相对应的第二边界形状的所述第二原点的图像内的第二像素位置。
8.如权利要求7所述的方法,其中,所述当前位置还包括与所述第一边界形状对应的第一尺寸信息,并且所述未来位置还包括与所述第二边界形状对应的第二尺寸信息。
9.如权利要求1所述的方法,其中,所述当前位置包括在与所述对象对应的第一边界形状的所述第一原点的图像内的第一像素位置,并且所述未来位置包括与所述对象对应的第二边界形状的第二原点的图像内的第二像素位置相对于所述第一像素位置对应的平移值。
10.如权利要求9所述的方法,其中,所述当前位置还包括与所述第一边界形状相对应的第一尺寸信息,并且所述未来位置还包括关于与所述第一边界形状相对应的所述第一尺寸信息的比例信息,所述比例信息用于确定对应于所述第二边界形状的第二尺寸信息。
11.一种自动车辆***,包括:
图像传感器,被配置为生成表示图像序列的图像数据;
推断组件,配置为:
将所述图像序列应用于顺序深度神经网络(DNN);以及
使用所述顺序DNN并至少部分地基于所述图像序列计算:
第一输出,对应于在所述图像序列的一个或更多个图像中描绘的对象在世界空间中的速度;以及
第二输出,对应于图像空间中所述对象的当前位置和所述对象的未来位置;以及
控制组件,被配置为至少部分地基于所述第一输出或所述第二输出中的至少一个来执行用于控制所述自主车辆的一个或更多个操作。
12.如权利要求11所述的***,其中,所述推断组件还被配置为:
计算第三输出,所述第三输出对应于在所述车辆和所述对象被预测相交之前的碰撞时间(TTC)的倒数;以及
使用所述TTC的倒数计算所述TTC,
其中,执行所述一个或更多个操作还至少部分地基于所述第三输出。
13.如权利要求11所述的***,其中,关于所述图像序列的图像计算所述当前位置,并且关于所述图像且至少部分地基于表示所述图像序列的一个或多个先前图像内的所述对象的数据计算所述对象的所述未来位置。
14.如权利要求11所述的***,其中,所述数据包括在所述一个或更多个先前图像内的所述对象的位置和速度。
15.一种方法,包括:
接收对应于对象位置的传感器数据,所述传感器数据包括在一段时间内产生的图像数据以及在该段时间内产生的LIDAR数据或RADAR数据中的至少一个;
将所述传感器数据与所述图像数据关联;
至少部分地基于所述关联,分析与所述图像中的对象的位置相对应的所述传感器数据,以确定在该时间段内所述对象的速度;
利用所述对象的速度和位置自动生成与所述图像数据所代表的图像对应的地面实况数据;以及
使用所述地面实况数据训练顺序深度神经网络(DNN)。
16.如权利要求15所述的方法,还包括:
分析对应于所述LIDAR数据的所述传感器数据的第一子集,以确定此时所述对象的第一速度;
分析对应于所述RADAR数据的所述传感器数据的第二子集,以确定此时所述对象的第二速度;
比较所述第一速度和所述第二速度;以及
至少部分地基于所述比较,过滤所述传感器数据的所述第一子集或传感器数据的所述第二子集中的至少一个。
17.如权利要求16所述的方法,其中,所述过滤至少部分地基于所述第一速度和所述第二速度之间的速度差大于阈值速度差。
18.如权利要求15所述的方法,其中,在所述图像序列的图像中的所述对象的第一位置由第一边界形状表示,在所述图像之前生成的所述图像序列中的第二图像中的所述对象的第二位置由第二边界形状表示,所述方法还包括:
确定所述第一边界形状和所述第二边界形状之间的比例变化;以及
其中,使用所述对象的位置来自动生成所述地面实况数据包括使用所述比例变化。
19.如权利要求18所述的方法,还包括确定所述时间与产生所述第二图像的在先时间之间的时间差,其中所述时间差还用于自动产生所述地面实况数据。
20.如权利要求19所述的方法,其中,使用所述比例变化和所述时间差自动生成的所述地面实况数据表示所述时间差与所述比例变化的比率。
CN202010009841.4A 2019-03-15 2020-01-06 自主机器应用中的时间信息预测 Pending CN111695717A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962819412P 2019-03-15 2019-03-15
US62/819,412 2019-03-15
US16/514,404 US11579629B2 (en) 2019-03-15 2019-07-17 Temporal information prediction in autonomous machine applications
US16/514,404 2019-07-17

Publications (1)

Publication Number Publication Date
CN111695717A true CN111695717A (zh) 2020-09-22

Family

ID=72424627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010009841.4A Pending CN111695717A (zh) 2019-03-15 2020-01-06 自主机器应用中的时间信息预测

Country Status (2)

Country Link
US (1) US11579629B2 (zh)
CN (1) CN111695717A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434483A (zh) * 2021-06-29 2021-09-24 无锡四维时空信息科技有限公司 一种基于时空大数据的可视化建模方法及***
CN114386602A (zh) * 2022-01-13 2022-04-22 江苏瑞祥科技集团有限公司 一种面向多路服务器负载数据的htm预测分析方法
CN114566045A (zh) * 2022-02-28 2022-05-31 清华大学 训练调度模型的方法、装置、实现协同驾驶的方法及装置
CN114926761A (zh) * 2022-05-13 2022-08-19 浪潮卓数大数据产业发展有限公司 一种基于时空平滑特征网络的动作识别方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10643084B2 (en) 2017-04-18 2020-05-05 nuTonomy Inc. Automatically perceiving travel signals
US10908614B2 (en) * 2017-12-19 2021-02-02 Here Global B.V. Method and apparatus for providing unknown moving object detection
US11537139B2 (en) 2018-03-15 2022-12-27 Nvidia Corporation Determining drivable free-space for autonomous vehicles
EP3822131B1 (en) * 2018-07-10 2023-04-26 Global Mobility Service Inc. Vehicle remote control system, communication module, vehicle, server, vehicle remote control method, vehicle remote control program, and storage medium
EP3617947A1 (en) * 2018-08-30 2020-03-04 Nokia Technologies Oy Apparatus and method for processing image data
US11783707B2 (en) 2018-10-09 2023-10-10 Ford Global Technologies, Llc Vehicle path planning
US10960886B2 (en) 2019-01-29 2021-03-30 Motional Ad Llc Traffic light estimation
WO2020163390A1 (en) 2019-02-05 2020-08-13 Nvidia Corporation Driving lane perception diversity and redundancy in autonomous driving applications
DE102020100685A1 (de) 2019-03-15 2020-09-17 Nvidia Corporation Vorhersage zeitlicher informationen in autonomenmaschinenanwendungen
US11320820B2 (en) * 2019-03-26 2022-05-03 GM Global Technology Operations LLC Hyperassociation in episode memory
EP3966742A1 (en) * 2019-05-06 2022-03-16 Zenuity AB Automated map making and positioning
KR20200133863A (ko) * 2019-05-20 2020-12-01 삼성전자주식회사 첨단 운전자 지원 장치, 이의 캘리브레이션 방법 및 이의 객체를 검출하는 방법
US20200380085A1 (en) * 2019-06-03 2020-12-03 Robert Bosch Gmbh Simulations with Realistic Sensor-Fusion Detection Estimates of Objects
US11662741B2 (en) * 2019-06-28 2023-05-30 Ford Global Technologies, Llc Vehicle visual odometry
US11713978B2 (en) 2019-08-31 2023-08-01 Nvidia Corporation Map creation and localization for autonomous driving applications
US11474228B2 (en) * 2019-09-03 2022-10-18 International Business Machines Corporation Radar-based detection of objects while in motion
CN114641701A (zh) * 2019-09-13 2022-06-17 波感股份有限公司 使用表面穿透雷达和深度学习的改进的导航和定位
CN113196290A (zh) * 2019-09-26 2021-07-30 松下电器(美国)知识产权公司 信息处理方法、程序以及信息处理装置
US11907815B1 (en) * 2019-09-26 2024-02-20 Hrl Laboratories, Llc System and method for improved generalization from concept constrained dreams
US20220319329A1 (en) * 2019-10-16 2022-10-06 Lg Electronics Inc. Method for transmitting and receiving, by user equipment, message for vulnerable road user in wireless communication system
CN114365008A (zh) * 2019-10-30 2022-04-15 谷歌有限责任公司 使用时空神经网络执行姿态识别的基于智能设备的雷达***
US11423255B2 (en) * 2019-11-11 2022-08-23 Five AI Limited Image processing
US10839242B1 (en) * 2019-11-12 2020-11-17 Raymond Wu Single-chip solution with smart recognition by feature extraction of embedded image sensor
US11043003B2 (en) * 2019-11-18 2021-06-22 Waymo Llc Interacted object detection neural network
US11462020B2 (en) * 2020-01-03 2022-10-04 Ford Global Technologies, Llc Temporal CNN rear impact alert system
US11443142B2 (en) * 2020-02-14 2022-09-13 Samsung Electronics Co., Ltd. In-storage-based data processing using machine learning
WO2021199606A1 (ja) * 2020-03-31 2021-10-07 パイオニア株式会社 情報処理装置
US10885388B1 (en) * 2020-08-04 2021-01-05 Superb Ai Co., Ltd. Method for generating training data to be used for training deep learning network capable of analyzing images and auto labeling device using the same
KR20220025585A (ko) * 2020-08-24 2022-03-03 삼성전자주식회사 위치 추정 방법 및 장치
TW202223834A (zh) * 2020-08-28 2022-06-16 加拿大商光譜優化股份有限公司 神經嵌入之攝影機影像視訊處理管道及神經網路訓練系統
US12026845B2 (en) * 2020-08-31 2024-07-02 Nvidia Corporation Image generation using one or more neural networks
KR20220039903A (ko) * 2020-09-21 2022-03-30 현대자동차주식회사 자율주행 제어 장치 및 방법
US11978266B2 (en) 2020-10-21 2024-05-07 Nvidia Corporation Occupant attentiveness and cognitive load monitoring for autonomous and semi-autonomous driving applications
CN112487954B (zh) * 2020-11-26 2023-12-05 东南大学 一种面向平面交叉口的行人过街行为预测方法
DE102020215461A1 (de) * 2020-12-08 2022-06-09 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Bildgenerators
CN112633264B (zh) * 2021-03-11 2021-06-15 深圳市安软科技股份有限公司 一种车辆属性识别方法、装置、电子设备及存储介质
US11790508B2 (en) * 2021-04-21 2023-10-17 Baker Hughes Holdings Llc Computer vision predictions for non-destructive testing
US11842546B2 (en) * 2021-05-13 2023-12-12 GM Global Technology Operations LLC Sensor fusion-based top-view three-dimensional stixel representation for general obstacle detection in a vehicle
US20230035454A1 (en) * 2021-07-23 2023-02-02 Waymo Llc Generating optical flow labels from point clouds
CN115214574B (zh) * 2021-08-31 2023-08-04 广州汽车集团股份有限公司 一种车辆的主动制动方法、装置及汽车
US12008788B1 (en) * 2021-10-14 2024-06-11 Amazon Technologies, Inc. Evaluating spatial relationships using vision transformers
US20230136235A1 (en) * 2021-10-28 2023-05-04 Nvidia Corporation 3d surface reconstruction with point cloud densification using artificial intelligence for autonomous systems and applications
US20230135234A1 (en) * 2021-10-28 2023-05-04 Nvidia Corporation Using neural networks for 3d surface structure estimation based on real-world data for autonomous systems and applications
US20230177839A1 (en) * 2021-12-02 2023-06-08 Nvidia Corporation Deep learning based operational domain verification using camera-based inputs for autonomous systems and applications
FR3133693A1 (fr) * 2022-03-15 2023-09-22 Psa Automobiles Sa Procédé d’analyse d’images amélioré en fonction du temps disponible, par un réseau de neurones auto-encodeur, dispositif et véhicule associés
KR102579974B1 (ko) * 2022-09-27 2023-09-19 주식회사 알세미 뉴럴 컴팩트 모델링 방법 및 컴퓨팅 장치
CN116320727B (zh) * 2023-02-25 2024-03-08 荣耀终端有限公司 一种算法调度方法及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711147B2 (en) * 2006-07-28 2010-05-04 Honda Motor Co., Ltd. Time-to-contact estimation device and method for estimating time to contact
US8559052B2 (en) * 2009-10-27 2013-10-15 Coveroo, Inc. Automated layout and design for recording text and images in any of disparate three-dimensional objects
US20160260328A1 (en) * 2015-03-06 2016-09-08 Qualcomm Incorporated Real-time Occupancy Mapping System for Autonomous Vehicles
US9933264B2 (en) * 2015-04-06 2018-04-03 Hrl Laboratories, Llc System and method for achieving fast and reliable time-to-contact estimation using vision and range sensor data for autonomous navigation
WO2017089294A1 (en) * 2015-11-23 2017-06-01 Robert Bosch Gmbh Object detection system and method thereof
US10496099B2 (en) * 2017-07-18 2019-12-03 Uatc, Llc Systems and methods for speed limit context awareness
US11042157B2 (en) * 2018-07-23 2021-06-22 Baidu Usa Llc Lane/object detection and tracking perception system for autonomous vehicles
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US10839234B2 (en) * 2018-09-12 2020-11-17 Tusimple, Inc. System and method for three-dimensional (3D) object detection
US11514585B2 (en) * 2018-09-17 2022-11-29 Nokia Solutions And Networks Oy Object tracking
US10908604B2 (en) * 2018-12-14 2021-02-02 Valeo Schalter Und Sensoren Gmbh Remote operation of vehicles in close-quarter environments

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434483A (zh) * 2021-06-29 2021-09-24 无锡四维时空信息科技有限公司 一种基于时空大数据的可视化建模方法及***
CN113434483B (zh) * 2021-06-29 2022-02-15 无锡四维时空信息科技有限公司 一种基于时空大数据的可视化建模方法及***
CN114386602A (zh) * 2022-01-13 2022-04-22 江苏瑞祥科技集团有限公司 一种面向多路服务器负载数据的htm预测分析方法
CN114386602B (zh) * 2022-01-13 2024-02-20 江苏瑞祥科技集团有限公司 一种面向多路服务器负载数据的htm预测分析方法
CN114566045A (zh) * 2022-02-28 2022-05-31 清华大学 训练调度模型的方法、装置、实现协同驾驶的方法及装置
CN114566045B (zh) * 2022-02-28 2023-01-17 清华大学 训练调度模型的方法、装置、实现协同驾驶的方法及装置
CN114926761A (zh) * 2022-05-13 2022-08-19 浪潮卓数大数据产业发展有限公司 一种基于时空平滑特征网络的动作识别方法
CN114926761B (zh) * 2022-05-13 2023-09-05 浪潮卓数大数据产业发展有限公司 一种基于时空平滑特征网络的动作识别方法

Also Published As

Publication number Publication date
US20200293064A1 (en) 2020-09-17
US11579629B2 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
US11579629B2 (en) Temporal information prediction in autonomous machine applications
US11508049B2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
US11604967B2 (en) Stereo depth estimation using deep neural networks
JP7472170B2 (ja) 自律マシン・アプリケーションにおける交差点姿勢検出
CN113168505B (zh) 用于自主驾驶机器的基于回归的线检测
US11170299B2 (en) Distance estimation to objects and free-space boundaries in autonomous machine applications
CN113811886B (zh) 自主机器应用中的路口检测和分类
US11468582B2 (en) Leveraging multidimensional sensor data for computationally efficient object detection for autonomous machine applications
US20200380274A1 (en) Multi-object tracking using correlation filters in video analytics applications
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
CN112989914B (zh) 具有自适应加权输入的注视确定机器学习***
US11854401B2 (en) Temporal information prediction in autonomous machine applications
CN110618678A (zh) 自主机器应用中的行为引导路径规划
CN113228042A (zh) 自主机器应用中障碍物检测的距离
CN111133448A (zh) 使用安全到达时间控制自动驾驶车辆
CN112825136A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN112825134A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
US20210312203A1 (en) Projecting images captured using fisheye lenses for feature detection in autonomous machine applications
EP3850539B1 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
CN113609888A (zh) 利用平面单应性和自监督的场景结构理解进行对象检测
US12039436B2 (en) Stereo depth estimation using deep neural networks

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