CN116868239A - 静态占用跟踪 - Google Patents
静态占用跟踪 Download PDFInfo
- Publication number
- CN116868239A CN116868239A CN202280010502.5A CN202280010502A CN116868239A CN 116868239 A CN116868239 A CN 116868239A CN 202280010502 A CN202280010502 A CN 202280010502A CN 116868239 A CN116868239 A CN 116868239A
- Authority
- CN
- China
- Prior art keywords
- static
- occupancy
- dimensional space
- pixels
- image
- 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
Links
- 230000003068 static effect Effects 0.000 title claims abstract description 264
- 238000000034 method Methods 0.000 claims abstract description 143
- 238000013528 artificial neural network Methods 0.000 claims description 54
- 238000010801 machine learning Methods 0.000 claims description 47
- 230000015654 memory Effects 0.000 claims description 37
- 238000013135 deep learning Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 17
- 210000004027 cell Anatomy 0.000 description 116
- 230000008569 process Effects 0.000 description 50
- 230000006870 function Effects 0.000 description 47
- 238000011176 pooling Methods 0.000 description 32
- 238000013527 convolutional neural network Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 23
- 230000004913 activation Effects 0.000 description 22
- 238000001994 activation Methods 0.000 description 22
- 238000003860 storage Methods 0.000 description 18
- 238000012549 training Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013398 bayesian method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- 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/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- 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
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/588—Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
-
- 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/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Radar, Positioning & Navigation (AREA)
- Medical Informatics (AREA)
- Biodiversity & Conservation Biology (AREA)
- Databases & Information Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
提供了用于确定静态占用的技术和系统。例如,一种装置可以被配置为确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素。该装置可以被配置为获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分。该装置可以被配置为基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。该装置可以被配置为组合跨该三维空间的多个图像的信息,并且可以确定与该三维空间相关联的静态占用网格中的所有单元的占用概率。
Description
技术领域
本公开总体上涉及执行静态占用跟踪。本公开的一些方面包括用于使用边界信息(例如,定义可行驶空间的一个或多个边界)、点地图和/或其它信息来执行静态占用网格跟踪的系统和技术。
背景技术
对象检测可以用于(例如,从数字图像或视频剪辑的视频帧)标识对象。对象跟踪可以用于随着时间推移跟踪检测到的对象。对象检测和跟踪可以用于不同领域,包括自主驾驶、视频分析、安全系统、机器人、航空等等。在一些领域中,对象可以确定环境中的其它对象的位置,使得该对象可以准确地在环境中导航(例如,以做出准确的运动规划和轨迹规划决策)。在一些情况下,对象在穿越环境时可能不期望其它对象(例如,静态对象)。对于对象来说,能够检测此类意外对象并准确地在相对于此类对象的空间中导航可能很重要。
对象需要能够确定其它对象的位置和/或位置的领域的示例包括通过(例如,自主车辆的)自主驾驶系统进行自主驾驶、通过机器人系统(例如,自动真空吸尘器、自动手术设备等)进行自主导航、航空系统等等。使用自主驾驶系统作为示例,自主驾驶的关键要求是自主车辆能够检测道路上的意外对象并准确确定道路上的可行驶空间范围。例如,当车辆行驶时,道路上的一些静态对象(例如施工区附近的障碍物、道路中的障碍物等)可能会意外出现。在一些情况下,可能难以检测和/或跟踪意外对象。
发明内容
本文描述了用于使用各种类型的输入信息(诸如定义可行驶空间的边界信息(例如,来自一个或多个机器学习模型的边界信息输出,诸如一个或多个相机可行驶空间网络输出、来自计算机视觉算法的边界信息输出等)、来自一个或多个点地图的信息和/或其它信息)来执行静态占用跟踪(例如,静态占用网格跟踪)的系统和技术。例如,静态占用跟踪可以用于检测一个或多个静态对象。根据一个说明性示例,提供了一种检测一个或多个静态对象的方法。该方法包括:由计算设备确定与在三维空间的图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中该一个或多个静态对象相对于该三维空间是静态的;由该计算设备获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分;以及由该计算设备基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。
在另一个示例中,提供了一种用于检测一个或多个静态对象的装置,该装置包括存储器和耦合到该存储器的一个或多个处理器(例如,在电路中实施)。该一个或多个处理器被配置为并且可以:确定与在三维空间的图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中该一个或多个静态对象相对于该三维空间是静态的;获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分;以及基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。
在另一个示例中,提供了一种其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个处理器执行时使该一个或多个处理器:确定与在三维空间的图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中该一个或多个静态对象相对于该三维空间是静态的;获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分;以及基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。
在另一个示例中,提供了一种用于检测一个或多个静态对象的装置。该装置包括:用于确定与在三维空间的图像中描绘的一个或多个静态对象相关联的一个或多个像素的部件,其中该一个或多个静态对象相对于该三维空间是静态的;用于获得包括多个地图点的点地图的部件,该多个地图点对应于该三维空间的一部分;以及用于基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率的部件。
在一些示例中,提供了一种包括用于确定静态占用的组件的车辆。该车辆可以包括:一个或多个相机,该一个或多个相机被配置为捕获多个图像;存储器,该存储器被配置为存储该多个图像;以及一个或多个处理器,该一个或多个处理器在电路中实施并耦合到该存储器。该一个或多个处理器被配置为并且可以执行上述技术中的任一者。例如,该一个或多个过程可以被配置为并且可以:确定与在三维空间的图像中描绘的一个或多个静态对象相关联的一个或多个像素;获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分;以及基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。
在一些方面中,该一个或多个像素中的每个像素是由该三维空间中的一个或多个静态对象中的静态对象占用的图像的列中的最低像素。在一些情况下,该图像的列包括该图像的像素的列。
在一些方面中,与该一个或多个静态对象相关联的一个或多个像素是基于一个或多个机器学习模型来确定的。在一些情况下,该一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络,该深度学习神经网络被配置为预测该一个或多个像素被该三维空间中的至少一个对象占用。在一些示例中,该深度学习神经网络还被配置为预测该一个或多个像素中的每个像素是否与静态对象或动态对象相关联。在一些方面中,该一个或多个机器学习模型中的机器学习模型与用于捕获该图像的相机相关联。
在一些方面中,为了确定该三维空间的部分中的一个或多个静态对象的占用概率,上文描述的方法、装置、车辆和计算机可读介质可以包括确定(或者可以被配置为确定)与该三维空间的部分相关联的网格中的每个单元的占用概率。在一些情况下,上文描述的方法、装置、车辆和计算机可读介质还包括使用贝叶斯滤波器来更新每个单元的占用概率。在一些示例中,为了确定该网格中的每个单元的占用概率,上文描述的方法、装置、车辆和计算机可读介质包括确定(或者可以被配置为确定)该网格的在包括该计算设备的对象周围的矩形区域内的所有单元的占用概率。在一些方面中,包括该计算设备的对象是车辆。
在一些方面中,上文描述的方法、装置、车辆和计算机可读介质还包括:基于该一个或多个像素中的在该图像中的列中的像素来确定该网格的平面与和该列相对应的平面的交线;以及确定沿着该交线的一个或多个点的一个或多个占用概率。
在一些方面中,上文描述的方法、装置、车辆和计算机可读介质还包括:至少部分地通过根据沿着该交线的一个或多个点的至少一个或多个占用概率确定代表性占用概率来确定该网格中的单元的占用概率。
在一些方面中,该代表性占用概率包括最大概率或均值概率中的一者。
在一些方面中,基于来自该点地图的信息来确定该一个或多个占用概率。在一些情况下,来自该点地图的信息至少包括与该网格的平面上的点相关联的高度。
在一些方面中,该点地图包括高清晰度(HD)地图。
在一些方面中,该三维空间的部分包括该三维空间中的行驶表面。在一些方面中,该一个或多个静态对象位于该行驶表面上。
在一些方面中,与该一个或多个静态对象相关联的一个或多个像素至少部分地通过使用计算机视觉算法处理该图像来生成。在一些情况下,该计算机视觉算法被配置为执行时间跟踪以估计该一个或多个像素。
在一些方面中,该计算设备和/或装置是车辆或车辆(例如,自主车辆)、机器人设备或系统的计算设备或组件或机器人设备或系统的组件、移动设备(例如,移动电话或所谓的智能手机或其它移动设备)、可穿戴设备、扩展现实设备(例如、虚拟现实(VR)设备、扩增现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、服务器计算机、相机或其它设备,或者是其部分和/或包括它们。在一些方面中,该计算设备、装置和/或车辆包括用于捕获一个或多个图像的一个或多个相机。在一些方面中,该计算设备、装置和/或车辆还包括用于显示一个或多个图像、通知和/或其它可显示数据的显示器。在一些方面中,上文描述的计算设备、装置和/或车辆可以包括一个或多个传感器(例如,一个或多个惯性测量单元(IMU),诸如一个或多个陀螺仪、一个或多个加速度计、其任何组合,和/或其它传感器)。
本发明内容既非意图识别所要求保护的主题的关键或本质特征,也非意图单独用于确定所要求保护的主题的范围。应通过参考本专利的完整说明书的适当部分、任何或全部附图以及每条权利要求来理解主题。
通过参考以下说明书、权利要求和附图,前述内容连同其它特征和实施例将变得更加明显。
附图说明
下文参考以下附图详细地描述本申请的说明性实施例:
图1是示出根据一些示例的包括静态对象的道路和在道路上行驶的车辆的图像;
图2是示出根据一些示例的用于执行占用跟踪的系统的示例的框图;
图3是根据一些示例的具有示出示例性边界信息的注释的图像;
图4是示出根据一些示例的包括多个单元的静态占用网格的示例的图式;
图5A和图5B是示出根据一些示例的逆传感器模型的示例性方面的图式;
图6是示出根据一些示例的网格的示例的图式,该网格具有沿着网格投影的多条射线或线;
图7是示出根据一些示例的使用逆传感器模型为图像确定的概率的图形表示的图形;
图8是示出根据一些示例的使用逆传感器模型为图像确定的概率的图形表示的图形;
图9是示出根据一些示例的使用逆传感器模型为图像确定的概率的图形表示的图形;
图10是示出根据一些示例的来自静态占用网格的样本输出的俯视图的图式;
图11A和图11B是示出根据一些示例的从静态占用网格输出的样本的俯视图的附加示例的图式;
图12是根据一些示例的示出第一图像(顶部图像)和第二图像(底部图像)的图式,该第一图像表示区域的实际占用的地面实况(GT),在该区域上方基于静态占用网格的系统试图估计占用概率,该第二图像表示具有示出示例性边界信息的注释的对应相机图像;
图13是示出根据一些示例的使用分位数的保守更新技术的图式;
图14是示出根据一些示例的确定静态占用的过程的示例的流程图;
图15是示出根据一些示例的深度学习网络的示例的框图;
图16是示出根据一些示例的卷积神经网络的示例的框图;以及
图17是根据一些示例的可以用于实施本文描述的技术的一些方面的示例性计算设备的框图。
具体实施方式
下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用并且它们中的一些可以组合应用,这对于本领域技术人员员来说是显而易见的。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不意图是限制性的。
以下描述仅提供示例性实施例,而不意图限制本公开的范围、适用性或配置。相反,对示范性实施例的以下描述将为本领域技术人员提供用于实施示范性实施例的可行描述。应当理解,在不脱离所附权利要求中阐述的本申请的精神和范围的情况下,可以对元件的功能和布置作出各种改变。
对象检测和跟踪可以用于标识对象并随着时间推移跟踪该对象。例如,可以获得对象的图像,并且可以对图像执行对象检测以检测图像中的一个或多个对象。在一些情况下,可以将检测到的对象分类为对象类别,并且可以生成边界区域来标识图像中的对象的位置。包括基于神经网络的对象检测器的各种类型的系统可以用于对象检测。
对象检测和跟踪可以用于各种类型的系统,包括自主驾驶系统、视频分析、安全系统、机器人系统、航空系统以及其它系统。在此类系统中,移动穿过环境或空间并跟踪环境中的其它对象(被称为目标对象)的对象(被称为跟踪对象)可以确定其它对象的位置(以及在一些情况下,尺寸)。确定环境中的目标对象的位置(在一些情况下,大小)允许跟踪对象通过做出智能运动规划和轨迹规划决策来准确地在环境中导航。
在一些情况下,当跟踪对象移动穿过环境时,意外对象可能会出现在跟踪对象的路径中。例如,静态和动态对象可能会意外地出现在环境中。对于跟踪对象来说,能够检测此类意外对象并相对于此类对象准确地在该空间中导航(例如,以便避开此类对象)可能很重要。如果跟踪对象被配备有可以执行基于光(例如,基于激光)的检测和/或跟踪的某些传感器,诸如飞行时间系统(例如,使用光探测和测距(LIDAR)传感器),则可以直接检测和/或跟踪此类意外对象。然而,使用其它类型的传感器(诸如利用图像或帧来执行检测和/或跟踪的基于相机的系统)来检测和/或跟踪意外对象可能具有挑战性。在一些情况下,基于相机的系统比基于飞行时间的系统更经济。
跟踪对象需要能够准确地检测和跟踪目标对象的领域的一个示例是由自主驾驶系统(例如,自主车辆)进行的自主驾驶。自主驾驶系统的重要目标是自主车辆能够检测行驶表面(例如,道路、一小块或其它行驶表面)上的意外对象,并准确地确定道路上相对于意外对象的可行驶空间的范围。例如,在一些情况下,当跟踪车辆行驶时,一些对象(被称为意外对象)可能意外地出现在行驶表面上。如本文所使用的,术语“意外对象”是指跟踪对象(例如,车辆)在使用一个或多个传感器检测到对象之前不知道的对象。例如,车辆可以基于车辆访问的信息(例如,由车辆本地存储的或诸如经由与一个或多个服务器的无线通信从远程源访问的地图信息)了解行驶表面、路线、十字路口、出口、地点(例如,加油站、商店等)等。此类意外静态对象的示例包括施工区附近的障碍物、落入行驶表面的特定车道的障碍物等等。
检测和跟踪车辆周围对象的能力对于更高级别的自主性(诸如3级及更高级别的自主性)尤其重要。例如,自主级别0需要驾驶员完全控制,因为车辆没有自主驾驶系统,而自主级别1涉及基本辅助特征,诸如巡航控制,在这种情况下,车辆的驾驶员完全控制车辆。自主级别2是指半自主驾驶,其中车辆可以执行诸如直线行驶、停留在特定车道上、控制距车辆前方的其它车辆的距离的功能或其他功能。自主级别3、4和5包括比级别1和2更多的自主权。例如,自主级别3是指车载自主驾驶系统可以在某些情况下接管所有驾驶功能,驾驶员随时准备在需要时接管。自主级别4是指即使在复杂的驾驶情况下(例如,在高速公路和城市交通繁忙的情况下)也无需用户帮助即可获得完全自主体验。在自主级别为4时,驾驶员仍可保持在方向盘后面的座椅上。以自主级别4操作的车辆可以进行通信并就即将进行的操纵(例如,车辆正在变道、转弯、停车等)通知其它车辆。自主级别5车辆是在所有条件下自主操作的完全自主、自主驾驶车辆。车辆不需要人类操作员来采取任何动作。
图1是示出包括静态对象(包括静态对象104)的道路102和在道路102上行驶的车辆106的图像100。车辆106是动态对象的示例。在一些情况下,图像100可以由跟踪车辆(未示出)捕获。跟踪车辆可以是在特定自主级别下操作的自主车辆。跟踪车辆可以跟踪车辆106(作为目标车辆)并且可以尝试自主导航绕过静态对象。例如,跟踪车辆可以确定静态对象104的位置(并且在一些情况下,大小)。基于静态对象104的位置,跟踪车辆可以确定何时减速、加速、变道和/或执行一些其它功能以便避开静态对象104。
被配备有某些基于光的传感器(例如,飞行时间传感器,诸如LIDAR传感器)的车辆可能能够相对容易地检测和跟踪意外对象(例如,静态对象)。例如,包括一个或多个LIDAR传感器的车辆可以通过发射光信号并接收发射的光信号的反射来检测道路中意外对象的存在。可以处理反射信号以确定意外对象的位置。然而,当使用基于图像的传感器(诸如相机)来检测和跟踪对象时,跟踪车辆检测意外对象可能具有挑战性。如上文提及,准确地检测和/或跟踪意外对象(例如,静态对象)是自主车辆的重要特征,允许车辆相对于此类对象做出准确的运动规划和轨迹规划决策。
其它类型的系统也可以从检测和/或跟踪意外对象中受益。例如,在对象上执行操作的机器人系统可能需要能够准确地检测和跟踪意外对象。在一个说明性示例中,用于清洁的机器人设备(例如,自动真空吸尘器)需要能够检测环境中意外对象的存在和位置,以便在移动穿过环境时避开此类对象。在另一个说明性示例中,用于制造的机器人设备需要知道意外对象的准确位置以便避免事故。在另一个说明性示例中,航空系统(例如,无人驾驶飞行器等等)可以受益于对飞行路径中的意外对象的准确检测,使得航空系统可以准确地导航绕开该对象。存在需要能够标识对象的大小和位置的系统的许多其它示例。
本文描述了用于执行静态占用跟踪以估计跟踪对象周围的区域的静态占用(例如,一个或多个静态对象是否占用该区域)的系统、装置、方法(也称为过程)以及计算机可读介质(统称为“系统和技术”)。例如,被配置为执行本文描述的技术的系统可以被包括在可以检测和跟踪一个或多个目标对象的跟踪对象(例如,车辆、机器人系统等)中。在一些方面中,该系统和技术可以使用各种类型的输入信息来执行静态占用网格跟踪以确定和/或更新表示物理三维(3D)空间的静态占用网格中的单元的概率。该系统可以使用静态占用网格来确定3D空间的某些部分何时被一个或多个对象(例如,静态对象,其可以是意外对象)占用。例如,自主车辆的系统可以基于为与行驶表面的一部分相对应的网格的单元确定的概率来确定静态对象(包括意外静态对象)何时占用该行驶表面(例如,道路)的该部分。将使用车辆(例如,自主车辆)作为跟踪对象的示例并使用道路作为行驶表面的示例来描述系统和技术的各方面。然而,该系统和技术可以被包括在任何类型的跟踪对象或系统中和/或由任何类型的跟踪对象或系统(诸如机器人系统、航空系统(例如,无人驾驶飞行器)和/或在任何类型的行驶路面上行驶或静止的其它类型的跟踪对象或系统)使用。此外,虽然针对静态对象描述了该系统和技术,但是在一些情况下,该系统和技术可以用于检测和跟踪动态对象。
在一些方面中,该系统和技术可以使用根据图像、来自点地图(例如,HD地图)的信息、边界信息和点地图信息两者和/或使用其它信息确定的边界信息(其在本文中也可以被称为可行驶空间边界信息)来估计跟踪对象(例如,跟踪车辆)周围的3D空间中的区域的静态占用(以及因此可行驶区域)。图像可以由跟踪对象(例如,跟踪车辆)的一个或多个相机捕获。例如,该一个或多个相机可以安装在跟踪对象(例如,跟踪车辆)上并且可以指向或瞄准特定方向(例如,在相对于跟踪对象的前放的向前方向上、在相对于跟踪对象的前方的角度下和/或在任何其它方向上)。
边界信息可以包括指示图像中的区域和/或对象的一个或多个边界的可导航空间边界。使用车辆作为跟踪对象的示例,边界信息可以包括指示图像中的一个或多个边界(诸如在图像中描绘的空间中的可行驶区域的边界和/或在图像中描绘的一个或多个静态对象的边界)的可行驶空间边界。例如,对于给定图像或该图像的一部分,边界信息可以包括与在图像中描绘的对象的边界(例如,道路的车道的外边界、静态对象等)相关联的特定像素(例如,不能自由行驶的最低像素)。
在一些情况下,可以使用一种或多种机器学习模型从图像确定边界信息。例如,在一些情况下,基于神经网络的系统(其可以被称为可行驶空间神经网络(DSN))可以处理图像以确定边界信息。在一些示例中,用于捕获图像的跟踪对象(例如,跟踪车辆)的每个相机可以包括机器学习模型(例如,DSN),其可以用于处理所捕获的图像并确定那些图像的边界信息。在一些情况下,可以使用一种或多种其它类型的基于神经网络的系统来生成边界信息。在一个示例中,深度学习模型或算法可以预测图像中的每个像素(在这种情况下,深度学习算法检测图像中的整个可行驶区域,而不仅仅是边界)或图像中的像素的子集的可行驶或不可行驶类别标签。给定每个图像,一旦该系统和技术标识出与每个像素相对应的静态占用网格的单元,该系统和技术就可以更新这些单元的占用概率。在另一个示例中,深度学习模型或算法可以直接从图像估计俯视图中的静态占用网格上的概率。在这样的示例中,该系统和技术可以使用贝叶斯滤波器(或其它滤波器)来组合来自多个图像的信息,如本文所描述的。可以使用任何其它合适的基于机器学习的技术来确定或估计边界信息。
在一些情况下,可以使用基于计算机视觉的技术或算法来生成边界信息。例如,可以使用基于计算机视觉的技术,其执行时间跟踪来估计对象可以在其中移动的区域(例如,可行驶区域)的一个或多个边界和/或在图像中描绘的一个或多个静态对象的一个或多个边界。
如上文提及,一个或多个机器学习模型或系统(例如,DSN)可以处理一个或多个图像以确定在一个或多个图像中描绘的3D空间的可行驶区域的估计值。在一些示例中,对于图像中的每一列,机器学习模型(例如,DSN或其它机器学习模型)或其它系统可以预测不能自由行驶的最低像素(称为边界像素或定界符)的位置(例如,行)(例如,因为该像素与图像中的对象的边界的一部分相关联)。机器学习模型可以被配置为执行边界像素预测作为回归任务、作为多类分类任务(例如,检测关于所有候选者的边界列的索引,诸如该组所有行索引)、以任选后处理来估计亚像素分辨率的边界执行边界像素预测,和/或使用其它合适的任务来执行边界像素预测。图像中的每一列可以是图像中的一列像素,诸如1像素宽的列。在一些示例中,如上文提及,深度学习神经网络可以用于预测图像中的每个像素的可行驶或不可行驶类别标签(而不是具体确定边界信息)。
在一些情况下,机器学习模型或其它系统还可以预测边界像素是属于静态对象(例如,道路中的交通锥)的边界还是动态对象(例如,沿着道路行驶的车辆)的边界。在一些示例中,机器学习模型可以包括用于执行分类任务以确定边界处的对象类别的分类神经网络。例如,分类神经网络可以确定属于静态对象的边界的边界像素的第一类别和属于动态对象的边界的边界像素的第二类别。在一个说明性示例中,机器学习模型可以包括用于预测边界像素位置并用于对边界像素进行分类(例如,分类为属于静态或动态对象)的分类卷积神经网络(CNN)。在一些情况下,可以应用后处理来估计子像素级别的边界。在一些实施方式中,机器学习模型(例如,分类CNN)可以预测两个预测输出的软分数。在一些实施方式中,软分数可以被解译为静态占用网格的概率。
如上文提及,机器学习模型或系统可以将边界像素分类为属于静态对象的边界或动态对象的边界。当计算用于更新静态占用网格的概率时,可以以与具有属于静态对象的边界像素的列不同的方式处理具有属于动态对象的边界像素的列。可以基于与边界像素相对应的某些单元的代表性概率(例如,基于边界像素到道路或其它对象表面的投影)来确定和/或更新属于静态对象的边界像素的静态占用网格的概率。对于动态边界,可以确定表面(例如,道路)直到边界为止都是畅通的。可能不知道动态边界处或之外是否存在静态对象。在此类情况下,当用新概率(例如,对于给定帧)更新静态占用网格时,可以向动态边界之前的单元分配低概率,并且可以向边界之外的单元分配先验概率值。在一些情况下,为了考虑边界估计值中的像素噪声,可以用概率值的平滑版本(例如,使用高斯模型)来更新静态占用网格的概率。
一个或多个机器学习模型或系统可以输出边界像素(或边界像素的位置)和/或图像中的每一列的每个边界像素(诸如图像中的第一列的第一边界像素、图像中的第二列的第二边界像素等等)的分类(例如,分类为属于静态对象或动态对象的边界)。如下文描述,边界像素可以用于确定跟踪对象(例如,跟踪车辆)在其上行驶的表面(例如,道路)的区域的占用概率。
点地图可以包括与3D空间中的一个或多个参考位置相对应的多个地图点。在一些情况下,点地图可以包括3D空间中的对象的维度信息以及与3D空间相关联的其它语义信息。例如,来自点地图的信息可以包括高度信息(例如,道路高度)、法线信息(例如,道路法线)和/或与3D空间中的跟踪对象(例如,跟踪车辆)正在其中导航的一部分(例如,道路)相关的其它语义信息。点地图信息还可以用于确定跟踪对象(例如,跟踪车辆)在其上行驶的表面(例如,道路)的区域的占用概率。
如上文提及,该系统和技术可以使用边界信息和点地图信息作为输入来确定跟踪对象(例如,跟踪车辆)周围的区域的占用概率。例如,该系统和技术可以使用来自机器学习模型的一系列输出(包括边界信息),诸如来自跟踪对象(例如,跟踪车辆)上的一个或多个相机的一系列DSN输出。在一些方面中,该系统和技术可以利用逆传感器模型,该逆传感器模型将从一个或多个机器学习模型输出的边界信息映射到表面(例如,道路)上的位置的占用概率。如先前描述,在一些情况下,该系统和技术可以使用占用网格跟踪框架来跟踪跟踪对象(例如,跟踪车辆)周围的单元的网格中的所有单元的占用概率。当确定概率时,点地图信息可以用于确定网格的给定单元是在表面(例如,道路)上还是在表面(例如,道路)之外、确定表面(例如,道路)在给定单元位置处的尺寸(例如,高度)或表面(例如,道路)的最接近表面(例如,道路)之外的单元位置的高度,和/或确定占用网格的其它信息。
将关于附图描述该技术和系统的各方面。虽然出于说明性目的本文使用车辆(例如,自主车辆)和/或自主驾驶系统描述了一些示例,但是一般技术人员将理解本文描述的系统和相关技术可以被包括在任何其它系统或设备中并由其执行。
图2是示出用于在系统200行驶通过的三维(3D)空间或环境中执行占用跟踪的系统200的示例的框图。例如,该系统可以执行静态占用网格跟踪以估计包括系统200的跟踪对象周围的区域的静态占用。静态占用可以向跟踪对象指示一个或多个意外静态对象是否占用了这些区域。系统200可以被包括在跟踪一个或多个目标对象的跟踪对象中。如上文提及,跟踪对象是指检测并跟踪一个或多个其它对象(其可以被称为目标对象)的对象。在一个说明性示例中,系统200可以包括自主车辆中所包括的自主驾驶系统(作为跟踪对象的示例)。在其它说明性示例中,系统200可以包括自主导航系统,该自主导航系统包括在机器人设备或系统中、在(例如,无人驾驶飞行器等的)航空系统中、或者在另一个设备中。如所提及的,虽然出于说明性目的本文使用车辆(例如,自主车辆)和/或自主驾驶系统描述了一些示例,但是本文描述的系统200和相关技术可以被包括在任何其它系统或设备中并由其执行。
系统200包括各种组件,包括一个或多个相机202、边界信息确定引擎204、静态占用估计引擎206和输出引擎208。系统200的组件可以包括软件、硬件或两者。例如,在一些实施方式中,系统200的组件可以包括电子电路或其它电子硬件和/或可以使用电子电路或其它电子硬件来实施,该电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其它合适的电子电路);和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实施,以执行本文描述的各种操作。软件和/或固件可以包括存储在计算机可读存储介质上并且可由实施系统200的计算设备的一个或多个处理器执行的一个或多个指令。
虽然系统200被示为包括某些组件,但是普通技术人员将理解系统200可以包括比图2中所示的组件更多或更少的组件。例如,系统200可以包括包含一个或多个输入设备和一个或多个输出设备(未示出)的计算设备或对象,或者可以是其部分。在一些实施方式中,系统200还可以包括包含一个或多个存储器设备(例如,一个或多个随机存取存储器(RAM)组件、只读存储器(ROM)组件、高速缓存存储器组件、缓冲器组件、数据库组件和/或其它存储器设备)、与该一个或多个存储器设备通信和/或电连接的一个或多个处理设备(例如,一个或多个CPU、GPU和/或其它处理设备)、用于执行无线通信的一个或多个无线接口(例如,包括用于每个无线接口的一个或多个收发器和一个基带处理器)、用于通过一个或多个硬接线连接执行通信的一个或多个有线接口(例如,诸如通用串行总线(USB)输入、闪电连接器和/或其它有线接口的串行接口)和/或图2中未示出的其它组件的计算设备或者可以是其部分。
如上文提及,系统200可以由计算设备或其它对象实施和/或包括在其中。在一些情况下,可以使用多个计算设备来实施系统200。例如,用于实施系统200的计算设备可以包括作为设备或对象(诸如车辆、机器人设备、监视系统和/或具有执行本文描述的技术的资源能力的任何其它计算设备或对象)的一部分的计算机或多个计算机。在一些实施方式中,系统200可以与一个或多个软件应用程序集成(例如,集成到软件中、作为一个或多个插件添加、被包括作为一个或多个库函数、或以其它方式集成),该一个或多个软件应用程序诸如自主驾驶或导航软件应用程序或软件应用程序套件。一个或多个软件应用程序可以安装在实施系统200的计算设备或对象上。
系统200的一个或多个相机202可以捕获一个或多个图像203。在一些情况下,一个或多个相机202可以包括多个相机。例如,一个或多个相机202可以是包括系统200的自主车辆的一部分,并且可以包括车辆前方的一个或多个相机、车辆后面的一个或多个相机、或车辆的每一侧的一个或多个相机和/或其它相机。在一些情况下,一个或多个相机202可以包括自主车辆的前置相机。在另一个示例中,包括系统200的机器人设备可以包括在机器人设备的各个部分上的多个相机。在另一个示例中,包括系统200的航空设备可以包括在航空设备的不同部分上的多个相机。在一些示例中,一个或多个相机202可以包括边界信息确定引擎204。例如,一个或多个相机202可以包括可以实施边界信息确定引擎204的硬件和软件组件。
一个或多个图像203可以包括静止图像或视频帧。一个或多个图像203各自包含3D空间或环境的图像。图2中示出了示例性图像205。图像205示出了由跟踪车辆(包括目标车辆和多个静态对象(例如,道路的车道中的锥体))的相机捕获的图像(来自一个或多个相机202)的示例。当一个或多个图像203包括视频帧时,视频帧可以是一个或多个视频序列的一部分。在一些情况下,由一个或多个相机202捕获的图像可以存储在存储设备(未示出)中,并且可以从存储设备检索或以其它方式获得一个或多个图像203。一个或多个图像203可以包括沿着一个或多个平面(例如,水平或x方向上的平面和竖直或y方向上的平面)的3D空间的一个或多个二维表示,或者3D空间的一个或多个三维表示。例如,一个或多个图像203可以是由像素组成的彩色图像(例如,每个像素具有红色、绿色和蓝色分量的红-绿-蓝(RGB)图像)、单色图像、深度图像或深度图、具有颜色和深度信息的图像(例如,RGB深度或RGB-D图像)、由矢量或多边形组成的矢量图像、其组合、和/或其它类型的图像。
边界信息确定引擎204可以获得并处理一个或多个图像203以确定一个或多个图像203的边界信息。在一些方面中,该系统可以使用多个边界信息确定引擎。如上文提及,在一些情况下,一个或多个相机202可以包括边界信息确定引擎204。例如,在此类情况下,每个相机可以包括边界确定引擎,其可以处理由相机捕获的图像并且可以确定由相机捕获的图像的边界信息。在一些情况下,边界信息确定引擎204可以是与一个或多个相机202分离的组件,并且可以处理由一个或多个相机202中的一些或全部捕获的图像。
在一些情况下,边界信息确定引擎204可以包括一个或多个机器学习模型或系统。在一个说明性示例中,边界信息确定引擎204可以包括基于神经网络的系统(例如,深度学习神经网络),其可以被称为可行驶空间神经网络(DSN)。DSN可以处理图像以确定边界信息。如上文提及,机器学习模型或系统可以包括分类卷积神经网络(CNN)。下面关于图15和图16描述深度学习网络的示例。在一些示例中,边界信息确定引擎204可以实施计算机视觉算法或技术来确定边界信息。在一个示例中,计算机视觉算法或技术可以执行时间跟踪来估计对象可以在其中移动的区域(例如,可行驶区域)的一个或多个边界和/或在图像中描绘的一个或多个静态对象的一个或多个边界。
如前文提及,由边界信息确定引擎204确定的边界信息可以包括每个图像的可行驶空间边界。可行驶空间边界指示在图像中描绘的场景的一个或多个边界,诸如与在图像中描绘的道路的车道相关联的边界、在图像中描绘的一个或多个静态对象的边界和/或与图像中的场景相关联的其它边界。在一些情况下,边界信息可以包括图像中的与在图像中描绘的对象的边界相关联的特定像素。例如,边界信息确定引擎204可以确定不能自由行驶的最低像素。最低像素可以用作边界像素,这是由于静态对象的边界的部分可能是跟踪对象基于行驶方向将遇到的第一点(例如,当图像来自跟踪对象前方的相机时)。可以假设道路直到边界像素都是畅通的。在一些情况下,边界信息确定引擎204可以确定并输出不可行驶的给定列的第一行(相对于图像的底部)的行标识符(ID)(例如,因为该空间的与图像中的该行和该列的像素相对应的部分被静态对象占用)。在一些情况下,边界信息确定引擎204可以以子像素分辨率确定并输出边界位置。例如,行输出值2.6可以指代图像中的第2行(第二行像素)与第3行(第三行像素)之间的位置。在当使用机器学习模型或系统实施边界信息确定引擎204时的示例中,可以通过对机器学习输出执行后处理来确定子像素信息。
图3是具有示出可以由边界信息确定引擎204输出的示例性边界信息的注释的图像300。注释以实线轮廓和虚线轮廓示出。实线轮廓指示静态占用区域(被静态对象占用的区域或道路外部的不可行驶区域,诸如人行道)的边界。虚线轮廓指示非静态(或动态)占用区域或未知区域的边界。边界信息确定引擎204可以处理图像300中的每一列。在一些情况下,每个图像列可以包括1像素宽的单列像素。从图像300的底部开始,边界信息确定引擎204可以确定图像300的每一列的第一不可行驶像素(称为边界像素或定界符)的位置。例如,边界信息确定引擎204可以确定与静态对象304的底部相对应的像素是图像列310中的最底部(或从图像300的底部开始的第一个)不可行驶像素。在另一个示例中,边界信息确定引擎204可以确定与道路边界308相对应的像素是图像列312中最底部不可行驶像素。可以对图像300中的每一列进行类似确定,从而导致为图像中的每一列确定边界像素。
在一些示例中,边界信息确定引擎204还可以确定每个边界像素是否是静态对象或动态对象(例如,在道路上移动的车辆)的边界的一部分。在一些情况下,边界信息确定引擎204可以将标签添加到边界信息输出,该标签指示每个边界像素是静态对象还是动态对象的边界。
静态占用引擎206可以获得来自边界信息确定引擎204的一个或多个输出(例如,基于多个图像的多个输出的流)以及来自点地图207的信息作为输入。点地图207可以包括与3D空间中的一个或多个参考位置相对应的多个地图点。在一些情况下,点地图207可以被称为高清(HD)地图。在使用自主车辆作为对象的说明性示例的一个示例中,点地图207的点定义与道路相关的固定物理参考位置,诸如道路车道和/或其它数据。例如,点地图207可以将道路上的车道表示为一组连接点。线段被定义在两个地图点之间,其中多个线段定义车道的不同线(例如,车道的边界线和中心线)。线段可以构成使用地图点定义的分段线性曲线。例如,该组连接点(或线段)可以表示道路上的车道的中心线和边界线,这允许自主车辆确定其位于道路上的位置以及目标对象位于道路上的位置。在一些情况下,可以为世界的不同区域维护不同的点地图(例如,纽约市的点地图、旧金山的点地图、新奥尔良的点地图等等)。在一些示例中,不同的点地图可以被包括在单独的数据文件(例如,Geo-JavaScript对象表示法(GeoJSON)文件、ShapeFile、逗号分隔值(CSV)文件和/或其它文件)中。
在一些情况下,点地图207可以包括3D空间中的对象的语义信息。例如,点地图207可以包括诸如道路的不同部分的道路高度和道路法线的信息。在一个示例中,点地图207可以包括在各个查询的2D点处的道路高度值和道路法线值。例如,点地图207的地图API(例如,HD地图API)可以支持其两个俯视图坐标在点地图207的参考系中指定的查询点。例如,给定x和y坐标,地图API可以返回地图上具有指定x和y坐标的点的z坐标。可以使用地图API查询地图,其中点在静态占用网格的y平面上(下文讨论)。该API可以用于计算道路在静态占用网格的每个网格单元处的高度。当处理网格上或网格平面上(例如,沿着与图像列相对应的平面与地平面相交的射线,如下文描述)的点时,可以使用API来确定点的高度。
静态占用引擎206可以使用边界信息和来自点地图207的信息来确定系统200周围(例如,包括系统200的车辆周围)的区域的占用概率。如下文更详细描述的,静态占用引擎206可以实施逆传感器模型,该逆传感器模型将从边界信息确定引擎204输出的边界信息映射到3D空间的一部分上的位置(例如,沿着跟踪车辆在其上行驶的道路的位置)的占用概率。
在一些示例中,静态占用引擎206可以使用占用网格跟踪框架来跟踪车辆周围的单元的网格中的所有单元的占用概率。单元的网格可以被称为静态占用网格(SOG)。在一些情况下,静态占用引擎206可以使用点地图信息来确定静态占用网格的给定单元是在道路上还是在道路之外、确定道路在给定单元位置处的尺寸(例如,高度、法线等)或道路的最接近道路之外的单元位置的高度,和/或确定占用网格的其它信息。系统200可以使用静态占用网格来确定3D空间的某些部分何时被静态对象占用。例如,系统200可以基于为与道路的一部分相对应的网格的单元确定的概率来确定道路的该部分何时被静态对象占用。
图4是示出包括多个单元(包括单元402)的静态占用网格400的示例的图式。静态占用网格400是相对于跟踪对象404(例如,跟踪车辆)的俯视图。网格400中的单元可以具有统一大小。例如,每个单元的尺寸可以是50cm×50cm(如图4所示)。单元尺寸可以基于使用静态占用网格400的特定应用所需的分辨率。在一些情况下,跟踪对象404的位置可以是从跟踪对象404上的相机的位置的角度来看的。跟踪对象404的行驶方向是图4中从左到右(如标记为行驶方向的箭头所示)。
静态占用引擎206可以使用静态占用网格400来预测跟踪对象404周围的每个位置被一个或多个静态对象占用的概率。例如,静态占用引擎206可以确定跟踪对象404周围的区域被占用的概率。静态占用引擎206可以在存储器中维持车辆周围一定数量的网格单元(表示为区域408)。作为说明性示例,区域408可以是50米宽和150米长,如图4所示。静态占用引擎206可以确定并跟踪区域408中的所有单元的概率。例如,在一些情况下,静态占用引擎206可以仅更新其概率当前被系统跟踪的单元(例如,区域408中的单元)。车辆周围的感兴趣区域406可以包括下游组件(例如,输出引擎208和/或其它组件)感兴趣的实际网格限制。在一些情况下,静态占用引擎206可以确定并跟踪区域408中的所有单元的概率(如上文提及),但是可以将感兴趣区域406中的单元的概率提供给输出引擎208。在一些情况下,静态占用引擎206可以向输出引擎208提供整个区域408中的单元的概率。区域408提供缓冲区,使得可以维持区域408中的单元的概率,而不是仅维持感兴趣区域406中的单元的概率。提供比感兴趣区域406更大的单元区域408可以限制昂贵的存储器操作(例如,将数据移入和移出存储器)。在一些替代情况下,仅维持感兴趣区域406中的单元的概率。
如上文提及,感兴趣区域406可以包括下游组件感兴趣的静态占用网格400的单元,该下游组件可以包括输出引擎208和/或系统200或更大的系统或包括系统200的设备的其它组件(车辆、机器人系统或其它系统或设备)。在一些示例中,如下文更详细描述的,输出引擎208可以确定要执行的某些行为。例如,输出引擎208可以确定跟踪对象404在给定环境的当前状态的情况下采取的行为(例如,变道、车道内操纵、紧急制动等)。输出引擎208还可以包括运动规划组件,其规划跟踪对象404应当采取以实施所确定行为的路线。在一些情况下,输出引擎208在确定此类行为和运动时可以使用感兴趣区域406内的单元的概率。
当跟踪对象404移动时,静态占用引擎206可以更新在存储器中维护的区域408中的单元(其还包括向输出引擎208提供概率的感兴趣区域406中的单元)。例如,当跟踪对象404移动时,区域408和感兴趣区域406也随着跟踪对象404移动,并且确定更新的区域408内的单元的概率。例如,当跟踪对象404移动时,如果单元移出区域408,则静态占用引擎206可以舍弃该单元的估计概率并且可以开始确定进入区域408的新单元的估计概率。在一些示例中,当跟踪对象404相对于静态占用网格400的取向偏转特定角度(例如,45度)时,感兴趣区域406将相对于网格取向偏转,并且较大区域408将继续是轴对齐的矩形区域。
静态占用引擎206可以将静态占用网格中的每个单元的位置与点地图207中的对应位置进行匹配。使用点地图207上的对应位置,静态占用引擎206可以将每个被跟踪单元(例如,在图4的区域408内)与指示每个单元是否在3D空间的特定部分之内或之上或3D空间的部分的外部的标志或其它指示符相关联。在一个说明性示例中,标志可以指示单元是在道路上还是在道路之外。在一些情况下,静态占用引擎206还可以将每个单元与3D空间的部分在单元位置处或当单元不在3D空间的部分内(例如,单元在道路上之外)时在最接近单元的位置(例如,道路位置)处的高度(例如,道路的高度)相关联。在一些情况下,当点地图207不可用时(例如,由于无线网络性能差或没有无线网络性能、由于无法访问点地图207等),可以通过将3D空间的部分(例如,路面)模拟为跟踪对象(例如,跟踪车辆)位置的地平面处的平坦平面来近似表示高度。
如先前提及,静态占用引擎206可以实施逆传感器模型。逆传感器模型将从边界信息确定引擎204接收的边界信息映射到静态占用网格中的某些单元(例如,图4的区域408中的单元)的占用概率。将使用道路作为与静态占用网格相关联的3D空间部分的示例来描述逆传感器模型和贝叶斯跟踪。一般来说,针对静态占用网格中的单元跟踪的占用表示路面上正交投影位于该单元内的点的占用。在一些情况下,静态占用引擎206的目标是确定单元内的某个点(不一定是单元中的所有点并且不是随机点)被占用的概率。静态占用引擎206可以使用路面的结构(从点地图207确定)和边界点(或定界符)来确定静态占用网格的单元的概率。在贝叶斯过滤框架中使用的逆传感器模型可以沿着图像中的每列的方向更新单元。
图5A、图5B和图6是示出逆传感器模型的示例性方面的图式。在图5A和图5B中,示出了可以捕获一个图像或多个图像的相机502。由相机502捕获的图像由图像平面503表示并且地面由地平面505表示。还示出了被跟踪网格507,其可以对应于图4中的区域408。边界信息确定引擎204可以(例如,使用DSN)处理图像以确定图像的每一列的边界点(或定界符),包括列506的边界点504(或定界符)。为了实施给定图像的逆传感器模型,静态占用引擎206可以首先标识地面上与图像的列506的边界点504相对应的点508。在一些情况下,静态占用引擎206可以使用来自点地图207的高度和/或道路法线来确定点508。地面上的点508对应于网格507上的对应点512。可以通过在网格400的参考系中表达点508来确定点512。例如,点508的3D位置和网格的精确位置是已知的,在这种情况下,静态占用引擎206可以计算点508将被映射到的单元。
对于图像中的给定列和该列中的给定边界点(例如,点504),逆传感器模型可以预测沿着网格平面与和该列相对应的平面的交线的占用概率。平面509是从相机原点穿过柱506的平面。例如,对于图像的列506,静态占用引擎206将射线510投影到网格507的表面上,当该射线被投影到图像平面503上时,该射线将与图像的列506对齐。如图5B所示,射线510是从相机原点穿过列506的平面509的底部部分。逆传感器模型可以考虑道路不平坦的事实并且可以在每个点处使用正确的路面高度(如从点地图207确定的)。
对于每个相机图像,静态占用引擎206然后可以使用贝叶斯方法计算沿着射线510的网格507的每个点(或点的子集)的占用后验概率。例如,沿着射线510的第一不可行驶静态点可以被假设为具有沿着射线直至最大可行范围(例如,160m的范围)的均匀先验概率分布。还可以假设,给定沿着射线510的第一静态点的位置,在图像上的特定位置处观察到边界点(或定界符)的可能性被分布为均值等于点在图像平面上的透视投影且标准偏差等于预期的像素噪声量(例如,2个像素)的高斯随机变量。在一些情况下,还可以假设,给定第一静态点沿着射线510的位置,相机与第一静态点之间的任何位置被占用的概率等于0,距离第一点超过0.5米(m)的所有点被占用的概率等于先验概率(下面讨论),并且第一点后面的点的概率等于接近第一点的概率并逐渐衰减到第一点之外的先验概率。基于这些假设,静态占用引擎206可以计算沿着射线510的每个位置的占用后验概率。下面更详细地描述贝叶斯跟踪框架。对于每个相机帧,静态占用引擎206可以根据穿过该单元的所有光线上的所有点的概率(例如,基于代表性值或代表性概率,诸如最大概率、均值或平均概率,或其它函数)来估计沿着射线510的单元的后验概率。
图6是示出网格607的示例的图式,该网格具有沿着网格607投影的多条射线或线。如上文提及,图像的每一列定义一个平面,并且每个这样的平面与网格平面在线或射线上相交。因此,图6中所示的每条射线或线对应于从相机原点穿过图像中的相应列(例如,列506)的平面(例如,平面509)的线。对于给定列,使用从该列读取的边界点或定界符来更新沿着网格平面上的对应线的概率。每条线或射线可以在网格607内的多个点处采样。例如,如图6所示,确定沿着每条线的多个点(每个点用X表示)(包括沿着线610的点612)的概率。如上文提及,静态占用引擎206可以根据穿过单元的所有射线上的所有点的概率来估计沿着线或射线的单元的概率。例如,可以用单元614内的四个样本点的所有概率中的代表性概率(例如,最大概率、均值概率或其它代表性概率)来更新单元614。在组合所有帧上的信息之后,静态占用引擎206可以获得最终的逆传感器模型,其在给定来自边界信息确定引擎204的针对各个图像的输出的情况下预测所有单元的占用概率。
如上文提及,静态占用引擎206可以使用贝叶斯过滤框架来跟踪(例如,区域408中的)单元随时间推移变化的静态占用概率,以在接收到观察结果(边界测量)时更新静态占用网格的单元。虽然本文描述了贝叶斯过滤框架,但是可以使用其它滤波或更新机制来跟踪静态占用网格的概率。在一些情况下,贝叶斯滤波框架可以将每个单元的静态占用率模拟为独立的随机二进制变量(例如,它不随时间演变、没有过程模型等)。例如,每个单元c的静态占用概率(以过去观察结果为条件)可以被表示如下:
P(Xc=1|Y1:t)
等式(1)
其中Xc是单元c的状态,并且包括二进制变量,即,1或0。如果Xc的状态值为1,则认为单元c被静态对象占用。项Y1:t表示直到时间t之前的观察结果,其中观察结果Y是给定图像的边界信息确定引擎204针对给定图像的输出(包括边界信息)。在一些示例中,贝叶斯滤波框架对每个单元执行的更新可以在逐个图像的基础上执行。例如,当接收到每个图像的边界信息时,静态占用引擎206可以更新维护在存储器中的单元(例如,图4的区域408内的单元)。
在一些情况下,贝叶斯跟踪框架可以跟踪每个单元c的对数比值比。对数比值比是概率除以1减去概率的对数。例如,给定单元c的对数比值比可以被表示如下:
如上文提及,使用逆传感器模型,当接收到每个图像的边界信息时,静态占用引擎206可以对静态占用网格中的单元执行更新。概率跟踪可以被表示如下(其中静态占用概率P(Xc=1|Yt)是使用应用于当前时间t的单个观察结果的逆传感器模型来确定的):
其中项表示使用逆传感器模型针对当前图像在时间t接收的观察结果或测量(包括边界点)确定的概率(被表示为对数比值比),项/>表示先验占用概率(被称为作为先验),并且项lt-1(xc)表示给定单元c直到时间t-1(对应于时间t之前的时间)的估计概率(作为对数比值比)。
在等式(3)中使用先验作为与时间t的当前概率的比较。基于当前概率(针对时间t)与先前概率之间的比较,静态占用估计引擎206可以确定是否更新直到时间t-1为止确定的估计概率lt-1(xc)。例如,如果时间t的当前概率之间的比较指示该单元具有与先验相同的概率,则估计的概率lt-1(xc).将不会被更新(由于等式(3)的左侧等于0)。如果时间t的当前概率大于先验,则时间t的估计概率lt(xc)将相对于估计概率lt-1(xc)增加。如果时间t的当前概率小于先验,则时间t的估计概率lt(xc)将相对于估计概率lt-1(xc).减小。
除了在(使用等式(3)执行)更新期间使用先验之外,还可以使用先验来将单元的概率初始化,如下所示:
例如,在一些示例中,静态占用网格的单元的概率可以被初始化为先验值。在一些示例中,先验值对于网格中的所有单元可以是统一的。在一些示例中,先验可以包括基于来自点地图207的信息的不同值。例如,如上文提及,静态占用引擎206可以使用点地图207来将静态占用网格中的每个单元的位置与点地图207中的对应位置进行匹配。点地图207指示道路和其它对象在3D空间中的位置。使用点地图207上的对应位置,静态占用引擎206可以将(例如,图4的区域408内的)每个被跟踪单元与指示每个单元是在3D空间中的道路上还是道路之外的指示符(例如,标志)相关联。在一些情况下,对于道路之外的单元,先验可以被设定为高值(例如,值0.5,指示占用概率高),而对于道路上的单元,可以被设定为低值(例如,值0.01,指示占用概率低)。当静态占用引擎206接收来自边界信息确定引擎204的针对每个图像(来自一个或多个图像203)的输出时,静态占用引擎206可以使用贝叶斯滤波框架来更新占用概率。对于使用贝叶斯滤波框架的每次更新,静态占用引擎206可以实施逆传感器模型以在给定来自边界信息确定引擎204的信息的情况下预测单元被占用的概率。
如图7(示出单个边界点或定界符)和图8(示出多个边界点或定界符)所示,相机与由边界点表示的边界之间的单元有很高的概率是自由的(没有被占用)。这至少部分是由于边界点被标识为由静态对象占用的最低像素(相对于图像的底部)。基于这样的观察结果,假设相机与该点之间的空间未被任何静态对象占用(例如,该空间是可行驶的)。靠近具有静态对象的定界符边界的单元被占用的概率很高。靠近具有动态对象或未知像素(例如,天空、隧道)的定界符边界的单元的概率接近先验概率。
图7是示出使用逆传感器模型为图像确定的概率的图形表示的图形700。图形700绘制了作为地面上的在图像列方向上的距离的函数的概率。为图像的特定列确定的边界点(或定界符)被表示为线702。如图所示,列的边界点对应于29.9m处的可行驶空间(DS)边界。单元的先验被设定为值0.01,并且可以应用高斯像素噪声。如图所示,在边界点之前概率接近于零。超出边界点的概率接近于先验值。由于像素噪声(σ=2像素),边界点附近的概率分布。
图8是示出针对高斯像素噪声使用逆传感器模型为图像确定的概率的图形表示的图形800。图形800针对特定相机绘制了作为地面上的在列方向上的距离的函数的概率。图形800中所示的每条曲线示出了与静态对象(例如,障碍物)的观察到的边界点(或定界点)相对应的到该静态对象的不同距离的概率。如图所示,距离越近,概率峰值就越尖锐(接近峰值),并且概率值随着距具有最大概率点的距离而快速衰减。
图9是示出针对高斯像素噪声使用逆传感器模型为图像确定的概率的图形表示的图形900。图形900针对具有较低焦距的不同相机绘制了作为地面上的在列方向上的距离的函数的概率。如图9所示,即使距离较短,概率的尖锐度也会下降。
输出引擎208可以从静态占用引擎206获得概率(例如,感兴趣区域406中的单元的概率)。使用这些概率,输出引擎208可以执行与和静态占用网格中的单元相关联的位置相关的一个或多个功能。例如,如上文提及,输出引擎208可以使用来自静态占用引擎206的输出来确定要执行的某些行为和/或确定某些运动和/或其它动作来实现此类行为。例如,输出引擎208可以确定跟踪对象404在给定环境的当前状态的情况下采取的行为(例如,变道、车道内操纵、紧急制动等)。在一些示例中,输出引擎208可以在概率指示静态对象占用网格的一部分的情况下确定要执行一个或多个安全功能。在一个说明性示例中,输出引擎208可以是车辆的一部分,并且可以基于概率(诸如通过评估规划路线的安全性并输出警报、为车辆重新选择路线、使车辆减速、其任何组合)执行一种或多种驾驶安全功能,和/或执行一种或多种其它功能。在另一个示例中,如果来自静态占用网格的概率预测系统200的一个或多个相机202前方的区或区域的高占用,则运动规划系统可以应用制动来使车辆减速,规划变道操作或车道内操作以避开障碍物和/或执行其它功能。在另一个示例中,使用静态占用网格预测的概率可以连同诸如运动平稳度的其它考虑因素一起由输出引擎208使用来定义用于优化的成本函数。输出引擎208可以优化成本函数以确定跟踪对象(例如,车辆)的最佳运动计划。
图10是示出从静态占用网格输出的样本的俯视图1020的图式。在俯视图1020中,较亮的位置比较暗的位置具有更高的概率。图10还示出了从叠加在道路的地图上的静态占用网格输出的样本的俯视图1022。在俯视图1022中,亮橙色的单元是在静态占用网格输出中具有高占用概率的单元。图11A和图11B是示出由逆传感器模型使用单个相机图像(或帧)输出的测量概率的图像。图11A是针对具有50度视野和焦距2059的相机,而图11B是针对具有150度视野和焦距554的相机。图12包括指示地面实况占用的图像。
图13是示出可以用于使用分位数执行保守更新的技术的图形。例如,给定分位数,系统200在更新概率时可以更加保守。在一个说明性示例中,系统200可以利用每一列中的softmax分布的第10和第50分位数。例如,系统200可以将由逆传感器模型预测的概率的低值分配给投影像素坐标低于第10分位数的网格单元,并且可以将适度低概率分配给投影到第10分位数与第50分位数之间的像素的网格单元,以此类推。
图14是示出使用本文描述的技术检测一个或多个静态对象的过程1400的示例的流程图。在框1402处,过程1400包括由计算设备确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素。该一个或多个静态对象相对于三维空间是静态的。例如,静态对象在三维空间或场景中相对静止或固定。在一个说明性示例中,静态对象可以包括行驶表面(诸如道路)上的车道中的交通锥。在一些方面中,计算设备被包括作为车辆、机器人设备或系统、或者其它设备或系统的一部分。在一些示例中,该一个或多个像素包括边界像素。例如,该一个或多个像素中的每个像素可以包括由三维空间中的一个或多个静态对象中的静态对象占用的(该一个或多个图像中的)图像的列中的最低像素。在一些情况下,该图像的列包括该图像的像素的列。在一些示例中,该一个或多个像素包括一个或多个图像中的特定图像中的所有像素。
在一些情况下,边界信息确定引擎204可以确定一个或多个像素。例如,如上文描述,边界信息确定引擎204可以基于一种或多种机器学习模型来确定与该一个或多个静态对象相关联的一个或多个像素。在一些方面中,该一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络(例如,卷积神经网络(CNN)),该深度学习神经网络被配置为预测该一个或多个像素被该三维空间中的至少一个对象占用。例如,该深度学习神经网络可以确定像素是由该三维空间中的一个或多个静态对象中的静态对象占用的(图像的列中的)最低像素。在另一个示例中,深度学习神经网络可以确定或预测图像中的每个像素的可行驶或不可行驶类别标签。在一些示例中,该深度学习神经网络还被配置为预测该一个或多个像素中的每个像素是否与静态对象或动态对象相关联。如上文提及,每个像素是与静态对象还是动态对象相关联的确定可以用于确定应用于与该像素相对应的静态占用网格的单元的概率。
在一些方面中,该一个或多个机器学习模型中的机器学习模型与用于捕获该一个或多个图像中的图像的相机相关联。例如,一个或多个相机可以用于捕获三维空间的一个或多个图像,并且该一个或多个相机中的每个相机可以包括用于确定边界信息(例如,该一个或多个像素)的机器学习模型。在一个示例中,计算设备可以包括多个相机或与多个相机进行通信。该一个或多个相机中的每个相机可以包括机器学习模型。
在框1404处,过程1400包括由该计算设备获得包括多个地图点的点地图,该多个地图点对应于该三维空间的一部分。在一些情况下,三维空间的部分包括三维空间中的行驶表面(例如,道路、路径或其它行驶表面)。在此类情况下,一个或多个静态对象可以位于行驶表面上。在一些方面中,该点地图包括高清晰度(HD)地图。在一个说明性示例中,点地图可以包括图2的点地图207。例如,如上文所描述,使用行驶表面作为三维空间的一部分的示例,点地图可以包括将行驶表面上的车道表示为一组连接点的信息。线段可以被定义在两个地图点之间,其中多个线段定义车道的不同线(例如,车道的边界线和中心线)。在一些情况下,点地图可以包括三维空间中的对象的语义信息。
在框1406处,过程1400包括由该计算设备基于该点地图和与该一个或多个静态对象相关联的一个或多个像素来确定该三维空间的部分中的一个或多个静态对象的占用概率。在一些方面中,为了确定三维空间的一部分中的一个或多个静态对象的占用概率,过程1400可以包括确定与三维空间的部分相关联的网格(例如,静态占用网格,诸如图4的网格400)中的每个单元的占用概率。在一些示例中,过程1400可以包括使用贝叶斯滤波器更新每个单元的占用概率,如上文描述。在一些情况下,为了确定网格中的每个单元的占用概率,过程1400可以包括确定在包括计算设备的对象周围的矩形区域内(例如,图4的跟踪对象404周围的区域408中)的网格的所有单元的占用概率。在一些方面中,包括计算设备的对象是车辆、机器人设备或系统、或其它跟踪对象。
在一些方面中,过程1400包括基于该一个或多个像素中的在该一个或多个图像中的图像的列中的像素来确定该网格的平面与和该列相对应的平面的交线(例如,图5B所示的射线510)。过程1400可以包括确定沿着该交线的一个或多个点的一个或多个占用概率。在一些示例中,过程1400可以确定沿着多条交线(例如,如图6所示)的多个点的占用概率。
在一些示例中,过程1400包括至少部分地通过确定根据沿着交线的一个或多个点或沿着给定单元中的所有交线的点(例如,沿着图6的单元614中的所有线的某些点)的至少一个或多个占用概率确定代表性占用概率来确定网格中的单元的占用概率。在一些情况下,代表性占用概率包括沿着穿过单元的一条或多条交线的一个或多个点的最大概率、均值概率或其它代表性概率。
在一些方面中,如先前描述,基于来自该点地图的信息来确定该一个或多个占用概率。例如,来自点地图的信息包括高度、法线或与网格平面上的点相关联的其它信息。
在一些方面中,与该一个或多个静态对象相关联的一个或多个像素至少部分地通过使用计算机视觉算法处理该一个或多个图像来生成。在一些情况下,该计算机视觉算法被配置为执行时间跟踪以估计该一个或多个像素。
在一些示例中,过程1400可以跨从三维空间捕获的多个图像组合信息(例如,概率、边界信息等)。过程1400(例如,使用静态占用引擎206)可以获得最终的逆传感器模型,其预测网格中的与三维空间的部分相关联的所有单元的占用概率。给定来自边界信息确定引擎204的针对各个图像的输出,最终的逆传感器模型可以预测网格中的(与三维空间的部分相关联的)所有单元的占用概率。
在一些示例中,本文描述的过程(例如,过程1400和/或本文描述的其它过程)可以由计算设备或装置(诸如实施图2的系统200的计算设备)执行。在一些示例中,计算设备可以包括图17的计算系统1700的架构。在一个示例中,过程1400可以由实施系统200的计算系统1700来执行。计算设备可以包括任何合适的设备,诸如自主车辆、机器人设备或系统、移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备和/或具有执行本文描述的过程(包括过程1400)的资源能力的任何其它计算设备。在一些情况下,计算设备或装置可以包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或被配置为执行本文描述的过程的步骤的其它组件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、其任何组合和/或其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(IP)的数据或其它类型的数据。
计算设备的组件可以在电路中实施。例如,该组件可以包括电子电路或其它电子硬件和/或可以使用电子电路或其它电子硬件来实施,该电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其它合适的电子电路);和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实施,以执行本文描述的各种操作。
过程1400被示出为逻辑流程图,其操作表示可以在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的上下文中,该操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时执行所叙述的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作来实施该过程。
另外,本文描述的过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行并且可以被实施为在一个或多个处理器上共同执行、通过硬件执行或其组合的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用程序)。如上文提及,该代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
如上文描述,边界信息确定引擎204可以包括一种或多种机器学习模型,诸如一种或多种深度学习神经网络。边界信息确定引擎204可以使用的神经网络架构的说明性示例包括卷积神经网络(CNN)、自动编码器、深度置信网络(DBN)、递归神经网络(RNN)、生成对抗网络(GAN)、其任何组合或任何其它合适的神经网络。
图15是可以由边界信息确定引擎204使用的深度学习神经网络1500的说明性示例。输入层1520包括输入数据。在一个说明性示例中,输入层1520可以包括表示输入图像或视频帧的像素的数据。神经网络1500包括多个隐藏层1522a、1522b至1522n。隐藏层1522a、1522b至1522n包括n个隐藏层,其中n是大于或等于1的整数。隐藏层的数量可以根据给定应用的需要包括尽可能多的层。神经网络1500还包括输出层1524,其提供由隐藏层1522a、1522b至1522n执行的处理产生的输出。在一个说明性示例中,输出层1524可以提供输入图像或视频帧中的对象的分类。该分类可以包括标识对象类型(例如,静态对象、车辆、人、狗、猫或其它对象)的类别。
神经网络1500是互连节点的多层神经网络。每个节点可以表示一条信息。与节点相关联的信息在不同层之间共享,并且每个层都在处理信息时保留信息。在一些情况下,神经网络1500可以包括前馈网络,在这种情况下不存在网络的输出被反馈回自身的反馈连接。在一些情况下,神经网络1500可以包括递归神经网络,其可以具有允许在读入输入时跨节点携带信息的循环。
可以通过各个层之间的节点间互连在节点之间交换信息。输入层1520的节点可以激活第一隐藏层1522a中的一组节点。例如,如图所示,输入层1520的每个输入节点连接到第一隐藏层1522a的每个节点。隐藏层1522a、1522b至1522n的节点可以通过将激活函数应用到这些信息来变换每个输入节点的信息。从变换中导出的信息然后可以被传递到并且可以激活下一个隐藏层1522b的节点,这些节点可以执行它们自己指定的功能。示例性函数包括卷积函数、上采样函数、数据变换和/或任何其它合适的函数。隐藏层1522b的输出然后可以激活下一个隐藏层的节点,以此类推。最后隐藏层1522n的输出可以激活提供输出的输出层1524的一个或多个节点。在一些情况下,虽然神经网络1500中的节点(例如,节点1526)被示为具有多条输出线,但是节点具有单个输出并且示为从节点输出的所有线都表示相同的输出值。
在一些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络1500的训练导出的一组参数。一旦神经网络1500被训练,它就可以被称为训练过的神经网络,其可以用于对一个或多个对象进行分类。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可以被调谐的可调谐数值权重(例如,基于训练数据集),从而允许神经网络1500适应输入并且能够随着越来越多的数据被处理而学习。
神经网络1500被预先训练以使用不同的隐藏层1522a、1522b至1522n处理来自输入层1520中的数据的特征,以便通过输出层1524提供输出。在神经网络1500用于标识图像中的对象的示例中,可以使用包括图像和标签两者的训练数据来训练神经网络1500。例如,可以将训练图像输入到网络中,每个训练图像具有指示每个图像中的一个或多个对象的类别(基本上,向网络指示对象是什么以及它们具有什么特征)的标签。在一个说明性示例中,训练图像可以包括数字2的图像,在这种情况下,图像的标签可以是[0 0 1 00 0 0 0 00]。
在一些情况下,神经网络1500可以使用称为反向传播的训练过程来调整节点的权重。反向传播可以包括前向传播、损失函数、后向传播和权重更新。前向传递、损失函数、后向传递和参数更新在一次训练迭代中执行。对于每组训练图像,可以对该过程重复一定次数的迭代,直到神经网络1500被训练得足够好到使得各层的权重被准确地调节。
对于标识图像中的对象的示例,前向传递可以包括将训练图像传递通过神经网络1500。在训练神经网络1500之前,权重最初被随机化。该图像可以包括例如表示图像像素的数字阵列。阵列中的每个数字可以包括0到255之间的值,描述阵列中的该位置处的像素强度。在一个示例中,该阵列可以包括28×28×3的数字阵列,其具有28行和28列像素和3个颜色分量(诸如红色、绿色和蓝色,或者亮度和两个色度分量等)。
对于神经网络1500的第一次训练迭代,该输出可能包括由于在初始化时随机选择权重而不会优先考虑任何特定类别的值。例如,如果输出是具有对象包括不同类别的概率的矢量,则不同类别中的每一者的概率值可以相等或至少非常类似(例如,对于十个可能的类别,每个类别可以具有概率值0.1)。利用初始权重,神经网络1500无法确定低级特征,因此无法准确确定对象的分类可能是什么。损失函数可以用于分析输出中的误差。可以使用任何合适的损失函数定义。损失函数的一个示例包括均方误差(MSE)。MSE被定义为它计算实际答案减去预测(输出)答案的平方的一半之和。损失可以被设定为等于Etotal的值。
第一训练图像的损失(或误差)会很高,因为实际值将与预测输出有很大不同。训练目标是将损失量最小化,使得预测输出与训练标签相同。神经网络1500可以通过确定哪些输入(权重)对网络的损失贡献最大来执行向后传递,并且可以调整权重使得损失减少并最终最小化。
可以计算损失相对于权重的导数(被表示为dL/dW,其中W是特定层处的权重),以确定对网络损失贡献最大的权重。在计算导数之后,可以通过更新所有滤波器的权重来执行权重更新。例如,可以更新权重,使得其沿梯度的相反方向变化。权重更新可以被表示为其中w表示权重,wi表示初始权重,并且η表示学习率。学习率可以被设定为任何合适的值,其中高学习率包括较大的权重更新,而较低值表示较小的权重更新。
神经网络1500可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,在输入层与输出层之间具有多个隐藏层。下面关于图14描述CNN的示例。CNN的隐藏层包括一系列卷积层、非线性层、池化层(用于下采样)和全连接层。神经网络1500可以包括除CNN之外的任何其它深度网络,诸如自动编码器、深度置信网络(DBN)、递归神经网络(RNN)等等。
图16是卷积神经网络1600(CNN 1600)的说明性示例。CNN 1600的输入层1620包括表示图像的数据。例如,该数据可以包括表示图像像素的数字阵列,其中该阵列中的每个数字包括从0到255的值,其描述阵列中的该位置处的像素强度。使用来自上文的先前示例,该阵列可以包括28×28×3的数字阵列,其具有28行和28列像素和3个颜色分量(例如,红色、绿色和蓝色,或者亮度和两个色度分量等)。图像可以通过卷积隐藏层1622a、任选的非线性激活层、池化隐藏层1622b和全连接隐藏层1622c以在输出层1624处获得输出。虽然图16中仅示出了每个隐藏层中的一者,但是普通技术人员将理解,CNN 1600中可以包括多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层。如先前描述,该输出可以指示对象的单个类别,或者可以包括最能描述图像中的对象的类别的概率。
CNN 1600的第一层是卷积隐藏层1622a。卷积隐藏层1622a分析输入层1620的图像数据。卷积隐藏层1622a的每个节点连接到输入图像的称为感受野的节点(像素)区域。卷积隐藏层1622a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征图),其中滤波器的每个卷积迭代是卷积隐藏层1622a的节点或神经元。例如,滤波器在每次卷积迭代时覆盖的输入图像的区域将是滤波器的感受野。在一个说明性示例中,如果输入图像包括28×28阵列,并且每个滤波器(以及对应的感受野)是5×5阵列,则在卷积隐藏层1622a中将存在24×24个节点。节点与该节点的感受野之间的每个连接都会学习权重,并且在一些情况下还会学习总体偏差,使得每个节点学习分析其在输入图像中的特定局部感受野。隐藏层1622a的每个节点将具有相同的权重和偏差(被称为共享权重和共享偏差)。例如,滤波器具有权重(数字)阵列和与输入相同的深度。对于图像或视频帧示例,滤波器的深度为3(根据输入图像的三个颜色分量)。滤波器阵列的说明性示例大小是5×5×3,其对应于节点的感受野的大小。
卷积隐藏层1622a的卷积本质是由于卷积层的每个节点被应用于其对应的感受野。例如,卷积隐藏层1622a的滤波器可以从输入图像阵列的左上角开始并且可以围绕输入图像进行卷积。如上文提及,滤波器的每次卷积迭代可以被认为是卷积隐藏层1622a的节点或神经元。在每次卷积迭代中,滤波器的值乘以图像的对应数量的原始像素值(例如,5×5滤波器阵列乘以输入图像阵列的左上角的输入像素值的5×5阵列)。每次卷积迭代的乘法可以加在一起以获得该迭代或节点的总和。接下来,根据卷积隐藏层1622a中的下一个节点的感受野,在输入图像中的下一个位置处继续该过程。例如,滤波器可以移动一个步长量到下一个感受野。步长量可以被设定为1或其它合适的量。例如,如果步长量被设定为1,则滤波器将在每次卷积迭代时向右移动1个像素。在输入体积的每个唯一位置处处理滤波器产生表示该位置的滤波器结果的数字,导致为卷积隐藏层1622a的每个节点确定总和值。
从输入层到卷积隐藏层1622a的映射被称为激活图(或特征图)。激活图包括每个节点的值,其表示输入体积的每个位置处的滤波器结果。激活图可以包括阵列,该阵列包括由输入体积上的滤波器的每次迭代产生的各种总和值。例如,如果将5×5滤波器应用于28×28输入图像的每个像素(步长量为1),则激活图将包括24×24阵列。卷积隐藏层1622a可以包括多个激活图以便标识图像中的多个特征。图16所示的示例包括三个激活图。使用三个激活图,卷积隐藏层1622a可以检测三种不同类型的特征,其中每个特征在整个图像上都是可检测的。
在一些示例中,可以在卷积隐藏层1622a之后应用非线性隐藏层。非线性层可以用于向一直在计算线性运算的系统引入非线性。非线性层的一个说明性示例是修正线性单元(ReLU)层。ReLU层可以将函数f(x)=max(0,x)应用于输入量中的所有值,这会将所有负激活更改为0。因此,ReLU可以增加CNN 1600的非线性特性,而不影响卷积隐藏层1622a的感受野。
池化隐藏层1622b可以在卷积隐藏层1622a之后应用(并且当使用时在非线性隐藏层之后应用)。池化隐藏层1622b用于简化来自卷积隐藏层1622a的输出中的信息。例如,池化隐藏层1622b可以获取从卷积隐藏层1622a输出的每个激活图并使用池化函数生成压缩激活图(或特征图)。最大池化是由池化隐藏层执行的功能的一个示例。池化隐藏层1622a使用其它形式的池化函数,诸如平均池化、L2范数池化或其它合适的池化函数。池化函数(例如,最大池化滤波器、L2范数滤波器或其它合适的池化滤波器)被应用于包括在卷积隐藏层1622a中的每个激活图。在图16所示的示例中,三个池化滤波器被用于卷积隐藏层1622a中的三个激活图。
在一些示例中,可以通过将具有步长量(例如,等于滤波器的尺寸,诸如步长量2)的最大池化滤波器(例如,大小为2×2)应用于从卷积隐藏层1622a输出的激活图来使用最大池化。最大池滤波器的输出包括滤波器卷积的每个子区域中的最大数量。使用2×2滤波器作为示例,池化层中的每个单元可以总结上一层中的2×2节点的区域(每个节点是激活图中的一个值)。例如,激活图中的四个值(节点)将在滤波器的每次迭代中由2×2最大池滤波器进行分析,其中四个值中的最大值作为最大值输出。如果将这样的最大池化滤波器应用于来自尺寸为24×24节点的卷积隐藏层1622a的激活滤波器,则来自池化隐藏层1622b的输出将是12×12节点的阵列。
在一些示例中,还可以使用L2范数池化滤波器。L2范数池化滤波器包括计算激活图的2×2区域(或其它合适区域)中的值的平方和的平方根(而不是像最大池化中那样计算最大值)并使用计算值作为输出。
直观上,池化函数(例如,最大池化、L2范数池化或其它池化函数)确定是否在图像区域中的任何位置找到给定特征,并舍弃确切的位置信息。这可以在不影响特征检测的结果的情况下完成,因为一旦找到特征,该特征的确切位置并不像其相对于其它特征的近似位置那么重要。最大池化(以及其它池化方法)提供的优点是池化特征少得多,因此减少了CNN 1600的后续层所需的参数的数量。
网络中的最后一层连接是全连接层,其将池化隐藏层1622b的每个节点连接到输出层1624中的每个输出节点。使用上面的示例,输入层包括对输入图像的像素强度进行编码的28×28节点,卷积隐藏层1622a包括基于将(滤波器的)5×5局部感受野应用于三个激活图的3×24×24隐藏特征节点,并且池化层1622b包括基于将最大池化滤波器应用于跨三个特征图的每一者的2×2区域的3×12×12隐藏特征节点。扩展该示例,输出层1624可以包括十个输出节点。在这样的示例中,3×12×12池化隐藏层1622b的每个节点连接到输出层1624的每个节点。
全连接层1622c可以获得先前池化层1622b的输出(其应当表示高级特征的激活图)并确定与特定类最相关的特征。例如,全连接层1622c层可以确定与特定类最相关的高级特征,并且可以包括高级特征的权重(节点)。可以计算全连接层1622c和池化隐藏层1622b的权重之间的乘积以获得不同类别的概率。例如,如果CNN 1600用于预测图像或视频帧中的对象是车辆,则表示车辆的高级特征(例如,两个或四个轮胎、挡风玻璃、侧视镜等)的激活图中将存在高值。
在一些示例中,来自输出层1624的输出可以包括M维矢量(在先前示例中,M=10),其中M可以包括程序在对图像中的对象进行分类时必须从中选择的类别的数量。还可以提供其它示例性输出。N维矢量中的每个数字都可以表示该对象属于某一类别的概率。在一个说明性示例中,如果10维输出矢量表示十个不同类别的对象为[0 0 0.05 0.8 0 0.15 0 00 0],则该矢量指示该图像有5%的概率是第三对象类别(例如,人),该图像有80%的概率是第四对象类别(例如,道路或其它行驶表面上的静态对象),并且该图像有15%的概率是第六对象类别(例如,车辆)。类别的概率可以被视为对象属于该类别的置信度。
图17示出了可以实施本文描述的各种技术的示例性计算设备的示例性计算系统1700。例如,计算系统1700可以实施图2中所示的系统200。计算系统1700的组件被示出为使用诸如总线的连接1705彼此电通信。示例性计算系统1700包括处理单元(CPU或处理器)1710和计算设备连接1705,该计算设备连接将包括诸如只读存储器(ROM)1720和随机存取存储器(RAM))1725的计算设备存储器1715的各种计算设备组件耦合到处理器1710。
计算系统1700可以包括与处理器1710直接连接、紧密接近或集成为处理器的一部分的高速存储器的高速缓存。计算系统1700可以将数据从存储器1715和/或存储设备1730复制到高速缓存1712以供处理器1710快速访问。这样,高速缓存可以提供性能提升,从而避免处理器1710在等待数据时延迟。这些和其它模块可以控制或被配置为控制处理器1710以执行各种动作。也可以使用其它计算设备存储器1715。存储器1715可以包括具有不同性能特性的多种不同类型的存储器。处理器1710可以包括任何通用处理器以及被配置为控制处理器1710的硬件或软件服务(诸如存储在存储设备1730中的服务1 1732、服务2 1734和服务3 1736)以及其中将软件指令结合到处理器设计中的专用处理器。处理器1710可以是独立的系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或不对称的。
为了使得用户能够与计算系统1700交互,输入设备1745可以表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备1735也可以是本领域技术人员已知的多种输出机构中的一种或多种,诸如显示器、投影仪、电视、扬声器设备等。在一些情况下,多模态计算设备可以使得用户能够提供多种类型的输入以与计算系统1700进行通信。通信接口1740通常可以支配和管理用户输入和计算设备输出。对于在任何特定硬件装置上进行操作没有限制,因此,此处的基本功能在被开发时可以轻松替换为改进的硬件或固件装置。
存储设备1730是非易失性存储器并且可以是硬盘或可以存储计算机可访问的数据的其它类型的计算机可读介质,诸如磁带、闪存卡、固态存储器设备、数字通用磁盘、盒式磁带、随机存取存储器(RAM)1725、只读存储器(ROM)1720及其混合。存储设备1730可以包括用于控制服务器1710的服务1732、1734、1736。可以预期其它硬件或软件模块。存储设备1730可以连接到计算设备连接1705。在一个方面中,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件与必要的硬件组件(诸如处理器1710、连接1705、输出设备1735等等)的结合以执行功能。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括其中可以存储数据并且不包括无线地或通过有线连接传播的载波和/或瞬态电子信号的非暂时性介质。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如压缩光盘(CD)或数字通用磁盘(DVD)等光存储介质、闪存、存储器或存储器设备。计算机可读介质在其上可以存储代码和/或机器可执行指令,它们可以表示程序、函数、子程序、程序、例程、子例程、模块、软件包、类别,或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的方式来传递、转发或传输,这些方式包括存储器共享、消息传递、令牌传递、网络传输等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含位流等的有线或无线信号。然而,在提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身等介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域一般技术人员将理解,可以在没有这些具体细节的情况下实践这些实施例。为了解释清楚,在某些情况下,本技术可以被表示为包括个别功能块,该功能块包括包含以软件或硬件和软件的组合体现的方法中的设备、设备组件、步骤或例程的功能块。可以使用除了图中所示和/或本文描述的那些之外的附加组件。例如,电路、系统、网络、过程和其它组件可以以框图形式示出为组件,以免在不必要的细节中混淆实施例。在其它情况下,可以在没有不必要的细节的情况下示出公知电路、过程、算法、结构和技术以免混淆实施例。
上文可以将各个实施例描述为过程或方法,该过程或方法被描绘为流程图、流程图、数据流图、结构图或框图。尽管流程图可以将操作描述为循序过程,但是许多操作可并行或同时执行。另外,可以重新布置操作顺序。过程在其操作完成时终止,但是可能具有图中未包括的附加步骤。过程可以对应方法、函数、程序、子例程、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
可以使用存储在计算机可读介质中或可从计算机可读介质中获得的计算机可执行指令来实施根据上述示例的过程和方法。此类指令可以包括例如导致或以其它方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件、源代码等。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘、光盘、闪存、设置有非易失性存储器的USB设备、联网存储设备等等。
实施根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形式因素中的任何一种。当以软件、固件、中间件或微代码实施时,用于执行必要任务(例如,计算机程序产品)的程序代码或代码段可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。外观尺寸的典型示例包括膝上型计算机、智能手机、移动电话、平板设备或其它小外观尺寸的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以体现在外围设备或扩展卡中。通过进一步的示例,这种功能性还可以在于单个芯片中执行的不同芯片或不同过程之间的电路板上实施。
指令、用于传达此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其它结构是用于提供本公开中描述的功能的示例性部件。
在前面的描述中,参考本申请的具体实施例描述了本申请的各方面,但是本领域技术人员将认识到本申请不限于此。因此,尽管本文已经详细描述了本申请的说明性实施例,但是应当理解,可以其它方式不同地实施和采用创造性概念,并且所附权利要求意图被解释为包括除了受现有技术的限制的变形之外的这种变型。上述申请的各种特征和方面可以单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在超出本文描述的那些环境和应用的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。出于说明目的,按特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行该方法。
本领域一般技术人员将理解,在不脱离本说明书的范围的情况下,本文使用的小于(“<”)和大于(“>”)符号或术语分别可以被替换为小于或等于(“≤”)和大于或等于(“≥”)符号。
在组件被描述为“被配置为”执行某些操作的情况下,此类配置可以例如通过设计电子电路或其它硬件来执行操作、通过对可编程电子电路(例如,微处理器,或其它合适的电子电路)进行编程以执行操作或其任何组合来实现。
短语“耦合到”是指直接或间接地物理连接到另一个组件的任何组件,和/或与另一个组件直接或间接通信(例如,通过有线或无线连接和/或其它合适的通信接口连接到另一组件)的任何组件。
叙述集合中的“至少一者”和/或集合中的“一者或多者”的权利要求语言或其它语言指示该集合的一个成员或该集合的多个成员(以任何组合)满足权利要求。例如,叙述“A和B中的至少一者”的权利要求语言表示A、B或A和B。在另一个示例中,叙述“A、B和C中的至少一者”的权利要求语言表示A、B、C,或A和B,或A和C,或B和C,或A和B和C。集合中的“至少一者”和/或集合中的“一者或多者”不将该集合限制为该集合中列出的项目。例如,叙述“A和B中的至少一者”的权利要求语言可以表示A、B或A和B,并且可以另外包括未在A和B的集合中列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件、固件或其组合。为了清楚地示出硬件和软件的这种可互换性,上面已经对各种说明性组件、框、模块、电路和步骤在其功能方面进行了总体描述。将这种功能性实施为硬件还是软件取决于强加于整个系统的特定应用和设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能性,但是这种实施决策不应被解释为导致脱离本申请的范围。
本文描述的技术也可以在电子硬件、计算机软件、固件或其任何组合中实施。此类技术可以在多种设备中的任一种中实施,该设备诸如通用计算机、无线通信设备手持终端或具有多种用途的集成电路设备,该多种用途包括在无线通信设备手持终端和其它设备中的应用。被描述为模块或组件的任何特征可以一起在集成逻辑设备中实施,或者作为离散但可互操作的逻辑设备分开实施。如果以软件实施,则该技术可以至少部分地通过包括程序代码的计算机可读数据存储介质来实施,该程序代码包括在被执行时执行上述方法中的一者或多者的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(RAM),诸如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。另外或替代地,该技术可以至少部分地由计算机可读通信介质(诸如传播信号或波)来实现,该计算机可读通信介质以指令或数据结构的形式携带或传送代码,并且可以由计算机或其它处理器来访问、读取和/或执行。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或离散逻辑电路系统。此类处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器;但是替代地,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算设备的组合,例如,DSP与微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核或者任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或适用于实施本文描述的技术的任何其它结构或装置。
本公开的说明性方面包括:
方面1:一种检测一个或多个静态对象的方法。所述方法包括:由计算设备确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中所述一个或多个静态对象相对于所述三维空间是静态的;由所述计算设备获得包括多个地图点的点地图,所述多个地图点对应于所述三维空间的一部分;以及由所述计算设备基于所述点地图和与所述一个或多个静态对象相关联的一个或多个像素来确定所述三维空间的部分中的一个或多个静态对象的占用概率。
方面2:根据方面1所述的方法,其中所述一个或多个像素中的每个像素是由所述三维空间中的一个或多个静态对象中的静态对象占用的图像的列中的最低像素。
方面3:根据方面2所述的方法,其中所述图像的列包括所述图像的像素的列。
方面4:根据方面1至3中任一项所述的方法,其中与所述一个或多个静态对象相关联的一个或多个像素是基于一个或多个机器学习模型来确定的。
方面5:根据方面4所述的方法,其中所述一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络,所述深度学习神经网络被配置为预测所述一个或多个像素被所述三维空间中的至少一个对象占用。
方面6:根据方面5所述的方法,其中所述深度学习神经网络还被配置为预测所述一个或多个像素中的每个像素是否与静态对象或动态对象相关联。
方面7:根据方面4至6中任一项所述的方法,其中所述一个或多个机器学习模型中的机器学习模型与用于捕获所述一个或多个图像中的图像的相机相关联。
方面8:根据方面1至7中任一项所述的方法,其中确定所述三维空间的部分中的一个或多个静态对象的占用概率包括确定与所述三维空间的部分相关联的网格中的每个单元的占用概率。
方面9:根据方面8所述的方法,其还包括使用贝叶斯滤波器来更新每个单元的占用概率。
方面10:根据方面8至9中任一项所述的方法,其中确定所述网格中的每个单元的占用概率包括确定所述网格的在包括所述计算设备的对象周围的矩形区域内的所有单元的占用概率。
方面11:根据方面10所述的方法,其中包括所述计算设备的对象是车辆。
方面12:根据方面8至11中任一项所述的方法,其还包括:基于所述一个或多个像素中的在所述一个或多个图像中的图像的列中的像素来确定所述网格的平面与和所述列相对应的平面的交线;以及确定沿着所述交线的一个或多个点的一个或多个占用概率。
方面13:根据方面12所述的方法,其还包括至少部分地通过根据沿着所述交线的一个或多个点的至少一个或多个占用概率确定代表性占用概率来确定所述网格中的单元的占用概率。
方面14:根据方面13所述的方法,其中所述代表性占用概率包括最大概率或均值概率中的一者。
方面15:根据方面12至14中任一项所述的方法,其中基于来自所述点地图的信息来确定所述一个或多个占用概率。
方面16:根据方面15所述的方法,其中来自所述点地图的信息至少包括与所述网格的平面上的点相关联的高度。
方面17:根据方面1至16中任一项所述的方法,其中所述点地图包括高清晰度(HD)地图。
方面18:根据方面1至17中任一项所述的方法,其中所述三维空间的部分包括所述三维空间中的行驶表面。
方面19:根据方面18所述的方法,其中所述一个或多个静态对象位于所述行驶表面上。
方面20:根据方面1至19中任一项所述的方法,其中所述计算设备被包括作为车辆的一部分。
方面21:根据方面1至3或8至20中任一项所述的方法,其中与所述一个或多个静态对象相关联的一个或多个像素至少部分地通过使用计算机视觉算法处理所述一个或多个图像来生成。
方面22:根据方面21所述的方法,其中所述计算机视觉算法被配置为执行时间跟踪以估计所述一个或多个像素。
方面23:一种用于检测一个或多个静态对象的装置。该装置包括被配置为存储至少一个图像的存储器以及耦合到所述存储器的一个或多个处理器。所述一个或多个处理器被配置为:确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中所述一个或多个静态对象相对于所述三维空间是静态的;获得包括多个地图点的点地图,所述多个地图点对应于所述三维空间的一部分;以及基于所述点地图和与所述一个或多个静态对象相关联的一个或多个像素来确定所述三维空间的部分中的一个或多个静态对象的占用概率。
方面24:根据方面23所述的装置,其中所述一个或多个像素中的每个像素是由所述三维空间中的一个或多个静态对象中的静态对象占用的图像的列中的最低像素。
方面25:根据方面24所述的装置,其中所述图像的列包括所述图像的像素的列。
方面26:根据方面23至25中任一项所述的装置,其中与所述一个或多个静态对象相关联的一个或多个像素是基于一个或多个机器学习模型来确定的。
方面27:根据方面26所述的装置,其中所述一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络,所述深度学习神经网络被配置为预测所述一个或多个像素被所述三维空间中的至少一个对象占用。
方面28:根据方面27所述的装置,其中所述深度学习神经网络还被配置为预测所述一个或多个像素中的每个像素是否与静态对象或动态对象相关联。
方面29:根据方面26至28中任一项所述的装置,其中所述一个或多个机器学习模型中的机器学习模型与用于捕获所述一个或多个图像中的图像的相机相关联。
方面30:根据方面23至29中任一项所述的装置,其中为了确定所述三维空间的部分中的一个或多个静态对象的占用概率,所述一个或多个处理器被配置为确定与所述三维空间的部分相关联的网格中的每个单元的占用概率。
方面31:根据方面30所述的装置,其中所述一个或多个处理器被配置为使用贝叶斯滤波器来更新每个单元的占用概率。
方面32:根据方面30至31中任一项所述的装置,其中为了确定所述网格中的每个单元的占用概率,所述一个或多个处理器被配置为确定所述网格的在包括所述计算设备的对象周围的矩形区域内的所有单元的占用概率。
方面33:根据方面32所述的装置,其中包括所述计算设备的对象是车辆。
方面34:根据方面30至33中任一项所述的装置,其中所述一个或多个处理器被配置为:基于所述一个或多个像素中的在所述一个或多个图像中的图像的列中的像素来确定所述网格的平面与和所述列相对应的平面的交线;以及确定沿着所述交线的一个或多个点的一个或多个占用概率。
方面35:根据方面34所述的装置,其中所述一个或多个处理器被配置为至少部分地通过根据沿着所述交线的一个或多个点的至少一个或多个占用概率确定代表性占用概率来确定所述网格中的单元的占用概率。
方面36:根据方面35所述的装置,其中所述代表性占用概率包括最大概率或均值概率中的一者。
方面37:根据方面34至36中任一项所述的装置,其中基于来自所述点地图的信息来确定所述一个或多个占用概率。
方面38:根据方面37所述的装置,其中来自所述点地图的信息至少包括与所述网格的平面上的点相关联的高度。
方面39:根据方面23至38中任一项所述的装置,其中所述点地图包括高清晰度(HD)地图。
方面40:根据方面23至39中任一项所述的装置,其中所述三维空间的部分包括所述三维空间中的行驶表面。
方面41:根据方面40所述的装置,其中所述一个或多个静态对象位于所述行驶表面上。
方面42:根据方面23至25或30至41中任一项所述的装置,其中与所述一个或多个静态对象相关联的一个或多个像素至少部分地通过使用计算机视觉算法处理所述一个或多个图像来生成。
方面43:根据方面42所述的装置,其中所述计算机视觉算法被配置为执行时间跟踪以估计所述一个或多个像素。
方面44:根据方面23至43中任一项所述的装置,其中所述装置是车辆的一部分。
方面45:根据方面23至44中任一项所述的装置,其中所述装置是车辆。
方面46:根据方面23至44中任一项所述的装置,其中所述装置是机器人。
方面47:根据方面23至46中任一项所述的装置,其还包括被配置为捕获所述一个或多个图像的至少一个相机。
方面48:根据方面23至46中任一项所述的装置,其还包括多个相机,所述多个相机中的至少一个相机被配置为捕获所述一个或多个图像。
方面49:一种存储指令的计算机可读存储介质,所述指令在被执行时使一个或多个处理器执行根据方面1至48中任一项所述的操作。
方面50:一种用于确定静态占用的装置,所述装置包括用于执行根据方面1至48中任一项所述的操作的部件。
Claims (30)
1.一种用于检测一个或多个静态对象的装置,包括:
至少一个存储器,所述至少一个存储器被配置为存储至少一个图像;以及
至少一个处理器,所述至少一个处理器耦合到所述至少一个存储器并且被配置为:
确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中所述一个或多个静态对象相对于所述三维空间是静态的;
获得包括多个地图点的点地图,所述多个地图点对应于所述三维空间的一部分;并且
基于所述点地图和与所述一个或多个静态对象相关联的所述一个或多个像素来确定所述三维空间的所述部分中的所述一个或多个静态对象的占用概率。
2.根据权利要求1所述的装置,其中,与所述一个或多个静态对象相关联的所述一个或多个像素是基于一个或多个机器学习模型来确定的。
3.根据权利要求2所述的装置,其中,所述一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络,所述深度学习神经网络被配置为预测所述一个或多个像素被所述三维空间中的至少一个对象占用。
4.根据权利要求3所述的装置,其中,所述深度学习神经网络还被配置为预测所述一个或多个像素中的每个像素是否与静态对象或动态对象相关联。
5.根据权利要求2所述的装置,其中,所述一个或多个机器学习模型中的机器学习模型与用于捕获所述一个或多个图像中的图像的相机相关联。
6.根据权利要求1所述的装置,其中,为了确定所述三维空间的所述部分中的所述一个或多个静态对象的所述占用概率,所述至少一个处理器被配置为确定与所述三维空间的所述部分相关联的网格中的每个单元的占用概率。
7.根据权利要求6所述的装置,其中,所述至少一个处理器被配置为使用贝叶斯滤波器来更新每个单元的所述占用概率。
8.根据权利要求6所述的装置,其中,为了确定所述网格中的每个单元的所述占用概率,所述至少一个处理器被配置为确定所述网格的在包括所述装置的对象周围的矩形区域内的所有单元的占用概率。
9.根据权利要求8所述的装置,其中,包括所述装置的所述对象是车辆。
10.根据权利要求6所述的装置,所述至少一个处理器被配置为:
基于所述一个或多个像素中的在所述一个或多个图像中的图像的列中的像素来确定所述网格的平面与和所述列相对应的平面的交线;以及
确定沿着所述交线的一个或多个点的一个或多个占用概率。
11.根据权利要求10所述的装置,所述至少一个处理器被配置为至少部分地通过根据沿着所述交线的所述一个或多个点的至少一个或多个占用概率确定代表性占用概率来确定所述网格中的单元的占用概率。
12.根据权利要求10所述的装置,其中,所述至少一个处理器被配置为基于来自所述点地图的信息来确定一个或多个占用概率。
13.根据权利要求12所述的装置,其中,来自所述点地图的信息至少包括与所述网格的所述平面上的点相关联的高度。
14.根据权利要求1所述的装置,其中,所述装置被包括作为车辆的一部分。
15.根据权利要求14所述的装置,其中,所述三维空间的所述部分包括所述三维空间中的行驶表面。
16.根据权利要求15所述的装置,其中,所述一个或多个静态对象位于所述行驶表面上。
17.根据权利要求1所述的装置,其中,与所述一个或多个静态对象相关联的所述一个或多个像素至少部分地通过使用计算机视觉算法处理所述一个或多个图像来生成。
18.根据权利要求17所述的装置,其中,所述计算机视觉算法被配置为执行时间跟踪以估计所述一个或多个像素。
19.根据权利要求1所述的装置,其中,所述一个或多个像素中的每个像素是由所述三维空间中的所述一个或多个静态对象中的静态对象占用的图像的列中的最低像素。
20.根据权利要求19所述的装置,其中,所述图像的列包括所述图像的像素的列。
21.一种检测一个或多个静态对象的方法,所述方法包括:
由计算设备确定与在三维空间的一个或多个图像中描绘的一个或多个静态对象相关联的一个或多个像素,其中所述一个或多个静态对象相对于所述三维空间是静态的;
由所述计算设备获得包括多个地图点的点地图,所述多个地图点对应于所述三维空间的一部分;以及
由所述计算设备基于所述点地图和与所述一个或多个静态对象相关联的所述一个或多个像素来确定所述三维空间的所述部分中的所述一个或多个静态对象的占用概率。
22.根据权利要求21所述的方法,其中,与所述一个或多个静态对象相关联的所述一个或多个像素是基于一个或多个机器学习模型来确定的。
23.根据权利要求22所述的方法,其中,所述一个或多个机器学习模型中的每个机器学习模型包括深度学习神经网络,所述深度学习神经网络被配置为预测所述一个或多个像素被所述三维空间中的至少一个对象占用。
24.根据权利要求23所述的方法,其中,所述深度学习神经网络还被配置为预测所述一个或多个像素中的每个像素是否与静态对象或动态对象相关联。
25.根据权利要求22所述的方法,其中,所述一个或多个机器学习模型中的机器学习模型与用于捕获所述一个或多个图像中的图像的相机相关联。
26.根据权利要求21所述的方法,其中,确定所述三维空间的所述部分中的所述一个或多个静态对象的所述占用概率包括确定与所述三维空间的所述部分相关联的网格中的每个单元的占用概率。
27.根据权利要求21所述的方法,其中,所述计算设备被包括作为车辆的一部分。
28.根据权利要求27所述的方法,其中,所述三维空间的所述部分包括所述三维空间中的行驶表面。
29.根据权利要求23所述的方法,其中,所述一个或多个像素中的每个像素是由所述三维空间中的所述一个或多个静态对象中的静态对象占用的图像的列中的最低像素。
30.根据权利要求29所述的方法,其中,所述图像的所述列包括所述图像的像素的列。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163141292P | 2021-01-25 | 2021-01-25 | |
US63/141,292 | 2021-01-25 | ||
US17/452,552 US20220237402A1 (en) | 2021-01-25 | 2021-10-27 | Static occupancy tracking |
US17/452,552 | 2021-10-27 | ||
PCT/US2022/012368 WO2022159331A1 (en) | 2021-01-25 | 2022-01-13 | Static occupancy tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116868239A true CN116868239A (zh) | 2023-10-10 |
Family
ID=82495589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280010502.5A Pending CN116868239A (zh) | 2021-01-25 | 2022-01-13 | 静态占用跟踪 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220237402A1 (zh) |
EP (1) | EP4281945A1 (zh) |
CN (1) | CN116868239A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114639079B (zh) * | 2020-12-15 | 2023-06-30 | 北京百度网讯科技有限公司 | 匹配车道线数据的方法、装置、设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11257242B2 (en) * | 2018-12-31 | 2022-02-22 | Wipro Limited | Method and device for determining operation of an autonomous device |
-
2021
- 2021-10-27 US US17/452,552 patent/US20220237402A1/en active Pending
-
2022
- 2022-01-13 CN CN202280010502.5A patent/CN116868239A/zh active Pending
- 2022-01-13 EP EP22703150.7A patent/EP4281945A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220237402A1 (en) | 2022-07-28 |
EP4281945A1 (en) | 2023-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | Artificial intelligence applications in the development of autonomous vehicles: A survey | |
US11798169B2 (en) | Sensor data segmentation | |
Bachute et al. | Autonomous driving architectures: insights of machine learning and deep learning algorithms | |
CN110363058B (zh) | 使用单触发卷积神经网络的用于避障的三维对象定位 | |
US9933264B2 (en) | System and method for achieving fast and reliable time-to-contact estimation using vision and range sensor data for autonomous navigation | |
US11482014B2 (en) | 3D auto-labeling with structural and physical constraints | |
JP7239703B2 (ja) | 領域外コンテキストを用いたオブジェクト分類 | |
US20210209785A1 (en) | Object size estimation using camera map and/or radar information | |
CN108475058B (zh) | 估计对象接触时间的系统和方法、计算机可读介质 | |
EP3822852B1 (en) | Method, apparatus, computer storage medium and program for training a trajectory planning model | |
US11755917B2 (en) | Generating depth from camera images and known depth data using neural networks | |
US11479213B1 (en) | Sensor obstruction detection and mitigation | |
WO2024001969A1 (zh) | 一种图像处理方法、装置、存储介质及计算机程序产品 | |
US20230343107A1 (en) | Behavior prediction of surrounding agents | |
Wang et al. | End-to-end interactive prediction and planning with optical flow distillation for autonomous driving | |
CN116210030A (zh) | 基于半监督关键点的模型 | |
US20220237402A1 (en) | Static occupancy tracking | |
CN115147809B (zh) | 一种障碍物检测方法、装置、设备以及存储介质 | |
US20230196749A1 (en) | Training Neural Networks for Object Detection | |
WO2022159331A1 (en) | Static occupancy tracking | |
US20240135721A1 (en) | Adversarial object-aware neural scene rendering for 3d object detection | |
Zhang | Learning-based monocular vision obstacle detection and avoidance for UAV navigation in urban airspace | |
Bhatia et al. | Road Image Segmentation for Autonomous Car | |
Martins et al. | Evaluation of Point Cloud Data Augmentation for 3D-LiDAR Object Detection in Autonomous Driving | |
CN114407916A (zh) | 车辆控制及模型训练方法、装置、车辆、设备和存储介质 |
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 |