CN113632095A - 使用适合停车位检测的倾斜多边形进行对象检测 - Google Patents

使用适合停车位检测的倾斜多边形进行对象检测 Download PDF

Info

Publication number
CN113632095A
CN113632095A CN202080021666.9A CN202080021666A CN113632095A CN 113632095 A CN113632095 A CN 113632095A CN 202080021666 A CN202080021666 A CN 202080021666A CN 113632095 A CN113632095 A CN 113632095A
Authority
CN
China
Prior art keywords
anchor
corner points
neural network
vehicle
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080021666.9A
Other languages
English (en)
Inventor
D·李
J·权
S·奥
郑文超
H-J·徐
D·尼斯特
B·罗德里格斯·赫尔瓦斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN113632095A publication Critical patent/CN113632095A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local 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/443Local 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/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/586Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of parking space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30264Parking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

神经网络可用于确定倾斜多边形的角点(例如,作为锚框角点的位移值),其准确地描绘了图像中定义停车位的区域。此外,神经网络可以输出预测锚框的角点对应于停车位入口的可能性的置信值。置信值可用于选择锚框和/或倾斜多边形的角点的子集,以便定义停车位的入口。使用CNN预测的倾斜多边形的角点与停车位的地面实况角点之间的最小聚合距离可以用于简化关于是否应将锚框用作训练的正样本的确定。

Description

