CN111886603B - 用于目标检测和表征的神经网络 - Google Patents
用于目标检测和表征的神经网络 Download PDFInfo
- Publication number
- CN111886603B CN111886603B CN201980018672.6A CN201980018672A CN111886603B CN 111886603 B CN111886603 B CN 111886603B CN 201980018672 A CN201980018672 A CN 201980018672A CN 111886603 B CN111886603 B CN 111886603B
- Authority
- CN
- China
- Prior art keywords
- locations
- neural network
- input
- output
- environment
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims description 201
- 238000001514 detection method Methods 0.000 title claims description 10
- 238000012512 characterization method Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000003860 storage Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 abstract description 11
- 238000012549 training Methods 0.000 description 38
- 210000002569 neuron Anatomy 0.000 description 25
- 230000009471 action Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000005670 electromagnetic radiation Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R1/00—Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/22—Command input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R2300/00—Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
- B60R2300/80—Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
- B60R2300/8093—Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for obstacle warning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
方法、系统和设备,包括被编码在计算机存储介质上的计算机程序,用于在车辆的环境中选择对象可能居于中心的位置并确定那些对象的属性。所述方法之一包括接收表征车辆外部环境的输入。对于环境中的多个位置中的每一个,确定表示对象的中心位于该位置处的可能性的相应第一对象分数。基于第一对象分数,从多个位置中选择一个或多个位置作为环境中相应对象可能居于中心的位置。还确定可能以所选位置为中心的对象的对象属性。
Description
对相关申请的交叉引用
本申请要求于2018年3月12日提交的第15/919,045号美国专利申请的优先权,其全部内容通过引用并入本文。
背景技术
本说明书总体上涉及自主车辆。
自主车辆包括自动驾驶汽车、船和飞行器。自主车辆使用各种车载传感器和计算机系统来检测附近的对象,并且使用这样的检测来做出控制和导航决策。
一些自主车辆具有实现用于图像内的对象类别的神经网络的计算机系统。例如,可以使用神经网络来确定由车载相机捕获的图像很可能是附近汽车的图像。
神经网络,或为简洁起见称为网络,是采用多层操作来从一个或多个输入预测一个或多个输出的机器学习模型。神经网络通常包括位于输入层和输出层之间的一个或多个隐藏层。每一层的输出被用作网络中的另一层(例如,下一隐藏层或输出层)的输入。
神经网络的每一层指定将要对该层的输入执行的一个或多个变换操作。一些神经网络层具有被称为神经元的操作。每个神经元接收一个或多个输入并且生成由另一神经网络层接收的输出。通常,每个神经元从其他神经元接收输入,并且每个神经元向一个或多个其他神经元提供输出。
神经网络的架构指定在网络中包括哪些层及其属性,以及网络的每一层的神经元如何连接。换句话说,架构指定哪些层将它们的输出作为输入提供给其他层以及如何提供输出。
每一层的变换操作由已安装实现变换操作的软件模块的计算机执行。因此,被描述为执行操作的层意指实现层的变换操作的计算机来执行操作。
每一层使用该层的参数集的当前值来生成一个或多个输出。因此,训练网络涉及连续地对输入执行前向传递、计算梯度值、以及更新每一层的参数集的当前值。一旦神经网络被训练,则最终的参数集可以被用于在生产系统中进行预测。
自主和半自主车辆系统可以使用由神经网络生成的预测来做出驾驶决策。
发明内容
本说明书描述了用于在车辆的环境中选择对象可能居于中心的一个或多个位置并且确定那些对象的属性的技术。
自主或半自主车辆上的系统接收表征车辆外部环境的输入。对于环境中的每个位置,输入包括由车辆的一个或多个传感器捕获的传感器数据。系统根据输入并且针对所述位置中的每一个来确定第一对象分数,所述第一对象分数表示对象的中心位于所述位置处的可能性。然后选择一个或多个位置作为环境中对象可能居于中心的位置。该选择基于对象分数。接下来,车辆的系统获得表征在每个所选位置处的环境的特征。最后,针对每个所选位置并且根据所选位置的特征,系统确定可能以所选位置为中心的对象的对象属性。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,其每个被配置为执行方法的动作。
对于被配置为执行特定操作或动作的一个或多个计算机的系统,意指系统在其上已经安装了在操作中使系统执行操作或动作的软件、固件、硬件或它们的组合。一个或多个计算机程序被配置为执行特定操作或动作意指,所述一个或多个程序包括当由数据处理装置执行所述程序时、使该装置执行操作或动作的指令。
可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。自主或半自主车辆的神经网络子系统可以选择对象可能居于中心的位置并且确定那些对象的属性。对于给定的传感器数据,神经网络一次全部选择位置,即在神经网络的单次正向传递中。因为这种选择方法更快,所以它优于迭代地选择位置,即在神经网络的给定正向传递中仅选择一个位置。因为在神经网络的单次正向传递中选择所有位置,所以可以成批地确定以那些位置为中心的对象的对象属性。这减少了捕获传感器数据的时间与确定对象属性的时间之间的等待时间。这样,可以更快速地将对象属性提供给车辆的控制系统,这允许控制系统做出更准确的驾驶决策。如上所述选择位置并确定对象属性也使得更有效地利用车辆的计算资源。
最后,因为系统在第一阶段中以有效计算的方式选择对象可能居于中心的位置,并且然后在第二不同阶段中确定那些对象的属性,所以第二阶段可能在计算上更昂贵并且依赖于更多信息。这导致更准确的对象属性预测。
在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。根据描述、附图和权利要求书,所述主题的其他特征,方面和优点将变得明显。
附图说明
图1是示例系统的图。
图2是用于预测对象中心和确定对象属性的示例过程的流程图。
图3是示例神经网络子系统的图。
图4是用于预测对象中心的神经网络的示例架构。
图5是用于选择对象中心的示例过程的流程图。
图6是用于确定可能以所选位置为中心的对象的属性的神经网络的示例架构。
图7描绘了对象分数的示例输出图。
在各个附图中,相同的附图标记和名称指示相同的元件。
具体实施方式
本说明书描述了自主或半自主车辆如何能够使用神经网络系统来检测对象并且基于表征车辆外部环境的传感器数据来确定对象属性。特别地,神经网络系统可以确定对象的中心位于环境中的特定位置处的可能性。在确定位置确实对应于对象的中心具有一定置信度之后,神经网络系统可以确定该对象的对象属性。神经网络系统可以被训练以检测和确定任何类别的对象的属性,包括车辆、行人、骑自行车的人或车道标记,在此仅举几个示例。
图1是示例系统100的图。系统100包括训练系统110和车载系统130。
车载系统130物理地位于车辆122的车载上。在车辆122的车载上意指车载系统130包括与车辆122一起行进的组件,例如,电源、计算硬件和传感器。图1中的车辆122被图示为汽车,但是车载系统130可以位于任何类型的车辆的车载上。车辆122可以是使用对象检测和属性来通知完全自主驾驶决策的完全自主车辆。车辆122还可以是使用对象检测和属性来帮助人类驾驶员的半自主车辆。例如,如果神经网络系统指示人类驾驶员可能与另一车辆碰撞,则车辆122可以自主地实行(apply)制动。
车载系统130包括一个或多个传感器子系统132。传感器子系统132包括组件的组合,所述组件接收电磁辐射离开环境中表面的反射。例如,传感器子系统可以包括检测激光的反射的激光雷达系统、检测无线电波的反射的雷达系统、检测可见光的反射的相机系统、或这三者的某种组合。在一些实施方式中,一个或多个传感器子系统132包括音频传感器。音频传感器可以例如检测紧急车辆警报。
传感器子系统132向车载神经网络子系统134提供输入传感器数据155。输入传感器数据155可以包括多个通道的数据,其中每个通道表示反射的电磁辐射的不同特性。因此,可以从来自相同传感器的测量结果生成多个通道的输入传感器数据155。当车辆122移动通过环境时,传感器子系统132以预定时间间隔(例如,每十分之一秒)连续地收集输入传感器数据155。
传感器子系统132、或车载神经网络子系统134、或两者的某种组合将原始传感器数据变换成多个通道的输入传感器数据155。为此,车载系统120可以将原始传感器数据的各种特性投影到公共坐标系中。
车载神经网络子系统134可以包括一个或多个神经网络。例如,车载神经网络子系统134可以包括中心预测神经网络和对象属性神经网络。稍后将更详细地讨论这些神经网络中的每一个。车载神经网络子系统134实现其神经网络的每一层的操作。因此,车载神经网络子系统134包括具有软件或硬件模块的一个或多个计算设备,所述软件或硬件模块根据神经网络的架构实现神经网络的每一层的相应操作。
车载神经网络子系统134可以通过加载从训练系统110接收的一批模型参数值172来实现神经网络的每一层的操作。尽管被示出为在逻辑上分离,但是模型参数值172和执行操作的软件或硬件模块实际上可以位于相同的计算设备上、或者在执行软件模块的情况下存储在相同的存储器设备内。
车载神经网络子系统134可以使用硬件加速或其他专用计算设备来实现神经网络的一个或多个层的操作。例如,一些层的一些操作可以由高度并行化的硬件(例如,由图形处理单元或另一种类的专用计算设备)执行。换句话说,不是每层的所有操作都需要由车载神经网络子系统134的中央处理器(CPU)来执行。
车载神经网络子系统134使用输入传感器数据155和神经网络来确定被预测为在车辆外部的环境中的对象的对象属性165。当规划子系统136接收对象属性165时,规划子系统136可以使用对象属性165来做出完全自主或半自主驾驶决策。例如,规划子系统136可以生成完全自主计划以导航通过或绕开高速公路上的其他车辆。作为另一示例,规划子系统136可以生成半自主推荐以用于人类驾驶员实行制动。
用户界面子系统138可以接收对象属性165并且可以生成指示附近对象、例如附近车辆的位置的用户界面展示。例如,用户界面子系统138可以生成具有图像或视频数据的用户界面展示,所述图像或视频数据包含可能被车辆占据的空间区域的表示。车载显示设备然后可以为车辆122的乘客显示用户界面展示。
车载神经网络子系统134还可以使用输入传感器数据155来生成训练数据123。训练数据123可以包括不同通道的输入传感器数据的投影表示(projectedrepresentation)。车载系统130可以以离线批量方式或以在线方式——例如,每当生成训练数据123时连续地——向训练系统110提供训练数据123。
训练系统110通常托管在数据中心112内,数据中心112可以是在一个或多个位置中具有数百或数千个计算机的分布式计算系统。
训练系统110包括:训练神经网络子系统114,可以实现被设计成根据输入传感器数据进行对象预测并确定对象属性的神经网络的每一层的操作。训练神经网络子系统114包括具有软件或硬件模块的多个计算设备,所述软件或硬件模块根据神经网络的架构来实现一个或多个神经网络的每一层的相应操作。
训练神经网络一般具有与车载神经网络相同的架构和参数。然而,训练系统110不需要使用相同的硬件来计算每一层的操作。换句话说,训练系统110可以仅使用CPU、高度并行化硬件或这些的一些组合。
训练神经网络子系统114可以使用存储在一批模型参数值170中的当前参数值115来计算神经网络的每一层的操作。尽管被示出为在逻辑上分离,但是模型参数值170和执行操作的软件或硬件模块实际上可以位于相同的计算设备上或相同的存储器设备上。
训练神经网络子系统114可以接收训练示例123作为输入。训练示例123可以包括自动标记训练数据125、人工标记训练数据127或两者的某种组合。训练示例123中的每一个包括不同通道的输入传感器数据的表示、以及指示由输入传感器数据表示的空间区域内的对象的中心和那些对象的属性的一个或多个标签。
训练神经网络子系统114可以针对每个训练示例123生成一个或多个对象预测135,其中每个对象预测包括对象检测和每个检测到的对象的属性。训练引擎116分析对象预测135并且将对象预测与训练示例123中的标签进行比较。如果两者不同,则指示错误。训练引擎116然后通过使用适当的更新技术来生成更新的模型参数值145。例如,可以通过计算误差相对于各个模型参数的梯度来更新模型参数。为了减小误差贡献,从梯度导出的值可以从参数的当前值减去、或添加到参数的当前值。这被已知为具有反向传播的随机梯度下降(stochastic gradient descent)。本领域已知的其他技术也可以用于更新模型参数。训练引擎116然后可以使用更新的模型参数值145来更新一批模型参数值170。
在训练完成之后,训练系统110可以向车载系统120提供模型参数值的最终集合171,以用于做出完全自主或半自主驾驶决策。训练系统110可以通过有线或无线连接到车载系统120来提供模型参数值的最终集合171。
图2是用于预测对象中心和确定对象属性的示例过程的流程图。图2的示例过程可以由图1的车载神经网络子系统134来执行。图2的示例过程还可以由训练神经网络子系统114在神经网络的训练期间执行。下面,参考车载神经网络子系统来描述图2的示例过程。
首先,神经网络子系统从车辆的传感器接收表征车辆的环境的输入传感器数据(210)。输入传感器数据可以包括由激光雷达传感器检测到的激光的反射、由雷达传感器检测到的无线电波的反射、由相机检测到的光的反射、或这三者的任何组合。
神经网络子系统处理输入传感器数据,以准备将其提供给中心预测神经网络。例如,输入传感器数据可以被映射到投影平面上,其中投影平面中的每个位置对应于车辆周围的一个空间区域。系统可以使用任何适当的投影,只要所有输入传感器数据被投影到相同的坐标系中即可。例如,系统可以使用自上而下投影(top-down projection)或透视投影。自上而下投影是输入传感器数据从车辆自身上方的位置到围绕车辆的区域上的投影。用于自上而下投影的投影平面因此基本上平行于车辆所在的表面。透视投影是输入传感器数据到车辆前方、后方或侧面的平面上的投影。系统可以将每个投影表示为要提供给中心预测神经网络的张量。
如果图2的示例过程由车载神经网络子系统来执行,则车载神经网络子系统可以接收输入传感器数据并且生成对应的投影。如果图2的示例过程由训练神经网络系统执行,则投影将已经由车载系统或另一系统从输入传感器数据生成。
神经网络子系统将投影传感器数据作为输入提供给中心预测神经网络(220)。下面将参照图4更详细地描述中心预测神经网络的架构。
神经网络子系统从中心预测神经网络接收对象分数的输出图(230)。输出图的投影平面通常与提供给中心预测神经网络的投影传感器数据的投影平面相同。例如,如果神经网络子系统向中心预测神经网络提供投影传感器数据的透视投影,则对象分数的输出图通常将是透视图,例如,车辆前方的平面的图。然而,在另一实现中,中心预测神经网络被训练成将一个平面、例如透视平面中的多个投影变换成另一平面中的投影,例如自上而下投影。
输出图中的每个位置对应于投影传感器数据中的点,并且与表示对象的中心位于环境中对应位置处的可能性的数值分数相关联。例如,中心预测神经网络可以生成具有范围从零到一的分数的输出图,其中零指示对象以输出图中的特定位置为中心的低可能性,并且其中一指示对象以输出图中的特定位置为中心的高可能性。
中心预测神经网络可以在单次正向传递中生成对象分数的输出图。换句话说,对于给定的投影传感器数据,中心预测神经网络不需要一次一个地确定对象分数;相反,中心预测神经网络可以一次对所有给定投影传感器数据生成对象分数。这是对象检测的“全上下文”方法。它与对象检测的“滑动窗口”方法是可区分的,在“滑动窗口”方法中,在任何一个时间仅检查输入数据的小窗口。当检测长范围的对象时,其中在不查看输入传感器数据的总体上下文的情况下更难分辨对象是什么,全上下文方法是特别有价值的。
在一些实施方式中,中心预测神经网络可以生成对象分数的多个输出图。在这些实施方式中,每个输出图对应于不同的对象类别,例如,不同的对象类型。也就是说,特定输出图中的每个对象分数表示:特定类别的对象的中心位于输出图中的相关联的位置处的可能性。例如,一个输出图可以具有对象分数,每个对象分数表示行人的中心位于相关联的位置处的可能性。继续其中对象分数范围从零到一的示例,对象分数一将指示行人的中心位于输出图中的特定位置处的高可能性,而对象分数零将指示行人的中心位于特定位置处的低可能性。其他类别的对象(诸如车辆或道路标志)在那些特定位置处的存在将不会单独导致高对象分数。
然后,中心预测神经网络可以为车辆、道路标志和其他类别的对象生成单独的输出图。
在一些实施方式中,中心预测神经网络可以通过在深度维度上将多个投影堆叠在一起来生成三维输出图。中心预测神经网络还可以生成更高维度的输出图。例如,中心预测神经网络可以生成四维输出图,其中第四维是时间。四维输出图描绘对象可能居于中心的三维空间中的位置,但三维空间中的位置可以随时间变化。
接下来,神经网络子系统基于输出图中的数值对象分数来预测对象中心可能位于的位置(240)。在一个实施方式中,神经网络子系统定义阈值对象分数。例如,神经网络子系统可以选择输出图中与0.8或更高的对象分数相关联的所有位置。在这种情况下,0.8是阈值对象分数。不选择与低于0.8的对象分数相关联的位置。
在一些情况下,神经网络子系统可以抑制、即不选择超过阈值对象分数的一些位置。例如,输出图中的三个相邻位置可以分别与对象分数0.8、0.8和0.9相关联。继续上面选择与0.8或更高的对象分数相关联的位置的示例,选择这三个相邻位置中的每一个,因为每一个均与0.8或更高的对象分数相关联。然而,因为位置是相邻的,所以存在它们各自的分数均源于可能存在相同对象的高可能性。当位置尺寸较小时,例如在一个像素的量级上时,尤其如此。换句话说,三个位置中只有一个位置可能表示预测对象的中心,即使所有三个位置都满足阈值对象分数。在这种情况下,可以选择区域中的最高对象分数,同时抑制相同区域中的其他对象分数,即使它们超过阈值对象分数。该过程有助于防止对相同对象的多个选择,例如,防止选择每一个对应于相同对象的多个位置。将参考图5更详细地讨论所选对象的局部抑制。
在一个实施方式中,在神经网络子系统预测对象中心可能位于的位置之后,将那些所选位置提供给传感器子系统,使得传感器子系统可以关注于所选位置中的一个或多个。例如,在相机系统的情况下,相机可以聚焦在一个或多个感兴趣的特定位置上。这样做可以有助于识别小区域中的多个对象,这在较宽相机视图的情况下是不可能做到的。
在选择位置之后,神经网络子系统获得表征所选位置处的环境的特征(250)。在一个实施方式中,神经网络子系统从中心预测神经网络接收特征。在另一实施方式中,它从单独的系统接收特征。
对于环境中的任一给定位置,神经网络子系统可以获得表征给定位置处的环境的各种不同特征中的任一个。因为中心预测神经网络和下面描述的对象属性神经网络被一起训练,所以中心预测神经网络学习导致其输出对于对象属性神经网络有用的特征的参数。特征是由中心预测神经网络的卷积层生成的输入传感器数据的抽象。例如,中心预测神经网络可以学习输出可能以所选位置为中心的对象的估计规模(scale)。
神经网络子系统向对象属性神经网络提供所选位置的输出图、表征所选位置处的环境的特征以及输入传感器数据(260)。在一个实施方式中,所选位置、特征和输入传感器数据首先被提供给中间神经网络,该中间神经网络迭代地准备用于对象属性神经网络的批次输入,其中每个批次中的每个输入对应于对象可能居于中心的位置。然后,将批次输入提供给对象属性神经网络,对象属性神经网络处理批次输入以生成可能以每个位置为中心的对象的对象属性。在另一实施方式中,中间神经网络和对象属性神经网络被组合成单个神经网络,该单个神经网络既准备批次输入又处理那些批次输入。对象属性神经网络被配置为在单个正向传递中输出所有对象的属性。
在一个实施方式中,对象属性神经网络对可能以每个所选位置为中心的对象进行分类。例如,可能的类别包括“汽车”、“行人”、“自行车”、“道路标线”和“道路标志”。基于其训练和三个输入,对象属性神经网络可以选择那些类别中的一个。对象属性神经网络还可以为每个预测对象定义边界框。边界框是标识对象的边界或边缘的框。边界框可以是二维或三维的。车辆的显示界面可以向半自主车辆的驾驶员显示这样的边界框。神经网络子系统还可以向车辆的规划系统提供边界框以用于车辆的导航。在一些实施方式中,对象属性神经网络可以预测每个对象的“掩模(mask)”。掩模与边界框的不同之处在于其形状与相应的对象相拟合。换句话说,它更接近地识别对象的边缘。掩模可以标记定义对象的输入传感器数据的部分。
在另一实施方式中,对象属性神经网络确定预测对象距车辆有多远。
对象属性神经网络可以并行地确定多个对象的属性。
一旦神经网络子系统从对象属性神经网络(270)接收到对象属性,则那些对象属性可以被提供给车辆的控制系统以用于控制车辆。例如,如果对象属性神经网络将特定对象分类为行人,并且确定行人距离车辆的前保险杠五英尺,则控制系统响应于那些属性可以使汽车制动。
图3是示例神经网络子系统的图。神经网络子系统320可以位于车辆上。神经网络子系统320还可以是位于离线训练系统中的训练神经网络子系统。
如果神经网络子系统320位于车辆上,则其从车辆的传感器子系统接收输入传感器数据310。具体地,神经网络子系统320的预处理模块322接收输入传感器数据310。预处理模块322处理输入传感器数据310,以准备将其提供给中心预测神经网络324。具体地,预处理模块322将输入传感器数据映射到透视投影平面或自上而下投影平面上,如参考图2所描述的那样。在一些情况下,可能不需要预处理。例如,如果输入传感器数据仅包括相机图像,则其已经是可以由中心预测神经网络324处理的形式。
中心预测神经网络324从预处理模块322接收由预处理模块322准备的投影传感器数据。
中心预测神经网络324被训练成在神经网络的单次正向传递中生成对象分数的输出图。换句话说,对于给定的投影传感器数据,中心预测神经网络324不需要确定一个对象分数、将其存储在存储器中并且重复;相反,中心预测神经网络324可以一次对于所有给定投影传感器数据生成对象分数。这是有利的,因为从存储器取得(fetch)数据是时间密集的。
输出图的投影平面通常与提供给中心预测神经网络324的投影传感器数据的投影平面相同。输出图中的每个位置对应于投影传感器数据中的点,并且与表示对象的中心位于环境中的对应位置处的可能性的数值分数相关联。
在图3中所描绘的神经网络子系统320的实施方式中,中心预测神经网络也被训练以产生表征所选位置处的环境的特征。然而,在其他实施方式中,单独的模块或神经网络可以生成表征所选位置处的环境的特征。
中心预测神经网络324将对象分数的输出图提供给中心选择模块326和对象属性神经网络328。
中心选择模块326基于输出图中的数值对象分数来预测对象中心可能位于何处。参考图5更详细地描述该选择过程。
中心选择模块326将所选位置提供给对象属性神经网络328。中心选择模块326还可以将所选位置340写入存储器330。
对象属性神经网络328接收所选位置、表征所选位置的特征和输入传感器数据。在图3中描绘的神经网络子系统320的实施方式中,对象属性神经网络328首先准备来自所选位置、特征和输入传感器数据的批次输入,其中每个批次中的每个输入对应于所选位置。然后基于那些批次输入,确定可能以所选位置为中心的对象的对象属性。在另一实施方式中,所选位置、特征和输入传感器数据首先被提供给中间神经网络,中间神经网络为对象属性神经网络准备批次输入。然而,如图3中所描绘的,这两个网络被组合成单个对象属性神经网络,该单个对象属性神经网络既准备批次输入又确定对象属性。
对象属性神经网络328一次处理所有批次输入,并且被训练以并行地——例如,在通过网络的单次正向传递中——确定所有对象的属性。如上所述,对象属性包括对象类别和对象边界框。对象属性神经网络328向车辆的规划和用户界面子系统提供对象属性,使得车辆可以在做出驾驶决策时使用那些属性。
图4是用于预测对象中心的中心预测神经网络400的示例架构。
中心预测神经网络400具有输入层410。输入层410接收投影传感器数据的张量。虽然图4仅描绘了一个输入层,但是中心预测神经网络400可以具有多个输入层以接收多个通道的输入传感器数据,其中每个通道表示不同类型的反射电磁辐射,例如可见光、激光、无线电波等。
中心预测神经网络400具有多个卷积层,例如卷积层420a、420b、440a和440b。卷积层具有利用投影传感器数据中的空间局部相关性的神经元连接性。为此,卷积层具有稀疏连接性,其中一个卷积层中的神经元仅从先前神经网络层中的神经元的小子集接收输入。一个神经元从其接收输入的其他神经元定义该神经元的感受野(receptive field)。
卷积层具有为每一层定义一个或多个滤波器的一个或多个参数,其中每个滤波器具有一个或多个参数。卷积神经网络层通过执行每个神经元的滤波器与该层的输入的卷积来生成输出。卷积是相应神经元的滤波器的参数与该神经元的输入的点积。输出是该滤波器的激活图。换句话说,中心预测神经网络400学习、即被训练为具有当其在投影传感器数据中的位置处检测到特定类型的特征时激活的滤波器。堆叠所有滤波器的激活图形成卷积神经网络层的全输出。因此,每个输出可以被解释为:查看投影传感器数据的小区域并且与相同激活图中的神经元共享参数的神经元的输出。
卷积层采用权重共享,使得同一输出通道中的所有神经元具有相同的权重。这提供了当检测投影传感器数据中的特征时的平移不变性。
中心预测神经网络400还可以具有散布在卷积层之间的一个或多个空间到深度层,包括空间到深度层430。空间到深度层430通过将二维张量元素的分组堆叠成多个三维深度切片来变换投影传感器数据的张量中的信息。通常,空间到深度层识别N×M×1输入张量中的G组输入元素,并且将输入元素变换成(N/C)×(M/D)×G输出张量,其中C和D是表示分组如何相关的常数,并且G等于C×D。当空间到深度层430的输入已经包括多个深度切片时,系统可以将空间到深度层430应用于每个深度切片。
空间到深度层430增加网络中的后续层的有效感受野,并且压缩投影传感器数据的空间维度。因此,每一层学习更小的滤波器,这允许神经网络系统更有效地执行后续卷积层的操作而不损失任何精度。
中心预测神经网络400还具有深度级联层480,深度级联层480将一个或多个张量作为输入并且在深度维度上级联张量。该操作可以被描述为“堆叠”输入张量以生成新张量。例如,深度级联层480可以堆叠多个通道的传感器数据的输入。
中心预测神经网络400还包括生成对象中心预测的中心预测层450。由中心预测层450生成的对象中心预测采取特征图的形式,特征图标识对象中心可能位于的特定位置。特征图中的每个点与表示对象中心位于环境中对应于特征图中的该点的位置处的可能性的数值分数相关联。由中心预测层450生成的分数是可以在0到1的范围之外的实数。在一些实施方式中,中心预测层450是具有滤波器的卷积层,所述滤波器已经被训练为当在该层的输入中检测到对象中心时激活。
如果中心预测神经网络400具有一个或多个空间到深度层,则其还可以具有一个或多个深度到空间层,包括深度到空间层460a和460b。深度到空间层反转由空间到深度层执行的变换。这些层用于增加对象中心预测的空间分辨率。
逻辑层470从中心预测层450接收特征图,并且生成在0和1之间的对象分数的输出图。如参考先前图所描述的,输出图中的每一位置对应于投影传感器数据中的点,并且与表示对象的中心位于环境中的对应位置处的可能性的数值分数相关联。
中心预测神经网络400还具有特征输出层490。特征输出层490是生成环境中的每个位置的相应特征向量的最终卷积层。特征是中心预测神经网络400的卷积层中的投影传感器数据的多次卷积的结果。
图5是用于选择对象中心的示例过程的流程图。为了方便起见,示例过程将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,图3的中心选择模块326可以执行图5的示例过程。
首先,系统从中心预测神经网络接收对象分数的输出图(510)。输出图中的每个位置对应于投影传感器数据中的点,并且与表示对象的中心位于环境中的对应位置处的可能性的数值分数相关联。
接下来,系统识别预定阈值对象分数,并且预先选择与满足该阈值对象分数的对象分数相关联的所有位置(520)。例如,中心选择模块可以预先选择输出图中与0.8或更高的对象分数相关联的所有位置。在这种情况下,0.8是阈值对象分数。不预先选择与低于0.8的对象分数相关联的位置。
在预先选择之后,对于输出图中的位置的每个N乘M区域,系统选择与该N乘M区域中的最高对象分数相关联的单个预选位置,如果有的话(530)。
例如,输出图中的三个相邻位置可以分别与对象分数0.8、0.8和0.9相关联。继续以上示例,这三个相邻位置中的每一个被预先选择,因为每一个都与0.8或更高的对象分数相关联。然而,因为位置是相邻的,所以存在它们各自的对象分数均源于可能存在相同对象的高可能性。当位置尺寸较小时,例如在一个像素的量级上时,尤其如此。换句话说,三个位置中只有一个可能表示预测对象的中心,即使所有三个位置都满足阈值对象分数。在这种情况下,系统选择与区域中的最高对象分数相关联的位置,同时其避免选择相同区域中的其他位置,即使那些位置与超过阈值对象分数的对象分数相关联(540)。此过程有助于防止对同一对象的多个选择。
一个N乘M区域中的位置的选择不影响另一个N乘M区域中的位置的选择,因此可以同时选择不同区域中的位置。可以基于位置尺寸和典型对象尺寸来优化N和M。例如,如果检测到的对象通常非常大,则可以增加N和M。另一方面,如果检测到的对象通常非常小,则可以减小N和M。
在一个实施方案中,N和M各自为等于三的整数,且输出图中的每一位置对应于投影传感器数据中的单个像素。换句话说,输出图中的N乘M区域对应于投影传感器数据中的3乘3像素区域。在其他实施方式中,N和M是不同的,例如分别为三和四。
可以针对对象分数的输出图中的所有N乘M区域并行地执行图5的示例过程。这种区域并行化优于一次选择一个位置,因为它更快,并且它是可能的,因为对象的抑制效果是空间局部的。换句话说,虽然不应该在同一位置重复检测多个对象,但是在一个位置检测一个对象对在不同位置检测另一个对象几乎没有影响。
在一个实施方式中,在对象属性神经网络输出每个对象的对象属性之后第二次执行图5的示例过程。这样做进一步确保在相同位置中不重复检测多个对象。
图6是用于确定可能以所选位置为中心的对象的属性的对象属性神经网络600的示例架构。对象属性神经网络600确定预测对象的边界框和对象类别。边界框是标识对象的边界或边缘的框。对象类别是对象的类型,例如“汽车”、“行人”、“自行车”、“道路标线”或“道路标志”
在图6中描绘的实施方式中,中间神经网络准备批次输入,并且将那些批次提供给对象属性神经网络600。每一批次中的每一个输入对应于对象可能居于中心的位置。通过组合输入传感器数据、所选位置和表征所选位置处的环境的特征来准备批次输入。
输入层610a接收由中间神经网络准备的一批输入。通过将输入传感器数据与所选位置进行组合来准备用于输入层610a的一批输入。对象属性神经网络600还具有输入层610b和610c。输入层610b和610c每个接收由中间神经网络通过将所选位置与表征所选位置处的环境的特征进行组合而准备的一批输入。
在一些实施方式中,对象属性神经网络600接收其他输入。例如,对象属性神经网络600可以接收具有比由中心预测神经网络接收和使用的输入传感器数据更高分辨率的传感器数据。对象属性神经网络600也可以接收与用于收集中心预测神经网络的输入传感器数据的传感器不同的传感器收集的传感器数据。例如,对象属性神经网络600可以接收激光雷达数据,而中心预测神经网络接收相机数据。
对象属性神经网络600具有多个卷积层,包括卷积层620、640、670a和670b。虽然在图6中描绘了四个卷积层,但是对象属性神经网络600可以具有更多的卷积层。如参考图4所描述的,卷积层具有定义每一层的一个或多个滤波器的一个或多个参数。卷积层通过执行每个神经元的滤波器与该层的输入的卷积来生成输出。卷积是相应神经元的滤波器的参数与该神经元的输入的点积。输出是该滤波器的激活图。换句话说,对象属性神经网络600学习、即被训练为具有当其检测到网络的输入中的位置处的特定类型的特征时激活的滤波器。堆叠所有滤波器的激活图形成卷积层的全输出。因此,每个输出可以被解释为:观察输入的小区域并且与相同激活图中的神经元共享参数的神经元的输出。
散布在卷积层之间的是最大池化层,包括最大池化层630和650。最大池化层将它们的输入划分为一组不重叠的区域,并且对于每个区域,输出最大值。最大池化层用于逐渐减小到对象属性神经网络600的批次输入的空间大小,以减少网络中的参数的数量和计算量。这是可能的,因为特征的确切位置不如其相对于其他特征的粗略位置重要。
对象属性神经网络600还具有深度级联层660,深度级联层660将一个或多个张量作为输入,并且在深度维度上级联张量。该操作可以被描述为“堆叠”输入张量以生成新张量。具体地,深度级联层660堆叠由输入层610b和610c接收的批次输入以及经处理的由输入层610a接收的一批输入。
在卷积层670a和670b之后分别是全连接层680a和680b。全连接层将输入层中的每个神经元连接到输出层中的每个神经元。训练全连接层,以基于由前面的卷积层检测到的特征来确定对象的属性。换句话说,如果前面的卷积层在输入数据中的特定位置处检测到特征的特定子集,则全连接层可以基于它们的训练和输入来确定该特定位置处的对象具有某些属性。特别地,全连接层680a被训练以确定对象的边界框,并且全连接层680b被训练以确定对象的类别。
对象属性神经网络600也具有从全连接层680b接收对象类别的soft-max层690。soft-max层690从全连接层680b接收实数的向量,其中向量中的每个实数指示对象属于特定类别的可能性。实数可以在0到1的范围之外。训练soft-max层690以针对每个对象生成从0到1的对象类别的概率分布。例如,soft-max层690可以确定特定对象是行人具有90%的置信度并且特定对象是街道标志具有10%的置信度。这些置信度可以被提供给车辆的规划子系统,以供车辆在做出自主驾驶决策时使用。
图7描绘了由中心预测神经网络、例如图4的中心预测神经网络400生成的示例输出图700。输出图700中的每个位置由小框表示。每个框对应于提供给中心预测神经网络的投影传感器数据中的点,并且与表示对象的中心位于环境中的对应位置处的可能性的数值对象分数相关联。对象分数的范围从零到一。对象分数零指示对象中心位于环境中的对应位置处的低可能性。对象分数一指示对象中心位于环境中的对应位置处的高可能性。尽管输出地图700中仅位置的小子集与对象分数相关联,但这仅是为了方便。实际上,输出图700中的每个位置都将与对象分数相关联。
预测对象710位于输出图700中。如上所述,特定位置中的高对象分数指示对象的中心位于该位置中的高可能性。因此,与0.9的对象分数相关联的小框可能对应于预测对象710的中心。
本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中(包括本说明书中公开的结构及其结构等同物)或在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,例如,编码在有形非暂态存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码、以传输到合适的接收器装置并由数据处理装置执行。
术语“数据处理装置”是指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、或多个处理器或计算机。该装置还可以是—或进一步包括—现成的或定制的并行处理子系统,例如GPU或另一种类的专用处理子系统。该装置还可以是—或进一步包括—专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可以被称为或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、或声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合于在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上执行,或在位于一个站点处或跨多个站点分布并且通过数据通信网络互连的多个计算机上执行。
如本说明书中所使用的,“引擎”或“软件引擎”是指由软件实现的输入/输出系统,所述系统提供不同于输入的输出。引擎可以是编码的功能块,诸如库、平台、软件开发工具包(“SDK”)或对象。每个引擎可以在包括一个或多个处理器和计算机可读介质的任何适当类型的计算设备上实现,所述计算设备包括例如服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器,膝上型或台式计算机、PDA、智能电话或其他固定或便携式设备。另外,引擎中的两个或更多个可以在相同的计算设备上或在不同的计算设备上实现。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,所述一个或多个可编程计算机执行一个或多个计算机程序、以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程还可以由专用逻辑电路(例如,FPGA或ASIC)执行,或者由专用逻辑电路和一个或多个可编程计算机的组合执行。
适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者、或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于运行或执行指令的中央处理单元、以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或可操作地耦接大容量存储设备、以从其接收数据或向其传送数据,或两者。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或LCD(液晶显示器)监视器)、以及键盘和定点设备(例如鼠标、轨迹球或感知显示器或者用户可以通过其向计算机提供输入的其他表面)的计算机上实现。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求而向用户的设备上的web浏览器发送网页。此外,计算机可以通过向个人设备(例如,智能电话)发送文本消息或其他形式的消息、运行消息收发应用、并且作为回报从用户接收响应消息来与用户交互。
虽然本说明书包含许多具体实施细节,但这些细节不应被解释为对任何发明的范围的限制、或对可要求保护的内容的范围的限制,而应被解释为对特定发明的特定实施例的特征的具体描述。在本说明书的彼此独立的实施例的上下文中描述的某些特征、也可以在单个实施例中组合地实现。反过来说,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地实现、或以任何合适的子组合来实现。此外,尽管特征可以在上文被描述为在某些组合中起作用、并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中去除,并且所要求保护的组合可以涉及子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但这不应被理解为要求以所示出的特定顺序或以连续顺序执行这些操作、或者要求执行所有所示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
已经描述了主题的特定实施例。其他实施例在所附权利要求书的范围内。例如,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的过程,不一定需要所示出的特定顺序或连续顺序来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。
Claims (21)
1.一种用于目标检测的方法,包括:
接收表征车辆外部环境的输入,其中,对于所述环境中的多个位置中的每一个位置,所述输入包括由所述车辆的一个或多个传感器捕获的传感器数据;
根据所述输入确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的输出图,所述第一对象分数表示对象的中心位于所述位置处的可能性;
使用所述输出图,从所述多个位置中选择一个或多个位置作为在所述环境中相应对象可能居于中心的位置;
针对所选位置中的每一个,获得表征所述所选位置处的环境的特征;以及
针对所选位置中的每一个并且根据所述所选位置的特征,确定可能以所述所选位置为中心的相应对象的对象属性。
2.根据权利要求1所述的方法,还包括:
将标识所述对象属性的数据作为输入提供给所述车辆的控制系统,以用于控制所述车辆。
3.根据前述权利要求中任一项所述的方法,其中,确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的所述输出图包括:
使用第一神经网络处理所述输入,其中第一神经网络被配置为接收输入并且处理所述输入以生成第一网络输出,所述第一网络输出定义所述输出图,所述输出图包括针对所述环境中的多个位置的相应第一对象分数。
4.根据权利要求1或2中任一项所述的方法,其中,确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的所述输出图包括:
使用第一神经网络处理所述输入,其中第一神经网络被配置为接收输入并且处理所述输入以生成定义多个输出图的第一网络输出,每个输出图包括第一对象分数,所述第一对象分数表示特定类别的对象的中心以所述环境中的多个位置为中心的可能性。
5.根据权利要求3所述的方法,其中,所述输出图是在通过所述第一神经网络的单次正向传递中生成的。
6.根据权利要求3所述的方法,其中,所述输入包括对应于二维网格、三维网格或更高维网格中的每个空间位置的相应传感器数据,其中每个空间位置对应于所述环境中的多个位置中的相应一个,并且其中所述网络输出包括针对所述网格中的每个空间位置的相应第一对象分数。
7.根据权利要求6所述的方法,其中,所述网格是二维的,并且其中使用所述输出图来选择一个或多个位置包括:
从所述二维网格的特定N乘M区域中的空间位置中选择具有最高第一对象分数的空间位置;以及
避免选择所述二维网格的所述特定N乘M区域中的其他空间位置中的任一个。
8.根据权利要求1所述的方法,其中,针对所选位置中的每一个并且根据所述所选位置的特征来确定可能以所述所选位置为中心的对象的对象属性包括:
使用第二神经网络处理包括所述所选位置的特征的第二网络输入,其中所述第二神经网络被配置为处理第二网络输入以生成第二网络输出,所述第二网络输出定义可能以所述位置为中心的对象的对象属性。
9.根据权利要求8所述的方法,其中,所述第二神经网络被配置为并行地执行针对所选位置中的两个或更多个的处理。
10.根据权利要求1所述的方法,其中,所述对象属性包括所述对象所属的对象类别。
11.根据权利要求1所述的方法,其中,所述对象属性包括标识所述对象的边界的二维边界框或三维边界框。
12.根据权利要求1所述的方法,其中,所述对象属性包括所述对象距所述车辆的距离。
13.根据权利要求1所述的方法,其中,所述对象属性包括所述对象的掩码,其中所述掩码标记定义所述对象的输入的部分。
14.一种用于目标检测的系统,包括一个或多个计算机和存储可操作的指令的一个或多个存储设备,所述指令在由所述一个或多个计算机执行时,使所述一个或多个计算机执行操作,所述操作包括:
接收表征车辆外部环境的输入,其中针对所述环境中的多个位置中的每一个所述输入包括由一个或多个传感器捕获的传感器数据;
根据所述输入确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的输出图,所述第一对象分数表示对象的中心位于所述位置处的可能性;
使用所述输出图从所述多个位置中选择一个或多个位置,作为在所述环境中相应对象可能居于中心的位置;
针对所选位置中的每一个,获得表征所述所选位置处的环境的特征;以及
针对所选位置中的每一个并且根据所述所选位置的特征,确定可能以所述所选位置为中心的相应对象的对象属性。
15.根据权利要求14所述的系统,其中,确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的所述输出图包括:
使用第一神经网络处理所述输入,其中所述第一神经网络被配置为接收输入并且处理所述输入以生成第一网络输出,所述第一网络输出定义所述输出图,该输出图包括针对所述环境中的多个位置的相应第一对象分数。
16.根据权利要求14所述的系统,其中,确定包括针对所述环境中的多个位置中的每一个位置的相应第一对象分数的所述输出图包括:
使用第一神经网络处理所述输入,其中所述第一神经网络被配置为接收输入并且处理所述输入以生成定义多个输出图的第一网络输出,每个输出图包括第一对象分数,所述第一对象分数表示特定类别的对象的中心以所述环境中的多个位置为中心的可能性。
17.根据权利要求15所述的系统,其中,所述输出图是在通过所述第一神经网络的单次正向传递中生成的。
18.根据权利要求15或17中任一项所述的系统,其中,所述输入包括对应于二维网格、三维网格或更高维网格中的每个空间位置的相应传感器数据,其中每个空间位置对应于所述环境中的所述多个位置中的相应一个,并且其中所述网络输出包括针对所述网格中的每个空间位置的相应第一对象分数。
19.根据权利要求18所述的系统,其中,所述网格是二维的,并且其中使用所述输出图来选择一个或多个位置包括:
从所述二维网格的特定N乘M区域中的空间位置中选择具有最高第一对象分数的空间位置;以及
避免选择所述二维网格的所述特定N乘M区域中的其他空间位置中的任一个。
20.根据权利要求14所述的系统,其中,针对所选位置中的每一个并且根据所述所选位置的特征来确定可能以所述所选位置为中心的对象的对象属性包括:
使用第二神经网络来处理包括所述所选位置的特征的第二网络输入,其中所述第二神经网络被配置为处理所述第二网络输入以生成第二网络输出,所述第二网络输出定义可能以所述位置为中心的对象的对象属性。
21.一个或多个存储指令的计算机可读存储介质,所述指令在由一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1到13中任一项所述的方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/919,045 US10628686B2 (en) | 2018-03-12 | 2018-03-12 | Neural networks for object detection and characterization |
US15/919,045 | 2018-03-12 | ||
PCT/US2019/021828 WO2019178082A1 (en) | 2018-03-12 | 2019-03-12 | Neural networks for object detection and characterization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111886603A CN111886603A (zh) | 2020-11-03 |
CN111886603B true CN111886603B (zh) | 2024-03-15 |
Family
ID=65952084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018672.6A Active CN111886603B (zh) | 2018-03-12 | 2019-03-12 | 用于目标检测和表征的神经网络 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10628686B2 (zh) |
EP (1) | EP3743854A1 (zh) |
JP (1) | JP7254823B2 (zh) |
KR (1) | KR20200125731A (zh) |
CN (1) | CN111886603B (zh) |
WO (1) | WO2019178082A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9381916B1 (en) * | 2012-02-06 | 2016-07-05 | Google Inc. | System and method for predicting behaviors of detected objects through environment representation |
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US10706499B2 (en) * | 2018-06-21 | 2020-07-07 | Canon Kabushiki Kaisha | Image processing using an artificial neural network |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
EP3853764A1 (en) * | 2018-09-20 | 2021-07-28 | NVIDIA Corporation | Training neural networks for vehicle re-identification |
US11105924B2 (en) * | 2018-10-04 | 2021-08-31 | Waymo Llc | Object localization using machine learning |
KR102545105B1 (ko) * | 2018-10-10 | 2023-06-19 | 현대자동차주식회사 | 차량용 허위 타겟 판별 장치 및 그의 허위 타겟 판별 방법과 그를 포함하는 차량 |
SG11202103493QA (en) | 2018-10-11 | 2021-05-28 | Tesla Inc | Systems and methods for training machine models with augmented data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11927668B2 (en) * | 2018-11-30 | 2024-03-12 | Qualcomm Incorporated | Radar deep learning |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US10796571B2 (en) * | 2019-01-31 | 2020-10-06 | StradVision, Inc. | Method and device for detecting emergency vehicles in real time and planning driving routes to cope with situations to be expected to be occurred by the emergency vehicles |
US10762393B2 (en) * | 2019-01-31 | 2020-09-01 | StradVision, Inc. | Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
US11003945B2 (en) * | 2019-05-22 | 2021-05-11 | Zoox, Inc. | Localization using semantically segmented images |
US11295161B2 (en) | 2019-05-22 | 2022-04-05 | Zoox, Inc. | Localization using semantically segmented images |
DE102019215255A1 (de) * | 2019-10-02 | 2021-04-08 | Robert Bosch Gmbh | Vorrichtung und Verfahren zum Verarbeiten von Daten eines neuronalen Netzes |
US11120280B2 (en) * | 2019-11-15 | 2021-09-14 | Argo AI, LLC | Geometry-aware instance segmentation in stereo image capture processes |
KR20210061839A (ko) * | 2019-11-20 | 2021-05-28 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
US11587330B2 (en) * | 2019-12-31 | 2023-02-21 | Robert Bosch Gmbh | Visual analytics platform for updating object detection models in autonomous driving applications |
DE102020203836A1 (de) * | 2020-03-25 | 2021-09-30 | Robert Bosch Gesellschaft mit beschränkter Haftung | Verfahren zur Bestimmung eines Wertes einer Reglergröße |
US11390301B2 (en) * | 2020-06-10 | 2022-07-19 | Nvidia Corp. | Tensor-based driving scenario characterization |
US11550325B2 (en) | 2020-06-10 | 2023-01-10 | Nvidia Corp. | Adversarial scenarios for safety testing of autonomous vehicles |
US20220058774A1 (en) * | 2020-08-19 | 2022-02-24 | BlinkAI Technologies, Inc. | Systems and Methods for Performing Image Enhancement using Neural Networks Implemented by Channel-Constrained Hardware Accelerators |
EP4295282A1 (en) * | 2021-02-17 | 2023-12-27 | Telefonaktiebolaget LM Ericsson (publ) | Contextual learning at the edge |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9129190B1 (en) * | 2013-12-04 | 2015-09-08 | Google Inc. | Identifying objects in images |
US9373057B1 (en) * | 2013-11-01 | 2016-06-21 | Google Inc. | Training a neural network to detect objects in images |
CN106056213A (zh) * | 2015-04-06 | 2016-10-26 | 谷歌公司 | 使用目标和观察来选择强化学习动作 |
CN106682697A (zh) * | 2016-12-29 | 2017-05-17 | 华中科技大学 | 一种基于卷积神经网络的端到端物体检测方法 |
CN107220603A (zh) * | 2017-05-18 | 2017-09-29 | 惠龙易通国际物流股份有限公司 | 基于深度学习的车辆检测方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5766620B2 (ja) * | 2012-01-10 | 2015-08-19 | 日本電信電話株式会社 | 物体領域検出装置、方法、及びプログラム |
US9202144B2 (en) | 2013-10-30 | 2015-12-01 | Nec Laboratories America, Inc. | Regionlets with shift invariant neural patterns for object detection |
JP5928748B2 (ja) * | 2014-07-31 | 2016-06-01 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 同一種類の複数の認識対象物体が検索対象画像中に存在する場合に、それぞれの認識対象物体の位置および向きを精度良く求める手法 |
WO2016054778A1 (en) | 2014-10-09 | 2016-04-14 | Microsoft Technology Licensing, Llc | Generic object detection in images |
US9665802B2 (en) | 2014-11-13 | 2017-05-30 | Nec Corporation | Object-centric fine-grained image classification |
US9418319B2 (en) | 2014-11-21 | 2016-08-16 | Adobe Systems Incorporated | Object detection using cascaded convolutional neural networks |
KR102366402B1 (ko) * | 2015-05-21 | 2022-02-22 | 엘지전자 주식회사 | 운전자 보조 장치 및 그 제어방법 |
US9881234B2 (en) | 2015-11-25 | 2018-01-30 | Baidu Usa Llc. | Systems and methods for end-to-end object detection |
WO2017095948A1 (en) * | 2015-11-30 | 2017-06-08 | Pilot Ai Labs, Inc. | Improved general object detection using neural networks |
US9424494B1 (en) | 2016-01-28 | 2016-08-23 | International Business Machines Corporation | Pure convolutional neural network localization |
US9830529B2 (en) | 2016-04-26 | 2017-11-28 | Xerox Corporation | End-to-end saliency mapping via probability distribution prediction |
US9928432B1 (en) * | 2016-09-14 | 2018-03-27 | Nauto Global Limited | Systems and methods for near-crash determination |
US10310087B2 (en) * | 2017-05-31 | 2019-06-04 | Uber Technologies, Inc. | Range-view LIDAR-based object detection |
US11062461B2 (en) * | 2017-11-16 | 2021-07-13 | Zoox, Inc. | Pose determination from contact points |
US10955851B2 (en) * | 2018-02-14 | 2021-03-23 | Zoox, Inc. | Detecting blocking objects |
-
2018
- 2018-03-12 US US15/919,045 patent/US10628686B2/en not_active Expired - Fee Related
-
2019
- 2019-03-12 CN CN201980018672.6A patent/CN111886603B/zh active Active
- 2019-03-12 EP EP19713931.4A patent/EP3743854A1/en active Pending
- 2019-03-12 KR KR1020207029163A patent/KR20200125731A/ko not_active Application Discontinuation
- 2019-03-12 JP JP2020543857A patent/JP7254823B2/ja active Active
- 2019-03-12 WO PCT/US2019/021828 patent/WO2019178082A1/en unknown
-
2020
- 2020-04-20 US US16/853,517 patent/US11216674B2/en active Active
-
2022
- 2022-01-03 US US17/567,729 patent/US11928866B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9373057B1 (en) * | 2013-11-01 | 2016-06-21 | Google Inc. | Training a neural network to detect objects in images |
US9129190B1 (en) * | 2013-12-04 | 2015-09-08 | Google Inc. | Identifying objects in images |
CN106056213A (zh) * | 2015-04-06 | 2016-10-26 | 谷歌公司 | 使用目标和观察来选择强化学习动作 |
CN106682697A (zh) * | 2016-12-29 | 2017-05-17 | 华中科技大学 | 一种基于卷积神经网络的端到端物体检测方法 |
CN107220603A (zh) * | 2017-05-18 | 2017-09-29 | 惠龙易通国际物流股份有限公司 | 基于深度学习的车辆检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
Obstacle Detection and Classification using Deep Learning for Tracking in High-Speed Autonomous Driving;Gowdham Prabhakar等;《2017 IEEE Region 10 Symposium (TENSYMP)》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220198807A1 (en) | 2022-06-23 |
KR20200125731A (ko) | 2020-11-04 |
US20200242375A1 (en) | 2020-07-30 |
US11928866B2 (en) | 2024-03-12 |
US11216674B2 (en) | 2022-01-04 |
US10628686B2 (en) | 2020-04-21 |
JP2021516806A (ja) | 2021-07-08 |
JP7254823B2 (ja) | 2023-04-10 |
EP3743854A1 (en) | 2020-12-02 |
US20190279005A1 (en) | 2019-09-12 |
WO2019178082A1 (en) | 2019-09-19 |
CN111886603A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111886603B (zh) | 用于目标检测和表征的神经网络 | |
US11783568B2 (en) | Object classification using extra-regional context | |
US11531894B1 (en) | Neural networks for object detection | |
CN113366496B (zh) | 用于粗略和精细对象分类的神经网络 | |
CN113366495B (zh) | 搜索自主车辆传感器数据存储库 | |
US11783180B1 (en) | Object detection neural network | |
CN114080634B (zh) | 使用锚定轨迹的代理轨迹预测 | |
JP7090105B2 (ja) | 珍しい事例の分類 | |
US10366502B1 (en) | Vehicle heading prediction neural network | |
CN113366507B (zh) | 训练分类器以检测打开的车门 | |
US11727690B2 (en) | Behavior prediction of surrounding agents | |
US11950166B2 (en) | Predicting occupancy probabilities of surrounding agents | |
US20220164350A1 (en) | Searching an autonomous vehicle sensor data repository based on context embedding | |
US20210101614A1 (en) | Spatio-temporal pose/object database |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |