一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于自主驾驶应用的应急响应车辆检测的制作方法

2022-06-01 08:28:21 来源:中国专利 TAG:

用于自主驾驶应用的应急响应车辆检测


背景技术:

1.设计一种在没有监督的情况下自主且安全地驾驶车辆的系统是极其困难的。自主车辆应当至少能够表现为在功能上相当于专心的驾驶员——其利用具有在复杂环境下识别运动和静止障碍物并对这些障碍物做出反应的令人难以置信的能力的感知和动作系统——以避免沿着车辆的路径与其他对象或结构碰撞。此外,为了完全自主地操作,车辆应当能够遵循道路的规则或惯例,这包括遵守与应急响应车辆有关的规则。例如,取决于地理位置,各种规则或惯例可能到位,例如,当检测到应急响应车辆时把车开到路边和/或停下来。
2.一些常规的系统尝试使用自我车辆的感知识别应急响应车辆。例如,各种传感器类型——例如lidar、radar、相机等——在可由自我车辆感知时可以用来检测应急响应车辆。然而,由于环境中有许多遮挡的原因,这些系统可能难以识别应急响应车辆,或者难以至少有足够反应时间的情况下识别应急响应车辆。例如,在应急响应车辆接近被建筑物或其他结构遮挡的交叉路口的情况下,自我车辆可能没有感知到应急响应车辆,直到该车辆也进入交叉路口。此时,自我车辆执行符合本地规则的操纵可能太晚,并且因此可能降低了局势的总体安全性和/或妨碍应急响应车辆的移动。


技术实现要素:

