CN114332907A - 包括使用神经网络进行鲁棒预测的背景修改的数据增强 - Google Patents

包括使用神经网络进行鲁棒预测的背景修改的数据增强 Download PDF

Info

Publication number
CN114332907A
CN114332907A CN202111145496.8A CN202111145496A CN114332907A CN 114332907 A CN114332907 A CN 114332907A CN 202111145496 A CN202111145496 A CN 202111145496A CN 114332907 A CN114332907 A CN 114332907A
Authority
CN
China
Prior art keywords
image
background
data
mask
vehicle
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
CN202111145496.8A
Other languages
English (en)
Inventor
N·普里
S·西瓦拉曼
R·谢蒂
N·阿瓦达汗纳姆
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 CN114332907A publication Critical patent/CN114332907A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • 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/56Extraction of image or video features relating to colour
    • 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • 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
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • 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/20081Training; Learning
    • 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/20132Image cropping
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • 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/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

在各种示例中,可以修改对象的背景以生成训练图像。分割掩码可被生成并用于生成包括表示对象的图像数据的对象图像。对象图像可以集成到不同的背景中,并用于训练神经网络中的数据增强。还可以使用色调调整(例如,对象图像的)和/或渲染对应于来自所选视图的对象的三维捕获数据来执行数据增强。可以分析推理分数以选择要包括在训练数据集中的图像的背景。可以选择背景并且可以在训练期间(例如,在时期之间)迭代地将训练图像添加到训练数据集。此外,可以采用使用对象掩码数据的早期或晚期融合来改进由使用对象掩码数据训练的神经网络执行的推理。

Description

