相关申请的交叉引用
本申请通过引用将2018年9月14日提交的、名称为“神经网络训练(neuralnetworktraining)”的美国临时申请号62/731,651的全部内容并入本文,其全部内容通过引用并入本文。
根据37cfr1.57,随本申请一起提交的在申请数据表中标识的国外或国内优先权要求的任何及所有申请其全部内容通过引用并入本文。
本公开涉及用于机器学习的系统和技术。更具体地,本公开涉及用于训练数据的生成的技术。
背景技术:
被用于诸如自主驾驶的应用的深度学习系统通过训练机器学习模型来被开发。通常,深度学习系统的性能至少部分受限于被用来对模型进行训练的训练集的质量。在许多实例中,大量资源被耗费来收集、整理(curate)和注释训练数据。创建训练集所需的努力会很大而且通常很乏味。此外,对于机器学习模型需要改进的特定用例,常常很难收集数据。
附图说明
以下附图和相关描述被提供以例示出本公开的实施例,并且不限制权利要求的范围。当结合附图时,通过参考以下详细描述,本公开的各方面和许多附带的优点将变得更加容易意识到,同样也可以更好地被理解,其中:
图1a是图示了汽车在道路上行驶并且检测位于道路上的轮胎的示意图。
图1b是图示了用于生成训练数据的系统的一个实施例的框图。
图2是图示了用于将触发分类器应用于机器学习模型的中间结果的过程的实施例的流程图。
图3是图示了用于使用机器学习模型的中间结果来创建触发分类器的过程的实施例的流程图。
图4是图示了用于使用触发分类器来标识潜在训练数据以及传送传感器数据的过程的实施例的流程图。
图5是图示了用于从与由触发分类器标识的用例相对应的数据中部署训练数据的过程的实施例的流程图。
图6是图示了用于在交通工具(vehicle)上执行对分类器的选择以及传送传感器数据的过程的实施例的流程图。
图7是图示了用于标识潜在训练数据的深度学习系统的实施例的框图。
具体实施方式
本文描述了一种或多种创新,其可以以多种方式来实现,包括作为过程、装置、系统、物质的组成、体现在计算机可读存储介质上的计算机程序产品、和/或处理器(诸如被配置为执行存储在耦合到该处理器的存储器上和/或由该存储器提供的指令的处理器)。在本说明书中,这些实现或该创新可以采取的任何其他形式可以被称为技术。通常,在该创新的范围内,所公开的过程的步骤的顺序可以被改变。除非另有说明,否则被描述为被配置为执行任务的诸如处理器或存储器的组件,可以被实现为被临时配置为在给定时间执行任务的通用组件或被制造为执行任务的特定组件。如本文中所使用的,术语“处理器”指代被配置为处理诸如计算机程序指令的数据的一个或多个设备、电路和/或处理核心。
以下随图示了创新原理的附图一起提供了一种或多种创新的一个或多个实施例的详细描述。结合这样的实施例描述了创新,但是创新不限于任何实施例。创新的范围仅受权利要求书的限制,并且创新包含许多替代、修改和等同物。在下面的描述中阐述了许多具体细节,以提供对创新的透彻理解。提供这些细节是出于示例的目的,并且可以在没有这些具体细节中的一些或所有具体细节的情况下根据权利要求书来实践创新。为了清楚起见,未详细描述与创新相关的技术领域中已知的技术材料,从而不会不必要地混淆创新。
介绍
本说明书描述了至少解决以下技术问题的创新。有效的机器学习技术依赖于被用来通知基础机器学习模型的训练数据集。例如,可以使用数千、数十万、数百万等等的示例来训练神经网络。在训练期间,这些示例可以被用来调整神经网络的参数(例如权重、偏差等)。附加地,这些示例可以被用来调整神经网络的超参数(例如,若干层)。因此,对训练数据的访问是对使用此类机器学习技术的限制。
随着机器学习模型变得越来越复杂,诸如更深的神经网络,大型训练数据集的必要性也相应增加。与较浅的神经网络相比,这些更深的神经网络可能需要更多数目的训练示例,以确保其通用性为高。例如,虽然神经网络可以被训练为相对于训练数据是高度准确的,但是神经网络可能无法很好地推广到看不到的未来示例。在该示例中,神经网络可以受益于包括在训练数据中的附加的示例。
应当理解,获取训练数据可能存在巨大的技术障碍。例如,某些机器学习模型可以被用来对包括在图像中的特征或对象进行分类。在该示例中,机器学习模型可以学习从第二对象(例如,停车标志)识别出第一对象(例如,汽车)。这些机器学习模型的有效性可能会根据特征或对象的示例数目而受到限制。例如,实体可能希望机器学习模型识别出在街上骑的自行车。作为另一示例,实体可能希望机器学习模型识别出在汽车的后部所携带的自行车。缺少这些示例的足够训练示例,机器学习模型的识别可能不足够准确而无法使用。通常,可能需要实体花费很大的努力才能让人们对图像进行标记以包括某些特征或对象。例如,人们可能必须手动审阅图像,并且然后将标签分配给图像的与某些特征或对象相对应的部分。
一个实施例是一种通过快速生成训练数据来解决该问题的系统和方法。在一个实施例中,训练数据可以包括任何期望的可学习特征的示例。关于计算机视觉,训练数据可以被快速生成,该训练数据包括图像中任何所期望对象或特征的示例。这些对象或特征通常可以表示难以标识的“边缘情况”。例如,可以生成训练数据,其包括由实体所期望的复杂场景的图像。在该示例中,实体可能更想获取描绘在交通工具的后部或前部上的自行车的图像(例如,在公共汽车的前机架中携带的自行车)。
以上所描述的实体可以利用在世界的各种道路或其他可导航区域上行驶的众多(例如,数千、数百万)交通工具。这些交通工具可以包括传感器(例如相机),或以其他方式对传感器(例如相机)具有访问。随着这些交通工具到处行驶,它们可以捕获传感器信息。例如,传感器信息可以在交通工具的正常操作过程中被捕获。传感器信息可以被交通工具用于诸如车道导航的某些自动驾驶特征。然而,在一个实施例中,该系统包括电路和软件,该电路和软件允许交通工具收集由实体所期望的将被用作针对机器学习系统的训练数据的图像特征或对象的示例。
例如,可以将分类器(例如,小型神经网络或浅神经网络、支持向量机等)上传到交通工具的至少一部分。交通工具可以在正常操作期间获取传感器信息(例如,图像、视频),并且分类器可以被配置为标识传感器信息中表示的特定特征或对象。在被提供给交通工具之前,这些分类器可以被训练来将图像分类为包括特定图像特征或对象。例如,特定图像特征或对象的有限数目的示例(例如,一百、一千等等)可以被用来训练这些分类器。如将要描述的,分类器然后可以使用来自在交通工具上执行的机器学习模型的中间层的信息来对传感器数据进行分类。示例机器学习模型可以包括卷积网络。示例机器学习模型可以至少部分地用于上面所描述的自动驾驶特征。因此,分类器可以利用现有的示例机器学习模型。
可以将这些分类器中的众多分类器上传到交通工具内的计算机系统,以使得分类器可以被用来识别出与分类器相关联的特定图像特征或对象。然后由分类器指明为包括特定特征或对象的所捕获的图像可以被传送给中央服务器系统,并且被用作针对神经网络系统的训练数据。由于分类器可以利用在典型操作中已被交通工具执行的现有机器学习模型,因此分类器在处理要求方面可能是有效的。附加地,可能会有大量数目的交通工具在不同的环境中行驶,这增加了获取难以找到具有某些特征的“边缘情况”的示例的可能性。以这种方式,实体可以快速获取表示该实体感兴趣的特定图像特征或对象的传感器信息(例如,图像)。
在本说明书中,要学习的对象或特征可以表示可以在传感器数据中捕获的任何现实世界的对象、场景、特征等。示例对象或特征可以包括道路中的轮胎、隧道出口、自行车、树枝伸入道路中的树木、在其中交通工具执行特定动作或机动或者以特定方式取向的场景等。此外,本文中做出参考以针对用例或目的来标识训练数据。示例用例或目的可以包括标识一个或多个对象、特征等。附加地,尽管本说明书描述了获取诸如图像的传感器信息的交通工具,但是可以理解的是,本文所描述的特征可以是广泛可适用的。例如,分类器可以被提供给用户设备(例如,智能电话)并且被用来识别出特定的图像特征或对象。作为另一示例,分类器可以被用于飞机、无人机、无人交通工具等。
训练数据的生成
一种用于标识与特定用例相关的附加训练数据的神经网络训练技术被公开。通过标识和收集附加训练数据,尤其是难以正确分析用例的数据,可以对深度学习系统进行再训练以提高其性能。例如,可以标识困难的用例,并且可以基于该用例来收集数据。然后可以用新收集的数据来训练新的机器学习模型,其优于旧模型。在各种实施例中,现有的机器学习模型与触发分类器一起被利用,以标识相关训练数据。然后将相关训练数据传送回以进行处理以创建新的训练数据。在一些实施例中,表示目标用例的初始数据集被创建并且被用来创建触发分类器。
例如,针对自主驾驶的深度学习系统可能在分析和标识隧道出口方面有困难。利用隧道出口的正示例和负示例来创建训练数据集。在一些实施例中,使用现有机器学习模型的层的中间输出来在初始训练数据集上训练触发分类器。在一些实施例中,该层是中间层。例如,来自训练集的数据被馈送到现有的机器学习模型,并且模型的倒数第二层的输出被用作对触发分类器进行训练的输入。在一些实施例中,触发分类器是从所部署的深度学习应用离线训练的支持向量机。一旦经过训练,触发分类器就可以被安装或部署为与在交通工具的自主驾驶系统中已经使用的深度学习系统一起运行。例如,触发分类器可以通过无线网络来进行部署,该无线网络将触发分类器下载并安装在交通工具中。触发分类器被应用于所部署的深度学习系统的同一层的中间输出,以确定分类器得分。在一些实施例中,向触发分类器的输入是卷积神经网络(cnn)的层的中间输出,该卷积神经网络被应用于由自主交通工具所捕获的传感器数据,例如由交通工具上的相机所捕获的图像数据。
在一些实施例中,使用单个支持向量机、小型神经网络、或另一适当的分类器来实现的触发分类器可以被应用于整个所捕获的图像和/或图像的特定位置。例如,触发分类器可以被应用于图像的每个单个位置或位置的子集。触发分类器可以被应用以在空间上有效地扫描穿过神经网络的特征,以标识小部件,诸如购物车、动物等。一旦被应用,触发分类器确定分类器得分,以及取决于得分,传感器数据被标识并且被保留作为潜在有用的训练数据。作为一个示例,触发分类器基于数据表示隧道出口的可能性对来自相机的传感器数据进行评分。评分为高并且很可能表示隧道出口的传感器数据被保留并且被标志为将被用作训练数据。在一些实施例中,将诸如滤波器的触发属性应用于触发分类器,以确定在继续确定分类器得分时必须满足的条件、分类器得分超过阈值的情况、和/或保持传感器数据所必要的条件。例如,在一些实施例中,每个间隔对传感器数据进行评分和收集最多一次,诸如每30分钟不超过一次。在一些实施例中,分类器得分必须超过针对传感器数据被收集和保留的阈值。如果传感器数据满足所配置的阈值,则传感器数据被保留并被用作潜在的新训练数据。在一个实施例中,传感器数据被无线地上传到正在管理训练数据系统的服务器。
在一些实施例中,附加的元数据与传感器数据一起被收集并且被保留,诸如位置、道路类型、交通工具模型、交通工具是左驾还是右驾、一天中的时间、分类器得分、自上次传送传感器数据以来的时间长度、和/或交通工具控制参数/操作条件(诸如速度、加速度、转向、制动、转向角等)。在各种实施例中,将数据和元数据传送给计算机数据服务器,在那里将其被用于创建新的训练数据集,以针对特定用例改善深度学习系统的应用。例如,与所标识的隧道出口相关联的经保留的传感器数据由触发分类器标识,并且被用来创建用于标识隧道出口的附加训练数据。
在一些实施例中,在上传之后,传感器数据被审阅和注释以创建新的训练数据集,该新的训练数据集被用来改善交通工具的自主驾驶特征。例如,数据可以被注释为隧道出口的正样本,并且可以被用来补充包括很多更多用例的原始训练数据集。使用最新整理的数据集来训练新的机器学习模型以改善自主交通工具神经网络,然后将新的机器学习模型部署到交通工具,作为对自主交通工具系统的更新。最新部署的机器学习模型具有经改善的能力,以检测被触发分类器作为目标的特定用例(例如,隧道出口)。作为一个示例,经改善的模型在标识隧道出口方面将具有经改善的准确性和性能。用例的附加示例包括为标识特定对象(例如购物车、动物等)、路况、天气、驾驶模式、危险等而经训练的触发分类器。
在各种实施例中,在不更新针对交通工具的核心软件(诸如被用于自主驾驶的深度学习系统的组件)的情况下,可以将触发分类器开发并部署到一队交通工具。链接到交通工具的现有神经网络软件并与之相关联的新的并且经更新的触发分类器可以被更频繁地推送给交通工具,并且对核心交通工具功能(尤其是诸如驾驶、安全系统和导航等)的影响很小甚至没有影响。例如,触发分类器可以被训练以标识鹅卵石道路,被部署到一队交通工具,以及在几分钟之内开始聚集鹅卵石道路的图像和相关数据。使用所公开的技术,极大地提高了聚集针对特定用例的相关训练数据的速度,而对正在进行的交通工具操作或交通工具的驾驶员或乘客影响很小甚至没有影响。无需漫长而费力的安装过程,就可以部署新的触发分类器。该过程可以例如使用空中更新来远程地并且动态地执行,而不需要将交通工具带到服务位置。在这样的更新之后,触发分类器可以针对任何满足触发条件的图像而开始对所捕获的图像进行扫描,以及然后将满足那些条件的图像作为将来的训练数据对象进行上传。
在一些实施例中,传感器数据由不同的设备传送和接收。例如,配备有自主驾驶技术的交通工具包括用于聚集与其周围环境相关的信息的传感器,该交通工具接收来自其传感器的传感器数据。在一些实施例中,交通工具配备有诸如相机、超声波传感器、雷达传感器、lidar和/或其他合适的传感器的传感器,以捕获与自主驾驶相关的数据。在一些实施例中,神经网络被应用于传感器数据。例如,卷积神经网络(cnn)被应用于接收到的传感器数据,诸如交通工具的前方道路的图像。cnn可以被用来标识在所捕获的传感器数据中的对象,并且应用神经网络的结果被用于控制交通工具。作为示例,道路车道线被标识并且被用来将交通工具保持在所标识的车道线之间。
在一些实施例中,触发分类器被应用于神经网络的中间输出,以确定针对传感器数据的分类器得分。例如,层的中间输出被馈送给触发分类器,该触发分类器确定针对传感器数据的分类器得分。在一些实施例中,神经网络包括多个中间层,并且特定的中间输出(和对应的层)是可配置的,从该特定的中间输出将输入接收到触发分类器中。例如,触发分类器可以被配置为接收倒数第二、倒数第三、倒数第四等层的输出。在一些实施例中,中间输出是来自神经网络的中间层中的任何中间层的输出。在一些实施例中,中间输出可以是神经网络的第一层的输出。在一些实施例中,至少部分地基于分类器得分来做出这样的确定:是否要经由计算机网络传送传感器数据的至少一部分。例如,基于分类器得分是否超过保留传感器数据并且传送数据以供进一步使用所需的阈值来进行确定。在一些实施例中,基于分类器得分以及是否满足附加的触发分类器条件来进行确定。所需条件的示例可以被用来基于交通工具的位置、交通工具已行驶的时间量、交通工具的类型、最近是否脱离了自主驾驶特征等等来对所捕获的传感器数据进行滤波。在各种实施例中,满足所需条件和得分阈值的传感器数据经由诸如wifi或蜂窝网络的计算机网络而被传送给计算机服务器以供进一步处理。在一些实施例中,数据被处理以创建新的或附加的训练数据集。在各种实施例中,训练数据包括训练和验证数据。
示例框图
图1a图示了交通工具沿着道路行驶并且从其周围环境聚集训练数据的示意图。在示例框图中,交通工具102正沿道路行驶。交通工具102可以包括诸如相机、雷达等的传感器,以使得传感器捕获关于交通工具102周围环境的传感器容量(volume)104的信息。在图1a中图示出了示例传感器107。例如,交通工具102可以获取交通工具102的周围环境的图像。然后可以努力分析这些所获取的图像以理解周围环境。例如,可以分析图像以对图像中所表示的对象进行分类。在该示例中,可以分析图像以标识其他交通工具、道路标记、树木或其他植被、道路中的障碍物、行人、标志等。如将在下面更详细地描述的,交通工具102可以利用机器学习技术来分析传感器信息。例如,一个或多个卷积神经网络可以被用来对示例传感器容量104中包括的对象进行分类。下面参考图1b和图7来包括交通工具102可以使用的深度学习系统700的示例描述。
虽然上述机器学习技术可以被用来分析传感器信息,但是应当理解,某些现实世界的对象或场景对于交通工具102而言可能难以准确地理解或分类。例如,轮胎106被示为位于交通工具102正在行驶的道路上。能够识别出该轮胎106可以增强交通工具102的安全性和性能。作为示例,如果轮胎106在交通工具102的路径中,则交通工具102可以执行自动驾驶技术以在轮胎106周围进行导航。附加地,即使轮胎不在交通工具102的路径中,识别出轮胎102仍然可能影响交通工具102的自动驾驶。例如,其他交通工具可能突然转向交通工具102的车道以避免轮胎106。在此示例中,能够标识轮胎106可以因此通知交通工具102的将来的经预测的移动(例如,当另一交通工具接近轮胎106时,先行减速)。
因此,对于交通工具102来说,将轮胎106准确地标识为被包括在传感器容量104中可能是有益的。然而,如上所述,能够标识轮胎106可能需要大量的训练数据。训练数据可以包括在各种道路上的所有配置的众多轮胎的图像。可以通过包括不同道路上的不同轮胎的图像来增强训练数据。附加地,可以通过在不同驾驶环境中在不同道路上的不同轮胎的图像来增强训练数据。例如,使轮胎的图像被部分地包括在不同道路上的雪中可能是有利的。作为另一示例,使经放气的轮胎的图像被包括在尘土飞扬的道路中可能是有利的。取得对此类图像的访问可能会呈现巨大的技术挑战。
如将要描述的,可以训练一个或多个分类器以识别轮胎。例如,可以使用有限训练示例集来训练分类器。然后可以经由空中(ota)更新来将这些分类器提供给交通工具102。例如,可以经由交通工具102(例如,通过wi-fi、经由诸如lte网络的蜂窝信号等)无线地接收ota更新。分类器然后可以分析交通工具102所获取的传感器信息。如果分类器检测到传感器信息(例如图像)中描绘了轮胎,则交通工具102可以将传感器信息传送到外部系统以进行处理。该外部系统可以聚合这样的所接收的传感器信息以创建轮胎的训练数据集。如将要描述的,这些训练数据集然后可以被用来训练在交通工具102上执行的复杂机器学习模型(例如,卷积神经网络)。以这种方式,可以增强机器学习模型,并且从而增强交通工具102执行自动驾驶任务的能力。
图1b图示了训练数据的生成的框图。在该图示中,交通工具102正在接收传感器数据108。传感器数据108可以包括描绘图1中所图示的轮胎106的一个或多个图像或视频。该传感器数据108可以被提供给交通工具102中包括的一个或多个处理器中的深度学习系统700。深度学习系统700的各方面的示例在图1b中被图示出。
如所图示的,深度学习系统700可以使用诸如卷积神经网络的示例机器学习技术来分析所接收到的传感器数据108。如图2中所描述的,传感器数据108可以被预处理(例如,归一化、通过滤波器等)。应当理解,卷积神经网络可以包括众多卷积层。这些卷积层可以应用卷积滤波器,以使得输出容量被创建。在一些实施例中,一个或多个完全连接或密集的层可以被用作最终层,以对包括在传感器数据108中的特征或对象进行分类。作为示例,一个或多个softmax层或独立的逻辑分类器可以被用来对特征或对象进行分类。以这种方式,深度学习系统700可以标识包括在交通工具102周围的传感器容量104中的现实世界的对象、场景等。基于标识这些现实世界的对象、场景等,交通工具102可以执行自动驾驶任务。因此,交通工具102可以在其典型操作中实现卷积神经网络。
深度学习系统700包括一个或多个分类器。例如,分类器a-n110a-110n在图1b中被图示出。这些分类器110a-110n可能已经经由对交通工具102的ota更新(例如,提供给交通工具的周期性更新)而被接收。在接收分类器110a-110n之前,实体可能已经训练它们以标识传感器数据中所表示的相应的特征或对象。例如,分类器a110a可能已经被训练来标识下雪场景。作为另一示例,分类器n110n可能已经被训练来标识道路上的自行车、轮胎等。实体可能已经使用有限的训练数据训练了分类器110a-110n。例如,可能已经使用道路上的轮胎或特定类型的道路上的特定类型的轮胎的100、500、1000个示例对分类器n110n进行了训练。
如所图示的,分类器110a-110n可以使用从示例机器学习模型(例如,卷积神经网络)的中间层所获取的信息。例如,可以从卷积神经网络的中间层获取特征112。由于可以训练卷积神经网络以对传感器数据中的特征或对象进行分类或以其他方式进行标识,因此分类器可以利用这个现有的能力。作为示例,卷积神经网络可以进行学习以应用卷积滤波器来学习指示现实世界对象的特征。卷积神经网络然后可以将特征分类为对应于现实世界对象的特定类别或类。
当训练分类器110a-110n时,它们可以因此使用从卷积神经网络的中间层所获取的信息来训练。例如,可以使用描绘轮胎的图像的有限训练数据集来训练分类器110n。在该示例中,可以将图像提供给示例卷积神经网络。在卷积神经网络的特定中间层处,可以将特征112提供给分类器110n。分类器110n然后可以被训练以针对描绘轮胎的图像分配高的分类器得分。分类器110n可以可选地被训练以针对未描绘轮胎的图像分配低的分类器得分。以这种方式,分类器110n可以利用卷积神经网络,如上所述,该卷积神经网络可以在交通工具102的典型操作中使用。
如图1b中所图示的,分类器110a-110n正在接收来自卷积神经网络的中间层的特征112。可选地,分类器110a-110n可以使用来自不同中间层的特征。例如,分类器n110n可以使用来自第一层(例如,层4、5等)的特征,而分类器a110n可以使用来自第二层(例如,层6、7等)的特征。在训练期间,可以针对每个分类器标识从其接收特征的特定层。例如,可以基于对应的训练分类器关于验证数据集的准确性来标识特定层。
关于图1a中所图示的轮胎106,分类器110a-110n中的一个分类器可以被训练来标识轮胎。例如,分类器n110n可以被训练以标识轮胎。在该示例中,分类器n110n可以将分类器得分分配给传感器数据108。在图示出的示例中,分类器n110n已经分配了大于阈值(例如,0.5,0.7等)的分类器得分。交通工具102因此可以将传感器数据108传送到外部系统(例如,训练数据生成系统120)。例如,交通工具可以经由wi-fi、蜂窝服务等在网络(例如,互联网)上传送传感器数据108。
因此,外部系统120可以接收来自众多交通工具的传感器数据108。例如,外部系统120可以接收来自交通工具的描绘轮胎的图像,这些交通工具在其正常操作过程中可能恰好经过轮胎附近。有利地,这些轮胎可以是不同类型的,可以是经放气的或处于衰减状态,可以被表示在不同的道路条件下,可以被部分阻塞等等。作为示例,分类器110a-110n可以使用分类器得分,其导致将众多传感器数据108传送到外部系统120。例如,传送到系统120的图像的一部分可能不包括轮胎。在一些实施例中,实体可以因此快速审阅并丢弃某些图像。剩余的图像可以被聚合到大型训练数据集中,并且被用来更新在交通工具上执行的机器学习模型。例如,可以训练卷积神经网络来标识轮胎。可选地,可以将边界框或其他标签信息分配给聚合训练数据集中包括的图像。
在一些实施例中,交通工具102可以具有比当前正在由交通工具102执行的数目更多的分类器。例如,交通工具102可以具有50、75、100个分类器。然而,在交通工具102的操作期间,交通工具102可以执行20、30、40个或更多分类器。例如,交通工具102可以针对由交通工具102存储的全部分类器的子集而确定相应的分类器得分。可选地,每个分类器可以在被交换为另一分类器之前执行特定的时间段。
附加地,交通工具102可以取决于一个或多个触发来执行某些分类器。作为示例,交通工具102可以接收标识位置或近似位置的信息,其已知具有某些现实世界的对象、特征、或展现出某些场景。例如,交通工具102可以访问标识隧道出口在特定区域中的地图信息。在该示例中,交通工具102可以确保:在交通工具102接近隧道出口时,与标识隧道出口相关联的分类器正在执行。
作为另一示例,外部系统120可以可选地接收与所接收到的传感器数据一起的位置信息。因此,外部系统120可以基于针对特定现实世界区域的相同分类器来标识阈值数目的交通工具已传送传感器数据。作为示例,外部系统120可以标识特定的入口匝道(on-ramp)在道路上具有障碍物。作为另一示例,外部系统120可以标识特定的入口匝道在道路上具有某种类型的障碍物。然后,系统120可以在接近特定的现实世界区域时将信息传送到交通工具的一部分以执行相同分类器。以这种方式,系统120可以确保能够基于该相同传感器获取更大量的训练数据。
此外,即使上述分类器没有分配大于阈值的分类器得分,系统120也可以指导交通工具传送传感器数据。作为示例,系统120可以接收来自接近现实世界位置的阈值数目的交通工具的传感器数据。在该示例中,系统120可以指导在该现实世界位置的阈值距离内的任何交通工具传送传感器数据(例如,图像),即使它们的分类器没有生成大于阈值的分类器得分。由于分类器可以使用有限数目的示例(例如,如上所述,100、1000)对训练集进行训练,取决于特定交通工具相对于对象的角度,因此特定交通工具的分类器可能无法标识对象。然而,传感器数据对于生成针对对象的鲁棒训练集可能是有用的。例如,对象在由特定交通工具所获取的图像中可能是部分可见的,并且因此在大型训练集中可用于标识该对象。以这种方式,外部系统120可以凌驾于分类器并且使特定交通工具传送传感器数据。
在外部系统120接收位置信息或任何标识信息的所有情形中,应理解该信息可以被匿名化。附加地,此类技术可能需要用户的肯定同意(例如,选择加入)。
示例流程图
图2是图示了用于将触发分类器应用于机器学习模型的中间结果的过程的实施例的流程图。在一些实施例中,图2的过程被利用来收集和保留传感器数据,该传感器数据满足特定用例并且由传感器捕获,以用于针对自主驾驶的机器学习模型。例如,特定用例可以与某些特征、对象、场景等的标识相关联。在一些实施例中,图2的过程在启用自主驾驶的交通工具上被实现,而不管是否启用了自主驾驶控制。例如,传感器数据可以在以下时刻被收集:脱离自主驾驶之后立即或在交通工具正由人类驾驶员驾驶时。在一些实施例中,图2所描述的技术可以被应用于自主驾驶的上下文之外的其他深度学习系统,以改善训练数据集,特别是对于难以分析用例的情况。在各种实施例中,已经使用针对用例设计的训练数据和机器学习的层的中间输出来训练触发分类器。
在一些实施例中,多个触发和/或多个分类器可以一起被用来标识针对多个用例的传感器数据。例如,一个触发可以被用于标识隧道,另一个针对检修孔,另一个针对道路分叉等。在一些实施例中,用于确定分类器得分和/或应用所需条件的触发分类器的功能组件在不同的触发之间进行共享。在一些实施例中,每个触发使用加权向量、可选偏差和一个或多个阈值度量来被指定,以与分类器得分进行比较。在一些实施例中,针对特定触发指定了诸如一天中的时间、交通工具位置、道路类型等的附加的所需条件。例如,触发可能要求仅在黎明和黄昏时捕获隧道的传感器数据。作为另一示例并且对于减少重复数据很有用,触发可能要求以最多每30分钟且仅在交通工具已经行驶了至少20分钟之后才捕获传感器数据。在各种实施例中,(多个)触发阈值和所需条件是针对触发分类器所指定的属性。
在201处,传感器数据被接收。例如,配备有传感器的交通工具捕获传感器数据并且将传感器数据提供给在交通工具上运行的神经网络。在一些实施例中,传感器数据可以是视觉数据、超声数据、lidar数据、或其他合适的传感器数据。例如,图像是从高动态范围的前置相机所捕获的。作为另一示例,超声数据是从侧面超声传感器所捕获的。在一些实施例中,交通工具固定有用于捕获数据的多个传感器。例如,在一些实施例中,八个环绕相机被固定到交通工具,并且在高达250米的范围内在交通工具周围提供360度可见度。在一些实施例中,相机传感器包括广角前方相机、窄角前方相机、后视相机、前视侧相机、和/或后视侧相机。在一些实施例中,超声和/或雷达传感器被用来捕获周围的细节。例如,十二个超声传感器可以被固定到交通工具上,以检测硬对象和软对象两者。在一些实施例中,前置雷达被利用来捕获周围环境的数据。在各种实施例中,尽管有大雨、雾、灰尘和其他交通工具,雷达传感器仍能够捕获周围的细节。各种传感器被用来捕获交通工具周围的环境,并且被捕获图像被提供以用于深度学习分析。
在203处,传感器数据被预处理。在一些实施例中,可以对传感器数据执行一个或多个预处理通过(pass)。例如,数据可以被预处理以移除噪声、校正对准问题和/或模糊等。在一些实施例中,对数据执行一个或多个不同的滤波通过。例如,可以对数据执行高通滤波,并且可以对数据执行低通滤波以分离出传感器数据的不同分量。在各种实施例中,在203处执行的预处理步骤是可选的和/或可以被并入到神经网络中。
在205处,发起对传感器数据的深度学习分析。在一些实施例中,对在203处可选地经预处理的传感器数据执行深度学习分析。在各种实施例中,使用诸如卷积神经网络(cnn)的神经网络执行深度学习分析。在各种实施例中,机器学习模型被离线训练并且被安装到交通工具上以对传感器数据执行推理。例如,可以适当地对模型进行训练以标识道路车道线、障碍物、行人、移动的交通工具、停放的交通工具、可驾驶空间等。在各种实施例中,神经网络包括多层,该多层包括一个或多个中间层。
在207处,潜在的训练数据被标识。例如,从使用深度学习分析所分析的传感器数据中标识可用于训练机器学习模型的传感器数据。在一些实施例中,经标识的训练数据是与特定用例相关联的数据。例如,可能的用例可能涉及标识:弯曲的道路、入口匝道、出口匝道、隧道的入口、隧道的出口、道路上的障碍物、道路上的分叉、道路车道线或标记、可驾驶空间、道路标志、标志内容(例如词、数字、符号等)、和/或适用于自主驾驶的其他特征。在各种实施例中,通过使用用于深度学习分析的神经网络的层的中间输出和触发分类器来标识传感器数据中描绘的用例。例如,触发分类器使用神经网络的中间层的输出来确定分类器得分。通过了与触发一起指定的所需条件并且超过阈值的分类器得分被标识为潜在训练数据。在各种实施例中,阈值被利用来标识用例的正示例。例如,较高的经分类得分指示传感器数据是代表性用例的可能性较高。在一些实施例中,分类器得分是负一和正一之间的数字。越接近正一的得分越有可能是代表性目标用例。在各种实施例中,由附加的滤波器所指定的条件(诸如一天中的时间、交通工具类型、位置)被用来标识针对目标用例的传感器数据。
在209处,经标识的传感器数据被传送。例如,在207处经标识的传感器数据被传送给计算机服务器以进行附加处理。在一些实施例中,附加处理包括使用经标识的传感器数据来创建训练集。在各种实施例中,传感器数据例如经由wifi或蜂窝连接而从交通工具无线地传送到数据中心。在一些实施例中,元数据与传感器数据一起被传送。例如,元数据可以包括分类器得分、一天中的时间、时间戳、位置、交通工具类型、交通工具控制、和/或操作参数(诸如速度、加速度、制动、是否启用自主驾驶、转向角等等)。附加元数据包括自上次传送先前的传感器数据以来的时间、交通工具类型、天气条件、道路条件等。
在211处,数据的后处理被执行。在一些实施例中,不同的后处理技术被利用来增强质量和/或减少表示数据所需的数据量。在一些实施例中,将深度学习分析的输出与应用于其他传感器的深度学习的结果合并。在一些实施例中,后处理被用来使对不同传感器数据执行的分析变得平滑。经处理的数据可以被用于控制交通工具。与数据相关的附加信息也可以在211处被处理。例如,诸如自主驾驶系统的配置的信息(包括启用哪些自主驾驶特征)可以与深度学习分析相结合。其他信息可以包括交通工具操作和/或控制参数和/或环境数据(诸如地图、地形和/或gps数据)。在一些实施例中,后处理可以包括对来自其他传感器的数据执行的深度学习分析的结果进行组合,以创建交通工具周围环境的统一表示。在一些实施例中,在211处的后处理步骤是可选步骤。
在213处,将深度学习分析的结果提供给交通工具控制。例如,结果由交通工具控制模块使用以控制交通工具以进行自主驾驶。在一些实施例中,交通工具控制可以调整交通工具的速度和/或转向。在各种实施例中,可以禁用交通工具控制,但是在205处深度学习分析的中间结果被利用于在207处标识训练数据以及在209处传送经标识的传感器数据。以这种方式,深度学习分析可以被利用以标识并保留合适的训练数据——即使当交通工具不在自主驾驶系统的控制下。在各种实施例中,当自主驾驶系统是活动的时,传感器数据被标识并保留。
图3是图示了用于使用机器学习模型的中间结果来创建触发分类器的过程的实施例的流程图。在一些实施例中,图3的过程被利用来训练触发分类器,以标识和保留针对特定用例的相关传感器数据。例如,由深度学习系统在其常规使用期间处理的传感器数据包括可用作训练数据的数据子集。使用针对自主驾驶的深度学习系统的中间结果,触发分类器可以被训练以标识用例,诸如隧道入口、隧道出口、道路分叉、弯曲的道路、入口匝道以及对自主驾驶有用的其他适当特征。通过利用具有触发分类器的深度学习系统的中间结果,可以大大改善标识和收集的效率。在各种实施例中,将经训练的触发分类器与触发属性一起安装在所部署的深度学习系统上,以收集和保留针对相关用例的潜在训练数据。在一些实施例中,触发分类器是支持向量机,尽管也可以使用其他适当的分类器。例如,在一些实施例中,触发分类器是神经网络,并且可以包括一个或多个中间层。在一些实施例中,所部署的深度学习系统利用图2的过程。
在301处,训练数据被准备。例如,将特定用例的正示例和负示例准备为训练数据。作为一个示例,隧道出口的正示例和负示例被收集并注释。经整理并注释的数据集被用来创建训练集。在一些实施例中,注释包括对数据进行标记并且可以由人类整理者来执行。在一些实施例中,数据的格式与在所部署的深度学习应用上使用的机器学习模型兼容。在各种实施例中,训练数据包括用于测试经训练模型的准确性的验证数据。
在303处,将深度学习分析应用于训练数据。例如,现有的机器学习模型被用来发起深度学习过程。在一些实施例中,深度学习模型是诸如具有多层的卷积神经网络(cnn)的神经网络。在一些实施例中,cnn可以包括三个或更多中间层。深度学习分析的示例包括针对自主驾驶的神经网络。在各种实施例中,通过将在301处准备的训练数据馈送到神经网络以产生中间层结果,来发起深度学习分析。
在305处,触发分类器被训练。在一些实施例中,触发分类器是支持向量机或小型神经网络。在各种实施例中,对触发分类器的输入是深度学习系统的机器学习模型的第一层或中间层的输出。用于输入的特定层可以是可配置的。例如,倒数第二层、倒数第三层、倒数第四层等、直到第一层的输出,都可以被利用作为训练触发分类器的输入。在各种实施例中,训练数据的注释结果与原始数据(诸如图像数据)一起被用于训练触发分类器。通过使用正示例和负示例,触发分类器被训练以标识输入(例如,来自传感器数据的输入)是针对特定用例(诸如隧道出口)的匹配的可能性。在一些实施例中,使用在301处创建的验证数据集来验证经训练的触发分类器的结果。在一些实施例中,使用与部署在交通工具上的神经网络相匹配的离线神经网络来训练触发分类器。
在一些实施例中,神经网络输出的输出是标识输入数据(诸如原始图像)的特征的特征向量。特征可以包括原始数据中的交通工具数目、标志数目、车道数目等。层(例如在最终层之前处理的层)的中间输出包括原始输入数据的语义信息。在一些实施例中,层的中间输出可以以向量形式来表示,并且该向量比最终层的向量输出具有更多的元素。例如,神经网络的最终输出可以是32元素向量,而倒数第二层的输出可以是64元素向量。在各种实施例中,神经网络的第一层和中间层的输出(诸如例如64元素向量)包括比神经网络的最终层的输出(诸如例如32元素向量)更大量的与原始输入数据相关联的语义信息,并且因此被用于训练触发分类器。在一些实施例中,被选择用于训练触发分类器的特定层可以被动态地选择。例如,特定的中间层(诸如,较早的层)可以基于与另一层(诸如更接近最终层的层)相比,该特定层的准确性的提高而被选择。在一些实施例中,基于对层进行利用时的效率来选择特定层。例如,如果使用具有较小输出向量的层的结果满足准确性要求,则可以选择该层。
在一些实施例中,来自不同中间层的输入被用来训练一个以上触发分类器,并且将不同的经训练分类器相互比较。准确性和性能之间的平衡被用来确定要使用多个分类器中的哪个。例如,对于某些用例,较早的中间层的输出是必需的,而对于其他用例,较晚的中间层的输出是足够的。最佳的中间层的输出可以通过比较多个经训练的触发分类器来确定。在各种实施例中,作为触发分类器训练过程的一部分,动态地选择从神经网络的哪一层接收中间结果。
在一些实施例中,经训练的分类器可以由向量和偏差因子来指定。例如,经训练的分类器可以是权重的向量,其被偏置因子偏移以确定分类器得分。在一些实施例中,向量的元素数目与所使用的中间层的输出的元素数目以及用于训练分类器的输入的元素数目相同。例如,在被用来训练分类器的中间层的输出为1024个元素的情况下,被用来训练触发分类器的输入数据为1024个元素并且所得的触发分类器可以被表示为1024个加权向量和偏差。在一些实施例中,偏差是可选的,并且可以由加权向量的元素来考虑。
在307处,针对在305处训练的分类器的触发属性被确定。例如,可以确定阈值,该阈值与由经训练的触发分类器确定的分类器得分进行比较。例如,超过阈值的分类器得分指示与得分相关联的原始输入很可能是目标用例的正示例。例如,被训练来标识隧道出口的触发分类器确定分类器得分。使用0.5的阈值、0.7的分类器得分指示数据很可能表示隧道出口。在一些实施例中,-1.0的得分是负示例,并且1.0的得分是正示例。分类器得分位于-1.0到1.0之间,以指示原始输入是目标用例的正示例或负示例的可能性。
在一些实施例中,触发属性包括所需条件,诸如触发滤波器。触发滤波器是被用来将传感器数据的保留限制为所描述的条件的滤波器。例如,可以基于与数据相关联的位置来触发传感器数据以进行保留。其他示例包括自上一次触发传感器数据以来的时间长度和正标识、自驱动器启动以来的时间长度、一天中的时间、位置、道路类型等。在各种实施例中,一个或多个触发属性可以被指定以限制条件,在该条件下触发分类器被用来收集和保留传感器数据。
在309处,触发分类器和触发属性被部署。例如,被用来触发分类器以保留传感器数据的触发分类器和属性与深度学习系统一起被安装。例如,触发分类器和属性可以被打包为小的二进制,其被无线地传送给交通工具。在一些实施例中,使用诸如wifi或蜂窝网络连接的无线技术传送经打包的触发分类器和属性作为空中更新。一旦在交通工具上被接收,触发分类器和属性将作为自主驾驶系统的一部分进行安装。在一些实施例中,仅安装触发分类器。在一些实施例中,触发分类器和针对自主驾驶的深度学习模型被一起安装。在各种实施例中,自主驾驶系统的机器学习模型与被用来训练触发分类器的那一模型相匹配。
图4是图示了用于使用触发分类器来标识潜在训练数据的过程的实施例的流程图。在一些实施例中,触发分类器与深度学习系统结合运行。例如,深度学习系统使用的机器学习模型与被用来训练触发分类器的模型相匹配,该深度学习系统与触发分类器一起被利用作为自主驾驶系统的一部分。触发分类器分析至少部分地由深度学习系统进行分析的传感器数据,以标识传感器数据是否满足保证对传感器数据进行保证保留的特定用例。然后,传感器数据被传送到计算机服务器,并且可以被用来针对经改进的机器学习模型创建训练数据,该经改进的机器学习模型在标识特定用例方面具有提高的性能。用例的示例包括标识入口匝道、隧道出口、道路上的障碍物、道路上的分叉、交通工具的特定类型等。在一些实施例中,触发参数被用来配置条件,触发分类器在该条件下标识相关结果。在一些实施例中,一个或多个触发分类器和参数被用来标识一个或多个不同的用例。在一些实施例中,在图2的205、207、209、211和/或213处执行图4的过程。在一些实施例中,使用图3的过程来训练在图4的过程中所使用的触发分类器。
在401处,深度学习分析被发起。例如,自主驾驶系统的深度学习分析是利用由附接到交通工具的传感器所捕获的传感器数据来发起的。在一些实施例中,经发起的深度学习分析包括对传感器数据进行预处理。在各种实施例中,深度学习分析利用经训练的机器学习模型,该模型具有包括一个或多个中间层的多层。在一些实施例中,第一层和任何中间层的输出被认为是中间输出。在各种实施例中,中间输出是除了最终输出(例如,模型的最终层的输出)之外的机器学习模型的层的输出。
在403处,使用深度学习分析的一层的推理完成。例如,神经网络包括多层,该多层包括中间层,随后是最终层。每层的输出(例如,中间结果)作为输入被馈送到下一层。在一些实施例中,第一层和每个中间层的输出被认为是中间结果。在各种实施例中,确定单个层的输出的结果是向量,该向量可以被用作下一层的输入。在一些实施例中,到神经网络的第一层的输入是传感器数据,诸如图像数据。在一些实施例中,神经网络是卷积神经网络。
在405处,做出以下确定:在403处执行的层分析的输出是否是神经网络的最终层的结果。在输出不是最终层的结果的情况下,例如,输出是中间结果,则处理继续到409。在输出是神经网络的最终层的结果的情况下,则使用机器学习模型所执行的推理完成,并且处理继续到407。在一些实施例中,被提供给407的在405处的输出是特征向量。
在407处,对传感器数据执行深度学习分析的结果被提供给交通工具控制。在一些实施例中,结果被后处理。例如,一个或多个不同神经网络的针对来自一个或多个不同的传感器的输入的结果可以进行组合。在一些实施例中,使用交通工具控制模块来控制交通工具的操作以实现交通工具控制。例如,交通工具控制能够针对自主驾驶来修改交通工具的速度、转向、加速度、制动等。在一些实施例中,交通工具控制可以启用或禁用转向信号、刹车灯、前灯和/或操作交通工具的其他控件/信号,包括诸如经由诸如wifi或蜂窝网络的无线网络发送网络消息的网络控件。在各种实施例中,例如当自主驾驶特征被禁用时,可能无法启用交通工具控制来主动控制交通工具。例如,执行401和403处的深度学习分析,以将结果作为输入提供给触发分类器,以便即使在自主驾驶系统未主动控制交通工具时也可以标识潜在的训练数据。
在409处,做出以下确定:神经网络的层和触发条件是否适合于用于应用触发分类器。例如,触发属性指示用于应用触发分类器所需的条件。条件的示例包括自上次捕获以来的时间长度是否已超过最小时间量、行驶时间的最小长度是否已逝去、一天中的时间是否在某个范围内等等。一天中不同时间的示例可以包括黎明、黄昏、白天、晚上等。附加条件要求可以基于位置、天气、道路条件、道路类型、交通工具类型、自主驾驶特征的脱离、转向角(例如,超过转向角阈值)、加速度的变化、制动器的激活、或其他适当的特征。不同天气条件的示例可以包括雪、冰雹、雨夹雪、雨、大雨、阴天、晴天、多云、有雾等。不同的条件可以由触发属性来指定。在一些实施例中,不同的用例可以利用不同的触发属性以及神经网络的不同层的中间结果。例如,某些用例使用神经网络的较后层的中间结果可能更有效并且产生高质量的结果。其他用例可能需要较早的中间结果,以便标识满足用例的传感器数据的有用示例。在一些情况下,可以使用多个条件检查和/或逻辑运算符(诸如and(与)和or(或)运算符)来嵌套被用来指定要应用触发分类器的条件的触发属性。
在411处,触发分类器得分被确定。例如,通过将触发分类器应用于神经网络的中间结果来确定触发分类器得分。在一些实施例中,触发分类器的应用利用了加权向量和可选的偏差来确定与传感器数据相关联的分类器得分。在一些实施例中,触发分类器是支持向量机或神经网络。在一些实施例中,通过在定制的人工智能(ai)处理器上运行分类器来改善触发分类器的性能。例如,ai处理器可以在极少的周期内对两个向量执行点积运算和/或利用有限的浪费的周期内执行多个点积。在一些实施例中,经确定的分类器得分是浮点数,其表示传感器数据是目标用例的正(或负)示例的可能性。例如,特定范围(诸如-1和+1之间)可以被用来表示传感器数据是目标用例的负示例或正示例的可能性。
在413处,做出以下确定:分类器得分是否超过阈值以及所需的触发条件是否被满足。例如,在一些实施例中,将分类器得分与阈值进行比较。在分类器得分超过阈值的情况下,则处理继续至415。在分类器得分未超过阈值的情况下,则处理继续至403。在一些实施例中,可以在分类器得分被确定之后应用附加的触发所需条件。例如,可以将所确定的分类器得分与某个时间窗口内的先前所确定的分类器得分进行比较。作为另一示例,可以将所确定的分类器得分与来自相同位置的先前确定的得分进行比较。作为另一示例,可能需要传感器数据满足时间条件和位置条件两者。例如,仅最近10分钟内来自同一位置的具有最高得分的传感器数据被保留作为潜在数据。在各种实施例中,条件可以包括触发属性,该触发属性用作或者传送或者不传送传感器数据的滤波器。在一些实施例中,在413处的条件是可选的,并且仅将分类器得分与阈值进行比较。
在一些实施例中,对于正示例和负示例两者存在分离的阈值。例如,阈值+0.5和-0.5可以被利用来将正传感器数据和负传感器数据标识为潜在的训练数据。在+0.5和1.0之间的分类器得分被利用来标识正样本,并且在-1.0和-0.5之间的分类器得分被利用来标识负样本。在一些实施例中,仅保留正示例以进行传送。
在415处,经标识的传感器数据被传送。例如,经标识的传感器数据被传送给计算机服务器(例如,训练数据生成系统120),在这里其可以被用来创建训练数据。在各种实施例中,训练数据包括训练数据集和验证数据集。在一些实施例中,被传送的传感器数据包括元数据。元数据的示例可以包括数据的时间、时间戳、道路条件、天气条件、位置、交通工具类型、交通工具是左驾还是右驾交通工具、分类器得分、用例、神经网络的标识符、触发分类器的标识符、与自主驾驶系统相关联的固件版本、或者与传感器数据和/或交通工具相关联的其他适当的元数据。在一些实施例中,一天中的时间可以指示诸如黄昏、黎明、夜晚、白天、满月、日食等的时间段。例如,神经网络和/或触发分类器的标识符可以被传送以标识用于训练触发分类器并且用于确定分类器得分的特定的经训练的机器学习模型。在一些实施例中,传感器数据和/或元数据在被传送之前首先被压缩。在一些实施例中,传感器数据被按批发送以更有效地传递传感器数据。例如,传感器数据的多个图像的压缩被执行,并且一系列传感器数据被一起传送。
图5是图示了用于从与由触发分类器标识的用例相对应的数据中创建训练数据的过程的实施例的流程图。例如,所接收到的传感器数据被处理以创建用于训练机器学习模型的训练数据。在一些实施例中,传感器数据对应于经由利用触发分类器的自主驾驶系统所捕获的驾驶数据。在一些实施例中,通过使用图3的过程训练的触发分类器,来使用图4的过程以接收传感器数据。在一些实施例中,传感器数据对应于基于特定用例而捕获的传感器数据,诸如对道路上的分叉、入口匝道、出口匝道、隧道入口等等的标识。在一些实施例中,所接收到的传感器数据仅对应于用例的正示例。在一些实施例中,传感器数据包括正示例和负示例两者。在各种实施例中,传感器数据包括诸如分类器得分、位置、一天中的时间或其他适当的元数据的元数据。
在501处,满足触发条件的传感器数据被接收。例如,与特定目标用例相对应的传感器数据被接收,并且可以被用作潜在的训练数据。在各种实施例中,传感器数据是以机器学习模型用作输入的格式。例如,传感器数据可以是原始的或经处理的图像数据。在一些实施例中,数据是从超声传感器、雷达、lidar传感器、或其他适当技术所捕获的数据。在各种实施例中,如关于图2-图4所描述的,使用触发分类器和触发属性来指定触发条件。
在503处,传感器数据被转换成训练数据。例如,在501处所接收的传感器数据包括被标识为潜在有用的训练数据的数据。在一些实施例中,所接收的传感器数据被压缩以改善用于传送来自远程交通工具的数据的效率,并且首先被解压缩。在一些实施例中,对数据进行审阅以确定传感器数据是否准确地表示目标用例。例如,用于标识隧道出口示例的目标用例被审阅,以确定原始传感器数据是否确实是隧道出口的传感器数据。在一些实施例中,高准确度的机器学习模型被用来确认传感器数据是否表示目标用例。在一些实施例中,人类审阅并确认传感器数据是否表示目标用例。在一些实施例中,用于训练的有用数据被注释。例如,数据可以被标记为正示例或负示例。在一些实施例中,针对目标对象而对数据进行注释并且可以对其进行标记。例如,可以取决于目标用例来对车道标记、标志、交通信号灯等进行注释。在各种实施例中,注释可以被用于训练和/或核实经训练的机器学习模型。
在505处,将在503处转换的训练数据准备为训练和验证数据集。在各种实施例中,将在503处转换的传感器数据准备为用于训练的数据集和用于验证机器学习模型的验证数据集。在一些实施例中,503的训练数据被合并到现有训练数据集中。例如,可将适用于大多数用例的现有训练数据集与最新转换的训练数据合并,以改善对特定用例的覆盖范围。最新转换的训练数据对提高模型在标识特定用例中的准确性是有用的。在一些实施例中,现有训练数据的一些部分被丢弃和/或被新的训练数据替换。
在507处,机器学习模型被训练。例如,使用在505处准备的数据来训练机器学习模型。在一些实施例中,该模型是诸如卷积神经网络(cnn)的神经网络。在各种实施例中,模型包括多个中间层。在一些实施例中,神经网络可以包括多层,该多层包括多个卷积和池化层。在一些实施例中,使用从所接收的传感器数据中创建的验证数据集来验证训练模型。
在509处,经训练的机器学习模型被部署。例如,将经训练的机器学习模型作为针对自主学习系统的更新被安装在交通工具上。例如,可以使用空中更新来安装新模型。在一些实施例中,更新是使用诸如wifi或蜂窝网络的无线网络传送的固件更新。在一些实施例中,新模型被用于训练新的触发分类器。在各种实施例中,基于旧模型的现有触发分类器到期,并且基于最新训练的模型来部署新的触发分类器。在一些实施例中,在维修交通工具时安装新的机器学习模型。
图6是图示了用于引起对交通工具上的分类器的选择的过程的实施例的流程图。该过程可以可选地由交通工具,诸如一个或多个处理器的交通工具来实现。例如,交通工具可能已经存储了众多分类器。在该示例中,交通工具可以执行分类器的子集以保存处理资源。例如,交通工具可以确定针对仅子集的分类器得分。如图1b中所描述的,交通工具可以周期性地更新子集(例如,在阈值时间量之后选择新的分类器)。在一些实施例中,交通工具可以从外部系统(例如,系统120)接收标识交通工具将要执行一个或多个特定分类器的信息。
在框601处,交通工具执行分类器。如上面所描述的,交通工具可以获取传感器数据并且基于传感器数据来确定分类器得分。
在框603处,交通工具接收触发以选择新的分类器。交通工具可以至少经由全球导航卫星系统(gnss)接收器来监测其位置。在一些实施例中,交通工具可以访问地图信息。地图信息可以标识某些特征或用例,对于这些特征或用例而言,获取训练数据可能是有利的。作为示例,地图信息可以标识隧道出口。作为另一示例,地图信息可以标识部分被遮挡或隐藏的边道。作为另一示例,地图信息可以标识特定风格或形式的自行车道(例如,升高的或偏移的自行车道)的位置。交通工具可以确定其何时接近特定特征或用例(例如,具有阈值距离)。交通工具然后可以获取标识与特定特征或用例相关联的新分类器的信息。然后,该新分类器可以由交通工具执行以确定针对所接收的传感器数据的分类器得分。
附加地,交通工具可以将位置信息传送给外部系统。然后,外部系统可以将关于交通工具将要执行的一个或多个新分类器的信息传送给交通工具。例如,外部系统可以传送与每个分类器相关联的唯一标识符。如图1b中所描述的,外部系统可能已经从至少特定数目的交通工具(例如1、3、10、20)上执行的相同分类器中接收到信息。这些交通工具可能已经在彼此的阈值距离(例如,半径)之内,以使得外部系统确定了在这些交通工具位置附近的特征或用例的存在。因此,如果交通工具在位置的阈值距离之内,则外部系统可以指导交通工具执行相同分类器。以这种方式,外部系统可以获取与该分类器相关联的传感器数据。
在框605处,交通工具执行新分类器。如本文中所描述的,新分类器可以获取来自机器学习模型(例如,卷积神经网络)的中间层的信息。在框607处,交通工具然后确定分类器得分。在框609处,交通工具随后基于分类器得分超过阈值来传送传感器数据(例如,图像)。如上所述,传感器数据可以与元数据一起被传送。
图7是图示了用于标识潜在训练数据的深度学习系统的实施例的框图。例如,该框图包括与针对自主驾驶的触发分类器相连的深度学习系统的不同组件,其中针对自主驾驶所捕获的传感器数据的子集被标识为潜在训练数据。在一些实施例中,深度学习系统可以被动地分析传感器数据,并且深度学习系统的层的中间输出被用作触发分类器的输入。在一些实施例中,深度学习系统主动地分析和控制交通工具的操作,同时还标识和保留潜在有用的传感器数据以供创建附加的训练数据。在一些实施例中,自主驾驶系统被用于交通工具的自我驾驶或驾驶员辅助操作。在各种实施例中,图2-图6的过程利用深度学习系统和/或系统(诸如图7中所描述的系统)的组件。
在所示的示例中,深度学习系统700是深度学习网络,其包括传感器701、图像预处理器703、深度学习网络705、人工智能(ai)处理器707、交通工具控制模块709、网络接口711、和触发分类器模块713。在各种实施例中,不同的组件被通信地连接。例如,来自传感器701的传感器数据被馈送到图像预处理器703。图像预处理器703的经处理的传感器数据被馈送到在ai处理器707上运行的深度学习网络705。在ai处理器707上运行的深度学习网络705的输出被馈送到交通工具控制模块709。在ai处理器707上运行的深度学习网络705的中间结果被馈送到触发分类器模块713。传感器数据经由网络接口711被发送,该传感器数据触发保留以由触发分类器模块713进行传送。在一些实施例中,触发分类器模块713在ai处理器707上运行。在各种实施例中,基于交通工具的自主操作和/或触发分类器模块713的结果,网络接口711被用来与远程服务器通信、拨打电话、发送和/或接收文本消息、传送由触发分类器模块713标识的传感器数据等。在一些实施例中,深度学习系统700可以适当地包括附加的或更少的组件。例如,在一些实施例中,图像预处理器703是可选组件。作为另一示例,在一些实施例中,在输出被提供给交通工具控制模块709之前,使用后处理组件(未示出)对深度学习网络705的输出执行后处理。
在一些实施例中,传感器701包括一个或多个传感器。在各种实施例中,传感器701可以在交通工具的不同位置处被固定到交通工具、和/或取向在一个或多个不同方向上。例如,传感器701可以在向前、向后、向侧面等方向上被固定到交通工具的前、侧、后和/或车顶等。在一些实施例中,传感器701可以是图像传感器,诸如高动态范围相机。在一些实施例中,传感器701包括非视觉传感器。在一些实施例中,传感器701尤其包括雷达、lidar和/或超声传感器。在一些实施例中,传感器701不与交通工具控制模块709一起安装到交通工具。例如,传感器701可以被安装在相邻交通工具上和/或被固定到道路或环境上,并且作为用于捕获传感器数据的深度学习系统的一部分而被包括。
在一些实施例中,图像预处理器703被用来对传感器701的传感器数据进行预处理。例如,图像预处理器703可以被用来对传感器数据进行预处理、将传感器数据拆分成一个或多个分量、和/或对一个或多个分量进行后处理。在一些实施例中,图像预处理器703是图形处理单元(gpu)、中央处理单元(cpu)、图像信号处理器、或专用图像处理器。在各种实施例中,图像预处理器703是色调映射器处理器,用于处理高动态范围数据。在一些实施例中,图像预处理器703被实现为人工智能(ai)处理器707的一部分。例如,图像预处理器703可以是ai处理器707的组件。
在一些实施例中,深度学习网络705是用于实现自主交通工具控制的深度学习网络。例如,深度学习网络705可以是诸如卷积神经网络(cnn)的人工神经网络,其使用传感器数据来进行训练,并且其输出被提供给交通工具控制模块709。在一些实施例中,深度学习网络705的神经网络的副本被用于创建触发分类器模块713的触发分类器。
在一些实施例中,人工智能(ai)处理器707是用于运行深度学习网络705和/或触发分类器模块713的硬件处理器。在一些实施例中,ai处理器707是用于使用卷积神经网络(cnn)对传感器数据执行推理的专用ai处理器。在一些实施例中,ai处理器707针对传感器数据的比特深度被优化。在一些实施例中,ai处理器707针对深度学习操作(尤其诸如包括卷积、点积、向量、和/或矩阵操作的神经网络操作)被优化。在一些实施例中,使用图形处理单元(gpu)来实现ai处理器707。在各种实施例中,ai处理器707耦合到存储器,该存储器被配置为向ai处理器提供指令,该指令在被执行时使ai处理器对所接收的输入传感器数据执行深度学习分析,以及确定被用来至少部分地自主操作交通工具的机器学习结果。在一些实施例中,ai处理器707被配置为将深度学习网络705的一个或多个层的中间结果输出到触发分类器模块713以用于确定分类器得分。
在一些实施例中,交通工具控制模块709被利用来处理人工智能(ai)处理器707的输出并且将该输出转换为交通工具控制操作。在一些实施例中,交通工具控制模块709被利用来针对自主驾驶控制交通工具。在一些实施例中,交通工具控制模块709可以调整交通工具的速度和/或转向。例如,交通工具控制模块709可以被用来通过制动、转向、改变车道、加速、和并入另一车道等来控制交通工具。在一些实施例中,交通工具控制模块709被用来控制交通工具照明,诸如制动灯、转向信号灯、前灯等。在一些实施例中,交通工具控制模块709被用来控制交通工具音频条件,诸如交通工具的声音系统、播放音频警报、启用麦克风、启用喇叭等。在一些实施例中,交通工具控制模块709被用来控制包括警告系统的通知系统,以向驾驶员和/或乘客通知诸如潜在的碰撞或接近预定目的地的驾驶事件。在一些实施例中,交通工具控制模块709被用来调整传感器,诸如交通工具的传感器701。例如,交通工具控制模块709可以被用来改变一个或多个传感器的参数,诸如修改取向、改变输出分辨率和/或格式类型、增加或减少捕获率、调整所捕获的动态范围、调整相机的焦点、启用和/或禁用传感器等。在一些实施例中,交通工具控制模块709可以被用来改变图像预处理器703的参数,诸如修改滤波器的频率范围、调整特征和/或边缘检测参数、调整通道和比特深度等。在各种实施例中,交通工具控制模块709被用来实现交通工具的自主驾驶和/或驾驶员辅助控制。
在一些实施例中,网络接口711是用于发送和/或接收包括语音数据在内的数据的通信接口。在各种实施例中,网络接口711包括蜂窝或无线接口,用于与远程服务器进行接口,以:进行连接和进行语音呼叫、传送和/或接收文本消息、传送传感器数据、接收对自主驾驶系统的更新(包括触发分类器和属性)等。例如,网络接口711可以被用来接收针对以下项的更新:针对传感器701、图像预处理器703、深度学习网络705、ai处理器707、交通工具控制模块709、和/或触发分类器模块713的指令和/或操作参数。例如,可以使用网络接口711来更新深度学习网络705的机器学习模型。作为另一示例,网络接口711可以被用来更新传感器701的固件和/或图像预处理器703的操作参数,诸如图像处理参数。
在一些实施例中,网络接口711被用来传送由触发分类器模块713标识的传感器数据。例如,与由触发分类器标识的特定用例相对应且满足相关联的触发属性的条件的传感器数据经由网络接口711被传送给计算机服务器,诸如远程计算机服务器。在一些实施例中,触发分类器和触发属性经由网络接口711被更新。经更新的触发分类器和触发属性被安装到触发分类器模块713,并且被用来标识和保留与特定用例相对应的传感器数据。
在一些实施例中,在发生事故或接近事故的情况下,网络接口711被用来与紧急服务进行紧急联系。例如,在发生碰撞的情况下,网络接口711可以被用来联系紧急服务以寻求帮助,并且可以将交通工具的位置和碰撞细节告知紧急服务。在各种实施例中,网络接口711被用来实现自主驾驶特征,诸如访问日历信息以检索和/或更新目的地位置和/或预期到达时间。
在一些实施例中,触发分类器模块713被利用来标识和保留对应于特定用例的传感器数据。例如,触发分类器模块713确定针对由传感器701的一个或多个传感器所捕获的数据的分类器得分。将该分类器得分与阈值进行比较,并且可以保留该分类器得分并将其经由网络接口711传送给远程计算机服务器。在一些实施例中,触发分类器模块713利用触发属性来确定是否满足适当的条件来确定分类器得分和/或保留满足分类器得分阈值的传感器数据。在一些实施例中,触发分类器模块是支持向量机,并且接收深度学习网络705的中间输出作为表示传感器701的传感器数据的输入。在一些实施例中,触发分类器模块713被配置为深度学习网络705的一个或多个层的中间结果。特定层的输出可以取决于触发分类器和/或触发属性。例如,一些用例可以使用较早的中间结果,并且其他用例可以使用较晚的中间结果。在一些实施例中,ai处理器707可以被利用来执行触发分类器模块713的处理。在各种实施例中,由触发分类器模块713标识的传感器数据被用来创建新的训练数据集以标识特定用例。
所描述的实施例的各个方面、实施例、实现或特征可以被分开使用或以任何组合使用。所描述的实施例的各个方面可以通过软件、硬件或硬件和软件的组合来实现。所描述的实施例还可以被体现为用于控制制造操作的计算机可读介质上的计算机可读代码,或者可以被体现为用于控制生产线的计算机可读介质上的计算机可读代码。计算机可读介质是可以存储数据的任何数据存储设备,该数据随后可以被计算机系统读取。计算机可读介质的示例包括只读存储器、随机存取存储器、cd-rom、hdd、dvd、磁带、和光学数据存储设备。计算机可读介质还可以分布在网络耦合的计算机系统上,以使得以分布式方式存储和执行计算机可读代码。
出于解释的目的,前面的描述使用特定的术语来提供对所描述的实施例的透彻理解。然而,对于本领域技术人员将显而易见的是,不需要特定细节以实践所描述的实施例。因此,出于说明和描述的目的,呈现了特定实施例的前述描述。它们并不旨在是详尽的或者将所描述的实施例限制为所公开的精确形式。对于本领域的普通技术人员将显而易见的是,鉴于以上教导,许多修改和变化是可能的。
应当理解,本文所描述的和/或附图中所描绘的过程、方法和算法中的每个过程、方法和算法可以被体现在代码模块中、或者由代码模块完全或部分自动化,该代码模块由被配置为执行具体和特定计算机指令的一个或多个物理计算系统、硬件计算机处理器、专用电路系统和/或电子硬件执行。例如,计算系统可以包括利用特定计算机指令编程的通用计算机(例如,服务器)或专用计算机、专用电路系统等。代码模块可以被编译并链接到可执行程序中、被安装在动态链接库中、或者可以用解释性编程语言来编写。在一些实施例中,特定的操作和方法可以由特定于给定功能的电路系统来执行。
此外,本公开的功能的某些实施例在数学、计算或技术上足够复杂,以至于可能需要专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)来执行功能,例如,由于所涉及的计算的容量或复杂性,或者为了基本上实时地提供结果。例如,视频可以包括许多帧,每帧具有数百万个像素,并且需要专门编程的计算机硬件来处理视频数据,以在商业上合理的时间量内提供所期望的图像处理任务或应用。
代码模块或任何类型的数据可以被存储在任何类型的非暂态计算机可读介质上,诸如物理计算机存储,其包括硬盘驱动器、固态存储器、随机存取存储器(ram)、只读存储器(rom)、光盘、易失性或非易失性存储、它们的组合等等。在一些实施例中,非暂态计算机可读介质可以是本地处理和数据模块、远程处理模块、和远程数据存储库中的一个或多个的一部分。方法和模块(或数据)也可以作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)在各种计算机可读传输介质(包括基于无线的和基于有线/电缆的介质)上传送,并且可以采取各种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。所公开的过程或过程步骤的结果可以被永久地或以其他方式存储在任何类型的非暂态有形计算机存储中,或者可以经由计算机可读传输介质进行连通。
在本文中所描述的和/或在附图中所描绘的流程图中的任何过程、框、状态、步骤或功能应被理解为潜在地表示包括用于实现过程中的特定功能(例如逻辑或算术)或步骤的一个或多个可执行指令的代码模块、代码段或代码部分。各种过程、框、状态、步骤或功能可以与本文提供的说明性示例相结合、重新布置、向其添加、从其删除、修改或以其他方式改变。在一些实施例中,附加的或不同的计算系统或代码模块可以执行本文所描述的功能的一些或全部功能。本文所描述的方法和过程也不限于任何特定的顺序,并且与其相关的框、步骤、或状态可以以适当的其他顺序来执行,例如串行、并行、或以某些其他方式。可以将任务或事件添加到所公开的示例实施例中或从其中删除。此外,在本文中所描述的实施例中的各种系统组件的分离是出于说明的目的,并且不应被理解为在所有实施例中都需要这种分离。应当理解,所描述的程序组件、方法、和系统通常可以在单个计算机产品中被集成在一起或被包装到多个计算机产品中。
在前述说明书中,已经参照其特定实施例描述了一个或多个创新。然而,将显而易见的是,在不脱离本创新的更广泛精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图应被认为是说明性而非限制性的。
的确,应当理解,本公开的系统和方法均具有若干创新方面,其中没有单一一个对本文所公开的期望性质负有全部责任或要求。以上所描述的各种特征和过程可以彼此独立地进行使用,或者可以以各种方式进行组合。所有可能的组合和子组合旨在落入本公开的范围内。
在本说明书中被描述在在分开的实施例的上下文中的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中所描述的各种特征也可以在多个实施例中分开实现或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从该组合中删去来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以被指向子组合或子组合的变型。没有单个特征或特征组是每个实施例都需要或必不可少的。
应当理解,除非另外特别指出,或以其他方式在所使用的上下文中进行理解,否则本文中所使用的条件语言尤其诸如“能够”、“可以”、“可能”、“可”、“例如”等通常旨在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括某些特征、元素和/或步骤。因此,这样的条件语言通常不旨在暗示特征、元素和/或步骤以任何方式对于一个或多个实施例是需要的,或者一个或多个实施例必然包括用于在有或没有作者输入或提示的情况下决定这些特征、元素和/或步骤是否在任何特定实施例中被包括或将被执行的逻辑。术语“包括”、“包含”、“具有”等是同义词,并且以开放的方式被包括性地使用,并且不排除附加元素、特征、动作、操作等。同样,术语“或”以其包含性的含义被使用(而不是以其排他性的含义),因此,例如在被用来连接元素列表时,术语“或”意指列表中元素中的一个、一些或全部元素。另外,除非另有指定,否则本申请和所附权利要求书中使用的冠词“一”、“一个”和“该”应被解释为意指“一个或多个”或“至少一个”。类似地,尽管在附图中可以以特定顺序描绘操作,但是应当认识到,不需要以所示的特定顺序或以顺序的顺序执行这样的操作,或者不需要执行所有图示出的操作以实现期望的结果。此外,附图可以以流程图的形式示意性地描绘一个多个示例过程。然而,未描绘的其他操作可以被并入在示意性地图示的示例方法和过程中。例如,可以在任何所图示的操作之前、之后、同时、或之间执行一个或多个附加操作。附加地,在其他实施例中,操作可以被重新布置或重新排序。在某些情形中,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中或被包装在多种软件产品中。附加地,其他实施例在所附权利要求书的范围内。在一些情况下,权利要求书中所记载的动作可以以不同的顺序来执行并且仍然实现期望的结果。
因此,权利要求书不旨在限于本文中所示出的实施例,而是应被赋予与本文中所公开的本公开、原理及新颖特征相一致的最广范围。