使用适合停车位检测的倾斜多边形进行对象检测
背景技术
机器(例如,使用经训练的神经网络编程的计算机)进行准确有效的图像处理(例如,用于识别和分类)在各种情况下都很重要。例如,自主车辆(例如,配备高级驾驶辅助***(ADAS)的车辆)或无人机可以实时分析图像数据(例如,表示由相机捕获的道路和/或停车场的图像)以制定驾驶操作(例如,向左转动转向装置、启动制动***等)。在一个这样的实例中,车辆可以在执行停车操作时分析图像数据以检测停车位,并识别停车位的属性,例如位置、大小和方位。为了促进这个过程,车辆可能包括对象检测器,该检测器使用卷积神经网络(CNN)来检测图像中停车位的存在。
用于检测停车位的传统CNN可能使用轴对齐的矩形锚框(所有四个角都是直角)作为检测输出的一种形式。然而,由于传感器的透视投影,传感器数据中存在的停车位通常不是矩形或轴对齐的。因此,一旦检测到传感器数据,就需要额外的处理来准确地识别每个停车位的边界。例如,车辆上的相机可能会捕获停车位的图像,并且基于相机视场的视角,停车位可能不会在图像中描绘为轴对齐的矩形。传统的CNN可能会提供一个轴对齐的矩形锚框作为检测输出的一种形式,在这种情况下,需要额外的处理来准确地描绘图像中的停车位。在训练传统CNN时,可以使用来自CNN的锚框输出和地面实况输出之间的联合相交(IoU)来识别正样本。IoU计算可能很简单,因为锚框输出和地面实况都是轴对齐的矩形。
发明内容
本公开涉及使用适用于停车位检测的倾斜多边形(例如,四边形)的对象检测。例如,在一些情况下,至少一个卷积神经网络(CNN)可用于检测和/或描绘图像数据中表示的一个或更多个停车位。CNN输出可以进行后处理并提供给下游***(例如,车辆控制模块)以通知后续操作。
本公开的方面可以使用CNN来确定倾斜多边形的角点(例如,作为锚形状角点的位移或偏移值),其准确地描绘图像中定义停车位的区域。此外,本公开提供了输出置信值的CNN,该置信值预测锚形状的角点定义或以其他方式对应于停车位入口的可能性。置信值可用于选择锚形状和/或倾斜多边形的角点的子集,以便定义停车位的入口。根据本公开的实施例,CNN可用于预测锚形状的特定角点对应于停车位入口的可能性以及预测描绘停车位边界的角点的位移值。
本公开还提供计算使用CNN预测的倾斜多边形的角点与停车位的地面实况角点之间的距离(例如,最小聚合距离)以确定锚形状是否应该用作正训练样本。例如,可以至少部分地基于距离低于阈值来识别正样本。
附图说明
下面参考附图详细描述使用适合于停车位检测的倾斜多边形进行对象检测的本***和方法,附图通过引用并入本文,其中:
图1是根据本公开的一些实施例的包括示例对象检测***的图示;
图2是示出根据本公开的一些实施例的用于识别一个或更多个停车位的示例过程的流程图;
图3是根据本公开的一些实施例的可由对象检测器、对象检测器的空间元素的网格和可与空间元素中的一个或更多个相关联的一组锚形状处理的图像数据表示的图像的图示;
图4是根据本公开的一些实施例的覆盖有针对不同空间元素分辨率的视觉元素的图像的图示;
图5A是根据本公开的一些实施例的包括用于检测停车位的神经网络的图示;
图5B是根据本公开的一些实施例的具有进入线描绘和停车位描绘的图像的图示;
图6是根据本公开的一些实施例的用于训练对象检测器的具有地面实况数据和倾斜四边形的角点的图像的图示;
图7是示出根据本公开的一些实施例的训练机器学习模型以提供停车位的角点的方法的框图;
图8是示出了根据本公开的一些实施例的使用神经网络确定停车位角点的方法的框图;
图9是示出根据本公开的一些实施例的使用神经网络确定停车位入口的方法的框图;
图10为适合用于实现本公开一些实施例的示例操作环境的图示;
图11A为根据本公开一些实施例的示例自主车辆的图示;
图11B为根据本公开一些实施例的用于图11A的示例自主车辆的相机位置和视场的示例;
图11C为根据本公开一些实施例的用于图11A的示例自主车辆的示例***架构的框图;
图11D为根据本公开一些实施例的图11A的基于云的服务器与示例自主车辆之间的通信的***图;以及
图12为适合用于实现本公开一些实施例的示例计算设备的框图。
具体实施方式
本公开涉及使用适用于停车位检测的倾斜多边形(例如,四边形)的对象检测。所公开的方法可能适用于检测停车位的驾驶操作(例如,自动驾驶、高级驾驶员辅助***(ADAS)等),以及其他应用(例如,机器人、视频分析、天气预报、医疗成像等)检测与图像和/或传感器数据中的倾斜多边形相对应的对象(例如,建筑物、窗户、门、车道、十字路口、马路牙子、不动产区域、表面区域或区域等)。
本公开可以关于示例自主车辆1100(在本文中可替代地称为“车辆1100”或“自主车辆1100”)来描述,其示例在本文中参照图11A-11D更详细地描述。尽管本公开主要提供使用自主车辆的示例,但可以使用其他类型的设备来实现本文描述的各种方法,例如机器人、无人驾驶飞行器、相机***、天气预报设备、医学成像设备等。此外,这些方法可用于控制自主车辆,或用于其他目的,例如但不限于视频监控、视频或图像编辑、停车位占用监控、识别和/或检测、视频或图像搜索或检索、对象跟踪、天气预报(例如,使用RADAR数据)和/或医学成像(例如,使用超声或磁共振成像(MRI)数据)。
虽然停车位主要被描述为被检测的对象,但所公开的方法通常可以应用于在传感器的视场和/或图像数据(例如,这些对象在现实世界中可能是矩形的,但由于透视而显示为倾斜的四边形)中可能显示为倾斜多边形(如四边形或其他形状)的对象。尽管使用倾斜的四边形和四个角点来描述所公开的方法,但是所公开的概念可以应用于定义那些形状的任意数量的形状和点(例如,角点)。此外,虽然本文主要将入口定义为由两个点(例如,角点)来定义,但在其他示例中,可以使用任意数量的点(例如,角点)来定义入口。此外,虽然本公开集中于使用神经网络实现的对象检测器,但在一些实施例中可以采用其他类型的机器学习模型。
与可以使用CNN来预测通常指示停车位的大小和位置的轴对齐的矩形锚框的常规方法相比,本公开的方面可以使用CNN来确定倾斜的四边形的角点(例如,作为锚框角点的位移或偏移值),其准确地描绘了图像中定义停车位的区域。因此,在一些实施例中,倾斜的四边形可以被下游***直接消耗而不需要额外的或显著的处理来识别停车位的边界。通过减少后续处理,所公开的方法可能比传统方法更有效和更快。
此外,与传统方法相比,本公开提供了输出置信值的一个或更多个CNN,该置信值预测锚框的角点定义或以其他方式对应于停车位入口的可能性。置信值可用于选择锚框和/或倾斜四边形的角点的子集,以便定义停车位的入口。根据本公开的实施例,可以通过使用CNN来预测锚框的特定角点对应于停车位入口的似然性以及预测划定停车位的边界的角点的位移值来进一步减少处理。
在另一方面,虽然传统的CNN使用联合相交(IoU)来确定轴对齐的矩形锚框输出是否为正样本,但本公开提供计算使用CNN预测的倾斜四边形的角点和停车位的地面实况角点之间的最小聚合距离,以确定是否应将锚框用作训练的正样本。例如,可以至少部分地基于最小聚合距离(例如,在归一化之后)低于阈值来识别正样本。计算最小聚合距离可能比计算倾斜四边形的IoU更直接,从而减少处理时间。
示例性停车位检测器
现在参照图1,图1示出了根据本公开一些实施例的包括示例对象检测***100的图示。应当理解的是,本文描述的这种和其他布置仅仅作为示例而进行阐述。除了所示之外或者代替所示,可以使用其他的布置和元素(例如机器、接口、功能、顺序和功能分组等等),并且为了清楚起见可以完全省略一些元素。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述的通过一个或更多个实体执行的各种功能可以通过硬件、固件和/或软件实现。例如,一些功能可以通过执行存储在内存中的指令的处理器而实施。
在一个或更多个实施例中,对象检测***100包括例如通信管理器104、对象检测器106、特征确定器108、置信度分数生成器110、位移值生成器112、倾斜四边形生成器114、以及入口确定器126。本公开中描述的一些示例使用四边形(例如,规则的、倾斜的、不规则的、盒子等),并且所描述的***和方法可以类似地使用其他多边形。
通信管理器104可以被配置为管理由对象检测***100接收的通信(例如,包括传感器数据和/或图像数据)和/或由对象检测***100提供的通信(例如,包括置信度得分、位移得分、斜四边形的角点,和/或从中导出的信息)。附加地或替代地,通信管理器104可以管理对象检测***100内的通信,例如对象检测器106、置信度分数生成器110、位移值生成器112、倾斜四边形生成器114、入口确定器126和/或可以包括在对象检测***100中或可以与对象检测***100通信的其他组件(例如,消耗来自对象检测***100的输出的下游***组件)中的任一个之间的通信。
参考图2,图2是示出根据本公开的一些实施例的用于识别一个或更多个停车位的示例过程200的流程图。对象检测器106可以被配置为分析从通信管理器104接收的输入数据,例如表示任何数量的停车位(或没有停车位)的传感器数据和/或图像数据,并生成在输入数据中捕获的任意数量的检测对象的对象检测数据。为此,对象检测器106可以使用特征确定器108、位移值生成器112和置信分数生成器110。特征确定器108可以被配置为生成或确定输入数据的特征作为置信分数生成器110和位移值生成器112的输入。置信分数生成器110可以被配置为基于来自特征确定器108的数据生成或确定一个或更多个锚框的置信分数118。每个锚框的置信分数118可以预测相应锚框对应于输入数据中检测到的停车位的可能性。
位移值生成器112可以被配置为基于来自特征确定器108的数据生成或确定到每个锚框的角点的位移值122。倾斜四边形生成器114可以接收来自对象检测器106的各种输出中的任一个作为输入,例如每个锚框的置信值118和位移值122。倾斜四边形生成器114可以使用任何合适的技术,例如非极大值抑制(NMS),根据输入生成和/或确定倾斜四边形。这可以包括倾斜四边形生成器144根据位移值122(例如,由位移值生成器112提供)和锚框的角点,从任意数量的锚框确定倾斜四边形的角点。作为非限制性示例,倾斜四边形生成器114可以确定哪些锚框具有超过阈值(如果有)的置信值118。根据那些锚框,倾斜四边形生成器114可以将候选检测过滤和/或聚类为一个或更多个输出对象检测,并且确定与那些输出对象检测相对应的倾斜四边形的角点(例如,使用对应的位移值122)。
除了或代替置信分数生成器110生成或确定置信分数118来预测相应锚框对应于在输入数据中检测到的停车位的可能性,置信分数生成器110可以生成或确定置信分数116预测相应角点对应于输入数据中表示的检测到的停车位入口的可能性。入口确定器126可以至少使用置信度分数116来确定一个或更多个停车位的一个或更多个入口。作为非限制性示例,入口确定器126可以通过选择具有最高置信值(例如,可选地要求那些置信值116超过阈值)的每个倾斜四边形(例如,两个角点)的一组角点来定义倾斜四边形生成器114输出的每个对象检测的入口。然后可以使用所选角点来定义相应停车位的入口(例如,连接所选角点的入口线)。如图2中虚线所示,在其他示例中,倾斜四边形生成器114可以不在具有入口确定器126的对象检测***100中实现和/或由入口确定器126使用以便识别和/或定义到停车位或其他检测对象区域的入口。
根据本公开的一些实施例,对象检测***100可以在图10的示例操作环境1000中实现。例如,图1的部件通常可以使用一个或更多个客户端设备1020、一个或更多个服务器设备1060或者一个或更多个数据存储1050的任意组合实现。因此,对象检测***100可以经由布置在分布式环境中的、共同提供本文描述的功能的多个设备提供,或者可以具体化在单个设备(例如车辆1100)上。因此,虽然用来描述对象检测***100的一些示例可涉及特定的设备和/或配置,但是可以预期的是,那些示例可以更一般地适用于本文描述的设备和配置的任何潜在组合。例如,在一些实施例中,用来生成输入到对象检测器106的传感器数据的一个或更多个部分的传感器1080中的至少一些可以分布在环境中的多个设备和/或对象之间,和/或传感器1080中的至少一个可以包括在车辆1100中。
如本文所提到的,通信管理器104可以被配置为管理对象检测***100接收的通信(例如包括传感器数据和/或图像数据)和/或对象检测***100提供的通信(例如包括置信度分数或值、位移值、角点到倾斜的四边形、被检测对象数据和/或从中导出的信息)。此外或者可替代地,通信管理器104可以管理对象检测***100内的通信。
在通信作为网络通信而接收和/或提供的情况下,通信管理器104可以包括网络接口,其可以使用一个或更多个无线天线(图11A的一个或更多个无线天线1126)和/或一个或更多个调制解调器来通过一个或更多个网络通信。例如,网络接口可能够通过长期演进(LTE)、宽带码分多址(WCDMA)、通用移动电信服务(UMTS)、全球移动通信***(GSM)、CDMA2000等通信。网络接口也可以使用一个或更多个诸如蓝牙、蓝牙低能耗(LE)、Z波、ZigBee等之类的局域网和/或一个或更多个诸如远程广域网(LoRaWAN)、SigFox等之类的低功耗广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等)之间的通信。然而,例如在对象检测***100完全在自主车辆(例如车辆1100)上实现的情况下,通信管理器104不必包括网络接口。在一些示例中,本文描述的通信中的一个或更多个可以在计算设备1200的部件之间通过图12的总线1202进行。
通信管理器104接收的传感器数据可以使用图10的传感器1080的任意组合生成。例如,该传感器数据可以包括表示一个或更多个图像的图像数据、表示视频的图像数据(例如视频快照)和/或表示传感器的视场的传感器数据(例如来自一个或更多个LIDAR传感器1164的LIDAR数据、来自一个或更多个RADAR传感器1160的RADAR数据、来自图11B的一个或更多个照相机的图像数据等)。
通信管理器104提供给对象检测器106的传感器数据和/或图像数据可以在物理或虚拟环境中生成,并且可以包括表示相机的视场的图像数据。例如,在本公开的方面,通信管理器104向对象检测器106提供由车辆1100的相机在物理环境中生成的图像数据。
虽然可用于对象检测器106和/或本文描述的其他组件的机器学习模型的一些示例可指特定类型的机器学习模型(例如,神经网络),但预期本文描述的机器学习模型可以,例如但不限于,包括任何类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯,k-最近邻(Knn),K表示聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、循环、感知器、长/短期记忆(LSTM)、Hopfield、Boltzmann、深度信念、反卷积、生成对抗、液态机器等)的机器学习模型和/或其他类型的机器学习模型。
参考图3,图3是根据本公开的一些实施例的可由对象检测器、对象检测器的空间元素的网格和可与空间元素中的一个或更多个相关联的一组锚框来处理的图像数据表示的图像的图示。例如,图3包括可以由物理环境中的车辆1100的相机生成并提供给对象检测器106的图像310的描绘,对象检测器106可以分析图像数据以生成对象检测数据。对象检测数据可以表示对象检测器106对图像310中的对象(也可以称为检测对象)的检测。检测到的对象可能对应于或可能不对应于图像310中描绘的实际对象。例如,一些检测到的对象可能对应于由对象检测器106做出的错误检测。此外,一些检测到的对象可能对应于图310中描绘的相同对象。
对象检测器106可以包括一个或更多个机器学习模型,该模型被训练以根据从传感器数据(例如,图像数据)提取的特征生成对象检测数据。在一些示例中,对象检测器106被配置为针对视场和/或图像的每个空间元素和/或其一个或更多个对应的锚框确定一组对象检测数据(例如,表示角点的置信值和位移值)。在各种示例中,空间元素还可以指对象检测器106的网格单元、输出单元、超像素和/或输出像素。
在各种示例中,空间元素可以形成空间元素区域的网格。例如,图3在视觉上指示对象检测器106的空间元素的网格312,其可以逻辑地应用于传感器数据(例如,表示图像310)。在图3中,网格312与图像310分开描绘以便不模糊图像310,并且图4中提供了重叠描绘402。空间元素,例如网格单元311,可以由网格中的位置定义。例如,每个网格单元可以包含空间元素的空间元素区域。在其他示例中,可能不使用基于网格的空间元素。此外,空间元素可能不一定定义连续的空间元素区域,可能不一定定义矩形形状的空间元素区域,和/或可能不覆盖视场和/或图像的所有区域。
在一些示例中,对于单个图像或帧(例如,图像310)或一组图像或帧,对象检测器106的每个空间元素可以针对一个或更多个对应的锚框提供对象检测数据。在其他示例中,一个或更多个空间元素可能不提供对象检测数据。对象检测数据可以表示例如空间元素的每个锚框的置信值118、位移值122和/或置信值116,其可能对应于或可能不对应于该视场和/或图像310中的停车位。
图3示出了一组锚框314,其中应用于图像310的每个空间元素可以与一组对应的锚框314相关联。图示的是八个锚框,但是任何数量的锚框可以用于空间元素并且用于不同空间元素的锚框在形状、大小、数量等方面可以彼此不同。锚框可以是各种大小和形状,例如规则的矩形(例如,等角矩形);与一些传统***相比,锚框还可以包括一个或更多个倾斜的四边形,例如不规则的矩形(例如,没有全等角);菱形;风筝;梯形;平行四边形;等腰梯形;倾斜的四边形;或其任何组合。在图3中,锚框314被描绘为与图像310分开以便不模糊图像310,并且在图4中提供了重叠描绘402。
如本文所述,图4提供了重叠描绘402,其中图像310与网格312重叠,并且单个空间元素的锚框314位于网格单元311处,它指示相对于图像310的对应位置。如本文所述,可以为每个网格单元和/或空间元素的每个锚框生成置信分数和位移值。出于示例目的,锚框314仅被描绘用于一个网格单元311,并且在其他方面,锚框314(或其变体)可用于网格312的多个网格单元,或网格312的每个网格单元。不同网格单元311的锚框314可以在对应于该网格单元311(或更一般地空间元素)的位置处。网格312是空间元素的一种尺寸或分辨率的示例。作为非限制性示例,网格312是10x6,具有60个网格单元,因此,如果每个网格单元与八个锚框相关联,则可以为480个不同的锚框生成置信度分数和位移值。
在其他方面,空间元素区域的网格或其他布置可以具有不同的大小或分辨率,具有更多的空间区域或更少的空间区域,在这种情况下,可以增加(例如,具有更少、更大的空间区域的更粗的网格)或减小(例如,具有更多、更小的空间区域的更细网格)锚框的比例。例如,重叠描绘404包括用航向分辨率网格(courser resolution grid)412(例如,2×2)和用一组不同的锚框414重叠的图像310,锚框414可以与锚框314一致(例如,相同的形状和尺寸),类似于锚框314(例如,相同形状和/或不同尺寸),或不同于锚框314(例如,不同形状和/或不同尺寸)。在本公开的一些方面,对象检测器可以将空间元素区域(例如,网格)的多个分辨率应用于相同的输入数据,每个空间元素区域对应于相应的一组锚框。在其他潜在优点中,使用多个分辨率可以提高对象检测器106对于较大停车位和较小停车位两者都是准确的可能性,无论是在同一图像中(例如,基于视角,更靠近相机的停车位可能显得更大,距离相机较远的停车位可能会显得较小)或不同的图像。在一些情况下,用于分析输入数据的空间元素区域(例如,网格)的实际集合在分辨率上可能比网格312和412精细得多。此外,可以采用任意数量的空间元素区域集合。
如本文所述,基于由对象检测器106提供的对象检测数据,倾斜四边形生成器114可以生成和/或识别对应于一个或更多个停车位的一个或更多个倾斜四边形并且入口确定器126可以确定和/或识别一个或更多个停车位的一个或更多个入口。
参考图5A,图5A描绘了使用神经网络(例如,CNN)实现的示例对象检测器106的至少一部分。例如,对象检测器106包括特征骨干网络506,例如ResNet 50或另一特征骨干网络。此外,神经网络包括特征金字塔网络508。此外,神经网络包括分类子网络510。
在实施例中,特征骨干网络506和特征金字塔网络508可以对应于图1的特征确定器108,分类子网络510可以对应于图1的置信度分数生成器110,回归子网络512可以对应于图1的位移值生成器112。然而,图5A中的神经网络的描述不旨在将对象检测器106限制为所示的神经网络。此外,分类子网络510被示为输出表示置信分数514(其可对应于图2中的置信分数118)的数据。尽管为简单起见未示出,但在检测停车位入口的实施例中,分类子网络510可附加地或替代地输出表示图1的置信度分数116的数据,或者可以使用另一个分类子网络。回归子网络512被示为输出表示位移值516(其可对应于图2中的位移值122)的数据。参照图5A中的对象检测器106描述的输出可以提供给每个预定义的锚框。
在本公开的另一方面,倾斜四边形发生器518可以对应于图1中的倾斜四边形发生器114,可以基于来自对象检测器106的输出生成和/或识别一个或更多个倾斜的四边形。例如,基于位移值516(例如,Δx1、Δy1...、Δx4、Δy4)和置信值514,倾斜四边形生成器518可以选择锚框并调整锚框522的角位置或点(例如,x1,y1...,x4,y4),以生成角点(例如,调整后的角点520包括倾斜四边形的[x'1,y'1...,x'4,y'4])。可以向各种下游组件或***提供表示倾斜四边形的数据(例如,调整的角点520)。如图所示,在各种实施例中,可以执行置信图分类,例如将锚框分类为正或负停车位检测(例如,使用二进制分类),并且倾斜四边形生成器518可以利用该信息。例如,对象检测***100可以将每个锚框的置信度值514与阈值进行比较。当置信值514大于阈值时,锚框可产生正检测,而当置信值小于阈值时,可产生负检测。
作为非限制性示例,倾斜四边形生成器114可以通过将聚类算法应用于被检测对象(例如,在使用置信值514过滤掉负检测之后)的对象检测器106的输出以形成任意数量的被检测对象集群来生成和/或确定任意数量的倾斜四边形。为了对检测到的对象进行聚类,倾斜四边形生成器114可以将检测到的对象(例如,候选倾斜四边形)的位置聚类在一起。例如,这可以至少部分地基于与本文描述的检测到的对象和/或其他检测到的对象数据相关联的置信度值514。在一些示例中,倾斜四边形生成器114使用具有噪声的基于密度的应用空间聚类(DBSCAN)算法。其他示例包括NMS或修改后的群矩形算法。可以从每个集群中选择、确定和/或生成倾斜的四边形作为输出对象检测(例如,使用一种或多种算法和/或神经网络)。
表示由倾斜四边形发生器114确定的经调整角点520和/或每个倾斜四边形的数据可以提供给各种下游组件或***。例如,在一种情况下,可以将倾斜四边形的角点提供给车辆控制模块,该模块可以通过将二维角点坐标转换为三维坐标或以其他方式处理该数据来直接消耗角点,例如以协调车辆的停车操作。在另一方面,倾斜的四边形的角点可以提供给具有视频或图像监视器的仪表组控制模块,用于显示一个或更多个停车位的表示。例如,角点可用于注释图像502和/或对应的图像或具有描绘角点的图像502——例如,图5A中的注释图像525,具有倾斜四边形的轮廓(例如,由虚线指示)526,该倾斜四边形的轮廓具有调整角点520。
在另一方面,倾斜四边形的角点、位移值122和/或对应于锚框的角点的置信值(例如置信值116)可以作为输入提供给入口确定器126以检测和/或定义一个或更多个停车位(例如,由倾斜四边形发生器114识别的停车位)的一个或更多个入口。例如,可以通过选择锚框的置信值116中具有最高置信值的两个角点(例如,四个角点)来检测和/或定义入口线。在一些示例中,选择还可以基于置信值大于阈值(例如,指示角点每个都可能对应于入口)。停车位的入口可被定义为入口线或以其他方式使用所选角点的位置来确定和/或定义。
这样,由入口确定器126确定的入口信息可以提供给各种下游组件或***。例如,在某些情况下,可以将标识为对应入口的角点提供给车辆控制模块,车辆控制模块可以通过将二维角点坐标转换为三维坐标或以其他方式处理角点来直接消耗角点。在另一方面,角点可提供给具有视频或图像监视器的仪表组控制模块,用于显示一个或更多个停车位的一个或更多个入口的表示。例如,角点可用于注释图像502和/或对应的图像或具有描绘角点和/或入口的图像502——例如,图5B中的注释图像530,可以包括到停车位的入口线的描绘(例如,由虚线指示)532。可选地,还可以提供停车位轮廓534(例如,虚线)。在一个示例中,入口和/或停车位的轮廓可以包括彩色线或其他合适的图像注释。
针对对象检测训练机器学习模型的示例
对象检测器106可以使用各种可能方法进行训练。在一些示例中,对象检测器106可以以完全监督的方式进行训练。训练图像及其标签可以以迷你批分组,其中迷你批的尺寸可以是可调的超参数。可以将每个迷你批传递给在线数据扩增(augmentation)层,该层可以向该迷你批中的图像应用变换。数据扩增可以用来减轻对象检测器106对训练数据可能的过度拟合。数据扩增变换可以包括(但是不限于)诸如左右翻转、放大/缩小、随机平移等之类的空间变换,诸如色度、饱和度和对比度调节之类的颜色变换,或者加性噪声。可以将标签变换为反映对训练图像做出的相应变换。
可以将扩增的图像传递给对象检测器106以便执行前向传递计算。对象检测器106可以在每空间元素的基础上执行特征提取和预测(例如与锚框相关的预测)。在预测各个输出的任务中(例如,每个锚框的置信度值和位移值),损失函数可以同时测量误差。
可以在应用到整个迷你批的单个损失函数中将用于各个输出的分量损失组合在一起。然后,可以进行反向传递计算以便递归地计算成本函数关于可训练参数(典型地,至少对象检测器106的权重和偏置,但是不限于此,因为例如在使用批归一化时可能存在其他可训练参数)的梯度。前向和反向传递计算典型地可以由深度学习框架和下面的软件栈进行处理。
然后,可以发生用于对象检测器106的参数更新。优化器可以用来对可训练参数进行调节。示例包括随机梯度下降,或者具有动量项的随机梯度下降。连接到优化器的主要超参数可以是学习速率。取决于优化器,也可以存在其他超参数。
对于训练期间的每个时期(epoch),数据集中的图像可以以随机的顺序呈现,这可以导致更快的收敛。时期可以指用来向训练中的对象检测器106示出数据集的每幅图像一次的前向/反向传递迭代的数量。整个过程“前向传递——反向传递——参数更新”可以迭代,直到训练的参数收敛。收敛可以通过在训练集和验证集上观察到损失函数的值降低至足够低的值并且确定进一步迭代不会进一步降低损失来评估。其他度量可以用来评估收敛,例如在验证集上计算的平均精度。
在训练期间,可能会定期执行验证,这可能涉及检查验证集(与训练集分开)中图像的损失函数的平均值。如本文所述,对象检测器106的每个输出(例如,每个锚框的置信度得分、每个锚框的位移值等)可以与用于训练的单独损失函数相关联。可以使用任何合适的损失函数。
根据本公开的一方面,停车位的地面实况数据可以包括停车位的拐角位置,并且拐角位置可以形成或限定倾斜的四边形。此外,当锚框的倾斜四边形角与地面实况角位置足够相似时,例如基于匹配成本小于阈值,可以从对象检测器106的输出中识别正训练样本。在本公开的一个方面,可以使用各种类型的锚框来训练神经网络并识别正样本。例如,在一方面,预定义的锚框可以包括矩形(例如,矩形)。此外,预定义的锚框可以包括旋转的矩形。此外或替代地,一个或更多个锚框可以包括倾斜和旋转的矩形。倾斜矩形的例子包括不规则矩形(例如,没有全等角);菱形;风筝;梯形;平行四边形;等腰梯形;倾斜的四边形;及其任何组合。预定义的锚框可以手动设计或从地面实况标记获得,并可用于计算用于训练对象检测器106的地面实况位移值。从地面实况标记获得的锚框可以称为“数据驱动的锚框”,它是通过聚类或以其他方式分析地面实况样本而生成的。例如,可以为一幅或更多幅图像生成地面实况样本(例如,包括倾斜的四边形)。然后可以将地面实况样本聚类为一个或更多个集群,并且可以从一个或更多个集群中的每个集群的样本中生成、选择和/或确定至少一个数据驱动的锚框。在一些示例中,数据驱动的锚框可以具有从集群的一个或更多个样本计算的形状(例如,对应于集群的平均或以其他方式统计导出的形状)。在各种示例中,可以执行谱聚类,例如通过使用形状相似性函数计算地面实况样本的亲和度矩阵,并使用具有k个聚类的亲和度矩阵执行谱聚类,其中k是要生成的聚类的数量。
在一方面,用于从对象检测器106的输出识别正样本的匹配成本至少部分地基于由对象检测器106输出的相应位移值调整的预定义锚框角和地面实况角位置之间的最小聚合距离。这与基于联合相交(IOU)确定正样本相反,并且可能比IOU更直接,因为被比较的角点可能没有定义规则的矩形(而是定义倾斜的四边形)。
可以以各种方式计算最小聚合距离。例如,参考图6,描绘了图像610,其中示出了描绘的停车位602的地面实况角点(B1、B2、B3和B4)。图像610可以用作对象检测器106的训练输入。结果,对象检测器106可以向锚框的角点提供位移值,用于计算锚框调整后的角点(A1、A2、A3、和A4),如图所示。图6仅示出了单个锚框的角点以简化该说明,并且在其他方面,类似的信息可用于本文描述的每个锚框。
在本公开的一方面,计算最小聚合距离包括计算最小平均距离。例如,可以通过确定(A1,B1)、(A2,B2)、(A3,B3)和(A4,B4)之间的距离,然后从这些距离统计导出第一聚合距离,比如使用均值,来计算第一聚合距离。也可以通过改变每个数据集的角点之间的关联(例如,对于每个可能的组合)来计算第二、第三和第四聚合距离——例如,使用(A1,B2),(A2,B3)、(A3、B4)和(A4、B1)计算第二聚合距离;使用(A1,B3),(A2,B4),(A3,B1)和(A4,B2)计算第三聚合距离;以及使用(A1,B4)、(A2,B1)、(A3,B2)和(A4,B3)计算第四聚合距离。然后可以从各种聚合距离中选择最小聚合距离,并用于确定锚框是否是正训练样本(例如,类似于IOU)。例如,可以至少部分地基于平均聚合距离小于阈值来选择正样本。在其他方面,可以选择平均均值距离或其他统计量化并用于确定匹配成本是否小于阈值。
在本公开的一些方面,可以为与对象检测器106相关联的任意数量的锚框确定最小聚合距离,以确定锚框是否对应于用于训练的正样本。置信值118可用于过滤锚框不被视为正样本。例如,可以至少部分地基于与锚框相关联的置信值118为锚框确定最小聚合距离。在一些示例中,可以为具有超过阈值(例如,指示正检测)的置信值118的每个锚框确定最小聚合距离。
在本公开的另一方面,每个锚框的最小聚合距离可以至少部分地基于由地面实况角点(例如,地面实况倾斜四边形)定义的大小和/或面积来归一化。归一化最小聚合距离可用于说明锚框之间的大小差异,例如在采用不同锚框大小和/或空间元素区域(例如,网格)分辨率的情况下。根据本公开,当匹配成本(例如,至少部分地基于归一化的最小聚合距离)小于某个(例如,预定的)阈值时,锚框可以被识别为正样本。然后可以使用正样本来更新正在训练的对象检测器106(例如,CNN)的参数。
现在参考图7,图7是示出根据本公开的一些实施例的用于训练机器学习模型以提供停车位的角点的方法700的流程图。方法700的每个框以及本文描述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。方法700还可以体现为存储在计算机存储介质上的计算机可用指令。方法700可以由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几例。本文描述的方法可以附加地或替代地由任何一个***或***的任何组合来执行,包括但不限于本文描述的那些并且不限于特定示例。
在框B702,方法700包括将表示停车位的图像数据应用到神经网络。例如,图像502可以应用于对象检测器106,图像502描绘至少一个停车位。
在框B704,方法700包括使用神经网络接收从图像数据生成的并且表示到锚形状的角点的位移值的数据。例如,回归子网络512可以输出与预定义锚框522相关并从表示图像502的图像数据生成的位移值516。
在框B706,方法700包括从到锚形状的角点的位移值确定倾斜多边形的角点。例如,倾斜四边形生成器518(或至少用于训练的其他组件)可以根据与预定义锚框522相关的位移值516来确定倾斜四边形的调整角点520。
在框B708,方法700包括计算倾斜多边形的角点和停车位的地面实况角点之间的第一距离。例如,可以计算(A1、A2、A3和A4)和(B1、B2、B3和B4)之间的最小聚合距离,如关于图6所描述的。
在框B710,方法700包括基于第一距离确定样本评级。例如,样本评级可以是最小聚合距离或其一些导数(例如,基于地面实况大小归一化)。
在框B712,方法700包括基于样品评级超过(例如,低于)阈值,使用锚形状作为正训练样本更新神经网络的参数。例如,当匹配成本(例如,基于样本评级)小于阈值时,锚可以被定义为正样本。
现在参考图8,图8是示出根据本公开的一些实施例的用于使用神经网络确定停车位的角点的方法800的流程图。在框B802,方法800包括将表示环境中的至少一个传感器的视场的传感器数据应用于神经网络。例如,表示图像502的传感器数据可以应用于对象检测器106,该图像表示车辆1100的相机的视场。
在框B804,方法800包括从神经网络接收从传感器数据生成的第一数据和第二数据,第一数据表示到锚形状的角点的位移值,第二数据表示预测锚形状对应于至少一个传感器的视场中的停车位的可能性的置信值。例如,回归子网络512可以输出表示与预定义锚框522相关的并且从表示图像502的传感器数据生成的位移值516的数据。此外,分类子网络510可以输出数据,该数据表示预测锚框522对应于图像502中的停车位的可能性的置信度分数514。
在框B806,方法800包括基于置信值超过阈值,根据到锚形状的角点的位移值确定倾斜多边形的角点。例如,倾斜四边形生成器518可以至少部分地基于置信值514超过阈值,根据与预定义锚框522相关的位移值516确定表示倾斜四边形的调整角点520的数据,如图5A所示。
现在参考图9,图9是示出根据本公开的一些实施例的用于使用神经网络确定停车位入口的方法900的流程图。在框B902,方法900包括将表示环境中的至少一个传感器的视场的传感器数据应用于神经网络。例如,表示图像502的传感器数据可以应用于对象检测器106,传感器数据表示车辆1100的相机的视场。
在框B904,方法900包括从神经网络接收从图像数据生成的第一数据和第二数据。第一数据表示到锚形状的角点的位移值,第二数据表示预测锚形状的角点定义在至少一个传感器的视场中的停车位入口的可能性的置信值。例如,回归子网络512可以输出表示与预定义锚框522相关并从传感器数据生成的位移值516的数据。此外,分类子网络510(或另一个类似网络)可以输出图2的置信度分数116,预测锚框的角点表示停车位入口的至少一部分的可能性。
在框B906,方法900包括基于置信值选择锚形状的角点的子集。例如,入口确定器126可以过滤角点以确定和/或选择具有最高置信度分数116的角点。
在框B908,方法900包括从角点的子集识别停车位的入口。例如,一旦选择了具有最高置信度分数的两个角点,就可以指定入口确定器126来定义停车位的入口和/或入口线。
示例操作环境
根据本公开一些实施例,对象检测***100和/或网络502可以在图10的示例操作环境1000中实现。
除未图示出的其他部件以外,操作环境1000还包括一个或更多个客户端设备1020、一个或更多个网络1040、一个或更多个服务器设备1060、一个或更多个传感器1080和一个或更多个数据存储1050。应当理解,图10中示出的操作环境1000是一种适当的操作环境的示例。图10中所示的每个部件可以经由任何类型的计算设备实现,所述计算设备诸如例如结合图12描述的一个或更多个计算设备1200。这些部件可以经由网络1040彼此通信,所述网络可以是有线的、无线的或者这二者。网络1040可以包括多个网络或者网络中的一网络,但是以简单的形式示出以便不使本公开的方面模糊不清。举例而言,网络1040可以包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个诸如因特网之类的公共网络和/或一个或更多个专用网络。在网络1040包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他部件)之类的部件可以提供无线连接。在任何示例中,至少一个网络1040可以与下文进一步描述的图11D的一个或更多个网络1190相对应。
应当理解,在本公开的范围内,在操作环境1000内可以采用任意数量的客户端设备1020、服务器设备1060、传感器1080和数据存储1050。每一个都可以配置为单个设备或者在分布式环境中协作的多个设备。
一个或更多个客户端设备1020可以包括本文关于图12描述的示例计算设备1200的部件、特征和功能中的至少一些。举例而言且非限制性地,客户端设备1020可以具体化为个人计算机(PC)、膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、全球定位***(GPS)或设备、视频播放器、手持式通信设备、游戏设备或***、娱乐***、车载计算机***、嵌入式***控制器、遥控器、电器、消费电子设备、工作站、这些描绘的设备的任意组合,或者任何其他适当的设备。在任何示例中,至少一个客户端设备1020可以是诸如本文进一步详细描述的图11A-图11D的车辆1100之类的车辆的部分。
一个或更多个客户端设备1020可以包括一个或更多个处理器和一个或更多个计算机可读介质。计算机可读介质可以包括可由一个或更多个处理器执行的计算机可读指令。这些指令在由一个或更多个处理器执行时可以使得一个或更多个处理器执行本文描述的方法的任意组合和/或部分,和/或实现图1的对象检测***100的功能的任何部分。
一个或更多个服务器设备1060也可以包括一个或更多个处理器和一个或更多个计算机可读介质。计算机可读介质包括可由一个或更多个处理器执行的计算机可读指令。这些指令在由一个或更多个处理器执行时可以使得一个或更多个处理器执行本文描述的方法的任意组合和/或部分,和/或实现图1的对象检测***100的功能的任何部分。在任何示例中,至少一个服务器设备1060可以与本文进一步详细描述的图11D的一个或更多个服务器1178相对应。
一个或更多个数据存储1050可以包括一个或更多个计算机可读介质。计算机可读介质可以包括可由一个或更多个处理器执行的计算机可读指令。这些指令在由一个或更多个处理器执行时可以使得一个或更多个处理器执行本文描述的方法的任意组合和/或部分,和/或实现图1A的对象检测***100的功能的任何部分。一个或更多个数据存储1050(或者计算机数据存储装置)被描绘为单个部件,但是可以具体化为一个或更多个数据存储(例如数据库),并且可以至少部分地处于云端。一个或更多个数据存储1050中的一个或更多个可以与图11C的数据存储1050中的一个或更多个相对应。
尽管被描绘为在一个或更多个服务器设备1060和一个或更多个客户端设备1020的外部,但是一个或更多个数据存储1050可以至少部分地在一个或更多个服务器设备1060和/或一个或更多个客户端设备1020的任意组合上实施(例如实施为内存1204(图12))。例如,一些信息可以存储在一个或更多个客户端设备1020上,其他和/或副本信息可以存储在外部(例如在一个或更多个服务器设备1060上)。因此,应当领会,一个或更多个数据存储1050中的信息可以以任何适当的方式跨用于存储的一个或更多个数据存储分布(其可以在外部托管)。例如,一个或更多个数据存储1050可以包括一个或更多个服务器设备1060的一个或更多个计算机可读介质中的至少一些和/或一个或更多个客户端设备1020的一个或更多个计算机可读介质中的至少一些。
一个或更多个传感器1080包括能够生成表示环境的至少一些方面的传感器数据的至少一个传感器。例如,一个或更多个传感器1080可以生成图1A的传感器数据102。一个或更多个传感器1080可以包括一个或更多个的全球导航卫星***(GNSS)传感器(例如全球定位***(GPS)传感器)、RADAR传感器、超声传感器、LIDAR传感器、惯性测量单元(IMU)传感器(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风、立体照相机、广角照相机(例如鱼眼照相机)、红外照相机、环绕照相机(例如360度照相机)、远程和/或中程照相机、速度传感器(例如用于测量车辆1100的速度)、振动传感器、转向传感器、制动传感器(例如作为制动传感器***的部分)和/或其他传感器类型的任意组合。
参照图11A-11C,传感器数据102可以由以下项生成:例如但不限于一个或更多个的全球导航卫星***(GNSS)传感器1168(例如全球定位***传感器)、RADAR传感器1160、超声传感器1162、LIDAR传感器1164、惯性测量单元(IMU)传感器1166(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风1196、立体照相机1168、广角照相机1170(例如鱼眼照相机)、红外照相机1172、环绕照相机1174(例如360度照相机)、远程和/或中程照相机1198、速度传感器1144(例如用于测量车辆1100的速度)、振动传感器1142、转向传感器1140、制动传感器(例如作为制动传感器***1146的部分)和/或其他传感器类型。
在一些示例中,传感器数据102可以由诸如广角照相机1170、环绕照相机1174、立体照相机1168和/或远程或中程照相机1198之类的前向和/或侧向照相机生成。在一些示例中,超过一个照相机或其他传感器可以用来合并多个视场(例如图11B的远程照相机1198、前向立体照相机1168和/或前向广角照相机1170的视场)。
示例自主车辆
图11A为根据本公开一些实施例的示例自主车辆1100的图示。自主车辆1100(可替代地,在本文称为“车辆1100”)可以包括乘用车,例如汽车、卡车、公共汽车和/或容纳一个或更多个乘客的另一种类型的车辆。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“TaxonomyandDefinitionsforTermsRelatedtoDrivingAutomationSystemsforOn-RoadMotorVehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆1100可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆1100可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆1100可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆1100可以包括推进***1150,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。推进***1150可以连接到可以包括变速器的车辆1100的传动系以便实现车辆1100的推进。可以响应于接收到来自油门/加速器1152的信号而控制推进***1150。
可以包括方向盘的转向(steering)***1154可以用来在推进***1150操作时(例如在车辆运动时)使车辆1100转向(例如沿着希望的路径或路线)。转向***1154可以接收来自转向执行器1156的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***1146可以用来响应于接收到来自制动执行器1148和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上***(SoC)1104(图11C)和/或一个或更多个GPU的一个或更多个控制器1136可以向车辆1100的一个或更多个部件和/或***提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动执行器1148操作车辆制动器、经由一个或更多个转向执行器1156操作转向***1154、经由一个或更多个油门/加速器1152操作推进***1150的信号。一个或更多个控制器1136可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆1100。一个或更多个控制器1136可以包括用于自主驾驶功能的第一控制器1136、用于功能性安全功能的第二控制器1136、用于人工智能功能(例如计算机视觉)的第三控制器1136、用于信息娱乐功能的第四控制器1136、用于紧急情况下的冗余的第五控制器1136和/或其他控制器。在一些示例中,单个控制器1136可以处理上述功能中的两个或更多,两个或更多控制器1136可以处理单个功能,和/或其任意组合。
一个或更多个控制器1136可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆1100的一个或更多个部件和/或***的信号。传感器数据可以接收自例如且不限于全球导航卫星***传感器1158(例如全球定位***传感器)、RADAR传感器1160、超声传感器1162、LIDAR传感器1164、惯性测量单元(IMU)传感器1166(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风1196、立体照相机1168、广角照相机1170(例如鱼眼照相机)、红外照相机1172、环绕照相机1174(例如360度照相机)、远程和/或中程照相机1198、速度传感器1144(例如用于测量车辆1100的速率)、振动传感器1142、转向传感器1140、制动传感器(例如作为制动传感器***1146的部分)和/或其他传感器类型。
控制器1136中的一个或更多个可以接收来自车辆1100的仪表组1132的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器1134、听觉信号器、扬声器和/或经由车辆1100的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图11C的HD地图1122)、位置数据(例如,车辆1100例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器1136所感知的关于对象和对象状态的信息等等。例如,HMI显示器1134可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆1100进一步包括网络接口1124,其可以使用一个或更多个无线天线1126和/或调制解调器通过一个或更多个网络通信。例如,网络接口1124可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线1126也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图11B为根据本公开一些实施例的用于图11A的示例自主车辆1100的照相机位置和视场的示例。照相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的照相机,和/或这些照相机可以位于车辆1100上的不同位置。
用于照相机的照相机类型可以包括但不限于可以适于与车辆1100的部件和/或***一起使用的数字照相机。所述照相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。照相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、1520fps、240fps等等,这取决于实施例。照相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、FoveonX3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的照相机之类的清晰像素照相机可以用在提高光敏感度的努力中。
在一些示例中,所述照相机中的一个或更多个可以用来执行高级驾驶员辅助***(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目照相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述照相机中的一个或更多个(例如全部照相机)可以同时记录和提供图像数据(例如视频)。
所述照相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰照相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得照相机安装板匹配翼镜的形状。在一些示例中,一个或更多个照相机可以集成到翼镜中。对于侧视照相机而言,一个或更多个照相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆1100前面的环境部分的视场的照相机(例如前置照相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器1136和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置照相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置照相机也可以用于ADAS功能和***,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的照相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目照相机平台。另一个示例可以是广角照相机1170,其可以用来感知从周边进入视场的对象(例如行人、十字路***通或者自行车)。尽管图11B中图示出仅仅一个广角照相机,但是在车辆1100上可以存在任意数量的广角照相机1170。此外,远程照相机1198(例如长视立体照相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程照相机1198也可以用于对象检测和分类以及基本的对象跟踪。
一个或更多个立体照相机1168也可以包括在前置配置中。立体照相机1168可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体照相机1168可以包括紧凑型立体视觉传感器,其可以包括两个照相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体照相机1168。
具有包括车辆1100的侧面的环境部分的视场的照相机(例如侧视照相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕照相机1174(例如如图11B中所示的四个环绕照相机1174)可以置于车辆1100上。环绕照相机1174可以包括广角照相机1170、鱼眼照相机、360度照相机和/或类似物。四个示例,四个鱼眼照相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕照相机1174(例如左边、右边和后面),并且可以利用一个或更多个其他照相机(例如前向照相机)作为第四环视照相机。
具有包括车辆1100的后面的环境部分的视场的照相机(例如后视照相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的照相机,包括但不限于也适合作为如本文所描述的前置照相机(例如远程和/或中程照相机1198、立体照相机1168、红外照相机1172等等)的照相机。
图11C为根据本公开一些实施例的用于图11A的示例自主车辆1100的示例***架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图11C中车辆1100的部件、特征和***中的每一个被图示为经由总线1102连接。总线1102可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆1100内部的网络,用来辅助控制车辆1100的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CANID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASILB兼容的。
尽管这里将总线1102描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线1102,但是这并不意图是限制性的。例如,可以存在任意数量的总线1102,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线1102可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线1102可以用于碰撞避免功能,并且第二总线1102可以用于驱动控制。在任何示例中,每条总线1102可以与车辆1100的任何部件通信,并且两条或更多总线1102可以与相同的部件通信。在一些示例中,车辆内的每个SoC1104、每个控制器1136和/或每个计算机可以有权访问相同的输入数据(例如来自车辆1100的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆1100可以包括一个或更多个控制器1136,例如本文关于图11A所描述的那些控制器。控制器1136可以用于各种各样的功能。控制器1136可以耦合到车辆1100的任何其他不同的部件和***,并且可以用于车辆1100的控制、车辆1100的人工智能、用于车辆1100的信息娱乐和/或类似物。
车辆1100可以包括一个或更多个片上***(SoC)1104。SoC1104可以包括CPU1106、GPU1108、处理器1110、高速缓存1112、加速器1114、数据存储1116和/或未图示出的其他部件和特征。在各种各样的平台和***中,SoC1104可以用来控制车辆1100。例如,一个或更多个SoC1104可以在***(例如车辆1100的***)中与HD地图1122结合,所述HD地图可以经由网络接口1124从一个或更多个服务器(例如图11D的一个或更多个服务器1178)获得地图刷新和/或更新。
CPU1106可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU1106可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU1106在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU1106可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MBL2高速缓存)。CPU1106(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU1106的簇的任意组合能够在任何给定时间是活动的。
CPU1106可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU1106可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU1108可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU1108可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU1108可以使用增强张量指令集。GPU1108可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU1108可以包括至少八个流式微处理器。GPU1108可以使用计算应用编程接口(API)。此外,GPU1108可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU1108进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU1108。然而,这并不意图是限制性的,并且GPU1108可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU1108可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GBHBM2内存子***。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU1108可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU1108直接访问CPU1106页表。在这样的示例中,当GPU1108内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU1106。作为响应,CPU1106可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU1108。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU1106和GPU1108二者的内存,从而简化了GPU1108编程和将应用程序移(port)到GPU1108。
此外,GPU1108可以包括访问计数器,其可以跟踪GPU1108访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC1104可以包括任意数量的高速缓存1112,包括本文描述的那些高速缓存。例如,高速缓存1112可以包括CPU1106和GPU1108二者可用的L3高速缓存(例如,其连接到CPU1106和GPU1108二者)。高速缓存1112可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC1104可以包括一个或更多个加速器1114(例如硬件加速器、软件加速器或者其组合)。例如,SoC1104可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MBSRAM)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充GPU1108,并且卸载GPU1108的一些任务(例如释放GPU1108的更多周期以用于执行其他任务)。作为一个示例,加速器1114可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器1114(例如硬件加速簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自照相机传感器的数据进行对象识别和检测的CNN;用于使用来自照相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自照相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU1108的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU1108针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU1108和/或其他加速器1114。
加速器1114(例如硬件加速簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何照相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作***(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU1106访问***内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子***分区。PVA核可以包括处理器子***、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体***安全性。
加速器1114(例如硬件加速簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器1114的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MBSRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级***总线(APB)接口、配置电路***、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO26262或者IEC612508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC1104可以包括例如在2018年8月10日提交的美国专利申请No.16/101,1232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR***仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。
加速器1114(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目照相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得***能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,***可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)***中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子***)获得的地平面估计,与车辆1100取向、距离相关的惯性测量单元(IMU)传感器1166输出,从神经网络和/或其他传感器(例如LIDAR传感器1164或RADAR传感器1160)获得的对象的3D位置估计等。
SoC1104可以包括一个或更多个数据存储1116(例如内存)。数据存储1116可以是SoC1104的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储1116可以容量足够大以存储神经网络的多个实例。数据存储1112可以包括L2或L3高速缓存1112。对数据存储1116的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器1114关联的内存的引用。
SoC1104可以包括一个或更多个处理器1110(例如嵌入式处理器)。处理器1110可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子***。启动和功率管理处理器可以是SoC1104启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助***低功率状态转换、SoC1104热和温度传感器管理和/或SoC1104功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC1104可以使用环形振荡器检测CPU1106、GPU1108和/或加速器1114的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC1104置于较低功率状态和/或将车辆1100置于司机安全停车模式(例如使车辆1100安全停车)。
处理器1110可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子***,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器1110可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持***设备(例如定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器1110可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子***。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持***设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器1110可以进一步包括实时照相机引擎,其可以包括用于处理实时照相机管理的专用处理器子***。
处理器1110可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是照相机处理管线的部分。
处理器1110可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角照相机1170、环绕照相机1174和/或对驾驶室内监控照相机传感器执行镜头畸变校正。驾驶室内监控照相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内***可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐***和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作***桌面正在使用并且GPU1108无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU1108上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU1108的负担以提高性能和响应能力。
SoC1104可以进一步包括用于从照相机接收视频和输入的移动行业处理器接口(MIPI)照相机串行接口、高速接口和/或可以用于照相机和有关像素输入功能的视频输入块。SoC1104可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC1104可以进一步包括大范围的***设备接口,以使能与***设备、音频编解码器、功率管理和/或其他设备通信。SoC1104可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)照相机、传感器(例如可以通过以太网连接的LIDAR传感器1164、RADAR传感器1160等等)的数据,来自总线1102的数据(例如车辆1100的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器1158的数据。SoC1104可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU1106。
SoC1104可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学***台的综合功能安全架构。SoC1104可以比常规的***更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU1106、GPU1108和数据存储1116结合时,加速器1114可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规***实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规***形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU1120)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU1108上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自照相机传感器的数据识别车辆1100的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC1104提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风1196的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规***形成对比的是,SoC1104使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器1158所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器1162的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC1104的CPU1118(例如分立的CPU或dCPU)。CPU1118可以包括例如X86处理器。CPU1118可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC1104之间潜在地不一致的结果,和/或监控控制器1136和/或信息娱乐SoC1130的状态和健康状况。
车辆1100可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC1104的GPU1120(例如分立的GPU或dGPU)。GPU1120可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆1100的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆1100可以进一步包括网络接口1124,该网络接口可以包括一个或更多个无线天线1126(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口1124可以用来使能通过因特网与云(例如与服务器1178和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆1100提供关于接近车辆1100的车辆(例如车辆1100前面、侧面和/或后面的车辆)的信息。该功能可以是车辆1100的协作自适应巡航控制功能的部分。
网络接口1124可以包括提供调制和解调功能并且使得控制器1136能够通过无线网络通信的SoC。网络接口1124可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆1100可以进一步包括可包括片外(例如SoC1104外)存储装置的数据存储1128。数据存储1128可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆1100可以进一步包括GNSS传感器1158。GNSS传感器1158(例如GPS和/或辅助GPS传感器)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器1158,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆1100可以进一步包括RADAR传感器1160。RADAR传感器1160可以甚至在黑暗和/或恶劣天气条件下也由车辆1100用于远程车辆检测。RADAR功能安全级别可以是ASILB。RADAR传感器1160可以使用CAN和/或总线1102(例如以传输RADAR传感器1160生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器1160可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器1160可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器1160可以帮助区分静态对象和运动对象,并且可以由ADAS***用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆1100的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆1100的车道的车辆成为可能。
作为一个示例,中程RADAR***可以包括高达1460m(前面)或80m(后面)的范围以及高达42度(前面)或1450度(后面)的视场。短程RADAR***可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器***可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR***可以在ADAS***中用于盲点检测和/或变道辅助。
车辆1100可以进一步包括超声传感器1162。可以置于车辆1100的前面、后面和/或侧面的超声传感器1162可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器1162,并且不同的超声传感器1162可以用于不同的检测范围(例如2.5m、4m)。超声传感器1162可以操作于功能安全级别的ASILB。
车辆1100可以包括LIDAR传感器1164。LIDAR传感器1164可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器1164可以为功能安全级别的ASILB。在一些示例中,车辆1100可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器1164(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器1164可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器1164可以具有例如近似1400m的广告范围,精度为2cm-3cm,支持1400Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器1164。在这样的示例中,LIDAR传感器1164可以实现为可以嵌入到车辆1100的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器1164可以甚至对于低反射率对象提供高达1420度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器1164可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆1100的每一侧一个。可用的3D闪光LIDAR***包括没有风扇以外的运动部件(movingpart)的固态3D凝视阵列LIDAR照相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器1164可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以进一步包括IMU传感器1166。在一些示例中,IMU传感器1166可以位于车辆1100的后轴的中心。IMU传感器1166可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器1166可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器1166可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器1166可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合微机电***(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器1166可以使得车辆1100能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器1166的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器1166和GNSS传感器1158可以结合到单个集成单元中。
该车辆可以包括置于车辆1100中和/或车辆1100周围的麦克风1196。除别的以外,麦克风1196可以用于应急车辆检测和识别。
该车辆可以进一步包括任意数量的照相机类型,包括立体照相机1168、广角照相机1170、红外照相机1172、环绕照相机1174、远程和/或中程照相机1198和/或其他照相机类型。这些照相机可以用来捕获车辆1100整个***周围的图像数据。使用的照相机类型取决于实施例和车辆1100的要求,并且照相机类型的任意组合可以用来提供车辆1100周围的必要覆盖。此外,照相机的数量可以根据实施例而不同。例如,该车辆可以包括六个照相机、七个照相机、十个照相机、十二个照相机和/或另一数量的照相机。作为一个示例且非限制性地,这些照相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述照相机中的每一个在本文关于图11A和图11B更详细地进行了描述。
车辆1100可以进一步包括振动传感器1142。振动传感器1142可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器1142时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆1100可以包括ADAS***1138。在一些示例中,ADAS***1138可以包括SoC。ADAS***1138可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器1160、LIDAR传感器1164和/或照相机。ACC***可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆1100前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆1100改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口1124和/或无线天线1126经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆1100前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或者二者。给定车辆1100前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW***被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置照相机和/或RADAR传感器1160,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW***可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB***检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置照相机和/或RADAR传感器1160。当AEB***检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB***可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW***提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆1100穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW***。LDW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向照相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA***是LDW***的变型。如果车辆1100开始离开车道,那么LKA***提供纠正车辆1100的转向输入或制动。
BSW***检测并向驾驶员警告汽车盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。***可以在驾驶员使用转弯信号时提供附加的警告。BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向照相机和/或RADAR传感器1160,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW***可以在车辆1100倒车时在后置照相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB以确保应用车辆制动器以避免撞车。RCTW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器1160,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS***可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS***提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆1100中,在冲突结果的情况下,车辆1100本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器1136或第二控制器1136)的结果。例如,在一些实施例中,ADAS***1138可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS***1138的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW***时,监督MCU中的神经网络可以了解FCW***何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于照相机的LDW***时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC1104的部件和/或作为SoC1104的部件而被包括。
在其他示例中,ADAS***1138可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个***更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS***1138的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***1138由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆1100可以进一步包括信息娱乐SoC1130(例如车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但是信息娱乐***可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC1130可以包括可以用来向车辆1100提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航***,后停车援助,无线电数据***,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC1130可以包括收音机、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器1134、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或***,和/或与其交互)和/或其他部件。信息娱乐SoC1130可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS***1138的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC1130可以包括GPU功能。信息娱乐SoC1130可以通过总线1102(例如CAN总线、以太网等)与车辆1100的其他设备、***和/或部件通信。在一些示例中,信息娱乐SoC1130可以耦合至监督MCU,使得在主控制器1136(例如车辆1100的主和/或备用计算机)出现故障的情况下,信息娱乐***的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC1130可以如本文所描述的将车辆1100置于司机安全停车模式。
车辆1100可以进一步包括仪表组1132(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组1132可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组1132可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)***信息、照明控件、安全***控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC1130和仪表组1132之间共享。换言之,仪表组1132可以作为信息娱乐SoC1130的部分而被包括,或者反之亦然。
图11D为根据本公开一些实施例的基于云的服务器与图11A的示例自主车辆1100之间的通信的***示意图。***1176可以包括服务器1178、网络1190以及包括车辆1100在内的车辆。服务器1178可以包括多个GPU1184(A)-1284(H)(这里统称为GPU1184)、PCIe交换机1182(A)-1182(H)(这里统称为PCIe交换机1182)和/或CPU1180(A)-1180(B)(这里统称为CPU1180)。GPU1184、CPU1180和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口1188之类的高速互连和/或PCIe连接1186互连。在一些示例中,GPU1184经由NVLink和/或NVSwitchSoC连接,并且GPU1184和PCIe交换机1182经由PCIe互连连接。尽管图示出八个GPU1184、两个CPU1180和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器1178中的每一个可以包括任意数量的GPU1184、CPU1180和/或PCIe交换机。例如,服务器1178中的每一个可以包括八个、十六个、三十二个和/或更多GPU1184。
服务器1178可以通过网络1190并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器1178可以通过网络1190并且向车辆传输神经网络1192、更新的神经网络1192和/或地图信息1194,包括关于交通和道路状况的信息。对地图信息1194的更新可以包括对于HD地图1122的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络1192、更新的神经网络1192和/或地图信息1194可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或至少部分地基于数据中心处执行的训练(例如使用服务器1178和/或其他服务器)的经验产生。
服务器1178可以用来至少部分地基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络1190传输至车辆),和/或机器学习模型可以由服务器1178用来远程地监控车辆。
在一些示例中,服务器1178可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器1178可以包括由GPU1184供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器1178可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器1178的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆1100中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆1100的定期更新,例如图像序列和/或车辆1100已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆1100识别的对象相比较,如果结果不匹配并且该基础设施得出车辆1100中的AI发生故障的结论,那么服务器1178可以向车辆1100传输信号,指示车辆1100的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器1178可以包括GPU1184和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT3)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图12为适合用于实现本公开一些实施例的示例计算设备1200的框图,例如对象检测器106和网络502的一个或更多个部分。计算设备1200可以包括直接或间接耦合下列设备的总线1202:内存1204,一个或更多个中央处理单元(CPU)1206,一个或更多个图形处理单元(GPU)1208,通信接口1210,输入/输出(I/O)端口1212,输入/输出组件1214,电源1216,以及一个或更多个呈现组件1218(例如显示器)。
尽管图12的各个框被示为经由具有线路的总线1202连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件1218可以被认为是I/O组件1214(例如如果显示器为触摸屏)。作为另一个示例,CPU1206和/或GPU1208可以包括内存(例如,内存1204可以表示除了GPU1208、CPU1206和/或其他组件的内存以外的存储设备)。换言之,图12的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型之类的类别之间不进行区分,因为所有这些都被考虑在图12的计算设备的范围内。
总线1202可以表示一条或更多条总线,例如地址总线、数据总线、控制总线或者其组合。总线1202可以包括一种或更多种总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连快速(PCIe)总线,和/或另一种类型的总线。
内存1204可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备1200访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,内存1204可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备1200访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
通信介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
CPU1206可以被配置为执行计算机可读指令以便控制计算设备1200的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个(例如,图2、5A和7-9中的过程)。CPU1206中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU1206可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备1200的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备1200的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备1200还可以包括一个或更多个CPU1206。
GPU1208可以由计算设备1200用来渲染图形(例如3D图形)。GPU1208可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU1208可以响应于渲染命令(例如经由主机接口接收的来自CPU1206的渲染命令)而生成用于输出图像的像素数据。GPU1208可以包括诸如显示内存之类的用于存储像素数据的图形内存。显示内存可以作为内存1204的部分而被包括。GPU1208可以包括(例如经由链路)并行操作的两个或更多GPU。当组合在一起时,每个GPU1208可以生成用于输出图像的不同部分或者用于不同输出图像的像素数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的内存,或者可以与其他GPU共享内存。
在其中计算设备1200不包括GPU1208的示例中,CPU1206可以用来渲染图形。
通信接口1210可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备1200能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口1210可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口1212可以使得计算设备1200能够逻辑地耦合到包括I/O组件1214、呈现组件1218和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备1200中。说明性I/O组件1214包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件1214可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备1200的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备1200可以包括诸如立体照相机***之类的深度照相机、红外照相机***、RGB照相机***、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备1200可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备1200用来渲染沉浸式增强现实或者虚拟现实。
电源1216可以包括硬接线电源、电池电源或者其组合。电源1216可以向计算设备1200供电以使得计算设备1200的组件能够操作。
呈现组件1218可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件1218可以接收来自其他组件(例如GPU1208、CPU1206等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。在一方面,呈现组件可显示描绘停车位、停车位入口或其任何组合的图像(例如,525)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。进一步,“元素A和元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

Claims (20)

1.一种计算机实现的方法,包括:将表示停车位的图像数据应用到神经网络;使用所述神经网络接收由所述图像数据生成的并表示到锚形状的角点的位移值的数据;根据到所述锚形状的角点的所述位移值确定倾斜多边形的角点;计算所述倾斜多边形的所述角点与所述停车位的地面实况角点之间的第一距离;至少部分地基于所述第一距离确定样本评级;以及基于所述样本评级低于阈值,使用所述锚形状作为正训练样本更新所述神经网络的参数。
2.如权利要求1所述的方法,其中所述第一距离包括最小聚合距离,并且其中所述样本评级是所述最小聚合距离的归一化版本。
3.如权利要求1所述的方法,其中确定所述样本评级包括至少部分地基于由所述停车位的所述地面实况角点定义的多边形的面积来归一化所述第一距离。
4.如权利要求1所述的方法,其中所述倾斜多边形是第一倾斜四边形并且所述锚形状是第二倾斜四边形。
5.如权利要求1所述的方法,其中所述锚形状是由一个或更多个地面实况样本生成的数据驱动的锚框。
6.如权利要求1所述的方法,其中所述第一距离是所述倾斜多边形的所述角点的不同组合与所述停车位的所述地面实况角点之间的最小平均距离。
7.如权利要求1所述的方法,其中所述斜多边形的所述角点包括第一角(A1)、第二角(A2)、第三角(A3)和第四角(A4);其中,所述停车位的所述地面实况角点的角点包括第五角(B1)、第六角(B2)、第七角(B3)和第八角(B4);并且其中计算所述第一距离包括根据距离(A1,B1)、(A2,B2)、(A3,B3)和(A4,B4)计算第一归一化聚合距离;根据距离(A1,B2)、(A2,B3)、(A3,B4)和(A4,B1)计算第二归一化聚合距离;根据距离(A1,B3)、(A2,B4)、(A3,B1)和(A4,B2)计算第三归一化聚合距离;以及根据距离(A1,B4)、(A2,B1)、(A3,B2)和(A4,B3)计算第四归一化聚合距离,并且所述第一距离是所述第一归一化聚合距离、所述第二归一化聚合距离、所述第三归一化聚合距离和所述第四归一化聚合距离中的最小值。
8.一种计算机实现的方法,包括:将表示环境中的至少一个传感器的视场的传感器数据应用于神经网络;从所述神经网络接收由所述传感器数据生成的第一数据和第二数据,所述第一数据表示到锚形状的角点的位移值,以及所述第二数据表示预测所述锚形状对应于所述至少一个传感器的所述视场内的停车位的可能性的置信值;以及至少部分地基于所述置信值超过阈值,确定与所述锚形状的角点的所述位移值相对应的倾斜多边形的角点。
9.如权利要求8所述的方法,其中所述锚形状是与所述神经网络的空间元素相关联的多个锚形状,并且针对所述多个锚形状的每个给定锚形状,所述神经网络输出表示到所述给定锚形状的角点的位移值和预测所述给定锚形状对应于所述至少一个传感器的所述视场中的相应停车位的相应可能性的置信值的数据。
10.如权利要求8所述的方法,其中所述锚形状是与所述神经网络的空间元素的网格相关联的多个锚形状,并且针对所述多个锚形状的每个给定锚形状,所述神经网络输出表示到所述给定锚形状的角点的位移值和预测所述给定锚形状对应于所述至少一个传感器的所述视场中的相应停车位的相应可能性的置信值的数据。
11.如权利要求8所述的方法,其中所述传感器数据包括表示相机的视场的图像数据。
12.如权利要求8所述的方法,其中所述锚形状是与所述神经网络的一个或更多个空间元素相关联的多个锚形状,并且所述多个锚形状包括不同形状的倾斜多边形。
13.如权利要求8所述的方法,其中所述倾斜多边形是第一倾斜四边形并且所述锚形状是第二倾斜四边形。
14.如权利要求8所述的方法,还包括:从所述神经网络接收表示预测所述倾斜多边形的角点在所述至少一个传感器的所述视场中定义所述停车位的入口的可能性的置信值的第三数据;至少部分地基于所述置信值选择所述锚形状的所述角点的子集;以及根据所述角点的所述子集识别所述停车位的所述入口。
15.如权利要求8所述的方法,还包括至少部分地基于所述倾斜多边形的所述角点来控制自主车辆的一个或更多个操作。
16.一种计算机实现的方法,包括:将表示环境中的至少一个传感器的视场的传感器数据应用到神经网络;从所述神经网络接收由所述图像数据生成的第一数据和第二数据,所述第一数据表示到锚形状的角点的位移值,以及所述第二数据表示预测所述锚形状的所述角点在所述至少一个传感器的所述视场中定义停车位的入口的可能性的置信值;基于所述置信值选择所述锚形状的所述角点的子集;以及根据所述角点的所述子集识别所述停车位的所述入口。
17.如权利要求16所述的计算机实现的方法,还包括:根据到所述锚形状的所述角点的所述位移值确定倾斜多边形的角点;以及至少部分地基于所述倾斜多边形的角点和所述停车位的所述入口来控制自主车辆的一个或更多个操作。
18.如权利要求16所述的方法,其中所述锚形状是倾斜多边形。
19.如权利要求16所述的方法,其中所述锚形状是与所述神经网络的空间元素相关联的多个锚形状,并且针对所述多个锚形状的每个给定锚形状,所述神经网络输出表示到所述给定锚形状的角点的所述位移值和预测所述给定锚形状的角点定义的所述至少一个传感器的所述视场中的相应停车位的给定入口的相应可能性的置信值的数据。
20.如权利要求16所述的方法,其中所述锚形状是与所述神经网络的空间元素的网格相关联的多个锚形状,并且针对所述多个锚形状数据的每个给定锚形状,所述神经网络输出表示到所述给定锚点形状的角点的位移值和预测所述给定锚形状的角点定义的所述至少一个传感器的所述视场中的相应停车位的给定入口的相应可能性的置信值的数据。
CN202080021666.9A 2019-03-16 2020-03-16 使用适合停车位检测的倾斜多边形进行对象检测 Pending CN113632095A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962819544P 2019-03-16 2019-03-16
US62/819,544 2019-03-16
PCT/US2020/022997 WO2020190880A1 (en) 2019-03-16 2020-03-16 Object detection using skewed polygons suitable for parking space detection

Publications (1)

Publication Number Publication Date
CN113632095A true CN113632095A (zh) 2021-11-09

Family

ID=72422700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080021666.9A Pending CN113632095A (zh) 2019-03-16 2020-03-16 使用适合停车位检测的倾斜多边形进行对象检测

Country Status (5)

Country Link
US (3) US11195331B2 (zh)
JP (1) JP7399164B2 (zh)
CN (1) CN113632095A (zh)
DE (1) DE112020000369T5 (zh)
WO (1) WO2020190880A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
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
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
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
CA3115784A1 (en) 2018-10-11 2020-04-16 Matthew John COOPER 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
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
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
JP7367375B2 (ja) * 2019-08-07 2023-10-24 株式会社アイシン 特定領域検知装置
DE102019216511A1 (de) * 2019-10-25 2021-04-29 Robert Bosch Gmbh Verfahren zur Detektion und Wiedererkennung von Objekten mit einem neuronalen Netz
US11176823B2 (en) * 2020-03-30 2021-11-16 Ford Global Technologies, Llc Enhanced vehicle operation
US11884263B2 (en) * 2020-08-26 2024-01-30 Ford Global Technologies, Llc Vehicle parking control
US11734837B2 (en) * 2020-09-30 2023-08-22 Shanghai United Imaging Intelligence Co., Ltd. Systems and methods for motion estimation
DE102020213159A1 (de) * 2020-10-19 2022-04-21 BSH Hausgeräte GmbH Haushaltsgerät und Verfahren zum Betreiben desselben
CN112580508A (zh) * 2020-12-18 2021-03-30 蔚来汽车科技(安徽)有限公司 停车位角点修正方法以及停车位角点修正***、车辆
KR102671989B1 (ko) * 2020-12-21 2024-06-04 현대모비스 주식회사 차량용 카메라 및 이를 구비한 주차보조 장치
US11443627B2 (en) * 2020-12-23 2022-09-13 Telenav, Inc. Navigation system with parking space identification mechanism and method of operation thereof
US20210304426A1 (en) * 2020-12-23 2021-09-30 Intel Corporation Writing/drawing-to-digital asset extractor
CN112348817B (zh) * 2021-01-08 2021-05-11 深圳佑驾创新科技有限公司 车位识别方法、装置、车载终端和存储介质
CN112874510B (zh) * 2021-02-02 2022-09-16 江苏大学 一种基于半监督学习的自动编码器在自动泊车中车位探测的方法
US20220297673A1 (en) * 2021-03-18 2022-09-22 DUS Operating, Inc. Surround view localization of a vehicle
DE102021204030A1 (de) * 2021-04-22 2022-10-27 Continental Autonomous Mobility Germany GmbH Detektion von einzelnen freien markierten Zielflächen aus Bildern eines Kamerasystems einer Bewegungsvorrichtung
TWI802958B (zh) * 2021-08-13 2023-05-21 國立陽明交通大學 停車場空位偵測方法及系統
DE102021124404B3 (de) 2021-09-21 2023-01-12 Cariad Se Verfahren und Vorrichtung zum Ermitteln eines Gütewerts eines Parkraums
DE102021127748A1 (de) 2021-10-26 2023-04-27 Valeo Schalter Und Sensoren Gmbh Verfahren, computerprogrammprodukt, parkassistenzsystem und fahrzeug
CN114119733A (zh) * 2022-01-27 2022-03-01 成都合能创越软件有限公司 物体空间位置检测方法、装置、计算机设备及其存储介质
CN114743169A (zh) * 2022-04-11 2022-07-12 南京领行科技股份有限公司 一种对象的异常检测方法、装置、电子设备及存储介质
DE102022205910A1 (de) 2022-06-10 2023-12-21 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Erkennen eines Parkplatzes für ein Fahrzeug mithilfe maschineller Lernverfahren
DE102022208049A1 (de) * 2022-08-03 2024-02-08 Continental Autonomous Mobility Germany GmbH Verfahren zum Ermitteln einer Parklücke mithilfe eines faltenden neuronalen Netzes
DE102022208405A1 (de) * 2022-08-12 2024-02-15 Continental Autonomous Mobility Germany GmbH Verfahren zur Bestimmung einer Parklücke und einer Zielposition eines Fahrzeugs in der Parklücke
CO2022011603A1 (es) * 2022-08-17 2024-02-26 Univ Simon Bolivar Proceso de inteligencia artificial para pronosticar el tamaño de objetos
CN118072545A (zh) * 2022-11-22 2024-05-24 华为技术有限公司 一种车位开口检测方法及装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100096757A (ko) * 2009-02-25 2010-09-02 주식회사 만도 주차 제어 방법 및 그 장치
US20160093214A1 (en) * 2014-09-30 2016-03-31 Xerox Corporation Vision-based on-street parked vehicle detection via normalized-view classifiers and temporal filtering
CN106384532A (zh) * 2015-07-31 2017-02-08 富士通株式会社 视频数据分析方法、装置以及停车位监控***
US20170206431A1 (en) * 2016-01-20 2017-07-20 Microsoft Technology Licensing, Llc Object detection and classification in images
US20170294121A1 (en) * 2016-04-12 2017-10-12 Ford Global Technologies, Llc Detecting available parking spaces
EP3349201A1 (en) * 2017-01-12 2018-07-18 Alpine Electronics, Inc. Parking assist method and vehicle parking assist system
US20180232583A1 (en) * 2017-02-16 2018-08-16 Honda Motor Co., Ltd. Systems for generating parking maps and methods thereof
US20180239968A1 (en) * 2017-02-20 2018-08-23 Volkswagen Aktiengesellschaft Method of generating segmented vehicle image data, corresponding system, and vehicle
US20180253645A1 (en) * 2017-03-03 2018-09-06 International Business Machines Corporation Triage of training data for acceleration of large-scale machine learning
CN108875577A (zh) * 2018-05-11 2018-11-23 深圳市易成自动驾驶技术有限公司 目标检测方法、装置及计算机可读存储介质
CN109063559A (zh) * 2018-06-28 2018-12-21 东南大学 一种基于改良区域回归的行人检测方法
CN109086708A (zh) * 2018-07-25 2018-12-25 深圳大学 一种基于深度学习的停车位检测方法及***

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8120624B2 (en) * 2002-07-16 2012-02-21 Noregin Assets N.V. L.L.C. Detail-in-context lenses for digital image cropping, measurement and online maps
US9488674B2 (en) 2014-07-09 2016-11-08 Infineon Technologies Ag Testing device and a circuit arrangement
US20180025640A1 (en) * 2016-07-19 2018-01-25 Ford Global Technologies, Llc Using Virtual Data To Test And Train Parking Space Detection Systems
JP7060334B2 (ja) 2017-03-30 2022-04-26 株式会社デンソーテン 学習データ収集装置、学習データ収集システムおよび学習データ収集方法
US20190101924A1 (en) * 2017-10-03 2019-04-04 Uber Technologies, Inc. Anomaly Detection Systems and Methods for Autonomous Vehicles
US10836379B2 (en) * 2018-03-23 2020-11-17 Sf Motors, Inc. Multi-network-based path generation for vehicle parking
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11077878B2 (en) * 2018-11-02 2021-08-03 Zoox, Inc. Dynamic lane biasing
US11208096B2 (en) * 2018-11-02 2021-12-28 Zoox, Inc. Cost scaling in trajectory generation
US11110918B2 (en) * 2018-11-02 2021-09-07 Zoox, Inc. Dynamic collision checking
US11048260B2 (en) * 2018-11-02 2021-06-29 Zoox, Inc. Adaptive scaling in trajectory generation
US10755571B1 (en) * 2019-03-01 2020-08-25 Amazon Technologies, Inc. Identifying parking location using single camera reverse projection
US11550324B2 (en) * 2019-09-30 2023-01-10 Zoox, Inc. Parking zone detection for vehicles

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100096757A (ko) * 2009-02-25 2010-09-02 주식회사 만도 주차 제어 방법 및 그 장치
US20160093214A1 (en) * 2014-09-30 2016-03-31 Xerox Corporation Vision-based on-street parked vehicle detection via normalized-view classifiers and temporal filtering
CN106384532A (zh) * 2015-07-31 2017-02-08 富士通株式会社 视频数据分析方法、装置以及停车位监控***
US20170206431A1 (en) * 2016-01-20 2017-07-20 Microsoft Technology Licensing, Llc Object detection and classification in images
US20170294121A1 (en) * 2016-04-12 2017-10-12 Ford Global Technologies, Llc Detecting available parking spaces
EP3349201A1 (en) * 2017-01-12 2018-07-18 Alpine Electronics, Inc. Parking assist method and vehicle parking assist system
US20180232583A1 (en) * 2017-02-16 2018-08-16 Honda Motor Co., Ltd. Systems for generating parking maps and methods thereof
US20180239968A1 (en) * 2017-02-20 2018-08-23 Volkswagen Aktiengesellschaft Method of generating segmented vehicle image data, corresponding system, and vehicle
US20180253645A1 (en) * 2017-03-03 2018-09-06 International Business Machines Corporation Triage of training data for acceleration of large-scale machine learning
CN108875577A (zh) * 2018-05-11 2018-11-23 深圳市易成自动驾驶技术有限公司 目标检测方法、装置及计算机可读存储介质
CN109063559A (zh) * 2018-06-28 2018-12-21 东南大学 一种基于改良区域回归的行人检测方法
CN109086708A (zh) * 2018-07-25 2018-12-25 深圳大学 一种基于深度学习的停车位检测方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
徐乐先;陈西江;班亚;黄丹;: "基于深度学习的车位智能检测方法", 中国激光, no. 04, 2 February 2019 (2019-02-02) *
肖永菲;郁钟铭;杨玉成;: "融合Faster R-CNN与ResNet的室外停车场空车位检测", 福建电脑, no. 12, 14 December 2018 (2018-12-14) *

Also Published As

Publication number Publication date
US11941819B2 (en) 2024-03-26
DE112020000369T5 (de) 2021-10-21
US20220092855A1 (en) 2022-03-24
JP2022523614A (ja) 2022-04-26
US11195331B2 (en) 2021-12-07
US20200294310A1 (en) 2020-09-17
US20240169549A1 (en) 2024-05-23
WO2020190880A1 (en) 2020-09-24
JP7399164B2 (ja) 2023-12-15

Similar Documents

Publication Publication Date Title
US11941819B2 (en) Object detection using skewed polygons suitable for parking space detection
US11604967B2 (en) Stereo depth estimation using deep neural networks
US11508049B2 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications
CN113811886B (zh) 自主机器应用中的路口检测和分类
US20230017261A1 (en) Domain restriction of neural networks through synthetic data pre-training
CN112825136B (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN111133447B (zh) 适于自主驾驶的对象检测和检测置信度的方法和***
CN113139642B (zh) 在自主驾驶应用中使用神经网络执行故障检测
CN112989914B (zh) 具有自适应加权输入的注视确定机器学习***
CN111133448A (zh) 使用安全到达时间控制自动驾驶车辆
CN113950702A (zh) 在视频分析应用中使用相关滤波器的多对象跟踪
CN113767389A (zh) 从用于自主机器应用的经变换的真实世界传感器数据模拟逼真的测试数据
CN114450724A (zh) 用于自主机器应用的多活动者环境中的未来轨迹预测
CN114631117A (zh) 使用机器学习的用于自主机器应用的传感器融合
CN114008685A (zh) 用于自主机器应用的路口区域检测和分类
JP2023503729A (ja) 自律運転アプリケーションのための曲線適合を使用するランドマーク検出
CN112347829A (zh) 利用障碍物和车道检测来确定环境中对象的车道分配
CN112825134A (zh) 自主机器应用中使用radar传感器检测障碍物的深度神经网络
CN114270294A (zh) 使用眩光作为输入的注视确定
CN115718302A (zh) 使用LiDAR数据进行的用于自主机器应用的对象跟踪
CN115218888A (zh) 用于更新高清地图的***和方法
CN118251705A (zh) 用于自主***和应用中的使用多个传感器的环绕场景感知
CN117581117A (zh) 自主机器***和应用中使用LiDAR数据的动态对象检测
CN116106905A (zh) 基于雷达的变道安全***
EP3850539B1 (en) Deep neural network processing for sensor blindness detection in autonomous machine applications

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