包括使用神经网络进行鲁棒预测的背景修改的数据增强
背景技术
当训练神经网络以执行诸如对象分类的预测任务时,经训练的神经网络的准确度通常受到训练数据集的质量的限制。为了训练产生鲁棒的神经网络,网络应该使用具有挑战性的训练图像进行训练。例如,在训练用于手部姿势识别(例如,竖起大拇指、和平手势、拳头等)的神经网络时,网络可能难以检测在某些环境特征前的手部姿势。如果姿势包括伸展的手指,则当姿势位于大部分纯色环境前时网络可能会表现良好,但当姿势位于包括某些颜色图案的环境前时,网络可能会表现不佳。作为另一个示例,网络可能在从某些角度或当环境和手具有相似色调时的某些姿势有困难。
然而,特定训练图像对于神经网络是否具有挑战性可能取决于许多因素,例如正在执行的预测任务、神经网络的架构以及网络看到的其他训练图像。因此,很难通过预期应该使用哪些训练图像来训练网络来构建训练数据集,其将产生鲁棒训练的网络。估计训练图像的哪些特征可能对神经网络具有挑战性是可能的。然而,即使这样的估计是可能且准确的,也可能无法或不切实际地获得足够的展示这些特征的图像以充分训练网络。
发明内容
本公开的实施例涉及包括使用神经网络进行鲁棒预测的背景过滤的数据增强。公开了提供数据增强技术的系统和方法,例如基于背景过滤的那些技术,其可用于增加经训练的神经网络的鲁棒性。
与传统系统相比,本公开提供用于修改对象的背景以生成训练图像。可以生成分割掩码(mask)并用于生成包括表示对象的图像数据的对象图像。对象图像可以被整合到不同的背景中并且用于在训练神经网络中的数据增强。本公开的其他方面提供使用色调调整(例如,对象图像的)和/或对应于来自选定视图方向的对象的渲染三维捕获数据的数据增强。本公开还提供分析推理分数以选择要包括在训练数据集中的图像的背景。在训练期间(例如,在时期之间)可以选择背景并且可以将训练图像迭代地添加到训练数据集中。此外,本公开提供使用对象掩码数据的早期或晚期融合以改进由使用对象掩码数据训练的神经网络执行的推理。
附图说明
下面参照附图详细描述本发明的用于包括使用神经网络进行鲁棒预测的背景过滤的数据增强的系统和方法,其中:
图1是示出了根据本公开的一些实施例的用于至少基于将对象图像与背景整合来训练一个或更多个机器学习模型的示例过程的数据流程图;
图2是示出了根据本公开的一些实施例的用于生成对象图像并将对象图像与一个或更多个背景整合的示例过程的数据流程图;
图3包括根据本公开的一些实施例的可用于生成用于生成对象图像的对象掩码的预处理的示例;
图4是根据本公开的一些实施例的对象的三维捕获可以如何从多个视图被光栅化的图示;
图5A是示出了根据本公开的一些实施例的使用机器学习模型和对象掩码数据的早期融合的推理的示例的数据流程图;
图5B是示出了根据本公开的一些实施例的使用机器学习模型和对象掩码数据的后期融合的推理的示例的数据流程图;
图6是示出了根据本公开的一些实施例的用于至少基于将对象图像与至少一个背景整合来训练一个或更多个机器学习模型的方法的流程图;
图7是示出了根据本公开的一些实施例的使用机器学习模型进行推理的方法的流程图,其中输入对应于图像的掩码和图像的至少一部分;
图8是示出了根据本公开的一些实施例的用于选择用于训练一个或更多个机器学习模型的对象的背景的方法的流程图;
图9是适合用于实施本公开的一些实施例的示例计算设备的框图;
图10是适合用于实施本公开的一些实施例的示例数据中心的框图;
图11A是根据本公开的一些实施例的示例自主车辆的图示;
图11B是根据本公开的一些实施例的图11A的示例自主车辆的相机位置和视野的示例;
图11C是根据本公开的一些实施例的图11A的示例自主车辆的示例系统架构的框图;以及
图11D是根据本公开的一些实施例的基于云的一个或更多个服务器与图11A的示例自主车辆之间的通信的系统图。
具体实施方式
公开了与包括使用神经网络进行鲁棒预测的背景过滤的数据增强相关的系统和方法。本公开的实施例涉及包括使用神经网络进行鲁棒预测的背景过滤的数据增强。公开了提供数据增强技术的系统和方法,例如基于背景过滤的那些技术,其可用于增加经训练的神经网络的鲁棒性。
可以使用各种不同的系统来实施所公开的实施例,例如汽车系统、机器人、航空系统、医疗系统、划船系统、智能区域监控系统、模拟系统和/或其他技术领域。所公开的方法可以用于使用机器学习模型的任何基于感知或更一般地基于图像的分析,例如用于对象和/或环境的监视和/或跟踪。
所公开的技术的应用包括多模式传感器接口,其可以应用在医疗保健的环境中。例如,插管或以其他方式无法说话进行交流的患者可以使用具有由计算系统解释的姿势或手势。所公开技术的应用还包括自主驾驶和/或车辆控制或交互。例如,所公开的技术可用于实施用于图11A-11D的车辆1100的舱内感测的手部姿势或手势识别以控制便利功能,例如多媒体选项的控制。手势识别姿势还可应用于车辆1100的外部环境以控制包括高级驾驶员辅助系统(ADAS)功能在内的多种自主驾驶控制操作中的任一种。
作为各种示例,所公开的技术可以在系统中实施,该系统包括或被包括在用于执行对话式AI或个人辅助操作的系统、用于执行模拟操作的系统、用于执行模拟操作以测试或验证自主机器应用程序的系统、用于执行深度学习操作的系统、使用边缘设备实施的系统、合并一个或更多个虚拟机(VM)的系统、至少部分在数据中心实施的系统、或至少部分使用云计算资源实施的系统中的一个或更多个中。
与传统系统相比,本公开提供识别图像中对应于对象的区域,并使用该区域来过滤、移除、替换或以其他方式修改对象的背景和/或对象本身以生成训练图像。根据本公开,可以生成分割掩码,其标识对应于对象的一个或多个片段以及对应于源图像中对象的背景的一个或更多个片段。分割掩码可以应用于源图像以识别对应于对象的区域,例如,以生成包括表示对象的图像数据的对象图像。对象图像可以整合到不同的背景中,并用于训练神经网络中的数据增强。本公开的其他方面提供使用色调调整(例如,对象图像的)和/或渲染对应于来自选定视图方向的对象的三维捕获数据的数据增强。
本公开的进一步方面提供了用于选择对象的背景以训练神经网络的方法。根据本公开,机器学习模型(MLM)可以至少部分地被训练并且推理数据可以由MLM使用包括不同背景的图像来生成。MLM可以包括训练期间的神经网络或不同的MLM。可以分析对应于推理数据的推理分数以选择训练图像的一个或更多个特征,例如要包括在训练数据集中的图像的特定背景或背景类型。图像可以从现有图像中选择或使用对象图像和背景使用任何合适的方法生成,例如本文描述的那些。在至少一个实施例中,可以选择一个或更多个特征并且可以在训练期间迭代地将一个或更多个对应的训练图像添加到训练数据集。
本公开还提供了使用对象掩码数据来改进由使用对象掩码数据训练的神经网络执行的推理的方法。可以执行后期融合,其中一组推理数据是从源图像生成的,而另一组推理数据是从捕获对象掩码数据的图像生成的,例如对象图像(例如,使用神经网络的两个副本)。这组推理数据可以融合并用于更新神经网络。在进一步的示例中,可以执行早期融合,其中源图像和捕获对象掩码数据的图像被组合并且推理数据是从组合图像生成的。对象掩码数据可用于弱化或以其他方式修改源图像的背景。
现在参考图1,图1是示出了根据本公开的一些实施例的用于至少基于将对象图像与背景整合来训练一个或更多个机器学习模型的示例过程100的数据流程图。例如,关于机器学习模型(MLM)训练系统140来描述过程100。在其他潜在组件中,MLM训练系统140可以包括背景积分器102、MLM训练器104、MLM后处理器106和背景选择器108。
在高级别,过程100可以包括背景积分器102接收一个或更多个背景110(其可以被称为背景图像)和对应于一个或更多个对象(例如,待由MLM122分类、分析和/或检测)的对象图像112。背景积分器102可以将对象图像112与背景110进行整合以产生在一个或更多个图像中捕获(例如,表示)背景110和对象的至少一部分的图像数据。MLM训练器104可以从图像数据产生一个或更多个MLM 122的输入120。MLM 122可以处理输入120以生成一个或更多个输出124。MLM后处理器106可以处理输出124以生成预测数据126(例如推理分数、对象类别标签、对象包围盒或形状等)。背景选择器108可以分析预测数据126并且至少基于预测数据126选择背景110和/或对象中的一个或更多个用于训练。在一些实施例中,过程100可以重复任何次数的迭代,直到一个或更多个MLM 122被充分训练或者背景选择器108可以被单次或间歇地用于为第一次训练迭代和/或任何其他迭代选择背景110。
例如但不限于,本文描述的MLM 122可以包括任何类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、循环、感知器、长/短期记忆(LSTM)、Hopfield、Boltzmann、深度信念、反卷积、生成对抗、液态状态机等)的机器学习模型和/或其他类型的机器学习模型。
过程100可以至少部分地用于训练一个或更多个MLM 122以执行预测任务。本公开集中于姿势识别和/或手势识别,并且更具体地手部姿势识别。然而,所公开的技术广泛适用于训练MLM以执行各种可能的预测任务,例如图像和/或对象分类任务。示例包括对象检测、包围盒或形状确定、对象分类、姿势分类、手势分类等等。例如,图2示出可由输入120捕获到MLM 122的图像246的示例。过程100可用于训练MLM 122以预测图像246中描绘的手的姿势(例如,拇指向上、拇指向下、拳头、和平手势、张开手、OK手势等)。
在一些实施例中,过程100的一个或更多个迭代可以不包括训练一个或更多个MLM122。例如,背景选择器108可以使用迭代来选择一个或更多个背景110和/或对应于对象图像112的对象,以包含在MLM训练器104用于训练的训练数据集中。此外,在一些示例中,过程100可以使用一个MLM 122在一次迭代中为训练数据集选择背景110和/或对象,并且可以使用训练数据集(例如,在过程100或其他随后的迭代中)训练相同或不同的MLM 122。例如,用于从背景110中选择用于训练的MLM 122可以部分地或完全地被训练以执行预测任务。在过程100的迭代使用训练的或部分训练的MLM 122从背景110中选择用于训练另一个MLM 122的情况下,迭代可用于通过选择具有挑战性的用于训练的背景图像和/或背景和对象图像组合来引导其他MLM 122的训练。
在各种示例中,过程100的一次或更多次迭代可形成反馈循环,其中背景选择器108使用迭代(例如,训练时期)的预测数据来选择一个或更多个背景110和/或与对象图像112对应的对象以包含在随后的训练数据集中。在过程100的后续迭代(例如,后续训练时期)中,背景积分器102可生成或以其他方式准备或选择MLM训练器104可将其并入训练数据集中的对应图像。然后可以将训练数据集应用于正在训练的MLM 122,以生成由背景选择器108使用的预测数据126,以选择一个或更多个背景110和/或对应于对象图像112的对象以包含在后续训练数据集中。反馈回路可用于确定增强以确保对正被训练的MLM 122的准确度、泛化性能和鲁棒性的持续改进。
在各种示例中,至少基于背景选择器108选择一个或更多个背景和/或对象,MLM训练器104合并来自背景积分器102的一个或更多个图像,其包括所选背景和/或所选背景以及对象组合。作为示例,MLM训练器104可以将一个或更多个图像添加到用于先前训练迭代和/或时期的训练数据集。训练数据集可以针对每次迭代增长。然而,在一些情况下,MLM训练器104还可以从用于先前训练迭代和/或时期的训练数据集中移除一个或更多个图像(例如,基于背景选择器108的选择用于移除和/或基于训练数据集超过图像的阈值数量)。在所示示例中,背景积分器102可以基于背景选择器108做出的选择在过程100的迭代开始时生成要包括在训练数据集中的一个或更多个图像。在其他示例中,一个或更多个图像可以由背景积分器102预先生成,例如至少部分在使用过程100的任何训练之前和/或在一个或更多个先前迭代期间。在预先生成图像的情况下,MLM训练器104可以基于背景选择器108做出的选择从存储中获取预先生成的图像。
本文描述的背景的选择可以指的是选择背景以包括用于训练的至少一个图像。背景的选择还可以包括选择要包括在具有背景的图像中的对象。在至少一个实施例中,背景选择器108可以至少基于在使用MLM 122做出的一个或更多个预测中MLM 122的置信度来选择背景和/或背景和对象组合。在各种示例中,置信度可以通过一组推理分数来捕获,这些分数对应于一个或更多个MLM 122对一个或更多个图像执行的预测任务的预测。例如,可以在过程100的当前迭代和/或一个或更多个先前迭代中进行预测。推理分数可以指MLM被训练提供或正在被训练提供的关于预测任务或其一部分的分数。在一些示例中,推理分数可以表示MLM关于一个或更多个相应输出124(例如,张量数据)的置信度和/或可以用于确定或计算关于预测任务的置信度。例如,推理分数可以表示MLM 122在属于目标类别的图像中检测到的对象中的置信度(例如,输入120属于目标类别的概率)。
背景选择器108可以使用多种可能的方法基于推理分数来选择背景和/或背景和对象组合中的一个或更多个。在至少一个实施例中,背景选择器108可以至少基于对与包含这些元素的图像相对应的推理分数的分析选择一个或更多个特定背景和/或对象。在至少一个实施例中,背景选择器108可以至少基于对对应于包括具有那些一个或更多个特征(例如,特定背景、特定对象、纹理、颜色、照明条件、对象和/或覆盖、色调、关于图4描述的透视、方向、肤色、大小、主题、包括的背景元素等)的那些元素的图像的推理分数的分析来选择特定类别或类型的或具有一个或更多个其他特定特征的一个或更多个背景和/或对象。例如,背景选择器108可以至少基于共享那些特征的图像的推理分数来选择包括百叶窗和包括张开手掌的手势的至少一个背景。作为另一示例,背景选择器108可以至少基于包括该背景的图像的推理分数来选择特定背景。作为附加示例,背景选择器108可以至少基于包括该背景和对象类别的对象的图像的推理分数来选择特定背景和对象类别的对象(例如,竖起大拇指、大拇指朝下等)。
在一些情况下,推理分数可以由背景选择器108至少基于计算混淆分数来评估。混淆分数可用作量化关于对具有一组特定特征的一个或更多个图像做出的预测的相对网络混淆的度量。在混淆分数超过阈值的情况下(例如,指示足够的混淆),背景选择器108可以选择具有该组特征的至少一些元素(例如,背景或背景和对象组合)来修改训练数据集。在至少一个实施例中,背景的混淆可以至少部分地基于对包括具有一组特征的元素的图像做出的正确和不正确预测的数量。例如,可以至少基于正确和不正确预测之间的比率来计算混淆分数。附加地或替代地,可以至少基于具有一组特征的元素的图像的预测准确度或推理分数的差异来计算混淆分数(例如,指示何时使用特定背景或背景类型,目标类别之间存在很大差异)。
背景选择器108可以至少基于选择一种或更多种不同的元素特性来选择一种或更多种背景和/或背景和对象组合以包括在训练数据集的至少一幅图像中。例如,背景选择器108可以至少基于对应的混淆分数来选择一个或更多个不同的元素特征。背景选择器108可以对不同的特征集合进行排序并且基于排序选择一个或更多个集合用于修改训练数据集。作为非限制性示例,背景选择器108可以选择前N个特定背景或背景和对象组合(或其他特征集),其中N是整数(例如,对于超过阈值的每个混淆分数)。
背景积分器102可以选择、检索(例如,从存储)和/或生成满足背景选择器108做出的选择以修改训练数据集的一个或更多个图像。在背景积分器102从所选背景生成图像的情况下,背景积分器102可以包括图像中的整个背景图像或背景的一个或更多个部分。例如,背景积分器102可以使用随机或非随机采样方法从背景中采样区域(例如,基于MLM 122的输入120确定大小的矩形)。因此,由MLM 122处理的图像可以包括整个背景图像或背景图像的区域(例如,采样区域)。类似地,在背景积分器102从所选对象生成图像的情况下,背景积分器102可以包括图像中的对象图像的整体或对象图像的一部分。
在至少一个实施例中,背景积分器102可以生成一种或更多种合成背景。例如,可以为理解网络偏差和敏感性的情况生成合成背景(根据经验测量网络性能或凭直觉)。例如,可以为对那些特定纹理敏感的网络生成特定类型(例如,点和条纹)的合成背景,其中背景选择器选择该背景类型。可以在MLM 122的任何训练之前和/或在训练期间(例如,在迭代或时期之间)生成一个或更多个合成背景。可以使用各种可能的方法来生成合成背景,例如,至少基于渲染与背景类型相关联的三维虚拟环境、通过算法生成包括所选图案的纹理、修改现有背景或图像等。
根据本公开的方面,可以从一个或更多个源图像中提取对象图像112,并且背景积分器102可以使用一个或更多个背景110来替换或修改源图像的原始背景。现在参考图2,图2是示出了根据本公开的一些实施例的用于生成对象图像212并将对象图像212与一个或更多个背景110整合的示例过程200的数据流图。
作为示例,关于对象图像提取系统202来描述过程200。在其他潜在组件中,对象图像提取系统202可以包括区域标识符204、预处理器206和图像数据确定器208。
作为概述,在过程200中,区域标识符204可以被配置为识别源图像内的区域。例如,区域标识符204可以识别源图像220内的区域212A,其对应于在源图像220中具有背景的对象(例如,手)。区域标识符204可以进一步生成包括基于识别区域212A对应于对象的片段212B的分割掩码222。区域标识符204可以进一步检测对象的位置以定义源图像220和/或分割掩码222的区域230。预处理器206可以处理分割掩码222的区域230中的段212B的至少一部分以产生对象掩码232。图像数据确定器208可以使用对象掩码232从源图像220生成对象图像212。然后可以将对象图像提供给背景积分器102以与一个或更多个背景110(例如,将对象叠加或覆盖在背景图像上)整合。
根据各种实施例,可以在训练MLM 122之前和/或在训练MLM 122期间生成一个或更多个对象图像112,例如对象图像212。例如,一个或更多个对象图像112可以被生成(例如,如图2所描述的),并且被存储,然后根据需要被检索以在过程100中生成输入120。作为另一个示例,可以在过程100期间生成一个或更多个对象图像112,例如即时或根据背景积分器102的需要。在一些实施例中,对象图像112是在过程100中即时生成的,然后可以在过程100的后续迭代中被存储和/或重新使用和/或用于在以后训练除MLM 122之外的MLM。
如本文所述,区域标识符204可以识别源图像220内的区域212A,其对应于在源图像220中具有背景的对象(例如,手)。在所示的示例中,区域标识符204还可以识别源图像220内对应于对象的背景的区域210A。在其他示例中,区域标识符204可以仅识别区域212A。
在至少一个实施例中,区域标识符204可以识别区域212A以至少基于对源图像执行图像分割来确定对应于对象的源图像220的至少片段212B。图像分割还可以用于识别区域210A以至少基于对源图像220执行图像分割来确定对应于背景的源图像220的片段212B。在至少一个实施例中,区域标识符204可以生成表示来自源图像220的分割掩码222的数据,其中分割掩码222指示对应于对象(图2中的白色像素)的段212B和/或对应于背景的段210B(图2中的黑色像素)。
区域标识符204可以以多种可能的方式来实施,例如使用AI驱动的背景去除。在至少一个实施例中,区域标识符204包括一个或更多个MLM,它们被训练以对图像的单个像素或像素组进行分类或标记。例如,MLM可以被训练以识别图像中的前景(例如,对应于对象)和/或背景,并且图像片段可以对应于前景和/或背景。作为非限制性示例,区域标识符204可以使用NVIDIA公司的RTX Greenscreen的背景去除技术来实施。在一些示例中,可以训练MLM来识别对象类型并相应地标记像素。
在至少一个实施例中,区域标识符204可以包括一个或更多个对象检测器,诸如被训练以检测将由MLM 122分类的对象(例如,手)的对象检测器。可以使用经过训练以检测对象的一个或更多个MLM来实施对象检测器。对象检测器可以输出指示对象位置的数据并且可以用于定义包括对象的源图像220和/或分割掩码222的区域230。例如,可以训练对象检测器以提供对象的包围盒或形状,并且包围盒或形状可以用于定义区域230。
在所示示例中,可以通过扩展包围盒来定义区域230,而在其他示例中,包围盒可以用作区域230。在本示例中,区域标识符204可以识别对应于通过将源图像220应用到MLM的对象的片段212B。在其他示例中,区域标识符204可以将区域230应用于MLM而不是源图像(或者在一些实施例中除了源图像之外)。通过将源图像220应用于MLM,MLM可以具有区域230中不可用的附加上下文,其可以提高MLM的准确性。
在确定区域230的实施例中,预处理器206可以至少基于区域230来执行预处理。例如,分割掩码222的区域230可以由预处理器206在被图像数据确定器208使用之前进行预处理。在至少一个实施例中,预处理器206可以从分割掩码222中裁剪与区域230相对应的图像数据并且处理裁剪后的图像数据以产生对象掩码232。预处理器206可以对区域230执行各种类型的预处理,这可以提高图像数据确定器208的能力。
现在参考图3,图3包括根据本公开的一些实施例的可用于生成用于生成对象图像的对象掩码的预处理的示例。举例来说,预处理器206可以裁剪分割掩码222,从而产生对象掩码300A。预处理器206可以对对象掩码300A执行扩张,从而产生对象掩码300B。预处理器206然后可以模糊对象掩码300B,产生对象掩码232。对象掩码232然后可以被图像数据确定器208使用以生成对象图像212。
预处理器206可以使用扩张来扩展对应于对象的对象掩码300A的片段212B。例如,片段212B可以扩展为对应于背景的片段210B。在实施例中,预处理器206可以执行二值化(binary)扩张。可以执行其他类型的扩张,例如灰度扩张。作为示例,预处理器206可以首先模糊对象掩码300A,然后执行灰度扩张。扩张可用于增加对象掩码232对分割掩码222中的错误的鲁棒性。例如,在对象包括手的情况下,手掌有时可被分类为在背景中。扩张是修复这种潜在错误的一种方法。其他掩码预处理技术在本公开的范围内,例如二值化或灰度侵蚀。作为示例,可以对对应于背景的片段210B执行侵蚀。
预处理器206可以使用模糊(例如,高斯模糊)来帮助背景积分器102缓和对应于对象图像212中的对象的图像数据和对应于背景110的图像数据之间的过渡。为了缓和对象和背景之间的过渡,对应于对象掩码232的边缘的区域可以是清晰的和人为的。使用诸如模糊的混合技术然后应用对象掩码可以导致图像246中的对象和背景110之间的更自然或逼真的过渡。虽然掩码处理已被描述为在应用掩码之前对对象掩码执行,在其他示例中,图像数据确定器208可以在应用对象掩码(例如,到源图像220)时执行相似或不同的图像处理操作。
返回图2,图像数据确定器208通常可以使用对象掩码(诸如对象掩码232)来生成对象图像212。例如,图像数据确定器208可以使用对象掩码232来识别和/或从对应于对象的源图像220中提取区域242。在其他实施例中,可以不采用对象掩码并且可以使用另一种技术来识别和/或提取区域242。当使用对象掩码232时,图像数据确定器208可以将对象掩码232与源图像220相乘以获得对象图像212,该对象图像212包括表示对应于对象(例如,源图像220的前景)的区域242的图像数据。
在将对象图像212与背景110整合时,背景积分器102可以使用对象图像212作为掩码,并且可以将掩码的反转应用到背景110,得到的图像与目标图像混合。例如,背景积分器102可以在对象图像212和背景110之间执行阿尔法合成。将对象图像212与背景积分器102混合可以使用多种潜在的混合技术。在一些实施例中,背景积分器102可以使用阿尔法混合来将对象图像212与背景110整合。当将对象图像212与背景110组合时,阿尔法混合可以将来自对象图像212的背景归零,并且前景像素可以叠加在背景110上以生成图像246,或者当根据由预处理器206应用的模糊或其他方式组合来自对象图像212和背景110的图像数据时,像素可以被加权(例如,从0到1)。在至少一个实施例中,背景积分器102可以采用一种或更多种无缝混合技术。无缝混合技术可以旨在在图像246中的对象和背景110之间产生无缝边界。无缝混合技术的示例包括梯度域混合、拉普拉斯金字塔混合或泊松混合。
数据增强技术的进一步示例
如本文所述,过程200可用于增强用于训练MLM的训练数据集,例如使用过程100的MLM 122。本公开提供可用于增强训练数据集的进一步方法。根据至少一些实施例,可以修改源图像(例如源图像220)中识别的对象的色调以用于数据增强。作为示例,在对象表示人类的至少一部分的情况下,可以修改肤色、头发颜色和/或其他色调以扩充训练数据集。例如,对应于对象的区域的一个或更多个部分的色调可以被转换(例如,均匀地或以其他方式)。在至少一个实施例中,可以随机或非随机地选择色调。在一些情况下,可以基于分析预测数据126来选择色调。例如,色调可以用作用于选择或生成一个或更多个训练图像的特征(例如,由背景积分器102),如本文所述。
某些区域,例如区域的背景或非主要部分或次要部分,对于对象的不同现实生活变化往往具有一致的色调,可以保留原始色调。例如,如果对象是汽车,则面板的色调可能会发生变化,同时保持灯光、保险杠和轮胎的色调。在至少一个实施例中,背景积分器102可以执行色调修改。例如,可以对对象图像212中表示的对象的一个或多个部分执行色调修改。在其他示例中,对象图像212或对象掩码232可以(例如,由图像数据确定器208)用于识别表示对象的图像数据并修改源图像220的一个或更多个区域中的色调。这些示例可能不包括背景积分器102。
根据至少一些实施例,源图像220可以从用于数据增强的环境中的对象的各种不同视图渲染。现在参考图4,图4是根据本公开的一些实施例的对象的三维(3D)捕获402可以如何从多个视图被光栅化的图示。在至少一个实施例中,对象图像提取系统202可以选择对象在环境中的视图。例如,对象图像提取系统202可以从视图406A、406B、406C或环境400中对象的任何任意视图中进行选择。然后,对象图像提取系统202可以至少基于光栅化从视图的环境中对象的3D捕获来生成源图像220。例如,三维(3D)捕获402可以包括由物理或虚拟深度感测相机在物理或虚拟环境(其可以不同于环境400)中捕获的深度信息。在一个或更多个实施例中,3D捕获402可以包括捕获对象的至少一部分和环境400的潜在附加元素的点云。例如,如果选择视图406A,则对象图像提取系统202可以使用至少3D捕获402来光栅化来自相机404的视图406A的源图像220。在至少一个实施例中,可以随机或非随机地选择视图。在一些情况下,可以基于分析预测数据126来选择视图。例如,可以将视图用作用于选择或生成一个或更多个训练图像的特征(例如,由背景积分器102),如本文所述(例如,结合对象类别)。在至少一个实施例中,对象可以从视图被光栅化以生成对象图像112,然后可以使用本文描述的方法将其与一个或更多个背景整合。在其他示例中,对象可以与背景110(二维图像)或与环境400的其他3D内容一起被光栅化以形成背景。
使用对象掩码进行推理的示例
如本文所述,对象掩码可用于训练MLM 122中的数据增强,例如,使用过程100。在至少一个实施例中,使用掩码数据训练的MLM 122可以在不利用对象掩码的情况下对图像执行推理。例如,在部署期间到MLM122的输入120可以对应于由相机捕获的一个或更多个图像。在此类示例中,对象掩码可能仅用于数据增强。在其他实施例中,还可以利用对象掩码进行推理。可以如何利用对象掩码来进行推理的示例将参考图5A和5B进行描述。
现在参考图5A,图5A是示出了根据本公开的一些实施例的使用MLM122和对象掩码数据的早期融合的推理的示例的数据流图500。在图5A的示例中,MLM 122可以被训练以在利用对应于图像506的对象掩码的对象图像508的同时对图像506执行推理。例如,输入120可以从图像506和对象图像508的组合生成,然后提供给MLM 122(例如,神经网络),其可以生成包括推理数据510的输出124。在MLM 122包括神经网络的情况下,推理数据510可以包括来自神经网络的张量数据。可以对推理数据510执行后处理以生成预测数据126。
对象图像508是可以与图像506组合用于推理的对象掩码数据的一个示例。在对象掩码数据的早期融合用于推理的情况下,如在数据流图500中,可以在训练期间(例如,在过程100中)类似地生成MLM 122的输入120。通常,对象掩码数据可以捕获关于区域标识符204从源图像生成掩码的方式的信息。通过在训练和推理期间利用对象掩码数据,MLM 122可以学习解释可能由对象掩码生成产生的任何错误或不自然的伪影。对象掩码数据还可以捕获关于预处理器206预处理对象掩码以捕获可能由预处理产生或在预处理之后保留的任何错误或不自然伪影的方式的信息。
可以使用类似于对象图像212的对象图像提取系统202来生成对象图像508(例如,在推理时)。虽然对象图像508在图5A和图5B中示出,在其他示例中,除了对象图像508之外或代替对象图像508(在由预处理器206进行预处理之前或之后),可以使用分割掩码222和/或对象掩码232。
可以使用各种方法从图像506和对象图像508(更一般地对象掩码数据)的组合生成输入120。在至少一个实施例中,图像506和对象图像508作为单独的输入120提供给MLM122。作为进一步的示例,图像506和对象图像508可以组合以形成组合图像并且输入120可以从组合图像生成。在至少一个实施例中,对象掩码数据可用于淡化、弱化、标记、指示、区分或以其他方式修改表示相对于对象或图像506前景的背景的图像506的一个或更多个部分(如由对象掩码数据所捕获)。例如,图像506可以与对象图像508混合,导致图像506的背景褪色、模糊或散焦(例如,使用景深效果)。当组合图像506和对象图像508时,用于确定所得像素颜色的权重可以随着与对象的距离而减少(例如,指数地),如对象掩码数据所指示的(例如,使用聚焦效果)。
现在参考图5B,图5B是示出根据本公开的一些实施例的使用MLM122和对象掩码数据的后期融合的推理的示例的数据流图502。
在图5B的示例中,MLM 122可以为图像506和对象图像508提供单独的输出124。输出124可以包括对应于图像506的推理数据510A和对应于对象图像508的推理数据510B。此外,MLM 122可以包括用于图像506和对象图像508的单独输入120。例如,MLM 122可以包括被训练以在图像中执行推理的MLM 122的多个副本,其中一个副本对图像506执行推理并生成推理数据510A,另一个副本对对象图像508执行推理并生成推理数据510B(例如,并行)。可以对推理数据510A和推理数据510B执行后处理并且可以使用后期融合来生成预测数据126。例如,跨推理数据510A和推理数据510B的对应张量值可以被组合(例如,平均)以融合推理数据,然后可以对融合的推理数据执行进一步后处理以生成预测数据126。在至少一个实施例中,推理数据510A和推理数据510B的张量值可以使用权重(例如,使用加权平均)组合。在至少一个实施例中,可以在验证数据集上调整权重。
使用MLM 122的推理还可以包括推理分数的时间过滤以生成预测数据126,这可以提高预测的时间稳定性。此外,所示示例主要与静态姿势识别有关。然而,所公开的技术也可应用于动态姿势识别,其可被称为姿势。为了训练和使用MLM来预测姿势,在至少一个实施例中,可以向MLM122提供多个图像,这些图像在一段时间内或帧的数量或序列上捕获对象。在使用对象掩码数据的情况下,可以为每个输入图像提供对象掩码数据。
现在参考图6,方法600的每个框以及本文描述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来执行。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。该方法可由独立应用程序、服务或托管服务(独立或与另一托管服务组合)或另一产品的插件提供,仅举几例。此外,通过示例的方式,关于图1的系统140和图2的系统202描述了方法600。然而,该方法可以附加地或替代地由任何一个系统或系统的任何组合来执行,包括但不限于本文描述的那些。
图6是示出根据本公开的一些实施例的用于至少基于将对象图像与至少一个背景相结合来训练一个或更多个机器学习模型的方法600的流程图。在框B602,方法600包括在第一图像中识别对应于具有第一背景的对象的区域。例如,区域标识符204可以在源图像220中识别与在源图像220中具有背景的对象相对应的区域212A。
在框B604,方法600包括至少基于区域确定表示对象的图像数据。例如,图像数据确定器208可以至少基于对象的区域212A来确定表示对象的图像数据。在至少一个实施例中,图像数据确定器208可以使用对象掩码232或基于非掩码的方法来确定图像数据。
在框B606,方法600包括使用图像数据生成包括具有第二背景的对象的第二图像。背景积分器102可以至少基于使用图像数据将对象与背景110相结合来生成包括具有背景110的对象的图像246。例如,图像数据确定器208可以将图像数据并入到对象图像212并将对象图像212提供给背景积分器102以与背景110整合。
在框B608,方法600包括训练至少一个神经网络以使用第二图像执行预测任务。例如,MLM训练器104可以使用图像246训练MLM以对图像中的对象进行分类。
现在参考图7,图7是示出了根据本公开的一些实施例的用于使用机器学习模型进行推理的方法700的流程图,其中输入对应于图像的掩码和图像的至少一部分。在框B702,方法700包括获得(或访问)至少一个被训练以使用从对应于对象的掩码生成的输入对图像执行预测任务的神经网络。例如,可以获得(访问)图5A或5B的MLM 122并且可能已经根据图1的过程100进行了训练。
在框B704,方法700包括生成对应于图像中的对象的掩码,其中该对象具有图像中的背景。例如,区域标识符204可以生成对应于源图像220中的对象的分割掩码222,其中对象具有源图像220中的背景。
在框B706,方法700包括使用掩码生成对至少一个神经网络的输入。例如,图5A或5B输入120可以使用分割掩码222(或不使用对象掩码数据)生成。输入120可以用背景的至少一部分来捕获对象。
在框B708,方法700包括至少基于将输入应用于至少一个神经网络来生成预测任务的至少一个预测。例如,MLM 122可以用于至少基于将输入120应用于MLM 122来生成预测任务的至少一个预测,并且可以使用来自MLM 122的输出124来确定预测数据126。
现在参考图8,图8是示出了根据本公开的一些实施例的用于选择用于训练一个或更多个机器学习模型的对象的背景的方法800的流程图。在框B802,方法800包括接收具有多个背景的一个或更多个对象的图像。例如,MLM训练系统140可以接收具有多个背景110的一个或更多个对象的图像。
在框B804,方法800包括使用图像生成与预测任务相对应的一组推理分数。例如,MLM训练器104可以将输入120提供给一个或更多个MLM122(或不同的MLM)以生成输出124,并且MLM后处理器106可以处理输出124以产生预测数据126。
在框B806,方法800包括至少基于一个或更多个推理分数来选择背景。例如,背景选择器108可以至少基于预测数据126来选择背景110中的一个或更多个。
在框B808,方法800包括至少基于将对象与背景整合来生成图像。例如,背景积分器102可以至少基于将对象与背景整合(例如,使用对象图像112和背景110)来生成图像。
在框B810,方法800包括使用图像来训练至少一个神经网络来执行预测任务。例如,MLM训练器104可以使用图像来训练一个或更多个MLM122。
示例计算设备
图9是适合用于实现本公开的一些实施例的示例计算设备900的框图。计算设备900可包括直接或间接耦合以下设备的互连系统902:存储器904、一个或更多个中央处理单元(CPU)906、一个或更多个图形处理单元(GPU)909、通信接口910、输入/输出(I/O)端口912、输入/输出组件914、电源916,一个或更多个呈现组件919(例如,(一个或更多个)显示器)和一个或更多个逻辑单元920。在至少一个实施例中,计算设备900可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个GPU908可以包括一个或更多个vGPU,一个或更多个CPU906可以包括一个或更多个vCPU,和/或一个或更多个逻辑单元920可以包括一个或更多个虚拟逻辑单元。因此,计算设备900可以包括分立组件(例如,专用于计算设备900的完整GPU)、虚拟组件(例如,专用于计算设备900的GPU的一部分),或其组合。
尽管图9的各个框被示为经由具有线路的互连系统902连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件918可以被认为是I/O组件914(例如如果显示器为触摸屏)。作为另一个示例,CPU 906和/或GPU908可以包括存储器(例如,存储器904可以表示除了GPU908、CPU 906和/或其他组件的存储器以外的存储设备)。换言之,图9的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图9的计算设备的范围内。
互连系统902可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统902可以包括一种或更多种总线或链路类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、外围组件互连(PCI)总线、外围组件互连快速(PCIe)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU906可直接连接到存储器904。进一步,CPU906可直接连接到GPU908。在组件之间存在直接或点对点连接的情况下,互连系统902可以包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备900中。
存储器904可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备900访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实施。例如,存储器904可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备900访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包括计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包括在计算机可读介质的范围内。
CPU 906可以被配置为执行至少一些计算机可读指令以便控制计算设备900的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 906中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU906可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实施的计算设备900的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备900的类型,处理器可以是使用精简指令集计算(RISC)实施的高级RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备900还可以包括一个或更多个CPU 906。
除了CPU 906之外或替代CPU 906,GPU 908可以被配置成用于执行至少一些计算机可读指令以控制计算设备900的一个或更多个组件执行在此描述的方法和/或过程中的一个或更多个。GPU908中的一个或更多个可为集成GPU(例如,与CPU906中的一个或更多个和/或GPU908中的一个或更多个可为分立GPU)。在实施例中,GPU908中的一个或更多个可以是CPU906中的一个或更多个的协处理器。GPU 908可以由计算设备900用来渲染图形(例如3D图形)或者执行通用计算。例如,GPU908可用于GPU上的通用计算(GPGPU)。GPU 908可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU908可以响应于渲染命令(例如经由主机接口接收的来自CPU906的渲染命令)而生成用于输出图像的像素数据。GPU908可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(诸如GPGPU数据)的图形存储器。显示存储器可以作为存储器904的部分而被包括。GPU 908可以包括(例如经由链路)并行操作的两个或更多GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每个GPU908可以生成用于输出的不同部分或者用于不同输出的像素数据或GPGPU数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。
除了CPU 906和/或GPU 908之外或替代CPU 906和/或GPU 908,(一个或更多个)逻辑单元920可以被配置成用于执行计算机可读指令中的至少一些计算机可读指令以控制计算设备900的一个或更多个组件执行在此描述的方法和/或过程中的一个或更多个。在实施例中,(一个或更多个)CPU 906、(一个或更多个)GPU 908和/或(一个或更多个)逻辑单元920可以分立地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元920中的一个或更多个可为CPU906和/或GPU908中的一个或更多个和/或集成在CPU906和/或GPU908中的一个或更多个,和/或逻辑单元920中的一个或更多个可为分立组件或以其他方式在CPU906和/或GPU908外部。在实施例中,逻辑单元920中的一个或更多个可以是CPU 906中的一个或更多个CPU和/或GPU 908中的一个或更多个GPU的协处理器。
逻辑单元920的示例包括一个或更多个处理核和/或其组件,诸如张量核(TC)、张量处理单元(TPU)、像素视觉核(PVC)、视觉处理单元(VPU)、图形处理集群(GPC)、纹理处理集群(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、外围组件互连(PCI)或快速外围组件互连(PCIe)元件和/或类似物。
通信接口910可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备900能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口910可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网或无限带宽通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口912可以使得计算设备900能够逻辑地耦合到包括I/O组件914、呈现组件918和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备900中。说明性I/O组件914包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件914可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些示例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛追踪以及与计算设备900的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备900可以包括诸如立体相机系统之类的深度相机、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备900可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备900用来渲染沉浸式增强现实或者虚拟现实。
电源916可以包括硬接线电源、电池电源或者其组合。电源916可以向计算设备900供电以使得计算设备900的组件能够操作。
呈现组件918可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件918可以接收来自其他组件(例如GPU 908、CPU 906等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
示例数据中心
图10示出了可以在本公开的至少一个实施例中使用的示例数据中心1000。数据中心1000包括数据中心基础设施层1010、框架层1020、软件层1030和应用程序层1040。
如图10所示,数据中心基础设施层1010可以包括资源协调器1010、分组计算资源1014和节点计算资源(“节点C.R.”)1016(1)-1016(N),其中“N”表示正整数(其可以是与其他图中使用的整数不同的整数“N”)。在至少一个实施例中,节点C.R.1016(1)-1016(N)可以包括但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如,动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“NW I/O”)设备,网络交换机,虚拟机(“VM”),电源模块和/或冷却模块等。在一些实施例中,节点C.R.1016(1)-1016(N)中的一个或更多个节点C.R.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点C.R.1016(1)-10161(N)可以包括一个或更多个虚拟组件,例如vGPU、vCPU等,和/或节点C.R.1016(1)-1016(N)中的一个或更多个可以对应虚拟机(VM)。
在至少一个实施例中,分组计算资源1014可以包括容纳在一个或更多个机架内的节点C.R.1016的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源1014内的节点C.R.1016的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括CPU、GPU和/或处理器的几个节点C.R.1016分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括任何数量的电源模块、冷却模块和/或网络交换机,以任意组合。
资源协调器1022可以配置或以其他方式控制一个或更多个节点C.R.1016(1)-1016(N)和/或分组的计算资源1014。在至少一个实施例中,资源协调器1022可以包括用于数据中心1000的软件设计基础结构(“SDI”)管理实体。在至少一个实施例中,资源协调器1022可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图10所示,框架层1020包括作业调度器1032、配置管理器1034、资源管理器1036和分布式文件系统1038。在至少一个实施例中,框架层1020可以包括支持软件层1030的软件1032和/或应用程序层1040的一个或更多个应用程序1042的框架。软件1032或应用程序1042可以分别包括基于Web的服务软件或应用程序,例如由AmazonWeb Services,Google Cloud和Microsoft Azure提供的服务或应用程序。框架层1020可以是但不限于一种免费和开放源软件网络应用程序框架,例如可以利用分布式文件系统1038来进行大范围数据处理(例如“大数据”)的Apache SparkTM(以下称为“Spark”)。在至少一个实施例中,作业调度器1032可以包括Spark驱动器,以促进对数据中心1000的各个层所支持的工作负载进行调度。配置管理器1034可以能够配置不同的层,例如软件层1030和包括Spark和用于支持大规模数据处理的分布式文件系统1038的框架层1020。资源管理器1036能够管理映射到或分配用于支持分布式文件系统1038和作业调度器1032的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层1010上的分组计算资源1014。资源管理器1036可以与资源协调器1012协调以管理这些映射的或分配的计算资源。
在至少一个实施例中,包括在软件层1030中的软件1032可以包括由节点C.R.1016(1)-1016(N)的至少一部分,分组的计算资源1014和/或框架层1020的分布式文件系统1038使用的软件。一种或更多种类型的软件可以包括但不限于Intemet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
在至少一个实施例中,应用程序层1040中包括的一个或更多个应用程序1042可以包括由节点C.R.1016(1)-1016(N)的至少一部分、分组计算资源1014和/或框架层1020的分布式文件系统1038使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序、认知计算、应用程序和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如PyTorch、TensorFlow、Caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。
在至少一个实施例中,配置管理器1034、资源管理器1036和资源协调器1012中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心1000的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
数据中心1000可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心1000描述的软件和/或计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过一种或更多种训练技术(例如但不限于本文所述的那些)计算出的权重参数,可以使用上面与关于数据中心1000所描述的资源,使用对应于一个或更多个神经网络的经训练或部署的机器学习模型来推理或预测信息。
在至少一个实施例中,数据中心100可以使用CPU、专用集成电路(ASIC)、GPU、FPGA或其他硬件(或与之对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合于在实施本公开的实施例中使用的网络环境可以包括一个或更多个客户端设备、服务器、网络附接存储(NAS)、其他后端装置、和/或其他装置类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图9的(一个或更多个)计算设备900的一个或更多个实例上实施——例如,每个设备可以包括(一个或更多个)计算设备900的类似组件、特征和/或功能。此外,在实施后端设备(例如,服务器、NAS等)的情况下,后端设备可以被包括作为数据中心1000的一部分,其示例在本文中关于图10更详细地描述。
网络环境的组件可以经由(一个或更多个)网络彼此通信,所述网络可以是有线的、无线的或两者。网络可以包括多个网络或多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络诸如互联网和/或公共交换电话网(PSTN)和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以包括在网络环境中)。在对等网络环境中,本文相对于服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、工作调度器、资源管理器和在一个或更多个服务器上实现的分布式文件系统,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用程序层的一个或更多个应用程序的框架。所述软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用程序(例如,通过经由一个或更多个应用程序编程接口(API)访问服务软件和/或应用程序)。框架层可以是但不限于自由和开源软件网络应用程序框架的类型,诸如可以使用分布式文件系统进行大规模数据处理(例如,″大数据″)。
基于云的网络环境可以提供执行在此描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、地球等上的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
客户端设备可以包括在此关于图9描述的(一个或更多个)示例计算设备900的部件、特征和功能中的至少一些组件、特征和功能。作为示例而非限制,客户机设备可被实现为个人计算机(PC),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位系统(GPS)或设备、视频播放器、相机、监视设备或系统、车辆、船,飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备,游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合,或任何其他合适的设备。
示例自主车辆
图11A为根据本公开一些实施例的示例自主车辆1100的示出。自主车辆1100(可替代地,在本文称为“车辆1100”)可以包括但不限于乘用车,例如汽车、卡车、公共汽车、急救车、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船、工程车辆、水下航行器、无人机和/或另一种类型的车辆(例如,无人驾驶和/或可容纳一名或更多名乘客)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for Terms Related to Driving AutomationSystems for On-Road Motor Vehicles”(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)、120fps、240中s等等,这取决于实施例。照相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(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总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管本文将总线1102描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线1102,但是这并不意图是限制性的。例如,可以存在任意数量的总线1102,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线1102可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线1102可以用于碰撞避免功能,并且第二总线1102可以用于驱动控制。在任何示例中,每条总线1102可以与车辆1100的任何部件通信,并且两条或更多总线1102可以与相同的部件通信。在一些示例中,车辆内的每个SoC 1104、每个控制器1136和/或每个计算机可以有权访问相同的输入数据(例如来自车辆1100的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆1100可以包括一个或更多个控制器1136,例如本文关于图11A所描述的那些控制器。控制器1136可以用于各种各样的功能。控制器1136可以耦合到车辆1100的任何其他不同的部件和系统,并且可以用于车辆1100的控制、车辆1100的人工智能、用于车辆1100的信息娱乐和/或类似物。
车辆1100可以包括一个或更多个片上系统(SoC)1104。SoC 1104可以包括CPU1106、GPU 1108、处理器1110、高速缓存1112、加速器1114、数据存储1116和/或未示出出的其他部件和特征。在各种各样的平台和系统中,SoC 1104可以用来控制车辆1100。例如,一个或更多个SoC 1104可以在系统(例如车辆1100的系统)中与HD地图1122结合,所述HD地图可以经由网络接口1124从一个或更多个服务器(例如图11D的一个或更多个服务器1178)获得地图刷新和/或更新。
CPU 1106可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU1106可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 1106在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 1106可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 1106(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 1106的簇的任意组合能够在任何给定时间是活动的。
CPU 1106可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;以及/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 1106可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 1108可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU1108可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 1108可以使用增强张量指令集。GPU 1108可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU1108可以包括至少八个流式微处理器。GPU 1108可以使用计算应用编程接口(API)。此外,GPU 1108可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 1108进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 1108。然而,这并不意图是限制性的,并且GPU 1108可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 1108可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子系统。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 1108可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 1108直接访问CPU 1106页表。在这样的示例中,当GPU 1108内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU1106。作为响应,CPU 1106可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU1108。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 1106和GPU 1108二者的内存,从而简化了GPU 1108编程和将应用程序移(port)到GPU 1108。
此外,GPU 1108可以包括访问计数器,其可以跟踪GPU1108访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 1104可以包括任意数量的高速缓存1112,包括本文描述的那些高速缓存。例如,高速缓存1112可以包括CPU 1106和GPU 1108二者可用的L3高速缓存(例如,其连接到CPU 1106和GPU 1108二者)。高速缓存1112可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 1104可以包括算术逻辑单元(ALU),其可用于执行关于车辆1100的各种任务或操作中的任一个的处理,例如处理DNN。此外,SoC1104可以包括浮点单元(FPU)——或其他数学协处理器或数字协处理器类型——用于在系统内执行数学运算。例如,SoC 104可以包括一个或更多个集成为CPU 1106和/或GPU 1108内的执行单元的FPU。
SoC 1104可以包括一个或更多个加速器1114(例如硬件加速器、软件加速器或者其组合)。例如,SoC 1104可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充GPU 1108,并且卸载GPU 1108的一些任务(例如释放GPU 1108的更多周期以用于执行其他任务)。作为一个示例,加速器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可以执行GPU 1108的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 1108针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 1108和/或其他加速器1114。
加速器1114(例如硬件加速簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助系统(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何照相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作系统(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 1106访问系统内存。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。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级外围总线(APB)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 1104可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可用于执行一个或更多个光线追踪相关操作。
加速器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位置估计等。
SoC 1104可以包括一个或更多个数据存储1116(例如内存)。数据存储1116可以是SoC 1104的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储1116可以容量足够大以存储神经网络的多个实例。数据存储1112可以包括L2或L3高速缓存1112。对数据存储1116的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器1114关联的内存的引用。
SoC 1104可以包括一个或更多个处理器1110(例如嵌入式处理器)。处理器1110可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是SoC 1104启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、SoC 1104热和温度传感器管理和/或SoC 1104功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 1104可以使用环形振荡器检测CPU 1106、GPU 1108和/或加速器1114的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 1104置于较低功率状态和/或将车辆1100置于司机安全停车模式(例如使车辆1100安全停车)。
处理器1110可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器1110可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持外围设备(例如定时器和中断控制器)、各种I/O控制器外围设备和路由逻辑。
处理器1110可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器1110可以进一步包括实时照相机引擎,其可以包括用于处理实时照相机管理的专用处理器子系统。
处理器1110可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是照相机处理管线的部分。
处理器1110可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角照相机1170、环绕照相机1174和/或对驾驶室内监控照相机传感器执行镜头畸变校正。驾驶室内监控照相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且GPU 1108无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 1108上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 1108的负担以提高性能和响应能力。
SoC 1104可以进一步包括用于从照相机接收视频和输入的移动行业处理器接口(MIPI)照相机串行接口、高速接口和/或可以用于照相机和有关像素输入功能的视频输入块。SoC 1104可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 1104可以进一步包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。SoC 1104可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)照相机、传感器(例如可以通过以太网连接的LIDAR传感器1164、RADAR传感器1160等等)的数据,来自总线1102的数据(例如车辆1100的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器1158的数据。SoC1104可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 1106。
SoC 1104可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。SoC 1104可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 1106、GPU 1108和数据存储1116结合时,加速器1114可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规系统形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 1120)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 1108上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自照相机传感器的数据识别车辆1100的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC1104提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风1196的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规系统形成对比的是,SoC 1104使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器1158所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器1162的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 1104的CPU 1118(例如分立的CPU或dCPU)。CPU 1118可以包括例如X86处理器。CPU 1118可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 1104之间潜在地不一致的结果,和/或监控控制器1136和/或信息娱乐SoC 1130的状态和健康状况。
车辆1100可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 1104的GPU 1120(例如分立的GPU或dGPU)。GPU 1120可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆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可以进一步包括可包括片外(例如SoC 1104外)存储装置的数据存储1128。数据存储1128可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆1100可以进一步包括GNSS传感器1158。GNSS传感器1158(例如GPS和/或辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的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系统可以包括高达1160m(前面)或80m(后面)的范围以及高达42度(前面)或1150度(后面)的视场。短程RADAR系统可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器系统可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR系统可以在ADAS系统中用于盲点检测和/或变道辅助。
车辆1100可以进一步包括超声传感器1162。可以置于车辆1100的前面、后面和/或侧面的超声传感器1162可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器1162,并且不同的超声传感器1162可以用于不同的检测范围(例如2.5m、4m)。超声传感器1162可以操作于功能安全级别的ASIL B。
车辆1100可以包括LIDAR传感器1164。LIDAR传感器1164可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器1164可以为功能安全级别的ASIL B。在一些示例中,车辆1100可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器1164(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器1164可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器1164可以具有例如近似1100m的广告范围,精度为2cm-3cm,支持1100Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器1164。在这样的示例中,LIDAR传感器1164可以实现为可以嵌入到车辆1100的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器1164可以甚至对于低反射率对象提供高达120度水平的和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可以包括SoC 1104的部件和/或作为SoC1104的部件而被包括。
在其他示例中,ADAS系统1138可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个系统更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS系统1138的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS系统1138由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆1100可以进一步包括信息娱乐SoC 1130(例如车载信息娱乐系统(IVI))。尽管被示出和描述为SoC,但是信息娱乐系统可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 1130可以包括可以用来向车辆1100提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、Wi-Fi等等)和/或信息服务(例如导航系统,后停车援助,无线电数据系统,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 1130可以包括收音机、盘播放器、导航系统、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、Wi-Fi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器1134、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或系统,和/或与其交互)和/或其他部件。信息娱乐SoC 1130可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS系统1138的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 1130可以包括GPU功能。信息娱乐SoC 1130可以通过总线1102(例如CAN总线、以太网等)与车辆1100的其他设备、系统和/或部件通信。在一些示例中,信息娱乐SoC 1130可以耦合至监督MCU,使得在主控制器1136(例如车辆1100的主和/或备用计算机)出现故障的情况下,信息娱乐系统的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC 1130可以如本文所描述的将车辆1100置于司机安全停车模式。
车辆1100可以进一步包括仪表组1132(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组1132可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组1132可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)系统信息、照明控件、安全系统控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 1130和仪表组1132之间共享。换言之,仪表组1132可以作为信息娱乐SoC1130的部分而被包括,或者反之亦然。
图11D为根据本公开一些实施例的基于云的服务器与图11A的示例自主车辆1100之间的通信的系统示意图。系统1176可以包括服务器1178、网络1190以及包括车辆1100在内的车辆。服务器1178可以包括多个GPU1184(A)-1284(H)(本文统称为GPU 1184)、PCIe交换机1182(A)-1182(H)(本文统称为PCIe交换机1182)和/或CPU 1180(A)-1180(B)(本文统称为CPU 1180)。GPU 1184、CPU 1180和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口1188之类的高速互连和/或PCIe连接1186互连。在一些示例中,GPU 1184经由NVLink和/或NVSwitch SoC连接,并且GPU 1184和PCIe交换机1182经由PCIe互连连接。尽管示出出八个GPU 1184、两个CPU 1180和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器1178中的每一个可以包括任意数量的GPU 1184、CPU 1180和/或PCIe交换机。例如,服务器1178中的每一个可以包括八个、十六个、三十二个和/或更多GPU 1184。
服务器1178可以通过网络1190并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器1178可以通过网络1190并且向车辆传输神经网络1192、更新的神经网络1192和/或地图信息1194,包括关于交通和道路状况的信息。对地图信息1194的更新可以包括对于HD地图1122的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络1192、更新的神经网络1192和/或地图信息1194可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或至少部分地基于数据中心处执行的训练(例如使用服务器1178和/或其他服务器)的经验产生。
服务器1178可以用来至少部分地基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。训练可以根据任何一类或更多类机器学习技术执行,包括但不限于以下类:监督训练、半监督训练、无监督训练、自学、强化学习、联邦学习、迁移学习、特征学习(包括主成分和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络1190传输至车辆),和/或机器学习模型可以由服务器1178用来远程地监控车辆。
在一些示例中,服务器1178可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器1178可以包括由GPU 1184供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器1178可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器1178的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆1100中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆1100的定期更新,例如图像序列和/或车辆1100已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆1100识别的对象相比较,如果结果不匹配并且该基础设施得出车辆1100中的AI发生故障的结论,那么服务器1178可以向车辆1100传输信号,指示车辆1100的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器1178可以包括GPU 1184和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素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 (22)

1.一种方法,包括:
在第一图像中识别与在所述第一图像中具有第一背景的对象对应的区域;
至少基于所述对象的所述区域确定表示所述对象的图像数据;
至少基于使用所述图像数据整合具有第二背景的所述对象,生成包括具有所述第二背景的所述对象的第二图像;以及
训练至少一个神经网络以使用所述第二图像执行预测任务。
2.如权利要求1所述的方法,其中所述区域的识别包括至少基于对所述第一图像执行图像分割来确定所述第一图像的至少第一段对应于所述对象并且所述第一图像的至少第二段对应于所述第一背景。
3.如权利要求1所述的方法,其中所述至少一个神经网络的训练是对所述对象的一种或更多种姿态进行分类。
4.如权利要求1所述的方法,其中确定所述图像数据包括至少基于所述第一图像中的所述区域生成掩码,并将所述掩码应用于所述第一图像。
5.如权利要求1所述的方法,其中确定所述图像数据包括至少基于所述第一图像中的所述区域生成掩码,并且生成所述第二图像是至少基于对对应于所述对象的所述掩码的部分执行扩张或侵蚀中的一种或更多种。
6.如权利要求1所述的方法,其中确定所述图像数据包括至少基于所述图像中的所述区域生成掩码,并且生成所述第二图像是至少基于模糊对应于所述对象的所述掩码的边界的至少一部分。
7.如权利要求1所述的方法,其中生成所述第二图像包括修改所述对象的色调。
8.如权利要求1所述的方法,还包括:
在环境中选择所述对象的视图;以及
至少基于光栅化从所述视图的所述环境中的所述对象的三维捕获来生成所述第一图像。
9.如权利要求1所述的方法,还包括至少基于将所述对象与第三背景整合来生成包括具有所述第三背景的所述对象的第三图像,其中所述至少一个神经网络的所述训练进一步使用所述第三图像。
10.如权利要求1所述的方法,其中所述整合包括所述对象与所述第二背景的无缝混合。
11.一种方法,包括:
接收具有多个背景的一个或更多个对象的图像;
生成一组推理分数,这些分数对应于使用所述图像对所述一个或更多个对象执行的预测任务的一个或更多个预测;
至少基于所述一组推理分数中的一个或更多个推理分数来选择背景;
至少基于对所述背景的选择,至少基于将对象与所述背景整合来生成图像;以及
在训练至少一个神经网络期间应用所述图像以执行所述预测任务。
12.如权利要求11所述的方法,其中所述一个或更多个推理分数包括用于包括所述背景的一组所述图像的多个推理分数,并且所述选择至少基于对所述多个推理分数的分析。
13.如权利要求11所述的方法,其中所述推理分数是在训练所述至少一个神经网络的第一时期中使用所述至少一个神经网络生成的并且所述图像的使用是在所述训练的第二时期中。
14.如权利要求11所述的方法,其中生成所述图像包括至少基于识别所述图像中所述对象的区域来生成掩码,并将所述掩码应用于所述图像。
15.如权利要求11所述的方法,其中所述背景的所述选择是至少基于确定所述一个或更多个推理分数中的至少一个推理分数是低于阈值的。
16.如权利要求11所述的方法,其中所述一个或更多个推理分数对应于所述背景的第一裁剪区域,并且所述对象与所述背景的第二裁剪区域进行所述整合,所述背景的第二裁剪区域不同于所述第一裁剪区域。
17.如权利要求11所述的方法,其中所述背景是背景类型并且所述方法还包括至少基于所述背景类型合成地生成所述背景。
18.一种系统,包括:
一个或更多个处理器;以及
一个或更多个存储器设备,其存储指令,当由所述一个或更多个处理器执行所述指令时,使所述一个或更多个处理器执行包括以下操作:
至少基于使用掩码修改对象的背景,使用从与所述图像中的所述对象对应的所述掩码生成的输入,获得经训练以对所述图像执行预测任务的至少一个神经网络;
生成与图像中的对象相对应的掩码,其中所述对象在所述图像中具有背景;
使用所述掩码生成对所述至少一个神经网络的输入,所述输入捕获具有所述背景的至少一部分的所述对象;以及
至少基于将所述输入应用于所述至少一个神经网络来生成所述预测任务的至少一个预测。
19.如权利要求18所述的系统,其中所述输入包括表示所述图像的至少一部分的第一输入和表示所述掩码的至少一部分的第二输入,其中所述图像包括具有所述背景的至少一部分的所述对象。
20.如权利要求18所述的系统,其中所述输入的所述生成包括至少基于使用所述掩码修改所述背景来生成图像数据,并且所述输入的至少一部分对应于所述图像数据。
21.如权利要求18所述的系统,其中所述生成至少基于融合第一组推理分数和第二组推理分数,所述第一组推理分数对应于表示包括具有所述背景的至少一部分的所述对象的所述图像的至少一部分的所述输入的第一部分,所述第二组推理分数对应于表示所述掩码的至少一部分的所述输入的第二部分。
22.如权利要求18所述的系统,其中所述操作由以下至少一个执行:
自主或半自主机器的控制系统;
自主或半自主机器的感知系统;
用于执行模拟操作的系统;
执行深度学习操作的系统;
使用边缘设备实施的系统;
使用机器人实施的系统;
合并一个或更多个虚拟机VM的系统;
至少部分在数据中心实施的系统;或者
至少部分使用云计算资源实施的系统。
CN202111145496.8A 2020-09-30 2021-09-28 包括使用神经网络进行鲁棒预测的背景修改的数据增强 Pending CN114332907A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/039,437 US11688074B2 (en) 2020-09-30 2020-09-30 Data augmentation including background modification for robust prediction using neural networks
US17/039,437 2020-09-30

Publications (1)

Publication Number Publication Date
CN114332907A true CN114332907A (zh) 2022-04-12

Family

ID=80624710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111145496.8A Pending CN114332907A (zh) 2020-09-30 2021-09-28 包括使用神经网络进行鲁棒预测的背景修改的数据增强

Country Status (4)

Country Link
US (1) US11688074B2 (zh)
JP (1) JP2022058135A (zh)
CN (1) CN114332907A (zh)
DE (1) DE102021125234A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118351598A (zh) * 2024-06-12 2024-07-16 山东浪潮科学研究院有限公司 一种基于gpgpu的手势动作识别方法、系统及存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022122364A (ja) * 2021-02-10 2022-08-23 日本電気株式会社 データ生成装置、データ生成方法、及びプログラム
US11769256B2 (en) * 2021-02-16 2023-09-26 Avanade Holdings Llc Image creation for computer vision model training
US20220277652A1 (en) * 2021-02-26 2022-09-01 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for repositioning vehicles in a ride-hailing platform
US20230062014A1 (en) * 2021-08-31 2023-03-02 Denso Ten Limited Image processing device, image processing method, and learning system
US20230100305A1 (en) * 2021-09-27 2023-03-30 Baidu Usa Llc System and process for repainting of planar objects in video
US11908075B2 (en) * 2021-11-10 2024-02-20 Valeo Schalter Und Sensoren Gmbh Generating and filtering navigational maps
US20230326005A1 (en) * 2022-04-08 2023-10-12 Robert Bosch Gmbh Data augmentation for domain generalization
JP2023174415A (ja) * 2022-05-27 2023-12-07 ブラザー工業株式会社 コンピュータプログラム、処理方法、および、処理装置
US11699282B1 (en) 2022-06-30 2023-07-11 Plusai, Inc. Data augmentation for vehicle control
US11702011B1 (en) * 2022-06-30 2023-07-18 Plusai, Inc. Data augmentation for driver monitoring
US11574462B1 (en) 2022-06-30 2023-02-07 Plus AI, Inc. Data augmentation for detour path configuring
CN115345321B (zh) * 2022-10-19 2023-02-17 小米汽车科技有限公司 数据增广方法、装置、电子设备及存储介质
CN117095395B (zh) * 2023-10-19 2024-02-09 北京智源人工智能研究院 用于心脏超声图像分割的模型训练方法、装置和分割方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885698B2 (en) 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
US11915350B2 (en) * 2018-08-29 2024-02-27 Intel Corporation Training one-shot instance segmenters using synthesized images

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118351598A (zh) * 2024-06-12 2024-07-16 山东浪潮科学研究院有限公司 一种基于gpgpu的手势动作识别方法、系统及存储介质

Also Published As

Publication number Publication date
US11688074B2 (en) 2023-06-27
DE102021125234A1 (de) 2022-03-31
JP2022058135A (ja) 2022-04-11
US20220101047A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
US11841458B2 (en) Domain restriction of neural networks through synthetic data pre-training
US11801861B2 (en) Using image augmentation with simulated objects for training machine learning models in autonomous driving applications
US11688181B2 (en) Sensor fusion for autonomous machine applications using machine learning
US11995895B2 (en) Multi-object tracking using correlation filters in video analytics applications
US20240127454A1 (en) Intersection region detection and classification for autonomous machine applications
US11688074B2 (en) Data augmentation including background modification for robust prediction using neural networks
CN113632095A (zh) 使用适合停车位检测的倾斜多边形进行对象检测
CN114902295A (zh) 用于自主驾驶应用的三维路口结构预测
CN113994390A (zh) 针对自主驾驶应用的使用曲线拟合的地标检测
CN114155272A (zh) 自主机器应用中的自适应目标跟踪算法
CN114550736A (zh) 用于自主驾驶应用的应急响应车辆检测
CN115718302A (zh) 使用LiDAR数据进行的用于自主机器应用的对象跟踪
CN115830486A (zh) 使用迁移学习训练对象检测模型
US20240001957A1 (en) Using image augmentation with simulated objects for training machine learning models in autonomous driving applications
CN117058730A (zh) 用于机器学习模型的数据集生成和增强
CN115344117A (zh) 适配的眼睛追踪机器学习模型引擎
JP2023051713A (ja) 自律マシン・アプリケーションにおける深層学習を使用する視認距離推定
CN116767245A (zh) 使用自主系统和应用的神经网络的地图信息对象数据管理
CN116263688A (zh) 在自主系统和应用程序中使用特征描述符绘图进行单个和跨传感器对象追踪
US20240320986A1 (en) Assigning obstacles to lanes using neural networks for autonomous machine applications
CN116795091A (zh) 自主系统和应用程序的环境重建和路径规划
CN114841336A (zh) 修补用于自主机器应用的部署的深度神经网络
CN118251705A (zh) 用于自主系统和应用中的使用多个传感器的环绕场景感知
WO2024015632A1 (en) Surround scene perception using multiple sensors for autonomous systems and applications
CN117581117A (zh) 自主机器系统和应用中使用LiDAR数据的动态对象检测

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