3.本公开的实施例涉及用于自主驾驶应用的应急响应车辆检测。公开了对警示(alert)进行检测和分类的系统和方法,所述警示诸如例如且不限于:应急响应车辆发出的告警(siren)、警报、喇叭和其他模式的产生的声音,来自使用自主或半自主车辆的麦克风捕获以便识别环境中的应急响应车辆的行进方向、位置和/或类型的音频。例如,多个麦克风或者麦克风阵列可以设置在车辆上并且用来生成与环境中的声音相应的音频信号。这些音频信号可以例如使用背景噪声抑制、波束形成和/或其他预处理操作进行处理以确定应急响应车辆的位置和/或行进方向(例如使用三角测量)。为了进一步提高音频数据的质量,这些麦克风可以安装在车辆周围的各个位置(例如前面、后面、左边、右边、里面等等)和/或包括有助于音频质量的物理结构,诸如避免风力作用于麦克风的风挡。
4.为了识别告警类型以及因此与其相应的应急响应车辆类型,可以通过提取mel频率系数以生成mel谱图而将音频信号转换到频域。可以使用诸如卷积递归神经网络(crnn)之类的深度神经网络(dnn)处理mel谱图,所述神经网络输出应急响应车辆使用的各种警示类型通过音频数据表示的置信度或概率。由于警示的空间和时间性质,将卷积层用于特征提取以及将递归层用于时间特征识别提高了dnn的精度。例如,dnn可以例如使用门控递归单元(gru)在保持状态的同时在音频数据的窗口上操作,以便允许说明告警的空间和时间音频分布的更轻量和精确的dnn。此外,可以将注意力应用到时间特征提取层的输出以确定整个窗口内每种类型的应急响应器警示的概率,例如给予检测的警示模式较高的权重,而不管其在窗口内的时间位置如何。为了针对不同驾驶条件——例如下雨、刮风、交通、隧道内、露天等——下的精度训练dnn,可以使用时间拉伸、时间移位、音高移位、动态范围压缩、
不同信噪比(snr)下的噪声增强等等对来自不同警示类型的音频数据进行增强,以生成说明环境物理的回声、混响、衰减、多普勒效应和/或其他效应的更稳健的训练数据集。这样,一旦被部署,dnn可以在各种操作条件下精确地预测应急响应器警示类型。
5.最后,使用所述位置、行进方向和警示类型可以允许车辆识别应急响应车辆并且作为响应制定符合本地规则或惯例的规划和/或控制决策。此外,通过使用音频(以及在实施例中,使用感知)而不是单独使用感知,可以在较早的时间识别应急响应车辆而不管是否遮挡,从而允许车辆事先制定有助于情形的总体安全的规划决策。
附图说明
6.在下文中,参照附图详细地描述用于自主驾驶应用的应急响应车辆检测的本系统和方法,其中:
7.图1a描绘了依照本公开实施例的用于应急响应车辆检测的过程的数据流图;
8.图1b描绘了依照本公开实施例的用于深度神经网络的示例架构;
9.图2描绘了依照本公开实施例的车辆上的麦克风阵列的示例布置;
10.图3-4描绘了依照本公开实施例的用于应急响应车辆检测的方法的流程图;
11.图5a为依照本公开一些实施例的示例自主车辆的图示;
12.图5b为依照本公开一些实施例的用于图5a的示例自主车辆的相机位置和视场的示例;
13.图5c为依照本公开一些实施例的用于图5a的示例自主车辆的示例系统架构的框图;
14.图5d为依照本公开一些实施例的基于云的服务器与图5a的示例自主车辆之间的通信的系统示意图;
15.图6为适合用于实现本公开一些实施例的示例计算设备的框图;以及
16.图7为适合用于实现本公开一些实施例的示例数据中心的框图。
具体实施方式
17.公开了与用于自主驾驶应用的应急响应车辆检测有关的系统和方法。尽管本公开可以针对示例自主车辆500(可替换地本文称为“车辆500”或者“自我车辆500”,其示例在这里针对图5a-5d进行描述)进行描述,但是这并不预期是限制性的。例如,本文描述的系统和方法可以由非自主车辆、半自主车辆(例如在一个或更多个高级驾驶员辅助系统(adas)中)、机器人、仓库车辆、越野车辆、飞船、船只和/或其他交通工具类型使用。此外,尽管本公开可以针对自主驾驶进行描述,但是这并不预期是限制性的。例如,本文描述的系统和方法可以用于机器人、空中系统、划船系统(例如应急船舶识别)、仿真环境(例如虚拟仿真环境内虚拟车辆的应急响应车辆检测)和/或其他技术领域。
18.参照图1a,图1a描绘了依照本公开实施例的用于应急响应车辆检测的过程100的数据流图。应当理解,本文描述的这种和其他布置仅仅作为示例而被阐述。除了示出的那些布置和元素之外或者代替示出的那些布置和元素,可以使用其他的布置和元素(例如机器、接口、功能、排序、功能分组等等),并且一些元素可以完全忽略。进一步,本文描述的元素中的许多元素是可以实现为分立的或分布式部件或者结合其他部件实现以及以任意适当的
组合和位置实现的功能实体。本文中描述为由实体执行的各种功能可以由硬件、固件和/或软件实现。例如,各种功能可以由执行存储在存储器中的指令的处理器实现。
19.过程100包括生成音频数据104的一个或更多个麦克风102(其可以类似于图5a和图5c的麦克风596)。例如,可以使用任意数量的麦克风102并且其可以以任意布置安装或者以其他方式设置在车辆500上。作为非限制性示例并且针对图2,可以将各种麦克风阵列202a-202d安装在车辆200(在实施例中,其可以类似于图5a-5d的车辆500)上。麦克风阵列202a-202d中的每一个可以包括多个麦克风,例如两个、三个、四个等等,并且每个麦克风可以包括单向的、全向的或者其他类型的麦克风。可以使用麦克风阵列202的不同配置。例如,可以使用每个阵列中四个麦克风的矩形布置,例如包括一个麦克风置于方形的每个顶点并且焊接在印刷电路板(pcb)上。作为另一个示例,可以使用七个麦克风的圆形阵列,包括圆圈上六个麦克风和中心一个麦克风。
20.取决于实施例,可以使用麦克风阵列202的各种位置。由于车辆200本身充当声障,麦克风阵列202可以放置成使得车辆200对阻挡告警具有最小的影响。这样,通过在车辆200的每侧(前面、后面、左边、右边)包括麦克风阵列202,车辆200可以不充当所述麦克风阵列202中的至少一个的屏障,从而导致较高质量的音频信号以及因此更准确的预测。例如,可以使用四个麦克风阵列202a-202d,车辆200的前面、后面、左边和右边一个。作为另一个示例,可以将另外的第五个麦克风阵列202e置于车辆的顶部。在一个实施例中,车辆200的顶部可能使用仅仅单个麦克风阵列,例如麦克风阵列202e,其可能导致更多暴露于风、雨、灰尘等等。在其他示例中,可以存在更多或更少用在车辆200的不同位置的麦克风阵列202。例如,在一些实施例中,麦克风和/或麦克风阵列202可以设置在车辆500的内部,使得所得到的产生自车辆500的驾驶室内的音频信号可以与车辆500的驾驶室内的用于应急响应车辆的警示或告警的已知的或者学习的音频信号相比较。
21.麦克风阵列202可以置于车辆200的不同位置(例如与车辆200的不同部分相应)。例如,在车辆200的左侧或右侧,麦克风阵列202可以放置成低于侧视镜或者低于门把手,并且在车辆200的前面或后面,麦克风阵列202可以放置在后车牌附近、后视相机附近、前车牌附近、挡风玻璃上方或下方和/或另一位置。在一些实施例中,将麦克风置于这些位置可以使麦克风阵列202在操作期间遭受较少的灰尘、水和/或风。例如,后视相机位置通常置于车牌所在的腔内,这可以防止水和灰尘积聚在麦克风阵列202上。类似地,在后视镜或者门把手下方可以提供防尘、防风和/或防水保护。
22.每个麦克风阵列202可以设置在外壳中,并且该外壳可以设置在车辆200上。这样,外壳会设置在车辆200的外部,并且因此可以被设计为耐受灰尘和湿气的侵入以便降低或者消除每个麦克风阵列202内麦克风的腐蚀或劣化。在一些实施例中,为了耐受灰尘和湿气,每个外壳的膜或织物覆盖物可以由不显著衰减音频信号同时提供充分的防雨、防雪、防污垢和防尘保护的材料——例如疏水性泡沫喷雾、防潮防尘复合体合成纤维等等——构造。在一些实施例中,为了避免麦克风阵列202上的风力,麦克风阵列202中的每一个可以包括一个或更多个风挡。
23.在一些实施例中,麦克风可以包括汽车级数字微机电系统(mems)麦克风,其使用脉冲密度调制(pdm)连接到汽车音频总线(a2b)收发器设备,例如以便简化车辆200中的麦克风拓扑结构。例如,这种配置可以允许实现使用低成本轻量的双绞线(tp)布线捕获来自
安装在车辆200外部的一个或更多个麦克风的音频信号。在这样的实施例中,车辆200半径内任何点处来自应急响应车辆的告警频率可以由连接到菊花链配置中的每个a2b收发器设备的过采样1比特pdm音频流表示。在上游(例如在朝着包括a2b主节点设备的电气控制单元(ecu)的方向)传递或传输至其在菊花链中的最近邻a2b节点之前,音频数据104可以由辅助节点a2b收发器转换为多信道时分复用(tdm)数据。例如,最靠近系统的a2b辅助节点收发器在将来自所述麦克风中的每一个(例如来自每个麦克风阵列202的每个麦克风)的tdm数据传输至a2b主节点之前聚合该tdm数据。a2b主节点可以通过tdm音频端口将音频数据104传输至诸如片上系统(soc)——例如图5c的soc 504——之类的所述系统的另一个部件。控制信道命令可以使用tp电缆通过soc与a2b收发器之间的集成电路(i2c)接口发送至a2b节点。每个辅助节点可以包括a2b收发器和一个或更多个pdm麦克风,其可以以足够的电流可以使用相同的tp电缆供应给所有连接的节点的方式远程地供电。
24.在实施例中,音频数据104可以使用预处理器106经历预处理。例如,一种或更多种背景噪声抑制算法可以用来抑制像风、车辆噪声、道路噪声和/或类似物那样的环境噪声。例如,可以执行一种或更多种波束形成算法以便对每个麦克风阵列202生成的音频数据104执行背景噪声抑制。当在本文中使用时,音频数据104可以指原始音频数据和/或预处理的音频数据。
25.在一些实施例中,例如在预处理之后,音频数据104可以由位置确定器108用来确定输出110。例如,位置确定器108可以使用一种或更多种(例如被动)声学定位算法——例如声学三角测量——确定应急响应车辆的位置112和/或行进方向114。位置确定器108可以使用用以确定(例如离车辆200的)距离和/或方向(例如限定应急响应车辆所在的环境的区域的角度范围)的声学三角测量分析来自多个——例如三个或更多个——麦克风阵列202的音频数据104以便确定应急响应车辆的位置112。例如,声学三角测量可以用来确定应急响应车辆离车辆200的估计距离以及应急响应车辆的警示的估计源方向。使用的麦克风或者麦克风阵列202越多,三角测量可能就越准确。然而,使用四个麦克风阵列202(例如图2的202a-202d)可以允许30度或更小度数内的准确度,其可能适合定位应急响应车辆并且对其做出反应。在其他实施例中,可能存在更多或更少使用的麦克风阵列202,并且准确度可以因此变化(例如在四十度、二十五度、十度等等内)。对于非限制性示例,由于道路系统的几何形状和总体布局的原因,除了距离度量之外,三十度内的准确度可以允许车辆500以足以依照当地的规则和惯例做出响应的准确度识别应急响应车辆位于哪条道路。这样,当接近四路交叉路口时,估计的位置和距离可以允许车辆500确定应急响应车辆在道路上从左边进入交叉路口,并且在这里更详细地描述的行进方向114可以用来确定应急响应车辆在道路上的行进方向。这样,在应急响应车辆正在远离交叉路口行进的情况下,车辆500可以确定继续通过交叉路口而不考虑应急响应车辆,而如果应急响应车辆正在朝着交叉路口行进,车辆500可以确定把车开到路边并且停下来,直到应急响应车辆过了交叉路口(在其中把车开到路边并且停下来是当地规则或惯例的示例中)。结果,在一些实施例中,(例如使用gnss地图、高清晰度(hd)地图、车辆感知等等确定的)道路布局的知识可以附加地用来确定位置112和/或行进方向114。
26.行进方向114可以由位置确定器108通过随着时间——例如在多帧或者多个时间步长内——跟踪应急响应车辆的位置112来确定。例如,如音频数据104所表示的声场的声
压、颗粒速度、声音或音频频率和/或其他物理量的变化(例如增大或减小)可以指示应急响应车辆正在接近(例如声压增大)或者远离(例如声压减小)。
27.除了位置112和行进方向114之外或者可替代地,过程100可以包括使用深度学习确定应急车辆警示类型122。例如,音频数据104——例如在由预处理器106预处理之前和/或之后——可以由谱图生成器116分析以生成谱图118。在一些实施例中,谱图118可以针对每个麦克风阵列202生成,并且dnn 120的n个实例(其中n与麦克风阵列202的数量相应)可以用来计算与告警类型122相应的n个不同输出。在其他实施例中,可以将与来自各自麦克风阵列202的谱图118相应的n个输入信道输入到同一个dnn 120以计算告警类型122。在另外的实施例中,可以对来自各自麦克风阵列202的n个信号进行预处理和/或增强以生成单个谱图118,并且该单个谱图118可以用作dnn 120的输入。
28.为了生成谱图118,可以由谱图生成器116通过提取mel频率系数将来自每个麦克风阵列202的音频数据104转换到频域。mel频率系数可以用来生成谱图118,其可以用作一个或更多个深度神经网络(dnn)120的输入以计算指示告警类型122的输出(例如置信度、概率等等)。例如,可以在某个预定尺寸(例如1024、2048等等)的窗口内采样音频数据104,例如随着时间的推移空气压力样本的数字表示,每次进行预定尺寸(例如256、512等等)的跳跃以采样下一个窗口。可以对于每个窗口计算快速傅立叶变换(fft)以便将来自时域的数据变换到频域。然后,可以将整个频谱分离或者分割成面元(bin),例如120个面元,并且可以将每个面元变换为mel尺度下的相应mel面元。对于每个窗口,可以将信号的幅度分解成其在mel尺度下与频率相应的成分。这样,可以将与频率相应的y轴转换为对数尺度,可以将与振幅相应的颜色维度转换为分贝以形成谱图,并且在实施例中,可以将与频率相应的y轴映射到mel尺度以形成mel谱图。这样,谱图118可以与一定谱图和/或mel谱图相应。
29.谱图118——例如传统或mel谱图——可以作为输入提供给dnn 120。在实施例中,dnn 120可以包括卷积递归神经网络(crnn);然而,这并不预期是限制性的。例如且非限制性地,dnn 120可以包括任意类型的机器学习模型,例如使用线性回归、逻辑回归、决策树、支持向量机(svm)、朴素贝叶斯、k-最近邻(knn)、k均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如自动编码器、卷积、递归、感知机、长期/短期记忆/lstm、霍普菲尔德、玻尔兹曼、深度信念、解卷积、生成对抗、液态机等等)、感兴趣区域检测算法、计算机视觉算法的机器学习模型和/或其他类型的机器学习模型。
30.crnn可以用作dnn 120以考虑诸如告警、警报或者车辆喇叭模式之类的应急警示的空间和时间性质。例如,每个警示可以由应急响应车辆上的仪器或音频发射设备生成为具有固定的模式。每个应急响应车辆也可以具有不同的警示类型,这取决于当前状态或情形(例如救护车在驶向不知道严重性的场景时可以具有第一警示,但是在开往医院运送只有轻微损伤的病人时可以具有第二警示)。此外,两个不同的警示可以具有相同的信号,但是一个信号可能比另一个信号延伸更长的时间段,因此识别这种差异对于告警类型122的准确分类是重要的。这样,crnn可以通过不仅查看频率、振幅和/或其他声音表示,而且查看在一定时间窗口上检测这些声音表示中的每一个的时间量而考虑这些固定的模式。
31.参照图1b,图示出用于dnn 120a(例如crnn)的示例架构。t可以与时间相应,其可以是所述谱图对应的时间窗口。在一些实施例中,t可以是250毫秒(ms)、500ms、800ms或者另一个时间窗口。f可以与频率相应。dnn 120a可以包括一系列卷积,然后是一系列rnn。卷
积层(或者特征检测器层)通常可以用来学习谱图118的对于分类有用的唯一空间特征。在图1b的架构中,卷积用门控线性单元(glu)126——例如glu 126a和glu 126b——代替,以便提高准确度并且允许在用较小的训练数据集进行训练期间较快地收敛。glu 126a和126b的输出可以相乘,并且应用到最大池化层128、卷积层130和另一个最大池化层132。最大池化层132的输出可以应用到dnn 120a的一个或更多个rnn或者有状态层。例如,有状态rnn的用户可以帮助识别较长的警示序列。dnn 120a可以使用诸如门控递归单元134a和134b之类的门控rnn提高关于序列的准确度(例如警示通常遵循声音的预定模式),同时也是轻量的且在使用较小的训练数据集进行训练期间较快地收敛。此外,为了在延迟与准确度之间进行优化,dnn 120a可以在保持gru 134的状态的同时在每个推理的(如mel谱图所表示的)音频数据窗口上操作,使得后续推理可以在音频序列上继续。rnn——例如gru 134——的输出可以相乘,并且应用到一个或更多个注意力层140。例如,gru 134的输出可以应用到具有sigmoid激活函数的致密层和具有softmax激活函数的致密层,并且这两个致密层的输出可能经历加权平均运算142以生成指示告警类型122的置信度或概率的最终输出。注意力层140可以帮助确定在t所限定的时间窗口内所述告警在何处开始。注意力层140因此用来确定在整个时间窗口内每种类型的警示的概率,给予告警、警报、喇叭或者其他产生的声音模式较高的权重,而不管其在所述时间窗口内的时间位置如何。一定时间窗口内不同警示类型的独立概率的输出允许在任何给定时间检测出多个警示类型122。例如,与对于一定数量的警示使用等于1的置信度形成对照的是,可以计算用于每种警示类型的概率,而不管其他警示类型概率或置信度如何。然而,在一些实施例中,可以使用置信度。
32.结果,crnn 100a中的glu 126可以帮助dnn快速地且在无需大的训练数据集的情况下学习用于不同类型的警示的最佳特征。此外,与注意力层140结合的有状态gru 134有助于在保持长时间依赖性的同时检测一定时间窗口内的警示。与按顺序检测每个时间帧的告警相反,这允许dnn 120更快地运行,例如没有时间元素。此外,通过将推理分解为较小的时间窗口,多普勒效应的逼近可能更为准确。进一步,使用注意力层140帮助dnn 120较早地检测到警示,而对延迟的贡献微不足道。
33.为了训练dnn 120,例如crnn 100a,可以生成训练数据集。然而,由于因为环境的物理属性的原因,难以生成包括警示类型的足够的变化的真实世界训练数据集以及到它的变换,数据增强可以用来训练dnn 120。例如,捕获其中存在警示的真实世界音频是具有挑战性的,但是在露天、在隧道中、在不同天气状况下和/或在其他不同情况下捕获该相同的音频则更具挑战性。警示模式可能在被麦克风102捕获之前经历一系列广泛的变换,例如多普勒、衰减、回声、混响和/或类似物。为了dnn 120准确地预测警示类型122,可以在这些变换发生之后训练dnn 120以识别警示类型122。
34.这样,为了生成稳健的训练集,可以例如从使用数据收集工具的真实世界集合、从警示的音轨、从包括警示的关联音频的视频和/或类似物生成包括警示(诸如,例如且非限制性地,由应急响应车辆发出的告警、喇叭、警报或者其他产生的声音模式)的音频数据的数据集。训练音频数据的实例可以利用与其中表示的不同警示类型122相应的语义或类标签进行标记。然后,训练音频数据的实例可以经历一种或更多种变换,例如时间拉伸、时间移位、音高移位、不同信噪比(snr)下的动态范围压缩、不同snr下的噪声压缩和/或其他变换类型。例如,单个实例可以用来使用不同的变换组合生成任意数量的附加实例。这样,可
以增强训练数据集以生成更新的训练集,包括原始训练数据集尺寸的某个倍数——例如25x、50x等等。
35.再次参照图1a,警示类型122可以包括应急响应车辆的类型,例如,使得两种或更多种警示类型122可以包括相同的名称,例如“消防车”、“警车”或“救护车”。在其他实施例中,警示类型122可以包括不同的警示类型,没有与应急响应车辆类型的关联,例如,诸如“哀号”、“尖叫”、“颤声”、“号角”、“穿孔”、“呐喊”、“嚎叫”、“优先”、“双音”、“隆隆声”等等。在一些实施例中,这二者的组合可以用作警示类型122,例如,诸如“警车:穿孔”或者“救护车:哀号”。这样,取决于训练dnn 120以检测的输出,dnn 120输出的概率或置信度可以与应急响应车辆名称、警示名称或者其组合的警示类型122相应。
36.在一些实施例中,除了识别警示类型122、行进方向114和/或位置112之外,该信息中的一些或者全部可以与附加的信息类型融合。例如,在来自车辆500的其他传感器(例如,如关于图5a-5c所描述的,lidar、radar、相机等等)的感知的情况下,来自过程100的结果可以与车辆500的感知输出相结合以用于冗余或融合以便提高结果的稳健性和准确度。这样,在例如使用对象检测对应急响应车辆进行识别和分类的情况下,该感知输出可以与位置112、行进方向114、警示类型122(或者如从其确定的应急响应车辆类型)相结合以更新或者查证所述预测。进一步,在一些实施例中,车辆到车辆通信可以包括用于提高结果的稳健性或准确度的附加信息源。例如,环境中的其他车辆可以与车辆500共享关于应急响应车辆的检测(例如位置、行进方向、类型等等)的信息。
37.所确定的警示类型122——其在dnn 120的任意实例处可以包括一个或更多个——应急响应车辆的行进方向、应急响应车辆的位置、车辆500的感知和/或车辆到车辆通信可以由车辆500的自主驾驶软件堆栈(例如驱动堆栈)124使用。例如,驱动堆栈124的感知层可以使用过程100识别和定位应急响应车辆以便更新世界模型(例如使用世界模型管理器)以将应急响应车辆本地化至世界模型。驱动堆栈124的规划层可以使用位置112、行进方向114和/或警示类型确定说明应急响应车辆的路线或路径规划,以便减速、靠边停车、停车和/或执行另一个操作。然后,驱动堆栈124的控制层可以使用路线或路径规划以便依照该路径控制车辆500。在一些实施例中,应急响应车辆的识别可以触发远距或远程操作请求。对于非限制性示例,远程操作可以类似于2019年3月27日提交的、通过引用全部合并于此的美国非临时申请no.16/366,506中描述的远程操作被请求和执行。这样,驱动堆栈124可以使用警示类型122(和/或如警示类型122所指示的相应应急响应车辆类型或者应急类型)、位置112和/或行进方向114执行说明应急响应车辆在环境中的存在性的一个或更多个操作。
38.现在,参照图3-4,这里描述的方法300和400的每个方框包括可以使用硬件、固件和/或软件的任意组合执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器实现。方法300和400也可以实施为存储在计算机存储介质上的计算机可用指令。举几个例子来说,方法300和400可以由独立应用程序、服务或托管服务(独立的或者与另一个托管服务结合)或者另一种产品的插件提供。此外,方法300和400通过示例的方式针对图1a的过程100以及图5a-5d的自主车辆500进行描述。然而,这些方法可以附加地或者可替换地由任何一个过程和/或任何一种系统或者过程和系统——包括但不限于本文所描述的那些——的任意组合执行。
39.参照图3,图3为示出依照本公开一些实施例的用于应急响应车辆检测的方法300的流程图。在方框b302处,方法300包括接收使用自主机器的多个麦克风生成的音频数据。例如,音频数据104可以使用麦克风102——例如麦克风阵列202的麦克风102——生成。
40.在方框b304处,方法300包括执行声学三角测量算法以确定应急响应车辆的位置或行进方向中的至少一个。例如,音频数据104(在预处理器106预处理之前或者之后)可以由位置确定器108用来确定位置112和/或行进方向114。
41.在方框b306处,过程300包括生成mel谱图。例如,谱图生成器116可以使用音频数据104生成(mel)谱图118(或者与来自音频数据的一个或更多个音频信号相应的一个或更多个频率的频谱的另一种表示)。
42.在方框b308处,过程300包括将表示mel谱图的第一数据应用到crnn。例如,表示(mel)谱图118的数据可以应用到dnn 120(例如crnn 110a)。
43.在方框b310处,过程300包括使用crnn计算表示多种警示类型的概率的第二数据。例如,crnn可以计算与多种警示类型122的概率相应的输出。
44.在方框b312处,方法300包括至少部分地基于这些概率确定应急响应车辆的类型。例如,可以将具有最高概率(或者高于阈值的概率)的警示类型122确定为存在,并且可以确定与警示类型122关联的应急响应车辆的类型。在一些实施例中,可以基于车辆500的位置和/或其他信息调节阈值。例如,由于应急响应可能在所述区域中的似然率增大的原因,除了在医院、消防站、警察局等等附近的(如使用gnss、hd地图、车辆感知等等所确定的)车辆500的位置之外或者可替代地,可以使用指示附近的事故、信号警报(sigalert)和/或结构、森林、路边或者其他火灾类型的车辆到车辆通信以降低置信度或概率阈值。
45.在方框b314处,方法300包括由自主机器至少部分地基于应急响应车辆的类型、位置和/或行进方向执行一个或更多个操作。例如,应急响应车辆的类型(和/或警示类型122)、位置112和/或行进方向114可以用来执行一个或更多个操作,以便遵守当地关于应急响应车辆的规则或惯例。
46.参照图4,图4为示出依照本公开一些实施例的用于应急响应车辆检测的方法400的流程图。在方框b402处,方法400包括接收使用多个麦克风生成的音频数据。例如,音频数据104可以使用麦克风102——例如麦克风阵列202的麦克风102——生成。
47.在方框b406处,过程400包括生成谱图。例如,谱图生成器116可以使用音频数据104生成谱图118(或者与来自音频数据的一个或更多个音频信号相应的一个或更多个频率的频谱的另一种表示)。
48.在方框b408处,过程400包括将表示谱图的第一数据应用到dnn。例如,表示谱图118的数据可以应用到dnn 120(例如crnn 110a)。
49.在方框b410处,过程400包括使用dnn的一个或更多个特征提取层且至少部分地基于第一数据计算第二数据。例如,glu 126可以用来使用表示谱图118的数据计算特征地图或特征矢量。
50.在方框b412处,过程400包括使用dnn的一个或更多个有状态层且至少部分地基于第二数据计算第三数据。例如,gru 134可以例如在诸如层128、130和/或132之类的一个或更多个附加层进行处理之前或者之后从glu 126的输出计算输出。
51.在方框b414处,过程400包括使用dnn的一个或更多个注意力层且至少部分地基于
第三数据计算表示多种警示类型的概率的第四数据。例如,dnn 120的致密层140可以用来计算指示多种警示类型122的概率的输出。
52.在方框b416处,方法400包括至少部分地基于所述概率执行一个或更多个操作。例如,应急响应车辆的类型(和/或警示类型122)、位置112和/或行进方向114可以用来执行一个或更多个操作,以便遵守当地关于应急响应车辆的规则或惯例。
53.示例自主车辆
54.图5a为依照本公开一些实施例的示例自主车辆500的图示。自主车辆500(可替代地,在本文称为“车辆500”)可以包括但不限于乘用车辆,例如汽车、卡车、公共汽车、第一响应车辆、穿梭车、电动或机动自行车、摩托车、消防车、警车、救护车、船只、建筑车辆、水下航行器、无人机和/或(例如无人的和/或容纳一个或更多个乘客的)另一种类型的车辆。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(nhtsa)以及汽车工程师协会(sae)定义的自动化级别进行描述“taxonomy and definitions for terms related to driving automation systems for on-road motor vehicles”(2018年6月15日发布的标准no.j3016-201806,2016年9月30日发布的标准no.j3016-201609,以及该标准的先前和未来的版本)。车辆500可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆500可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
55.车辆500可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆500可以包括推进系统550,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进系统类型。推进系统550可以连接到可以包括变速器的车辆500的传动系以便实现车辆500的推进。可以响应于接收到来自油门/加速器552的信号而控制推进系统550。
56.可以包括方向盘的转向(steering)系统554可以用来在推进系统550操作时(例如在车辆运动时)使车辆500转向(例如沿着希望的路径或路线)。转向系统554可以接收来自转向致动器556的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
57.制动传感器系统546可以用来响应于接收到来自制动致动器548和/或制动传感器的信号而操作车辆制动器。
58.可以包括一个或更多个片上系统(soc)504(图5c)和/或一个或更多个gpu的一个或更多个控制器536可以向车辆500的一个或更多个部件和/或系统提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器548操作车辆制动器、经由一个或更多个转向致动器556操作转向系统554、经由一个或更多个油门/加速器552操作推进系统550的信号。一个或更多个控制器536可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以允许实现自主驾驶和/或辅助人类驾驶员驾驶车辆500。一个或更多个控制器536可以包括用于自主驾驶功能的第一控制器536、用于功能性安全功能的第二控制器536、用于人工智能功能(例如计算机视觉)的第三控制器536、用于信息娱乐功能的第四控制器536、用于紧急状况下的冗余的第五控制器536和/或其他控制器。在一些示例中,单个控制器536可以处理上述功能中的两个或更多个,两个或更多个控制器536可以处理单个功能,和/或其任意组合。
59.一个或更多个控制器536可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆500的一个或更多个部件和/或系统的信号。传感器数据可以接收自例如且不限于全球导航卫星系统传感器558(例如全球定位系统传感器)、radar传感器560、超声传感器562、lidar传感器564、惯性测量单元(imu)传感器566(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风596、立体相机568、广角相机570(例如鱼眼相机)、红外相机572、环绕相机574(例如360度相机)、远程和/或中程相机598、速度传感器544(例如用于测量车辆500的速率)、振动传感器542、转向传感器540、制动传感器(例如作为制动传感器系统546的部分)和/或其他传感器类型。
60.控制器536中的一个或更多个可以接收来自车辆500的仪表组532的输入(例如由输入数据表示),并且经由人机接口(hmi)显示器534、听觉信号器、扬声器和/或经由车辆500的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图5c的hd地图522)、位置数据(例如,车辆500例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器536所感知的关于对象和对象状态的信息等等。例如,hmi显示器534可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34b,等等)。
61.车辆500还包括网络接口524,其可以使用一个或更多个无线天线526和/或调制解调器通过一个或更多个网络通信。例如,网络接口524可能够通过lte、wcdma、umts、gsm、cdma2000等通信。一个或更多个无线天线526也可以使用诸如蓝牙、蓝牙le、z波、zigbee等等之类的一个或更多个局域网和/或诸如lorawan、sigfox等等之类的一个或更多个低功率广域网(lpwan)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
62.图5b为依照本公开一些实施例的用于图5a的示例自主车辆500的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆500上的不同位置。
63.用于相机的相机类型可以包括但不限于可以适于与车辆500的部件和/或系统一起使用的数字相机。所述相机可以在汽车安全完整性级别(asil)b下和/或在另一个asil下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(rccc)滤色器阵列、红白白蓝(rccb)滤色器阵列、红蓝绿白(rbgc)滤色器阵列、foveon x3滤色器阵列、拜耳传感器(rggb)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有rccc、rccb和/或rbgc滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
64.在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助系统(adas)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
65.所述相机中的一个或更多个可以安装在诸如定制设计的(3-d打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制
3-d打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
66.具有包括车辆500前面的环境的部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器536和/或控制soc的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与lidar相同的adas功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于adas功能和系统,包括车道偏离警告(“ldw”)、自主巡航控制(“acc”),和/或诸如交通指示牌识别之类的其他功能。
67.各种各样的相机可以用于前置配置中,包括例如包括cmos(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机570,其可以用来感知从周边进入视场的对象(例如行人、十字路口交通或者自行车)。尽管图5b中图示出仅仅一个广角相机,但是在车辆500上可以存在任意数量的广角相机570。此外,远程相机598(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机598也可以用于对象检测和分类以及基本的对象追踪。
68.一个或更多个立体相机568也可以包括在前置配置中。立体相机568可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的can或以太网接口的多核微处理器和可编程逻辑(fpga)。这样的单元可以用来生成车辆环境的3-d地图,包括针对图像中的所有点的距离估计。可替代的立体相机568可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机568。
69.具有包括车辆500的侧面的环境的部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机574(例如如图5b中所示的四个环绕相机574)可以置于车辆500上。环绕相机574可以包括广角相机570、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机574(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
70.具有包括车辆500的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机598、立体相机568、红外相机572等等)的相机。
71.图5c为依照本公开一些实施例的用于图5a的示例自主车辆500的示例系统架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
72.图5c中车辆500的部件、特征和系统中的每一个被图示为经由总线502连接。总线502可以包括控制器区域网络(can)数据接口(可替代地,本文称为“can总线”)。can可以是车辆500内部的网络,用来辅助控制车辆500的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。can总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如can id)。可以读取can总线以找到方向盘角度、地速、每分钟发动机转速(rpm)、按钮位置和/或其他车辆状态指示符。can总线可以是asil b兼容的。
73.尽管这里将总线502描述为can总线,但是这并不意图是限制性的。例如,除了can总线之外或者可替代地,可以使用flexray和/或以太网。此外,尽管用单条线来表示总线502,但是这并不意图是限制性的。例如,可以存在任意数量的总线502,其可以包括一条或更多条can总线、一条或更多条flexray总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线502可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线502可以用于碰撞避免功能,并且第二总线502可以用于驱动控制。在任何示例中,每条总线502可以与车辆500的任何部件通信,并且两条或更多总线502可以与相同的部件通信。在一些示例中,车辆内的每个soc 504、每个控制器536和/或每个计算机可以有权访问相同的输入数据(例如来自车辆500的传感器的输入),并且可以连接到诸如can总线之类的公共总线。
74.车辆500可以包括一个或更多个控制器536,例如本文关于图5a所描述的那些控制器。控制器536可以用于各种各样的功能。控制器536可以耦合到车辆500的任何其他不同的部件和系统,并且可以用于车辆500的控制、车辆500的人工智能、用于车辆500的信息娱乐和/或类似物。
75.车辆500可以包括一个或更多个片上系统(soc)504。soc 504可以包括cpu 506、gpu 508、处理器510、高速缓存512、加速器514、数据存储区516和/或未图示出的其他部件和特征。在各种各样的平台和系统中,soc 504可以用来控制车辆500。例如,一个或更多个soc 504可以在系统(例如车辆500的系统)中与hd地图522结合,所述hd地图可以经由网络接口524从一个或更多个服务器(例如图5d的一个或更多个服务器578)获得地图刷新和/或更新。
76.cpu 506可以包括cpu簇或者cpu复合体(可替代地,本文称为“ccplex”)。cpu 506可以包括多个核和/或l2高速缓存。例如,在一些实施例中,cpu 506在一致性多处理器配置中可以包括八个核。在一些实施例中,cpu 506可以包括四个双核簇,其中每个簇具有专用的l2高速缓存(例如2mb l2高速缓存)。cpu 506(例如ccplex)可以被配置为支持同时簇操作,使得cpu 506的簇的任意组合能够在任何给定时间是活动的。
77.cpu 506可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于wfi/wfe指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。cpu 506可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和ccplex确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入
序列,该工作被卸载到微代码。
78.gpu 508可以包括集成的gpu(可替代地,本文称为“igpu”)。gpu 508可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,gpu 508可以使用增强张量指令集。gpu 508可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括l1高速缓存(例如具有至少96kb存储能力的l1高速缓存),并且这些流式微处理器中的两个或更多可以共享l2高速缓存(例如具有512kb存储能力的l2高速缓存)。在一些实施例中,gpu 508可以包括至少八个流式微处理器。gpu 508可以使用计算应用编程接口(api)。此外,gpu 508可以使用一个或更多个并行计算平台和/或编程模型(例如nvidia的cuda)。
79.在汽车和嵌入式使用的情况下,可以对gpu 508进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(finfet)上制造gpu 508。然而,这并不意图是限制性的,并且gpu 508可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个pf32核和32个pf64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个fp32核、8个fp64核、16个int32核、用于深层学习矩阵算术的两个混合精度nvidia张量核、l0指令高速缓存、线程束(warp)调度器、分派单元和/或64kb寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的l1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
80.gpu 508可以包括在一些示例中提供大约900gb/s的峰值内存带宽的高带宽内存(hbm)和/或16gb hbm2内存子系统。在一些示例中,除了hbm内存之外或者可替代地,可以使用同步图形随机存取存储器(sgram),例如第五代图形双倍数据速率同步随机存取存储器(gddr5)。
81.gpu 508可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ats)支持可以用来允许gpu 508直接访问cpu 506页表。在这样的示例中,当gpu 508内存管理单元(mmu)经历遗漏时,可以将地址转换请求传输至cpu 506。作为响应,cpu 506可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回gpu 508。这样,统一内存技术可以允许单个统一虚拟地址空间用于cpu 506和gpu 508二者的内存,从而简化了gpu 508编程和将应用程序移(port)到gpu 508。
82.此外,gpu 508可以包括访问计数器,其可以追踪gpu 508访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
83.soc 504可以包括任意数量的高速缓存512,包括本文描述的那些高速缓存。例如,高速缓存512可以包括cpu 506和gpu 508二者可用的l3高速缓存(例如,其连接到cpu 506和gpu 508二者)。高速缓存512可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如mei、mesi、msi等)追踪行的状态。取决于实施例,l3高速缓存可以包括4mb或者更多,但是也可以使用更小的高速缓存大小。
84.soc 504可以包括算术逻辑单元(alu),其可以被利用于执行关于车辆500的所述各种各样的任务或操作中的任何任务或操作的处理,例如处理dnn。此外,soc 504可以包括
用于执行系统内的数学运算的浮点单元(fpu)或者其他数学协处理器或数字协处理器类型。例如,soc 104可以包括作为执行单元集成在cpu 506和/或gpu 508内的一个或更多个fpu。
85.soc 504可以包括一个或更多个加速器514(例如硬件加速器、软件加速器或者其组合)。例如,soc 504可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4mb sram)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充gpu 508,并且卸载gpu 508的一些任务(例如释放gpu 508的更多周期以用于执行其他任务)。作为一个示例,加速器514可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(cnn)等等)。当在本文中使用时,术语“cnn”可以包括所有类型的cnn,包括基于区域的或者区域卷积神经网络(rcnn)和快速rcnn(例如用于对象检测)。
86.加速器514(例如硬件加速簇)可以包括深度学习加速器(dla)。dla可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(tpu)。tpu可以是被配置为执行图像处理功能(例如用于cnn、rcnn等)且针对执行图像处理功能而优化的加速器。dla可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。dla的设计可以比通用gpu提供每毫米更高的性能,并且远远超过cpu的性能。tpu可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的int8、int16和fp16数据类型,以及后处理器功能。
87.dla可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是cnn,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的cnn;用于使用来自相机传感器的数据进行距离估计的cnn;用于使用来自麦克风的数据进行应急响应车辆检测和识别与检测的cnn;用于使用来自相机传感器的数据进行面部识别和车主识别的cnn;和/或用于安全和/或安全相关事件的cnn。
88.dla可以执行gpu 508的任何功能,并且通过使用推理加速器,例如,设计者可以使dla或gpu 508针对任何功能。例如,设计者可以将cnn的处理和浮点运算聚焦在dla上,并且将其他功能留给gpu 508和/或其他加速器514。
89.加速器514(例如硬件加速簇)可以包括可编程视觉加速器(pva),其在本文中可以可替代地称为计算机视觉加速器。pva可以被设计和配置为加速用于高级驾驶员辅助系统(adas)、自主驾驶和/或增强现实(ar)和/或虚拟现实(vr)应用的计算机视觉算法。pva可以提供性能与灵活性之间的平衡。例如,每个pva可以包括例如且不限于任意数量的精简指令集计算机(risc)核、直接内存访问(dma)和/或任意数量的向量处理器。
90.risc核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些risc核中的每一个可以包括任意数量的内存。取决于实施例,risc核可以使用若干协议中的任何协议。在一些示例中,risc核可以执行实时操作系统(rtos)。risc核可以使用一个或更多个集成电路设备、专用集成电路(asic)和/或存储设备实现。例如,risc核可以包括指令高速缓存和/或紧密耦合的ram。
91.dma可以使得pva的部件能够独立于cpu 506访问系统内存。dma可以支持用来向pva提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,dma可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块
步进、竖直块步进和/或深度步进。
92.向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,pva可以包括pva核和两个向量处理子系统分区。pva核可以包括处理器子系统、一个或更多个dma引擎(例如两个dma引擎)和/或其他外围设备。向量处理子系统可以作为pva的主处理引擎而操作,并且可以包括向量处理单元(vpu)、指令高速缓存和/或向量内存(例如vmem)。vpu核可以包括数字信号处理器,诸如例如单指令多数据(simd)、超长指令字(vliw)数字信号处理器。simd和vliw的组合可以增强吞吐量和速率。
93.向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定pva中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个pva中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定pva中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的pva可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些pva中的每一个中。此外,pva可以包括附加的纠错码(ecc)内存,以增强总体系统安全性。
94.加速器514(例如硬件加速簇)可以包括片上计算机视觉网络和sram,以提供用于加速器514的高带宽、低延迟sram。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4mb sram,其可以由pva和dla二者访问。每对内存块可以包括高级外围总线(apb)接口、配置电路系统、控制器和复用器。可以使用任何类型的内存。pva和dla可以经由向pva和dla提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用apb)将pva和dla互连到内存的片上计算机视觉网络。
95.片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定pva和dla二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合iso 26262或者iec 61508标准,但是也可以使用其他标准和协议。
96.在一些示例中,soc 504可以包括例如在2018年8月10日提交的美国专利申请no.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于radar信号解释、用于声音传播合成和/或分析、用于sonar系统仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与lidar数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(ttu)可以用于执行一个或更多个光线追踪相关操作。
97.加速器514(例如硬件加速器簇)具有广泛的自主驾驶用途。pva可以是可编程视觉加速器,其可以用于adas和自主车辆中的关键处理阶段。pva的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,pva在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,pva被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
98.例如,依照该技术的一个实施例,pva用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。pva可以在来自两个单目相机的输入上执行计算机立体视觉功能。
99.在一些示例中,pva可以用来执行密集的光流。根据过程原始radar数据(例如使用4d快速傅立叶变换)以提供经处理的radar。在其他示例中,pva用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
100.dla可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得系统能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决定。例如,系统可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(aeb)系统中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是aeb的触发因素。dla可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子系统)获得的地平面估计,与车辆500取向、距离相关的惯性测量单元(imu)传感器566输出,从神经网络和/或其他传感器(例如lidar传感器564或radar传感器560)获得的对象的3d位置估计等。
101.soc 504可以包括一个或更多个数据存储区516(例如内存)。数据存储区516可以是soc 504的片上内存,其可以存储要在gpu和/或dla上执行的神经网络。在一些示例中,为了冗余和安全,数据存储区516可以容量足够大以存储神经网络的多个实例。数据存储区512可以包括l2或l3高速缓存512。对数据存储区516的引用可以包括对与如本文所描述的pva、dla和/或其他加速器514关联的内存的引用。
102.soc 504可以包括一个或更多个处理器510(例如嵌入式处理器)。处理器510可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子系统。启动和功率管理处理器可以是soc 504启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助系统低功率状态转换、soc 504热和温度传感器管理和/或soc 504功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且soc 504可以使用环形振荡器检测cpu 506、gpu 508和/或加速器514的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将soc 504置于较低功率状态和/或将车辆500置于司机安全停车模式(例如使车辆500安全停车)。
103.处理器510可以还包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子系统,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频i/o接口。在一些示例中,音频处理引擎是具有带有专用ram的数字信号处理器的专用处理器核。
104.处理器510可以还包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的ram、支持外围设备(例如定时器和中断控制器)、各种i/o控制器外围设备和路由逻辑。
105.处理器510可以还包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理
器子系统。安全簇引擎可以包括两个或更多处理器核、紧密耦合的ram、支持外围设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
106.处理器510可以还包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子系统。
107.处理器510可以还包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
108.处理器510可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机570、环绕相机574和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级soc的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内系统可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐系统和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
109.视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
110.视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作系统桌面正在使用并且gpu 508无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在gpu 508上电并且激活,进行3d渲染时,视频图像复合器可以用来减轻gpu 508的负担以提高性能和响应能力。
111.soc 504可以还包括用于从相机接收视频和输入的移动行业处理器接口(mipi)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。soc 504可以还包括可以由软件控制并且可以用于接收未提交到特定角色的i/o信号的输入/输出控制器。
112.soc 504可以还包括大范围的外围设备接口,以使能与外围设备、音频编解码器、功率管理和/或其他设备通信。soc 504可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的lidar传感器564、radar传感器560等等)的数据,来自总线502的数据(例如车辆500的速率、方向盘位置等等),来自(通过以太网或can总线连接的)gnss传感器558的数据。soc 504可以还包括专用高性能大容量存储控制器,其可以包括它们自己的dma引擎,并且其可以用来从日常数据管理任务中释放cpu 506。
113.soc 504可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和adas技术以实现多样性和冗余、连同深度学习工具一起提供用于灵活可靠驾驶软件堆栈的平台的综合功能安全架构。soc 504可以比常规的系统更快、更可靠,甚至更加能量高效和空间高效。例如,当与cpu 506、gpu 508和数据存储516结合时,加速器514可以提供用于3-5级自主车辆的快速高效平台。
114.因此该技术提供了不能通过常规系统实现的能力和功能。例如,计算机视觉算法可以在cpu上执行,这些cpu可以使用诸如c编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,cpu常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多cpu不能实时地执行复杂的对象检测算法,这是车载adas应用的要求和实用3-5级自主车辆的要求。
115.与常规系统形成对比的是,通过提供cpu复合体、gpu复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在dla或dgpu(例如gpu 520)上执行的cnn可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。dla可以还包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在cpu复合体上的路径规划模块的神经网络。
116.作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在cpu复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在dla内和/或在gpu 508上同时运行。
117.在一些示例中,用于面部识别和车主识别的cnn可以使用来自相机传感器的数据识别车辆500的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,soc 504提供了防范盗窃和/或劫车的安全性。
118.在另一个示例中,用于应急响应车辆检测和识别的cnn可以使用来自麦克风596的数据来检测并且识别应急响应车辆告警。与使用通用分类器检测告警并且手动地提取特征的常规系统形成对比的是,soc 504使用cnn以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在dla上的cnn被训练为识别应急响应车辆的相对关闭速率(例如通过使用多普勒效应)。cnn也可以被训练为识别如gnss传感器558所识别的特定于车辆在其中操作的局部区域的应急响应车辆。因此,例如,当在欧洲操作时,cnn将寻求检测欧洲告警,并且当在美国时,cnn将寻求识别仅仅北美的告警。一旦检测到应急响应车辆,在超声传感器562的辅助下,控制程序可以用来执行应急响应车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急响应车辆通过。
119.车辆可以包括可以经由高速互连(例如pcie)耦合到soc 504的cpu 518(例如分立的cpu或dcpu)。cpu 518可以包括例如x86处理器。cpu 518可以用来执行各种各样的功能中的任何功能,包括例如仲裁adas传感器与soc 504之间潜在地不一致的结果,和/或监控控制器536和/或信息娱乐soc 530的状态和健康状况。
120.车辆500可以包括可以经由高速互连(例如nvidia的nvlink)耦合到soc 504的gpu 520(例如分立的gpu或dgpu)。gpu 520可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆500的传感器的输入(例如
传感器数据)来训练和/或更新神经网络。
121.车辆500可以还包括网络接口524,该网络接口可以包括一个或更多个无线天线526(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口524可以用来使能通过因特网与云(例如与服务器578和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆500提供关于接近车辆500的车辆(例如车辆500前面、侧面和/或后面的车辆)的信息。该功能可以是车辆500的协作自适应巡航控制功能的部分。
122.网络接口524可以包括提供调制和解调功能并且使得控制器536能够通过无线网络通信的soc。网络接口524可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过lte、wcdma、umts、gsm、cdma2000、蓝牙、蓝牙le、wi-fi、z波、zigbee、lorawan和/或其他无线协议通信的无线功能。
123.车辆500可以还包括可包括片外(例如soc 504外)存储装置的数据存储区528。数据存储区528可以包括一个或更多个存储元件,包括ram、sram、dram、vram、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
124.车辆500可以还包括gnss传感器558。gnss传感器558(例如gps、辅助gps传感器、差分gps(dgps)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的gnss传感器558,包括例如且不限于使用带有以太网到串行(rs-232)网桥的usb连接器的gps。
125.车辆500可以还包括radar传感器560。radar传感器560可以甚至在黑暗和/或恶劣天气条件下也由车辆500用于远程车辆检测。radar功能安全级别可以是asil b。radar传感器560可以使用can和/或总线502(例如以传输radar传感器560生成的数据)以用于控制以及访问对象追踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的radar传感器类型。例如且非限制性地,radar传感器560可以适合前面、后面和侧面radar使用。在一些示例中,使用脉冲多普勒radar传感器。
126.radar传感器560可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程radar可以用于自适应巡航控制功能。远程radar系统可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。radar传感器560可以帮助区分静态对象和运动对象,并且可以由adas系统用于紧急制动辅助和前方碰撞警告。远程radar传感器可以包括具有多根(例如六根或更多)固定radar天线以及高速can、以太网和/或flexray接口的单站多模radar。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆500的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆500的车道的车辆成为可能。
127.作为一个示例,中程radar系统可以包括高达560m(前面)或80m(后面)的范围以及高达42度(前面)或550度(后面)的视场。短程radar系统可以包括但不限于被设计为安装在
后保险杠两端的radar传感器。当安装在后保险杠两端时,这样的radar传感器系统可以创建持续地监控后方和车辆旁边的视盲点的两个波束。
128.短程radar系统可以在adas系统中用于视盲点检测和/或变道辅助。
129.车辆500可以还包括超声传感器562。可以置于车辆500的前面、后面和/或侧面的超声传感器562可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器562,并且不同的超声传感器562可以用于不同的检测范围(例如2.5m、4m)。超声传感器562可以操作于功能安全级别的asil b。
130.车辆500可以包括lidar传感器564。lidar传感器564可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。lidar传感器564可以为功能安全级别的asil b。在一些示例中,车辆500可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个lidar传感器564(例如两个、四个、六个等等)。
131.在一些示例中,lidar传感器564可能够对360度视场提供对象列表及其距离。商业上可用的lidar传感器564可以具有例如近似500m的广告范围,精度为2cm-3cm,支持500mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的lidar传感器564。在这样的示例中,lidar传感器564可以实现为可以嵌入到车辆500的前面、后面、侧面和/或拐角的小设备。在这样的示例中,lidar传感器564可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的lidar传感器564可以被配置用于45度与135度之间的水平视场。
132.在一些示例中,也可以使用诸如3d闪光lidar之类的lidar技术。3d闪光lidar使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光lidar单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光lidar可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光lidar传感器,车辆500的每一侧一个。可用的3d闪光lidar系统包括没有风扇以外的运动部件(moving part)的固态3d凝视阵列lidar相机(例如非扫描lidar设备)。闪光lidar设备可以使用每帧5纳秒i类(眼睛安全)激光脉冲,并且可以以3d范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光lidar,并且因为闪光lidar是没有运动部件的固态设备,lidar传感器564可以不太容易受到运动模糊、振动和/或震动的影响。
133.该车辆可以还包括imu传感器566。在一些示例中,imu传感器566可以位于车辆500的后轴的中心。imu传感器566可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,imu传感器566可以包括加速度计和陀螺仪,而在九轴应用中,imu传感器566可以包括加速度计、陀螺仪和磁力计。
134.在一些实施例中,imu传感器566可以实现为微型高性能gps辅助惯性导航系统(gps/ins),其结合微机电系统(mems)惯性传感器、高灵敏度gps接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,imu传感器566可以使得车辆500能够在无需来自磁传感器的输入的情况下通过直接观察从gps到imu传感器566的速度变化并且将其相关来估计方向(heading)。在一些示例中,imu传感器566和gnss传感器558可以结合到单个集成单元中。
135.该车辆可以包括置于车辆500中和/或车辆500周围的麦克风596。除别的以外,麦
克风596可以用于应急响应车辆检测和识别。
136.该车辆可以还包括任意数量的相机类型,包括立体相机568、广角相机570、红外相机572、环绕相机574、远程和/或中程相机598和/或其他相机类型。这些相机可以用来捕获车辆500整个外围周围的图像数据。使用的相机类型取决于实施例和车辆500的要求,并且相机类型的任意组合可以用来提供车辆500周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(gmsl)和/或千兆以太网。所述相机中的每一个在本文关于图5a和图5b更详细地进行了描述。
137.车辆500可以还包括振动传感器542。振动传感器542可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器542时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
138.车辆500可以包括adas系统538。在一些示例中,adas系统538可以包括soc。adas系统538可以包括自主/自适应/自动巡航控制(acc)、协作自适应巡航控制(cacc)、前方撞车警告(fcw)、自动紧急制动(aeb)、车道偏离警告(ldw)、车道保持辅助(lka)、视盲点警告(bsw)、后方穿越交通警告(rctw)、碰撞警告系统(cws)、车道居中(lc)和/或其他特征和功能。
139.acc系统可以使用radar传感器560、lidar传感器564和/或相机。acc系统可以包括纵向acc和/或横向acc。纵向acc监控并控制到紧接在车辆500前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向acc执行距离保持,并且在必要时建议车辆500改变车道。横向acc与诸如lca和cws之类的其他adas应用程序有关。
140.cacc使用来自其他车辆的信息,该信息可以经由网络接口524和/或无线天线526经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(v2v)通信链路提供,而间接链接可以是基础设施到车辆(i2v)的通信链路。通常,v2v通信概念提供关于紧接在前的车辆(例如紧接在车辆500前方且与其处于相同车道的车辆)的信息,而i2v通信概念提供关于前方更远处的交通的信息。cacc系统可以包括i2v和v2v信息源中的任一个或者二者。给定车辆500前方车辆的信息,cacc可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
141.fcw系统被设计为提醒(alert)驾驶员注意危险,使得驾驶员可以采取纠正措施。fcw系统使用耦合到专用处理器、dsp、fpga和/或asic的前置相机和/或radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。fcw系统可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
142.aeb系统检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。aeb系统可以使用耦合到专用处理器、dsp、fpga和/或asic的前置相机和/或radar传感器560。当aeb系统检测到危险时,它典型地首先提醒驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么aeb系统可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。aeb系统可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
143.ldw系统提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车
辆500穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活ldw系统。ldw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的前侧朝向相机,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
144.lka系统是ldw系统的变型。如果车辆500开始离开车道,那么lka系统提供纠正车辆500的转向输入或制动。
145.bsw系统检测并向驾驶员警告汽车视盲点中的车辆。bsw系统可以提供视觉、听觉和/或触觉警示(alert)以指示合并或改变车道是不安全的。系统可以在驾驶员使用转弯信号时提供附加的警告。bsw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的后侧朝向相机和/或radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
146.rctw系统可以在车辆500倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些rctw系统包括aeb以确保应用车辆制动器以避免撞车。rctw系统可以使用耦合到专用处理器、dsp、fpga和/或asic的一个或更多个后置radar传感器560,该专用处理器、dsp、fpga和/或asic电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
147.常规的adas系统可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为adas系统提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆500中,在冲突结果的情况下,车辆500本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器536或第二控制器536)的结果。例如,在一些实施例中,adas系统538可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自adas系统538的输出可以提供给监督mcu。如果来自主计算机和辅助计算机的输出冲突,那么监督mcu必须确定如何协调该冲突以确保安全操作。
148.在一些示例中,主计算机可以被配置为向监督mcu提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督mcu可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督mcu可以在这些计算机之间进行仲裁以确定适当的结果。
149.监督mcu可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督mcu中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于radar的fcw系统时,监督mcu中的神经网络可以了解fcw系统何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的ldw系统时,监督mcu中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该ldw。在包括运行在监督mcu上的神经网络的实施例中,监督mcu可以包括适合于利用关联的内存运行神经网络的dla或gpu中的至少一个。在优选的实施例中,监督mcu可以包括soc 504的部件和/或作为soc 504的部件而被包括。
582(h)(这里统称为pcie交换机582)和/或cpu 580(a)-580(b)(这里统称为cpu 580)。gpu 584、cpu 580和pcie交换机可以与诸如例如且不限于nvidia开发的nvlink接口588之类的高速互连和/或pcie连接586互连。在一些示例中,gpu 584经由nvlink和/或nvswitch soc连接,并且gpu 584和pcie交换机582经由pcie互连连接。尽管图示出八个gpu 584、两个cpu 580和两个pcie交换机,但是这并不意图是限制性的。取决于实施例,服务器578中的每一个可以包括任意数量的gpu 584、cpu 580和/或pcie交换机。例如,服务器578中的每一个可以包括八个、十六个、三十二个和/或更多gpu 584。
156.服务器578可以通过网络590并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器578可以通过网络590并且向车辆传输神经网络592、更新的神经网络592和/或地图信息594,包括关于交通和道路状况的信息。对地图信息594的更新可以包括对于hd地图522的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络592、更新的神经网络592和/或地图信息594可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器578和/或其他服务器)的经验产生。
157.服务器578可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。训练可以依照任何一个或更多个类别的机器学习技术来进行,包括但不限于诸如以下的类别:有监督训练,半监督训练,无监督训练,自学习,强化学习,联合学习,迁移学习,特征学习(包括主成分和聚类分析),多线性子空间学习,流形学习,表示学习(包括备用字典学习),基于规则的机器学习,异常检测,及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络590传输至车辆),和/或机器学习模型可以由服务器578用来远程地监控车辆。
158.在一些示例中,服务器578可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器578可以包括由gpu 584供电的深度学习超级计算机和/或专用ai计算机,例如nvidia开发的dgx和dgx站机器。然而,在一些示例中,服务器578可以包括仅使用cpu供电的数据中心的深度学习基础设施。
159.服务器578的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆500中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆500的定期更新,例如图像序列和/或车辆500已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆500识别的对象相比较,如果结果不匹配并且该基础设施得出车辆500中的ai发生故障的结论,那么服务器578可以向车辆500传输信号,指示车辆500的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
160.为了推理,服务器578可以包括gpu 584和一个或更多个可编程推理加速器(例如nvidia的tensorrt 3)。gpu供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,cpu、fpga和其他处理器供电的服务器可
以用于推理。
161.示例计算设备
162.图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600可以包括直接或间接耦合下列设备的互连系统602:存储器604,一个或更多个中央处理单元(cpu)606,一个或更多个图形处理单元(gpu)608,通信接口610,输入/输出(i/o)端口612,输入/输出部件614,电源616,一个或更多个呈现部件618(例如显示器),以及一个或更多个逻辑单元620。在至少一个实施例中,计算设备600可以包括一个或更多个虚拟机(vm),和/或其部件中的任何一个可以包括虚拟部件(例如虚拟硬件部件)。对于非限制性示例而言,gpu 608中的一个或更多个可以包括一个或更多个vgpu,cpu 606中的一个或更多个可以包括一个或更多个vcpu,和/或逻辑单元620中的一个或更多个可以包括一个或更多个虚拟逻辑单元。这样,计算设备600可以包括分立部件(例如专用于计算设备600的完整gpu)、虚拟部件(例如专用于计算设备600的gpu的部分)或者其组合。
163.尽管图6的各个框被示为经由具有线路的互连系统602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现部件618可以被认为是i/o部件614(例如如果显示器为触摸屏)。作为另一个示例,cpu 606和/或gpu 608可以包括内存(例如,存储器604可以表示除了gpu 608、cpu 606和/或其他部件的内存以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ecu)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。
164.互连系统602可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统602可以包括一种或更多种总线或链路类型,例如行业标准架构(isa)总线、扩展行业标准架构(eisa)总线、视频电子标准协会(vesa)总线、外围部件互连(pci)总线、外围部件互连快速(pcie)总线,和/或另一种类型的总线或链路。在一些实施例中,部件之间存在直接的连接。例如,cpu 606可以直接连接到存储器604。进一步,cpu 606可以直接连接到gpu 608。在部件之间存在直接或者点对点连接的情况下,互连系统602可以包括实行该连接的pcie链路。在这些示例中,pci总线不必包括在计算设备600中。
165.存储器604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
166.计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于ram、rom、eeprom、闪存或者其他存储技术、cd-rom、数字多功能盘(dvd)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
167.计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计
算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、rf、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
168.cpu 606可以被配置为执行计算机可读指令中的至少一些以便控制计算设备600的一个或更多个部件执行本文描述的方法和/或过程中的一个或更多个。cpu 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。cpu 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(risc)实现的高级risc机器(arm)处理器或者使用复杂指令集计算(cisc)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个cpu 606。
169.除了cpu 606之外或者可替代地,gpu 608可以被配置为执行计算机可读指令中的至少一些以便控制计算设备600的一个或更多个部件执行本文描述的方法和/或过程中的一个或更多个。gpu 608中的一个或更多个可以是集成式gpu(例如具有cpu 606中的一个或更多个)和/或gpu 608中的一个或更多个可以是分立式gpu。在实施例中,gpu 608中的一个或更多个可以是cpu 606中的一个或更多个的协处理器。gpu 608可以由计算设备600用来渲染图形(例如3d图形)或者执行通用计算。例如,gpu 608可以用于gpu上的通用计算(gpgpu)。gpu 608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。gpu 608可以响应于渲染命令(例如经由主机接口接收的来自cpu 606的渲染命令)而生成用于输出图像的像素数据。gpu 608可以包括诸如显示内存之类的用于存储像素数据或者诸如gpgpu数据之类的任何其他适当数据的图形内存。显示内存可以作为存储器604的部分而被包括。gpu 608可以包括(例如经由链路)并行操作的两个或更多gpu。该链路可以直接连接gpu(例如使用nvlink),或者可以通过交换机连接gpu(例如使用nvswitch)。当组合在一起时,每个gpu 608可以生成用于输出的不同部分或者用于不同输出的像素数据或gpgpu数据(例如,第一gpu用于第一图像,第二gpu用于第二图像)。每个gpu可以包括它自己的内存,或者可以与其他gpu共享内存。
170.除了cpu 606和/或gpu 608之外或者可替代地,逻辑单元620可以被配置为执行计算机可读指令中的至少一些以便控制计算设备600的一个或更多个部件执行本文描述的方法和/或过程中的一个或更多个。在实施例中,cpu 606、gpu 608和/或逻辑单元620可以分立地或者联合地执行所述方法、过程和/或其部分的任意组合。逻辑单元620中的一个或更多个可以是cpu 606和/或gpu 608中的一个或更多个的部分和/或集成在其中,和/或逻辑单元620中的一个或更多个可以是分立式部件或者以其他方式在cpu 606和/或gpu 608的外部。在实施例中,逻辑单元620中的一个或更多个可以cpu 6068中的一个或更多个和/或gpu 608中的一个或更多个的协处理器。
171.逻辑单元620的示例包括一个或更多个处理核和/或其部件,例如张量核(tc)、张量处理单元(tpu)、像素可视核(pvc)、视觉处理单元(vpu)、图形处理簇(gpc)、纹理处理簇
(tpc)、流式多处理器(sm)、树遍历单元(ttu)、人工智能加速器(aia)、深度学习加速器(dla)、算术逻辑单元(alu)、专用集成电路(asic)、浮点单元(fpu)、输入/输出(i/o)元件、外围部件互连(pci)或者外围部件互连快速(pcie)元件和/或类似物。
172.通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备600能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610可以包括使能通过若干不同网络中的任何网络进行通信的部件和功能,所述网络例如无线网络(例如wi-fi、z波、蓝牙、蓝牙le、zigbee等等)、有线网络(例如通过以太网或无限带宽通信)、低功率广域网(例如lorawan、sigfox等等)和/或因特网。
173.i/o端口612可以使得计算设备600能够逻辑地耦合到包括i/o部件614、呈现部件618和/或其他部件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性i/o部件614包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。i/o部件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(nui)。在一些示例中,输入可以传输至适当的网络元件以便进一步处理。nui可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛追踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体相机系统之类的深度相机、红外相机系统、rgb相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(imu)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。
174.电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的部件能够操作。
175.呈现部件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(hud)、其他显示器类型或者其组合)、扬声器和/或其他呈现部件。呈现部件618可以接收来自其他部件(例如gpu 608、cpu 606等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
176.示例数据中心
177.图7示出了可以在本公开的至少一个实施例中使用的示例数据中心700。数据中心700可以包括数据中心基础设施层710、框架层720、软件层730和/或应用层740。
178.如图7所示,数据中心基础设施层710可以包括资源协调器712、分组的计算资源714和节点计算资源(“节点c.r.”)716(1)-716(n),其中“n”代表任何完整的正整数。在至少一个实施例中,节点c.r.716(1)-716(n)可以包括但不限于任何数量的中央处理单元(“cpu”)或其他处理器(包括加速器、现场可编程门阵列(fpga)、图形处理器或图形处理单元(gpu)等),内存设备(例如动态只读内存),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(“nw i/o”)设备,网络交换机,虚拟机(“vm”),电源模块和/或冷却模块等。在一些实施例中,节点c.r.716(1)-716(n)中的一个或更多个节点c.r.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点c.r.716(1)-716(n)可包括一个或更多个虚拟部件,诸如vgpu、vcpu等,和/或节点c.r.716(1)-716(n)的一个或更多个可对应于虚拟机(vm)。
179.在至少一个实施例中,分组的计算资源714可以包括容纳在一个或更多个机架内的节点c.r.716的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架(也未示出)。分组的计算资源714内的节点c.r.的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、内存或存储资源。在至少一个实施例中,可以将包括cpu、gpu和/或其他处理器的几个节点c.r.716分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括任何数量的电源模块、冷却模块和/或网络交换机,以任意组合。
180.资源协调器722可以配置或以其他方式控制一个或更多个节点c.r.716(1)-716(n)和/或分组的计算资源714。在至少一个实施例中,资源协调器722可以包括用于数据中心700的软件设计基础结构(“sdi”)管理实体。资源协调器722可以包括硬件、软件或其某种组合。
181.在至少一个实施例中,如图7所示,框架层720可以包括作业调度器732、配置管理器734、资源管理器736和/或分布式文件系统738。框架层720可以包括支持软件层730的软件732和/或应用程序层740的一个或更多个应用程序742的框架。软件732或应用程序742可以分别包括基于web的服务软件或应用程序,例如由amazon web services,google cloud和microsoft azure提供的服务或应用程序。框架层720可以是但不限于一种免费和开放源软件网络应用框架,例如可以利用分布式文件系统738来进行大范围数据处理(例如“大数据”)的apache spark
tm
(以下称为“spark”)。在至少一个实施例中,作业调度器732可以包括spark驱动器,以促进对数据中心700的各个层所支持的工作负载进行调度。配置管理器734可以能够配置不同的层,例如软件层730和包括spark和用于支持大规模数据处理的分布式文件系统738的框架层720。资源管理器736能够管理映射到或分配用于支持分布式文件系统738和作业调度器732的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层710上的分组的计算资源714。资源管理器736可以与资源协调器712协调以管理这些映射的或分配的计算资源。
182.在至少一个实施例中,包括在软件层730中的软件732可以包括由节点c.r.716(1)-716(n)的至少一部分,分组计算资源714和/或框架层720的分布式文件系统738使用的软件。一种或更多种类型的软件可以包括但不限于internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。
183.在至少一个实施例中,应用层740中包括的一个或更多个应用程序742可以包括由节点c.r.716(1)-716(n)的至少一部分、分组的计算资源714和/或框架层720的分布式文件系统738使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如pytorch、tensorflow、caffe等)和/或其他与一个或更多个实施例结合使用的机器学习应用程序。
184.在至少一个实施例中,配置管理器734、资源管理器736和资源协调器712中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心700的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或执行差的部分。
185.数据中心700可以包括工具、服务、软件或其他资源,以依照本文所述的一个或更
多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心700描述的软件和/或计算资源,依照神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过诸如但不限于本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心700所描述的资源,使用对应于一个或更多个神经网络的经训练或部署的机器学习模型来推理或预测信息。
186.在至少一个实施例中,数据中心700可以使用cpu、专用集成电路(asic)、gpu、fpga和/或其他硬件(或与其对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
187.示例网络环境
188.适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(nas)、其他后端设备、和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图6的一个或更多个计算设备600的一个或更多个实例上实现——例如,每个设备可以包括一个或更多个计算设备600的类似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、nas等)的情况下,后端设备可被包括作为数据中心700的一部分,数据中心700的示例在本文中关于图7更详细地描述。
189.网络环境的部件可以经由一个或更多个网络彼此通信,所述网络可以是有线的、无线的或两者。网络可以包括多个网络或多个网络中的一网络。例如,网络可包括一个或更多个广域网(wan)、一个或更多个局域网(lan)、一个或更多个公共网络,诸如互联网和/或公共交换电话网(pstn)和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他部件)之类的部件可以提供无线连接。
190.兼容网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以包括在网络环境中)。在对等网络环境中,本文相对于服务器所描述的功能可在任何数量的客户端设备上实现。
191.在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、工作调度器、资源管理器和在一个或更多个服务器上实现的分布式文件系统,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用程序的框架。所述软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于web的服务软件或应用程序(例如,通过经由一个或更多个应用编程接口(api)访问服务软件和/或应用程序)。框架层可以是但不限于自由和开源软件web应用框架的类型,诸如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
192.基于云的网络环境可提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、全球等上的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服
务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
193.一个或更多个客户端设备可以包括本文关于图6描述的一个或更多个示例计算设备600的部件、特征和功能中的至少一些部件、特征和功能。作为示例而非限制,客户端设备可被体现为个人计算机(pc),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(pda)、mp3播放器、虚拟现实耳机、全球定位系统(gps)或装置,视频播放器、摄像机、监视设备或系统、车辆、船,飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合,或任何其他合适的设备。
194.本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、部件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
195.如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素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中的至少一个。
196.这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献