向并发执行的神经网络分配处理资源的制作方法

文档序号:35374181发布日期:2023-09-08 12:37阅读:108来源:国知局
向并发执行的神经网络分配处理资源的制作方法
向并发执行的神经网络分配处理资源
1.相关申请
2.本技术要求2020年12月21日提交的美国专利申请no.17/128,554的优先权权益;其全部内容通过援引纳入于此。
3.背景
4.自主交通工具(诸如自主和半自主汽车、无人机、移动机器人和其他合适的机器)越来越多地包括用以收集关于环境的信息的多个传感器,以及用以处理搜集到的信息以用于路线规划、导航、防撞等的处理系统。一个示例是用于自主和半自主汽车的高级驾驶员辅助系统(adas)。为了能够快速分析传感器数据并基于其快速决策,来自每个传感器的数据由神经网络处理,因此交通工具的计算系统(诸如片上系统(soc))并发地执行许多神经网络。
5.概述
6.各方面包括可以在交通工具内的处理设备中实现的用于向并发执行的神经网络分配计算资源的方法。由交通工具的处理器执行的各方面可包括基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级,以及基于每一个神经网络的所确定的优先级来将计算资源分配给该多个神经网络。
7.在一些方面,基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级可包括:基于该多个神经网络中的每一者在交通工具操作上下文中对总交通工具安全性能的贡献来确定每一个神经网络的优先级。在一些方面,基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级可包括:基于对该多个神经网络中的每一者对总体交通工具安全性能的贡献的指示来确定该神经网络的优先级,其中该指示由每一个神经网络提供。在一些方面,总体交通工具安全性能可基于使用该多个神经网络的推断准确度和速度作为输入值的模型来计算。在一些方面,总体交通工具安全性能可基于可由人类乘客感知到的因素来指示驾驶质量,诸如以改善乘客的体验。
8.在一些方面,确定在交通工具处理系统上执行的多个神经网络中的每一者的优先级可包括:基于每一个神经网络的每秒输出推断和输出准确度来确定该多个神经网络中的一者或多者的相对性能。在一些方面,基于每一个神经网络的所确定的优先级来向该多个神经网络分配计算资源可包括基于该多个神经网络中的一个或多个神经网络的所确定的优先级来调整该多个神经网络中的该一个或多个神经网络的一个或多个超参数。在一些方面,基于该多个神经网络中的一个或多个神经网络的所确定的优先级来调整该多个神经网络中的该一个或多个神经网络的一个或多个超参数可包括基于该多个神经网络中的一个或多个神经网络的性能有效性曲线来调整一个或多个超参数。
9.一些方面可进一步包括使用所分配的计算资源来确定该多个神经网络中的一者或多者的性能,以及基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者。此类方面可进一步包括监视计算资源的动态可
用性以及计算资源的实际使用。在此类方面,基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者可包括基于计算资源的动态可用性以及计算资源的实际使用来将计算资源重新分配给该多个神经网络中的一者或多者。
10.在一些方面,基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者可包括基于该多个神经网络中的每一者的所确定的性能来重新调整该多个神经网络中的一者或多者的一个或多个超参数。一些方面可包括确定可用计算资源已经增加、已经减少还是保持相同,以及响应于确定可用计算资源已经增加而调整对总体交通工具安全性能具有相对较大影响的一个或多个神经网络超参数。此类方面可包括响应于确定可用计算资源已经减少而调整对总体交通工具安全性能具有相对较小影响的一个或多个神经网络超参数。
11.进一步方面包括包含处理器的交通工具,该处理器配置有用于执行以上概述的任何方法的操作的处理器可执行指令。进一步方面包括其上存储有处理器可执行软件指令的非瞬态处理器可读存储介质,这些处理器可执行软件指令被配置成使处理器执行以上概述的任何方法的操作。进一步方面包括一种处理设备,其用在交通工具中且被配置成执行以上概述的任何方法的操作。
12.附图简述
13.纳入于此且构成本说明书一部分的附图解说了各示例性实施例,并与以上给出的概括描述和下面给出的详细描述一起用来解释各个实施例的特征。
14.图1a和1b是解说适合于实现各个实施例的交通工具的组件框图。
15.图1c是解说适合于实现各个实施例的交通工具的组件的组件框图。
16.图2a是解说根据各个实施例的示例交通工具管理系统的组件的组件框图。
17.图2b是解说根据各个实施例的另一示例交通工具管理系统的组件的组件框图。
18.图3是解说根据各实施例的供在交通工具中使用的示例片上系统的组件的框图。
19.图4是根据各个实施例的被配置成用于向并发执行的神经网络分配处理资源的示例系统的组件框图。
20.图5a是解说根据各个实施例的适用于向并发执行的神经网络分配处理资源的交通工具计算系统的组件的概念图。
21.图5b是解说根据各个实施例的可由各个神经网络执行的功能的表。
22.图5c是解说根据各个实施例的各个神经网络的超参数的配置的表。
23.图5d是根据各个实施例的神经网络的性能有效性曲线的示例的图示和解说。
24.图5e、5f和5g是根据各个实施例的调整超参数的影响的示例的图示和解说。
25.图5h是根据各个实施例的热节流与向并发执行的神经网络分配处理资源的比较的图示和解说。
26.图6a是解说根据各个实施例的可由交通工具的处理器执行以用于向并发执行的神经网络分配处理资源的方法的操作的过程流图。
27.图6b和6c是解说根据各个实施例的可由交通工具的处理器执行的作为用于向并发执行的神经网络分配处理资源的方法的一部分的操作的过程流图。
28.详细描述
29.将参照附图详细描述各个方面。在可能之处,相同附图标记将贯穿附图用于指代相同或类似部分。对特定示例和实施例所作的引用是用于解说性目的,而并不旨在限定各个方面或权利要求的范围。
30.执行众多并发神经网络的交通工具计算系统具有有限的计算资源并且必须在热包络内操作。解决交通工具计算系统中的处理限制的常规方法包括降低执行所有神经网络的(诸)处理器的操作频率。虽然有效地确保热极限不被超过,但此类方法会导致全面降低每个神经网络的处理速度和输出,在某些情况下这可能会危及安全功能。然而,并非所有并发执行的神经网络对于安全交通工具操作都是同等重要的。例如,执行用于机动和防撞的功能的神经网络对于时刻确保安全交通工具操作可能比用于基于交通密度来进行动态路线重选的神经网络更重要。因此,常规的资源和热管理方法可能不必要地使安全关键型神经网络的性能降级。
31.各个实施例包括各方法以及在必要时实现这些方法的交通工具计算系统,其用以通过至少部分地基于对总体交通工具安全性能的相对影响,特别是鉴于当前操作、内部和外部状况而选择性地向并发执行的神经网络分配处理资源来避免超过处理器极限。因此,各个实施例在向交通工具计算系统内的各个神经网络分配处理资源时计及减少给各种应用的资源如何影响总体交通工具安全性能,而不是基于任意排名或优先级来限制给应用的资源或者降低执行神经网络的(诸)处理器的操作频率。
32.地面运输行业越来越希望通过采用智能运输系统(its)技术来利用蜂窝和无线通信技术不断增长的能力,以提高驾驶员操作的交通工具和自主交通工具两者的互通性和安全性。由第三代伙伴项目(3gpp)定义的蜂窝交通工具到万物(c-v2x)协议支持its技术,并用作交通工具与它们周围的通信设备直接通信的基础。
33.c-v2x定义了两种传输模式,它们一起为增强型道路安全性和自主驾驶提供了360
°
非视线感知和更高水平的可预测性。第一传输模式包括直接c-v2x,其包括交通工具至交通工具(v2v)、交通工具至基础设施(v2i)和交通工具至行人(v2p),并在独立于蜂窝网络的专用its 5.9千兆赫兹(ghz)频谱中提供增强的通信范围和可靠性。第二传输模式包括移动宽带系统和技术(诸如第三代无线移动通信技术(3g)(例如,全球移动通信系统(gsm)演进(edge)系统、码分多址(cdma)2000系统等)、第四代无线移动通信技术(4g)(例如,长期演进(lte)系统、高级lte系统、移动全球微波接入互通(移动wimax)系统等)、第五代无线移动通信技术(5g)(例如,5g新无线电(5g nr)系统等)等等)中的交通工具到网络通信(v2n)。
34.术语“片上系统”(soc)在本文中用于指包含集成在单个基板上的多个资源或处理器的单个集成电路(ic)芯片。单个soc可包含用于数字、模拟、混合信号和射频功能的电路系统。单个soc还可包括任何数目的通用或专用处理器(数字信号处理器、调制解调器处理器、视频处理器等)、存储器块(诸如rom、ram、闪存等)、以及资源(诸如定时器、电压调节器、振荡器等)。各soc还可包括用于控制集成资源和处理器、以及用于控制外围设备的软件。
35.术语“系统级封装”(sip)在本文中可被用于指包含多个资源、计算单元、两个或更多个ic芯片上的核或处理器、基板或soc的单个模块或封装。例如,sip可包括在其上以垂直配置堆叠有多个ic芯片或半导体管芯的单个基板。类似地,sip可包括多个ic或半导体管芯在其上被封装到统一基板中的一个或多个多芯片模块(mcm)。sip还可包括经由高速通信电路系统耦合在一起并紧邻地封装在一起(诸如在单个主板上或在单个无线设备中)的多个
独立的soc。soc的邻近性促成了高速通信以及存储器和资源的共享。
36.如本文所使用的,术语“组件”、“系统”、“单元”、“模块”及类似术语包括计算机相关实体,诸如但不限于被配置成执行特定操作或功能的硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为解说,在通信设备上运行的应用和通信设备两者都可被称为组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可局部化在一个处理器或核上和/或分布在两个或更多个处理器或核之间。另外,这些组件可从其上存储有各种指令和/或数据结构的各种非瞬态计算机可读介质来执行。各组件可通过本地和/或远程进程、功能或规程调用、电子信号、数据分组、存储器读/写、以及其他已知的计算机、处理器和/或进程相关通信方法体系来进行通信。
37.自主交通工具(诸如自主和半自主汽车、无人机、移动机器人和其他合适的机器)越来越多地包括收集关于环境的信息的多个传感器,以及处理搜集到的信息以执行交通工具控制、路线规划、导航、防撞和类似的交通工具安全和控制功能的处理系统。一个示例是被部署在自主和半自主汽车中的高级驾驶员辅助系统(adas)。为了实现对传感器数据的快速分析以及快速决策制定,来自一个或多个传感器的数据可由专用于传感器数据和/或某些分析功能的神经网络来处理。将复杂数据分析功能分解成由经特殊训练的神经网络执行的操作实现了对不同传感器数据的快速数据分析以及并行处理。因此,交通工具计算系统可以在正常操作期间并发地执行众多神经网络。
38.各个实施例包括各方法和处理系统,这些处理系统被配置成实现基于各个神经网络对总体交通工具安全和可靠操作的贡献或相对重要性来向并发执行的神经网络分配处理资源的方法。一些实施例可包括基于每一个神经网络的优先级或重要性来向并发执行的神经网络分配交通工具处理资源。在一些实施例中,处理器(例如,交通工具处理系统的处理器)可通过调整神经网络的某些超参数来控制神经网络的处理需求。各个实施例实现了显著减少给对于安全交通工具操作较不重要(例如,较低优先级)的神经网络的资源分配,同时以全容量或高性能执行对于安全交通工具操作更重要(例如,较高优先级)的神经网络。
39.各个实施例可包括基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级,以及基于每一个神经网络的所确定的优先级来将计算资源分配给该多个神经网络。
40.在一些实施例中,交通工具处理系统可基于在交通工具处理系统上执行的多个神经网络中的每一者在交通工具操作上下文中对总体交通工具安全性能的贡献来确定每一个神经网络的优先级。在一些实施例中,交通工具处理系统可基于由在交通工具处理系统上执行的多个神经网络中的每一者提供的对该神经网络对总交通工具安全性能的贡献的指示来确定每一个神经网络的优先级。在一些实施例中,交通工具处理系统可基于每一个神经网络的每秒输出推断和输出准确度来确定该多个神经网络中的一者或多者的相对性能。在一些实施例中,每一个神经网络可提供对其(在一种“投票”方案中的)动态相对重要性的指示。在一些实施例中,每一个神经网络的动态相对重要性可以不限于神经网络的输出。例如,处理系统可基于由神经网络提供的输出的某一保真度或精度来确定该神经网络的动态相对重要性。
41.在一些实施例中,交通工具处理系统可基于神经网络在交通工具的当前操作状态和/或环境的上下文中对安全交通工具操作的相对重要性来向该神经网络指派优先级。取决于交通工具是否在高速公路上、在繁忙城市交通中、在停车场中驾驶等,不同的神经网络可被指派不同的相对优先级。例如,当交通工具正在高速公路上驾驶时,用于防撞功能的神经网络可被认为比用于动态交通路线重选功能的神经网络更重要。
42.在一些实施例中,处理系统可以向执行非关键任务或功能的神经网络(诸如执行对于安全交通工具操作相对较不重要的操作的神经网络)指派排名。例如,执行相对不重要任务或功能的神经网络可包括支持诸如变道频率、动态路线重选频率、天气检测和/或环境温度控制以及交通工具夜视等功能的神经网络。在一些实施例中,处理系统可以在向一些神经网络指派优先级时计及用户偏好。例如,用户偏好可指示对规避交通或规避坏天气的偏好。
43.在一些实施例中,处理系统可以基于交通工具操作场景或上下文来半动态地向神经网络指派优先级。在一些实施例中,处理系统可以配置有存储与某些驾驶场景或上下文相关的各种神经网络的相对重要性值或指示的查找表。例如,查找表可包括处于诸如高速公路驾驶、夜间驾驶、居住区驾驶、停车和其他合适的驾驶场景或上下文之类的驾驶状况中的每一个神经网络的单独值或指示。在一些实施例中,处理系统可以基于对驾驶场景或上下文的确定来动态地改变神经网络的优先级。在一些实施例中,处理系统可将神经网络的动态改变的优先级与该神经网络对所确定的驾驶场景或上下文的相对重要性相关。
44.在一些实施例中,处理系统可动态地向神经网络指派优先级。在一些实施例中,处理系统可基于由神经网络提供的输出或推断来向该神经网络指派优先级。在一些实施例中,指派给神经网络的优先级可因变于检测到的对象、到对象的距离、对象种类或类型和/或神经网络的其他输入或输出而确定。通过以此方式向神经网络指派优先级,提供更有意义或更准确的推断结果的神经网络可被指派相对较高的优先级。
45.在一些实施例中,处理系统可确定可被分配给多个神经网络的总资源预算。在一些实施例中,一个或多个资源可包括功率、热功率包络、或另一合适的资源。
46.在一些实施例中,处理系统可基于多个神经网络中的一者或多者的所确定的优先级来调整该多个神经网络中的该一者或多者的一个或多个超参数。在一些实施例中,处理系统可基于每一个神经网络在总资源预算内的动态优先级来动态地调整每一个神经网络的超参数。处理系统可调整的超参数的非限制性示例包括剪枝水平、参数量化、每秒推断、神经网络配置、输入分辨率、批量大小、视场以及基于上下文映射的输入图像部分掩码。处理系统可调整的超参数的其他示例也是可能的。当所分配的资源减少时,选择调整对安全性能具有较小影响的超参数。当所分配的资源增加时,选择调整对安全性能具有较大影响的超参数。
47.在一些实施例中,处理系统可因变于准确度和输出(诸如每秒推断数目或每秒帧输出数目)而确定神经网络的相对性能。在一些实施例中,神经网络的相对性能可被表示为:
48.49.其中准确度表示推断、帧或其他输出的准确成功数目;输出fps表示神经网络的输出的每秒推断;准确度(最佳可能)表示神经网络的目标或理论最大准确度;以及目标fps表示神经网络的输出的目标或理论每秒最大推断。
50.在一些实施例中,处理系统可基于神经网络执行对安全交通工具操作相对重要(例如,相对高优先级)还是相对不重要(例如,相对低优先级)的功能来确定该神经网络的有效性。在一些实施例中,相对高优先级功能(hpf)的有效性可被表示为:
51.有效性hpf=相对性能4×
(#功能-排名)
52.其中“#功能”表示输出的量,诸如每秒推断数目或每秒帧输出数目;以及“排名”表示指派给神经网络的优先级。
53.在一些实施例中,相对低优先级功能(lpf)的有效性可被表示为:
[0054][0055]
在一些实施例中,处理系统可基于多个神经网络中的一者或多者的性能有效性曲线来调整每一个神经网络的一个或多个超参数。在一些实施例中,性能有效性曲线可包括对调整超参数对每一个神经网络的性能的影响的量度。在一些实施例中,每一个性能有效性曲线可基于对每一个神经网络的有效性与相对性能的评估。在一些实施例中,处理系统可基于神经网络的性能有效性曲线来调整一个或多个超参数。
[0056]
在一些实施例中,处理系统可确定对每一个神经网络的性能的总体估计或评估。在一些实施例中,这样的总体评估可被称为“驾驶质量”(qod)度量,其可被表示为
[0057]
qod=min(有效性
每功能
)。
[0058]
在一些实施例中,基于交通工具的经估计qod度量以及预算资源的经估计消耗,处理系统可迭代地调整多个神经网络的超参数。在一些实施例中,qod可以根据使用神经网络的推断准确度和速度作为输入值的模型来计算。
[0059]
在一些实施例中,qod可提供对驾驶质量的指示,该驾驶质量基于人类乘客可感知到并且可以对乘客在交通工具中的乘坐体验具有影响的因素。人类乘客可感知到的因素(诸如乘客可以感觉到的垂直和横向加速度以及乘客可见的外部状况(例如,到其他交通工具的距离))可基于传感器输出(例如,加速度计、激光雷达、相机、速度计等)来确定并且由处理系统对照各种阈值和/或用户设置来进行分析。然而,在自主交通工具的安全操作能力内的一些交通工具运动或行为对于乘客而言可能是不舒服或痛苦的。给定自主交通工具的能力,虽然高速转弯、突然机动、快速刹车、快速加速、紧跟另一交通工具(例如“房车”)可能是完全安全的,但此类运动和外部状况可能会被人类乘客感知为危险的或不舒服的,和/或可能引发晕动病,这可能会降低乘客所体验到的驾驶质量。例如,高速转弯和突然机动可能吓到人类乘客和/或引发晕动病。作为另一示例,紧跟另一交通工具或突然刹车可使得成员感到不安全。相应地,在一些实施例中,处理系统可以配置有与人类乘客可感知到的一个或多个交通工具运动或行为或因素相关的一个或多个阈值,此类阈值是为了改善乘客体验而设置的。在此类实施例中,响应于确定乘客可感知到的一个或多个交通工具运动、行为或其他因素超过为了改善乘客体验而确立或设置的阈值,处理系统可确定qod对于人类乘客是不恰当、不合乎需要、或不可接受的。因此,在一些实施例中,处理系统可以至少部分地基于(或考虑)确定一个或多个乘客可感知因素是否超过目的是为了改善乘客体验而确立或设
置的阈值来确定总体交通工具安全性能。
[0060]
在一些实施例中,处理系统可使用所分配的计算资源来确定该多个神经网络中的一者或多者的性能,并且可基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者。在一些实施例中,基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者可包括基于该多个神经网络中的一者或多者(例如,每一者)的所确定的性能来重新调整该多个神经网络中的一者或多者的一个或多个超参数。
[0061]
在一些实施例中,处理系统可被配置成尝试最大化驾驶质量(qod)度量。在一些实施例中,处理系统可确定与该处理系统的热功率包络相关的qod度量。在一些实施例中,基于处理系统的热功率包络以及每一个神经网络的相对重要性(例如,指派给每一个神经网络的排名或优先级),该处理系统可确定当前qod度量。处理系统然后可确定该处理系统的估计功耗。
[0062]
响应于确定当前估计的处理系统功耗大于热功率包络,该处理系统可调整一个或多个神经网络的一个或多个超参数以降低该处理系统的功耗。响应于确定当前估计的处理系统功耗小于热功率包络,该处理系统可调整一个或多个神经网络的一个或多个超参数以准许增加的功耗以提高性能。在一些实施例中,调整一个或多个神经网络的一个或多个超参数以准许增加的功耗可减小qod度量。在一些实施例中,当操作条件准许时,处理系统可通过重新调整神经网络的超参数(诸如将超参数设回到默认或普通设置)来增加分配给一个或多个神经网络的处理资源。
[0063]
在一些实施例中,处理器可确定可用计算资源已增加、已减少还是保持相同。响应于确定可用计算资源已增加,处理器可调整对总体交通工具安全性能具有相对较大影响的一个或多个神经网络超参数。响应于确定可用计算资源已减少,处理器可调整对总体交通工具安全性能具有相对较小影响的一个或多个神经网络超参数。
[0064]
各个实施例通过甚至在总计算资源减少时也向对于交通工具的安全操作而言重要的神经网络提供至少一些计算资源来改进交通工具系统的功能性。各个实施例通过以下操作来改进交通工具的安全性:根据每一个交通工具神经网络在特定交通工具操作情形或上下文中对于安全交通工具操作的重要性来动态地将有限的计算资源分配给多个交通工具神经网络。
[0065]
各个实施例可以在各种交通工具中实现,其中示例交通工具100在图1a和1b中解说。参照图1a和1b,交通工具100可包括控制单元140和多个传感器102-138,包括卫星地理定位系统接收机108、占用传感器112、116、118、126、128、胎压传感器114、120、相机122、136、话筒124、134、撞击传感器130、雷达132和激光雷达138。设置在交通工具中或交通工具上的该多个传感器102-138可以用于各种目的,诸如自主和半自主导航和控制、防撞、定位确定等,以及提供关于在交通工具100之中或之上的对象和人的传感器数据。传感器102-138可包括能够检测对导航和防撞有用的各种信息的多种多样的传感器中的一个或多个传感器。传感器102-138中的每一个传感器可以与控制单元140以及彼此进行有线或无线通信。具体而言,传感器可包括一个或多个相机122、136或其他光学传感器或光电传感器。传感器可进一步包括其他类型的对象检测和测距传感器,诸如雷达132、激光雷达138、ir传感器和超声传感器。传感器可进一步包括胎压传感器114、120、湿度传感器、温度传感器、卫星
地理定位传感器108、加速度计、振动传感器、陀螺仪、重力仪、撞击传感器130、测力计、压力计、应变传感器、流体传感器、化学传感器、气体含量分析仪、ph传感器、辐射传感器、盖革计数器、中子检测器、生物材料传感器、话筒124、134、占用传感器112、116、118、126、128、邻近度传感器和其他传感器。
[0066]
交通工具控制单元140可以配置有处理器可执行指令以使用从各个传感器(特别是相机122、136)接收的信息来执行各个实施例。在一些实施例中,控制单元140可以使用可以从雷达132和/或激光雷达138传感器获得的距离和相对位置(例如,相对方位角)来补充对相机图像的处理。控制单元140可被进一步配置成使用利用各种实施例确定的关于其他交通工具的信息来控制交通工具100在自主或半自主模式下操作时的转向、制动和速度。
[0067]
图1c是解说适合于实现各个实施例的组件和支持系统的系统150的组件框图。参照图1a、1b和1c,交通工具100可包括控制单元140,其可包括用于控制交通工具100的操作的各种电路和设备。在图1c中所解说的示例中,控制单元140包括处理器164、存储器166、输入模块168、输出模块170和无线电模块172。控制单元140可被耦合到并且被配置成控制交通工具100的驾驶控制组件154、导航组件156、以及一个或多个传感器158。
[0068]
控制单元140可包括处理器164,该处理器164可配置有处理器可执行指令以控制交通工具100的机动、导航和/或其他操作,包括各个实施例的操作。处理器164可耦合到存储器166。控制单元162可以包括输入模块168、输出模块170和无线电模块172。
[0069]
无线电模块172可被配置成用于无线通信。无线电模块172可以与网络收发机180交换信号182(例如,用于控制机动的命令信号、来自导航设施的信号等),并且可将信号182提供给处理器164和/或导航单元156。在一些实施例中,无线电模块172可以使得交通工具100能够通过无线通信链路192与无线通信设备190通信。无线通信链路192可以是双向或单向通信链路,并且可以使用一个或多个通信协议。
[0070]
输入模块168可接收来自一个或多个交通工具传感器158的传感器数据以及来自其他组件(包括驾驶控制组件154和导航组件156)的电子信号。输出模块170可被用来与交通工具100的各种组件通信或激活交通工具100的各种组件,包括驾驶控制组件154、导航组件156和(诸)传感器158。
[0071]
控制单元140可被耦合到驾驶控制组件154,以控制交通工具100的与交通工具的机动和导航有关的物理元件,诸如引擎、马达、油门、转向元件、飞行控制元件、制动或减速元件等等。驾驶控制组件154还可包括控制交通工具的其他设备的组件,这些其他设备包括环境控件(例如,空调和加热)、外部和/或内部照明、内部和/或外部信息显示器(其可包括显示屏或其他用于显示信息的设备)、安全设备(例如,触觉设备、听觉警报等)和其他类似设备。
[0072]
控制单元140可耦合到导航组件156,并且可接收来自导航组件156的数据且被配置成使用此类数据来确定交通工具100的当前位置和取向、以及朝向目的地的恰适路线。在各个实施例中,导航组件156可包括或耦合到使得交通工具100能够使用全球导航卫星系统(gnss)信号来确定其当前位置的gnss接收机系统(例如,一个或多个全球定位系统(gps)接收机)。替换地或附加地,导航组件156可包括无线电导航接收机,用于从无线电节点(诸如wi-fi接入点、蜂窝网络站点、无线电站、远程计算设备、其他交通工具等)接收导航信标或其他信号。通过对驾驶控制元件154的控制,处理器164可以控制车辆100进行导航和机动。
处理器164和/或导航组件156可以被配置成使用与蜂窝数据网络180的无线连接182来与网络186(例如,因特网)上的服务器184进行通信,以接收用于以下操作的命令:控制机动、接收在导航中有用的数据、提供实时位置报告、以及评估其他数据。
[0073]
控制单元162可耦合到一个或多个传感器158。(诸)传感器158可包括如所描述的传感器102-138,并且可被配置成向处理器164提供各种数据。
[0074]
尽管控制单元140被描述为包括分开的组件,但是在一些实施例中,一些或全部组件(例如,处理器164、存储器166、输入模块168、输出模块170和无线电模块172)可被集成在单个设备或模块(诸如片上系统(soc)处理设备)中。此类soc处理设备可被配置成供在交通工具中使用并且被配置成(诸如配置有在处理器164中执行的处理器可执行指令)在被安装到交通工具中时执行各个实施例的操作。
[0075]
图2a解说了可以在交通工具100内利用的交通工具管理系统200内的交通工具应用、子系统、计算元件或单元的示例。参照图1a至2a,在一些实施例中,交通工具管理系统200内的各种交通工具应用、计算元件或单元可以在互连的计算设备(即,子系统)的系统内实现,这些互连的计算设备向彼此传达数据和命令(例如,由图2a中的箭头所指示的)。在其他实施例中,交通工具管理系统200可以被实现为在单个计算设备内执行的多个交通工具应用,诸如单独的线程、进程、算法或计算元件。然而,在描述各种实施例时使用术语交通工具应用并不旨在暗示或要求对应的功能性在单个自主(或半自主)交通工具管理系统计算设备内实现,尽管这是潜在的实现实施例。相反,对术语交通工具应用的使用旨在包括具有独立处理器的子系统、在一个或多个计算设备中运行的计算元件(例如,线程、算法、子例程等)以及子系统和计算元件的组合。
[0076]
在各实施例中,在交通工具管理系统栈200中执行的交通工具应用可以包括(但不限于)雷达感知应用202、相机感知应用204、定位引擎应用206、地图融合和仲裁应用208、路线规划应用210、传感器融合和道路世界模型(rwm)管理应用212,运动规划和控制应用214以及行为规划和预测应用216。交通工具应用202-216仅仅是交通工具管理系统栈200的一个示例配置中的一些交通工具应用的示例。在与各种实施例一致的其他配置中,可以包括其他交通工具应用,诸如用于其他感知传感器的附加交通工具应用(例如,lidar感知层等)、用于规划和/或控制的附加交通工具应用、用于建模的附加交通工具应用等,和/或交通工具应用202-216中的某一些可以从交通工具管理系统栈200中排除。如图2a中的箭头所解说的,交通工具应用202-216中的每一者可以交换数据、计算结果和命令。
[0077]
交通工具管理系统栈200可以接收和处理来自传感器(例如,雷达、激光雷达、相机、惯性测量单元(imu)等)、导航系统(例如,gps接收机、imu等)、交通工具网络(例如,控制器区域网(can)总线)和存储器中的数据库(例如,数字地图数据)的数据。交通工具管理系统栈200可以将交通工具控制命令或信号输出到线控驱动(dbw)系统/控制单元220,其是直接与交通工具转向、油门和制动控制对接的系统、子系统或计算设备。图2a中解说的交通工具管理系统栈200和dbw系统/控制单元220的配置仅仅是示例配置并且交通工具管理系统和其他交通工具组件的其他配置可以在各个实施例中使用。作为示例,图2a中解说的交通工具管理系统栈200和dbw系统/控制单元220的配置可以在被配置用于自主或半自主操作的交通工具中使用,而不同的配置可以在非自主交通工具中使用。
[0078]
雷达感知交通工具应用202可以从一个或多个检测和测距传感器(诸如雷达(例
如,132)和/或激光雷达(例如,138))接收数据,并处理该数据以识别并确定在交通工具100附近的其他交通工具和对象的位置。雷达感知交通工具应用202可包括使用神经网络处理和人工智能方法来识别对象和交通工具,并将此类信息传递到传感器融合和rwm管理交通工具应用212。
[0079]
相机感知交通工具应用204可以从一个或多个相机(诸如诸相机(例如,122、136))接收数据,并处理该数据以识别和确定在交通工具100附近的其他交通工具和对象的位置。相机感知交通工具应用204可包括使用神经网络处理和人工智能方法来识别对象和交通工具,并将此类信息传递到传感器融合和rwm管理交通工具应用212。
[0080]
定位引擎交通工具应用206可以从各种传感器接收数据并处理该数据以确定交通工具100的位置。各种传感器可包括但不限于gps传感器、imu和/或经由can总线连接的其他传感器。定位引擎交通工具应用206还可以利用来自一个或多个相机(诸如诸相机(例如,122、136))和/或任何其他可用传感器(诸如雷达、lidar等)的输入。
[0081]
地图融合和仲裁交通工具应用208可以访问高清晰度(hd)地图数据库内的数据,并接收从定位引擎交通工具应用206接收到的输出,并处理该数据以进一步确定交通工具100在该地图内的定位,诸如交通车道内的位置、街道地图内的定位等。hd地图数据库可以被存储在存储器(例如,存储器166)中。例如,地图融合和仲交通工具应用208可以将来自gps的纬度和经度信息转换为包含在hd地图数据库中的地面道路地图内的位置。gps定位位置包括误差,因此地图融合和仲裁交通工具应用208可以用于基于gps坐标和hd地图数据之间的仲裁来确定交通工具100在道路内的最佳猜测位置。例如,虽然gps坐标可以将交通工具100放置在hd地图中的双车道道路的中间附近,但地图融合和仲裁交通工具应用208可以根据行驶方向来确定交通工具100最有可能同与行驶方向一致的行驶车道对准。地图融合和仲裁交通工具应用208可将基于地图的位置信息传递给传感器融合和rwm管理交通工具应用212。
[0082]
路线规划交通工具应用210可利用hd地图以及来自操作员或调度员的输入来规划交通工具100将要遵循的到特定目的地的路线。路线规划交通工具应用210可以将基于地图的位置信息传递给传感器融合和rwm管理交通工具应用212。然而,其他交通工具应用(诸如传感器融合和rwm管理交通工具应用212等)对先验地图的使用不是必需的。例如,其他栈可以在没有所提供地图的情况下仅基于感知数据来操作和/或控制交通工具,随着接收到感知数据而构建车道、边界和局部地图的概念。
[0083]
传感器融合和rwm管理交通工具应用212可接收由雷达感知交通工具应用202、相机感知交通工具应用204、地图融合和仲裁交通工具应用208和路线规划交通工具应用210中的一者或多者产生的数据和输出,并使用此类输入中的一些或全部来估计或细化交通工具100相对于以下各项的位置和状态:道路、道路上的其他交通工具、以及交通工具100附近的其他对象。例如,传感器融合和rwm管理交通工具应用212可以将来自相机感知交通工具应用204的图像数据与来自地图融合和仲裁交通工具应用208的经仲裁地图位置信息组合,以细化交通工具在交通车道内的所确定位置。作为另一示例,传感器融合和rwm管理交通工具应用212可以将来自相机感知交通工具应用204的对象识别和图像数据与来自雷达感知交通工具应用202的对象检测和测距数据组合,以确定并细化在该交通工具附近的其他交通工具和对象的相对位置。作为另一示例,传感器融合和rwm管理交通工具应用212可以从
交通工具到交通工具(v2v)通信(诸如经由can总线)接收关于其他交通工具位置和行驶方向的信息,并将该信息与来自雷达感知交通工具应用202和相机感知交通工具应用204的信息组合,以细化其他交通工具的位置和运动。传感器融合和rwm管理交通工具应用212可以将交通工具100的经细化位置和状态信息以及在该交通工具附近的其他交通工具和对象的经细化位置和状态信息输出到运动规划和控制交通工具应用214和/或行为规划和预测交通工具应用216。
[0084]
作为进一步的示例,传感器融合和rwm管理交通工具应用212可以使用动态交通控制指令来指导交通工具100改变速度、车道、行驶方向或(诸)其他导航元素,并将该信息与其他接收到的信息组合以确定经细化位置和状态信息。传感器融合和rwm管理交通工具应用212可以将交通工具100的经细化位置和状态信息以及在交通工具100附近的其他交通工具和对象的经细化位置和状态信息经由无线通信(诸如通过c-v2x连接、其他无线连接等)输出到运动规划和控制交通工具应用214、行为规划和预测交通工具应用216和/或远离交通工具100的设备,诸如数据服务器、其他交通工具等。
[0085]
作为再进一步的示例,传感器融合和rwm管理交通工具应用212可以监视来自各种传感器的感知数据(诸如来自雷达感知交通工具应用202、相机感知交通工具应用204、其他感知交通工具应用等的感知数据)和/或来自一个或多个传感器本身的数据以分析交通工具传感器数据中的状况。传感器融合和rwm管理交通工具应用212可被配置成检测传感器数据状况,诸如传感器测量处于、高于或低于阈值、某些类型的传感器测量出现等,并且可输出传感器数据作为提供给行为规划和预测交通工具应用216和/或经由无线通信(诸如通过c-v2x连接、其他无线连接等)提供给远离交通工具100的设备(诸如数据服务器、其他交通工具等)的交通工具100的经细化位置和状态信息的一部分。
[0086]
经细化位置和状态信息可包括与交通工具100以及交通工具所有者和/或操作者相关联的交通工具描述符,诸如:交通工具规格(例如,尺寸、重量、颜色、车载传感器类型等);交通工具位置、速度、加速度、行驶方向、姿态、定向、目的地、燃油/功率水平和其他状态信息;交通工具紧急状态(例如,交通工具是紧急交通工具还是紧急情况下的私人交通工具);交通工具限制(例如,重载/宽载、转弯限制、高占用率交通工具(hov)授权等);交通工具的能力(例如,全轮驱动、四轮驱动、雪地轮胎、链条、支持的连接类型、车载传感器工作状态、车载传感器分辨率水平等);设备问题(例如,低胎压、断裂无力、传感器故障等);所有者/操作者的出行偏好(例如,首选车道、道路、路线和/或目的地、避免通行费或高速公路的偏好、最快路线的偏好等);向数据代理服务器提供传感器数据的许可(例如184);和/或所有者/操作者标识信息。
[0087]
自主交通工具管理系统栈交通工具应用200的行为规划和预测交通工具应用216可以使用交通工具100的经细化位置和状态信息以及从传感器融合和rwm管理交通工具应用212输出的其他交通工具和对象的位置和状态信息来预测其他交通工具和/或对象的将来行为。例如,行为规划和预测交通工具应用216可以使用此类信息以基于自己的交通工具位置和速度以及在该交通工具附近的其他交通工具的位置和速度来预测这些其他交通工具的将来相对位置。这样的预测可以计及来自hd地图和路线规划的信息,以预计在主交通工具和其他交通工具沿着道路行进时相对交通工具位置的变化。行为规划和预测交通工具应用216可以将其他交通工具和对象行为和位置预测输出到运动规划和控制交通工具应用
214。
[0088]
此外,行为规划和预测交通工具应用216可以使用对象行为结合位置预测来规划和生成用于控制交通工具100的运动的控制信号。例如,基于路线规划信息、道路信息中的经细化位置以及其他交通工具的相对位置和运动,行为规划和预测交通工具应用216可以确定交通工具100需要改变车道和加速,诸如以维持或达到与其他交通工具的最小间距、和/或为转弯或出口做准备。结果,行为规划和预测交通工具应用216可以计算或以其他方式确定车轮的转向角和对油门设置的改变,该转向角和对油门设置改变将连同实现这样的变道和加速所必需的各种此类参数一起被命令给运动规划和控制交通工具应用214和dbw系统/控制交通工具应用220。一个此类参数可以是计算出的方向盘命令角。
[0089]
运动规划和控制交通工具应用214可以接收来自传感器融合和rwm管理交通工具应用212的数据和信息输出、和来自行为规划和预测交通工具应用216的其他交通工具和对象行为以及位置预测,并使用该信息来规划和生成用于控制交通工具100的运动的控制信号,以及验证此类控制信号满足交通工具100的安全要求。例如,基于路线规划信息、道路信息中的经细化位置以及其他交通工具的相对位置和运动,运动规划和控制交通工具应用214可验证各种控制命令或指令并将其传递至dbw系统/控制交通工具应用220。
[0090]
dbw系统/控制单元220可以从运动规划和控制交通工具应用214接收这些命令或指令并将此类信息转译成用于控制交通工具100的轮子转角、制动和油门的机械控制信号。例如,dbw系统/控制交通工具应用220可通过向方向盘控制器发送对应的控制信号来响应所计算出的方向盘命令角。
[0091]
在各种实施例中,交通工具管理系统栈200可以包括执行对可能影响交通工具和乘客安全的各种交通工具应用的各种命令、规划或其他决策的安全检查或监督的功能性。此类安全检查或监督功能性可以在专用交通工具应用内实现或分布在各个交通工具应用之间并被包括作为该功能性的一部分。在一些实施例中,各种安全性参数可以被存储在存储器中,并且安全检查或监督功能性可以将所确定的值(例如,与近旁交通工具的相对间距、与道路中心线的距离等)与对应的(诸)安全参数进行比较,并在违背或将违背安全参数的情况下发出警告或命令。例如,行为规划和预测交通工具应用216中(或单独的交通工具应用中)的安全或监督功能性可以确定另一交通工具(如由传感器融合和rwm管理交通工具应用212细化的)与该交通工具100之间的当前或将来间距(例如,基于由传感器融合和rwm管理交通工具应用212细化的世界模型),将该间距与存储在存储器中的安全间距参数进行比较,以及在当前或预测的间距违背安全间距参数的情况下向运动规划和控制交通工具应用214发出指令以进行加速、减速或转弯。作为另一示例,运动规划和控制交通工具应用214中(或单独的交通工具应用中)的安全或监督功能性可以将所确定的或所命令的方向盘命令角与安全轮子角度限制或参数进行比较,并响应于所命令的角度超过安全轮子角度限制而发出超驰命令和/或警报。
[0092]
存储在存储器中的一些安全参数可以是静态的(即,不随时间变化),诸如最大交通工具速度。存储在存储器中的其他安全参数可以是动态的,因为这些参数是基于交通工具状态信息和/或环境状况来持续地或周期性地确定或更新的。安全参数的非限制性示例包括最大安全速度、最大制动压力、最大加速度和安全轮子角度限制,所有这些参数可以因变于道路和天气状况。
[0093]
图2b解说了可以在交通工具100内利用的交通工具管理系统250内的交通工具应用、子系统、计算元件或单元的示例。参照图1a-2b,在一些实施例中,交通工具管理系统栈200的交通工具应用202、204、206、208、210、212和216可以类似于参照图2a描述的那些交通工具应用,并且交通工具管理系统栈250可以与交通工具管理系统栈200类似地操作,不同之处在于交通工具管理系统栈250可以将各种数据或指令传递给交通工具安全和防撞系统252,而不是dbw系统/控制交通工具应用220。例如,图2b中所解说的交通工具管理系统栈250与交通工具安全和防撞系统交通工具应用252的配置可以在非自主交通工具中使用。
[0094]
在各个实施例中,行为规划和预测交通工具应用216和/或传感器融合和rwm管理交通工具应用212可以将数据输出到交通工具安全和防撞系统交通工具应用252。例如,传感器融合和rwm管理交通工具应用212可输出传感器数据作为提供给交通工具安全和防撞系统交通工具应用252的交通工具100的经细化位置和状态信息的一部分。交通工具安全和防撞系统交通工具应用252可以使用交通工具100的经细化位置和状态信息来作出关于交通工具100和/或交通工具100的乘员的安全确定。作为另一示例,行为规划和预测交通工具应用216可以将与其他交通工具的运动相关的行为模型和/或预测输出到交通工具安全和防撞系统252。交通工具安全和防撞系统交通工具应用252可以使用与其他交通工具的运动相关的行为模型和/或预测来作出关于交通工具100和/或交通工具100的乘员的安全确定。
[0095]
在各个实施例中,交通工具安全和防撞系统交通工具应用252可包括执行对可能影响交通工具和乘员安全的各个交通工具应用的各种命令、规划或其他决策以及人类驾驶员动作的安全检查或监督的功能性。在一些实施例中,各种安全参数可以被存储在存储器中,并且交通工具安全和防撞系统交通工具应用252可以将所确定的值(例如,与近旁交通工具的相对间距、与道路中心线的距离等)与对应的(诸)安全性参数进行比较,并在违背或将违背安全参数的情况下发出警告或命令。例如,交通工具安全和防撞系统交通工具应用252可以确定另一交通工具(如由传感器融合和rwm管理交通工具应用212细化的)与该交通工具之间的当前或将来间距(例如,基于由传感器融合和rwm管理交通工具应用212细化的世界模型),将该间距与存储在存储器中的安全间距参数进行比较,以及在当前或预测的间距违背安全间距参数的情况下向驾驶员发出指令以进行加速、减速或转弯。作为另一示例,交通工具安全和防撞系统交通工具应用252可以将人类驾驶员的方向盘角度改变与安全轮子角度限制或参数进行比较,并响应于方向盘角度超过安全轮子角度限制而发出超驰命令和/或警报。
[0096]
图3解说了适合于在交通工具中实现各个实施例的处理设备片上系统(soc)300的示例soc架构。参照图1a至3,处理设备soc 300可包括各种处理资源,包括数个异构处理器,诸如数字信号处理器(dsp)303、调制解调器处理器304、图像和对象识别处理器306、移动显示处理器307、应用处理器308、以及资源和功率管理(rpm)处理器317。处理设备soc 300还可包括一个或多个协处理器310(例如,向量协处理器),其连接到异构处理器303、304、306、307、308、317中的一者或多者。这些处理器中的每一者可包括一个或多个核、以及独立/内部时钟。每个处理器/核可以独立于其他处理器/核来执行操作。例如,处理设备soc 300可包括执行第一类型的操作系统(例如,freebsd、linux、os x等)的处理器和执行第二类型的操作系统(例如,微软windows)的处理器。在一些实施例中,应用处理器308可以是soc 300的主处理器、中央处理单元(cpu)、微处理器单元(mpu)、算术逻辑单元(alu)等。图形处理器
306可以是图形处理单元(gpu)。
[0097]
处理设备soc 300可包括模拟电路系统和定制电路系统314,以用于管理传感器数据、模数转换、无线数据传输,并且用于执行其他专门操作,诸如处理经编码音频和视频信号以供在web浏览器中渲染。处理设备soc 300可进一步包括系统组件和其他子系统316,诸如电压调节器、振荡器、锁相环、外围桥接器、数据控制器、存储器控制器、系统控制器、访问端口、定时器、以及用于支持在计算设备上运行的处理器和软件客户端(例如,web浏览器)的其他类似组件。
[0098]
处理设备soc 300还可包括用于相机致动和管理的专用电路系统(cam)305,该cam 305包括、提供、控制和/或管理以下各项的操作:一个或多个相机122、136(例如,主相机、网络相机、3d相机等)、来自相机固件的视频显示数据、图像处理、视频预处理、视频前端(vfe)、内嵌jpeg、高清视频编解码器等。cam 305可以是独立的处理单元和/或包括独立或内部时钟。
[0099]
在一些实施例中,图像和对象识别处理器306可以配置有处理器可执行指令和/或专门硬件,其被配置成执行各个实施例中涉及的图像处理和对象识别分析。例如,图像和对象识别处理器306可被配置成执行处理经由cam 305从相机(例如,122、136)接收的图像以识别和/或标识其他交通工具的操作,以及以其他方式执行如所描述的相机感知交通工具应用204的功能。在一些实施例中,处理器306可被配置成处理雷达或激光雷达数据并执行如所描述的雷达感知交通工具应用202的功能。
[0100]
系统组件和其他子系统316、模拟和定制电路系统314和/或cam 305可包括与外围设备(诸如相机122、136、雷达132、激光雷达138、电子显示器、无线通信设备、外部存储器芯片等)对接的电路系统。处理器303、304、306、307、308可经由互连/总线模块324被互连至一个或多个存储器元件312、系统组件和其他子系统316、模拟和定制电路系统314、cam 305和rpm处理器317,互连/总线模块324可包括可重配置逻辑门阵列和/或实现总线架构(例如,coreconnect、amba等)。通信可由高级互连(诸如高性能片上网络(noc))来提供。
[0101]
处理设备soc 300可进一步包括输入/输出模块(未解说),以用于与soc外部的资源(诸如时钟318和电压调节器320)通信。soc外部的资源(例如,时钟318、电压调节器320)可以由两个或更多个内部soc处理器/核(例如,dsp 303、调制解调器处理器304、图形处理器306、应用处理器308等)共享。
[0102]
在一些实施例中,处理设备soc 300可被包括在控制单元(例如,140)中以供在交通工具(例如,100)中使用。控制单元可包括用于与电话网络(例如,180)、因特网和/或网络服务器(例如,184)通信的通信链路,如所描述的。
[0103]
处理设备soc 300还可包括适合于从传感器收集传感器数据的附加硬件和/或软件组件,传感器包括运动传感器(例如,imu的加速度计和陀螺仪)、用户接口元件(例如,输入按钮、触摸屏显示器等)、话筒阵列、用于监视物理状况(例如,位置、方向、运动、取向、振动、压力等)的传感器、相机、罗盘、gps接收机、通信电路系统(例如,wlan、wifi等)和现代电子设备的其他众所周知的组件。
[0104]
参照图3描述的soc 300内的一些或所有元件可以是根据各个实施例分配给交通工具应用的计算资源。然而,可分配计算资源还包括诸如由电压调节器320供应给soc 300和/或其内的特定组件的电压(或电流)和/或诸如由时钟318分配给soc 300和/或其内的特
定组件的操作频率。例如,分配计算资源的目的可涉及减小(或增大):处理操作的速率(例如,每秒执行的操作数);存储器使用、处理器操作频率;处理器电流;对协处理器或其他组件的访问,等等,以上各项在此一般被统称为计算资源。此外,所分配的计算资源(例如,处理操作、存储器使用、处理器频率、处理器电流等)的减少可由各种交通工具应用通过调整影响应用性能或操作的一个或多个参数或替代项来实现,如本文参照图5a描述的。例如,向每一个交通工具应用分配计算资源可通过调整以下各项中的一者或多者来完成:每秒推断、输入图像分辨率、处理准确度、输出质量、应用所使用的算法、或应用的功能性。
[0105]
图4是解说根据各个实施例的被配置成用于向由交通工具的处理器执行的应用分配计算资源的系统400的组件框图。在一些实施例中,系统400可包括一个或多个交通工具计算设备402和/或一个或多个远程平台404。参照图1a至4,(诸)交通工具计算系统402可包括交通工具(例如,100)的一个或多个处理器430,诸如处理器164、处理设备300和/或控制单元140(不同地称为“处理器”)。(诸)远程平台404可包括交通工具(例如,100)的处理器(例如,164)、处理设备(例如,300)和/或控制单元(例如,140)(不同地称为“处理器”)。
[0106]
(诸)交通工具计算设备402可包括由机器可执行指令406来配置的一个或多个处理器430。机器可执行指令406可包括一个或多个指令模块。指令模块可包括计算机程序模块。指令模块可包括优先级确定模块408、计算资源分配模块410和/或其他指令模块中的一者或多者。
[0107]
优先级确定模块408可被配置成基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级。
[0108]
计算资源分配模块410可被配置成基于该多个神经网络中的每一者的所确定的优先级来向每一个神经网络分配计算资源。
[0109]
(诸)交通工具计算设备402可包括电子存储428、一个或多个处理器430、和/或其他组件。(诸)交通工具计算设备402可包括用以实现与网络和/或其他无线设备的信息交换的通信线路或端口。对图4中的(诸)交通工具计算设备402的解说并不旨在限定。(诸)交通工具计算设备402可包括多个硬件、软件和/或固件组件,这些组件一起操作以提供本文中归属于(诸)交通工具计算设备402的功能性。例如,(诸)交通工具计算设备402可由在一起作为(诸)交通工具计算设备402操作的交通工具计算设备云来实现。
[0110]
电子存储428可包括电子地存储信息的非瞬态存储介质。电子存储428的电子存储介质可包括与(诸)交通工具计算设备402整体地提供的(即,本质上不可移除的)系统存储和/或经由例如端口(例如,通用串行总线(usb)端口、火线端口等)或驱动器(例如,盘驱动器等)可移除地连接到(诸)交通工具计算设备402的可移除存储中的一者或两者。电子存储428可以包括以下一者或多者:光学可读存储介质(例如,光盘等)、磁可读存储介质(例如,磁带、磁硬盘驱动器、软盘驱动器等)、基于电荷的存储介质(例如,eeprom、ram等)、固态存储介质(例如,闪存驱动器等)和/或其他电子可读存储介质。电子存储428可包括一个或多个虚拟存储资源(例如,云存储、虚拟专用网、和/或其他虚拟存储资源)。电子存储428可存储软件算法、由(诸)处理器430确定的信息、从(诸)交通工具计算设备402接收的信息、和/或使得(诸)交通工具计算设备402能够如本文所描述地运行的其他信息。
[0111]
(诸)处理器430可被配置成提供(诸)交通工具计算设备402中的信息处理能力。由此,(诸)处理器430可包括数字处理器、模拟处理器、设计成处理信息的数字电路、设计成处
理信息的模拟电路、状态机和/或用于电子地处理信息的其他机构中的一者或多者。虽然(诸)处理器430在图4中被示为单个实体,但是这仅仅是出于解说目的。在一些实施例中,(诸)处理器430可包括多个处理单元和/或处理器核。处理单元可以物理地位于同一设备内,或者(诸)处理器430可以表示协作运行的多个设备的处理功能性。(诸)处理器430可被配置成通过软件;硬件;固件;软件、硬件和/或固件的某种组合,和/或用于配置(诸)处理器430上的处理能力的其他机制来执行模块408、410和/或其他模块。如本文所使用的,术语“模块”可以指执行归属于该模块的功能性的任何组件或组件集合。这可包括在执行处理器可读指令期间的一个或多个物理处理器、处理器可读指令、电路系统、硬件、存储介质、或任何其他组件。
[0112]
应当领会,尽管模块408和410在图4中被解说为在单个处理单元内实现,但在其中(诸)处理器430包括多个处理单元和/或处理器核的实施例中,模块408和410中的一个或多个模块可远离其他模块来实现。下文描述的对由不同模块408和410提供的功能性的描述是出于解说目的,而不旨在限定,因为模块408和410中的任一者可以提供比所描述的功能性更多或更少的功能性。例如,模块408和410中的一者或多者可被消除,并且其一些或全部功能性可由其他模块408和410提供。作为另一示例,(诸)处理器430可被配置成执行一个或多个附加模块,该一个或多个附加模块可以执行以下归属于模块408和410中的一个模块的一些或全部功能性。
[0113]
图5a是解说根据各个实施例的用于向并发执行的神经网络分配处理资源的方法的交通工具计算系统500的组件的概念图。参照图1至图5a,在一些实施例中,组件可以用硬件、软件或硬件和软件的组合来实现,例如由交通工具(例如,交通工具100)的处理器(例如,处理器164、303、304、306、307、308、310、317、430)来实现。
[0114]
在一些实施例中,交通工具计算系统500可执行许多并发神经网络,并且可动态地评估和更改每一个并发执行的神经网络的配置(诸如超参数)以便在有限资源预算(诸如计算系统500的功率预算、热预算、负载预算等)内提高qod度量。
[0115]
在一些实施例中,片上系统(soc)资源预算控制器502可接收,检测或确定交通工具的操作环境的环境温度。soc资源预算控制器502可确定针对soc的资源预算(例如,功率预算、负载预算等),并且可以将该资源预算提供给神经网络资源预算控制器504。神经网络资源预算控制器504可确定一个或多个并发执行的神经网络的超参数并将所确定的超参数提供给soc 506。
[0116]
soc 506可执行多个神经网络,该多个神经网络可包括多个预处理操作508、多个主干510、多个头部512以及多个后处理操作514。预处理操作508的示例包括图像空间校准、格式转换、分辨率缩放、降噪和其他图像增强算法。后处理操作514的示例包括对象运动轨迹跟踪、对象过滤和优先级排序以及其他算法。主干510可使用卷积神经网络来从输入图像中提取特征。检测头部512可以使用神经网络来生成推断结果,诸如对象类型(例如,分类)和对象位置(例如,水平和垂直坐标)。基于soc 506的操作,qod估计器516可以确定交通工具的经估计qod度量。而且,至少部分地基于soc 506的操作,soc资源消耗估计器518可确定交通工具计算系统500的资源消耗(例如,功耗、热量的产生、计算资源的消耗等)。在一些实施例中,soc 506的操作可基于多个并发执行的神经网络的操作。进而,该多个并发执行的神经网络的操作可基于每一个神经网络的超参数。qod估计器516可将交通工具的经估计
qod度量提供给神经网络资源预算控制器504。soc资源消耗估计器518可将交通工具计算系统500的经估计资源消耗提供给神经网络资源预算控制器504。
[0117]
基于交通工具的经估计qod度量和/或交通工具计算系统500的经估计资源消耗,神经网络资源预算控制器504可以在soc资源预算内确定一个或多个神经网络的一个或多个经调整超参数。神经网络资源预算控制器504可将一个或多个经调整超参数提供给soc 506,并且soc 506可以在可适用的神经网络中实现该一个或多个经调整超参数。可被调整的超参数的示例包括剪枝水平、参数量化、每秒推断、神经网络配置、输入分辨率、批量大小、视场、基于上下文映射的输入图像部分掩码和/或其他合适的超参数。
[0118]
图5b是解说可由各种神经网络执行的功能530的表。图5c是解说各种神经网络的超参数的配置540的表。参照图1至图5c,在一些实施例中,神经网络可以用硬件、软件或硬件和软件的组合来实现,例如由交通工具(例如,交通工具100)的处理器(例如,处理器164、303、304、306、307、308、310、317、430)来实现。参照图5b,例如,交通工具adas可提供各种功能,诸如交通工具路线或路径的动态路线重选、天气检测、后向碰撞警告、前向碰撞警告和盲点检测(例如,对障碍物、人等的盲点检测),以及其他功能或作为其他功能的补充。交通工具adas的每一个功能可由并发执行的神经网络来执行,其示例包括densenet、vgg16、resnet50、mobilenet、inception和/或其他神经网络。参照图5c,每一个神经网络可以配置有各种超参数,诸如量化级别、剪枝水平参数、输入分辨率、每秒推断数目和/或其他合适的参数或配置。
[0119]
图5d是八个神经网络552

566的性能有效性曲线550的示例的图示和解说。参照图1至图5d,在一些实施例中,神经网络可以用硬件、软件或硬件和软件的组合来实现,例如由交通工具(例如,交通工具100)的处理器(例如,处理器164、303、304、306、307、308、310、317、430)来实现。四条曲线552、554、556和558表示较高优先级神经网络,即,执行较高优先级功能的神经网络。例如,神经网络552可以执行前向防撞功能,神经网络554可以执行车道保持辅助功能,神经网络556可以执行盲点检测功能,并且神经网络558可以执行后向防撞功能。四条曲线560、562、564和566表示较低优先级神经网络,即,执行较低优先级功能的神经网络。例如,神经网络560可以执行变道频率功能,神经网络562可以执行动态路线重选频率功能,神经网络564可以执行天气检测功能,并且神经元网络566可以执行交通工具夜视功能。
[0120]
在各实施例中,水平线570、572和574表示基于神经网络552-566中的每一者的有效性和相对性能的对神经网络552-566中的每一者的性能的总体评估或qod度量。在一些实施例中,qod度量570可表示神经网络的高性能、最佳性能、或最大性能。在一些实施例中,qod度量572可表示神经网络的中等性能。在一些实施例中,qod度量574可表示来自每一个神经网络的最小允许或最小容忍性能。箭头576解说减少处理器资源(例如,cpu、gpu等的操作频率)会降低神经网络552-566的相对性能,并且与神经网络560

566相比,相对性能的降低对于神经网络552

558是显著不同的。
[0121]
如上所述,在一些实施例中,qod度量可被表示为:
[0122]
qod=min(有效性
每功能
)
[0123]
并且可基于交通工具的经估计qod度量以及预算资源的经估计消耗。在一些实施例中,对神经网络的有效性的确定可以部分地取决于将神经网络归类为执行关于安全交通
工具操作的相对高优先级功能还是相对低优先级功能。在一些实施例中,相对较高优先级功能(hpf)(诸如神经网络552、554、556和558)的有效性可被表示为:
[0124]
有效性hpf=相对性能4×
(#功能-排名)
[0125]
其中“#功能”表示输出的量,诸如每秒推断数目或每秒帧输出数目;以及“排名”表示指派给神经网络的优先级。在一些实施例中,相对低优先级功能(lpf)(诸如神经网络560、562、564和566)的有效性可被表示为:
[0126][0127]
在一些实施例中,处理系统可基于多个神经网络中的一者或多者的性能有效性曲线来调整每一个神经网络的一个或多个超参数。在一些实施例中,性能有效性曲线可包括对调整超参数对每一个神经网络的性能具有的影响的量度。在一些实施例中,每一个性能有效性曲线可基于对每一个神经网络的有效性与相对性能的评估。在一些实施例中,处理系统可基于多个神经网络中的一者或多者的性能有效性曲线来调整一个或多个超参数。
[0128]
图5e、5f和5g是根据各个实施例的调整超参数的各种影响的示例的图示和解说。调整神经网络的超参数使得能够控制神经网络的功耗和/或处理时间。改变超参数还可影响神经网络的准确度和每秒推断。例如,图5e解说输入分辨率(按像素)和神经网络剪枝水平的改变可如何影响每秒可生成的推断数目的示例。作为另一示例,图5f解说了输入分辨率(按像素)和神经网络剪枝水平的改变可如何影响执行神经网络的处理器的动态功耗的示例。作为另一示例,图5g解说了输入分辨率(按像素)和神经网络剪枝水平的改变可如何影响神经网络的推断准确度的示例。响应于剪枝水平和输入分辨率超参数的改变的功耗、推断准确度和每秒推断的此类改变可基于测试或离线仿真(例如,在设计阶段期间)来建模。
[0129]
图5h是根据各个实施例的热节流与向并发执行的神经网络分配处理资源的比较的图示和解说。曲线560解说了热节流对qod的影响,并且曲线562解说了向并发执行的神经网络分配处理资源对qod的影响。曲线560解说了qod随着热功率包络(以瓦特(w)计)减小(诸如热功率预算的减少)而显著降低。曲线560的区域560a解说了随着热功率包络减小,qod迅速接近零,这指示qod的显著降级。相反,曲线562解说了即使当热功率包络(例如,热功率预算)显著减小时,向并发执行的神经网络动态分配处理资源也维持相对高的qod。具体而言,曲线562的区域562a解说了随着热功率包络减小,出现qod的相对小的降低。
[0130]
在一些实施例中,区域562a中解说的qod的降低对于人类乘客而言可能是感知不到的或者是可最低限度地感知到的。在一些实施例中,热功率预算包络——其可以与soc(例如,soc 506)的功耗相关——可以在qod的相对最小降低的情况下减小30-50%。曲线562解说了以下场景:热功率包络被减小(例如,热功率受约束场景),但是如曲线560所解说的,qod仍然比由热节流导致的qod好3到4倍。在一些实施例中,此类结果可通过向并发执行的神经网络分配处理资源的操作来自动实现,而不是通过在软件开发期间执行的手动优化。
[0131]
图6a是解说根据各个实施例的可由交通工具的处理器执行以用于向并发执行的神经网络分配处理资源的方法600a的操作的过程流图。参照图1至图6a,方法600的操作可由交通工具(例如,交通工具100)的处理器(例如,处理器164、303、304、306、307、308、310、
317、430)执行。
[0132]
在框602中,处理器可基于在交通工具处理系统上执行的多个神经网络中的一者或多者(例如,每一者)对总体交通工具安全性能的贡献来确定一个或多个(例如,每一个)神经网络的优先级。在一些实施例中,处理器可基于在交通工具处理系统上执行的多个神经网络中的一者或多者(例如,每一者)在交通工具操作上下文中对总体交通工具安全性能的贡献来确定一个或多个(例如,每一个)神经网络的优先级。在一些实施例中,处理器可基于由在交通工具处理系统上执行的多个神经网络中的一者或多者(例如,每一者)提供的对该神经网络对总体交通工具安全性能的贡献的指示来确定一个或多个(例如,每一个)神经网络的优先级。在一些实施例中,处理器可基于该多个神经网络中的一者或多者的每秒输出推断和输出准确度来确定一个或多个(例如,每一个)神经网络的相对性能。用于执行框602的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0133]
在框604中,处理器可基于该多个神经网络中的一者或多者(例如,每一者)的所确定的优先级来向一个或多个(例如,每一个)神经网络分配计算资源。在一些实施例中,基于一个或多个(例如,每一个)神经网络的所确定的优先级来向该多个神经网络分配计算资源可包括基于该多个神经网络中的一个或多个神经网络的所确定的优先级来调整该多个神经网络中的该一个或多个神经网络的一个或多个超参数。在一些实施例中,处理器可基于多个神经网络中的一者或多者的性能有效性曲线来调整一个或多个超参数。
[0134]
用于执行框604的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0135]
在一些实施例中,处理器可以在框604中迭代地执行框602的操作。以此方式,处理器可以动态地向多个并发执行的神经网络分配处理资源。
[0136]
图6b和6c是解说根据各个实施例的可由交通工具的处理器执行的作为用于向并发执行的神经网络分配处理资源的方法600a的一部分的操作600b和600c的过程流图。参照图1至图6cb,操作600b和600c可由交通工具(例如,交通工具100)的处理器(例如,处理器164、303、304、306、307、308、310、317、430)执行。
[0137]
参照图6b,在一些实施例中,在执行方法600a(图6a)的框604的操作后,处理器可在框610中使用所分配的计算资源来确定该多个神经网络中的一者或多者的性能。在一些实施例中,处理器可确定一个或多个神经网络的有效性。在一些实施例中,处理器可基于每一个神经网络所使用的计算资源来确定这些计算资源的实际使用(例如,确定为百分比、比例或另一量度)。用于执行框610的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0138]
在框612中,处理器可监视计算资源的动态可用性以及计算资源的实际使用。在一些实施例中,处理器可基于对计算资源的需求的改变来确定计算资源的动态可用性。对计算资源的需求的此类改变可基于多个神经网络中的一者或多者的重要性的提高或降低。一个或多个神经网络的重要性的改变可基于交通工具的操作上下文的改变,诸如操作状态和/或环境的改变。在一些实施例中,处理器可确定计算资源的可用性已增大或减小。用于执行框612的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0139]
在框614中,处理器可基于该多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给该多个神经网络中的一者或多者。在一些实施例中,处理器可基于多
个神经网络中的一者或多者(例如,每一者)的所确定的性能来重新调整该多个神经网络中的一者或多者的一个或多个超参数。用于执行框614的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0140]
处理器随后可执行方法600a(图6a)的框602的操作。
[0141]
参照图6c,在执行框610(图6b)的操作后,处理器可在判定框620中确定可用计算资源已增加、已减少、还是保持相同。用于执行框620的操作的装置可以包括处理器164、303、304、306、307、308、310、317、430。
[0142]
响应于确定可用计算资源保持相同(即,判定框620=“相同”),处理器可以在框622中维持当前的超参数设置。
[0143]
响应于确定可用计算资源已增加(即,判定框620=“已增加”),处理器可以在框624中调整对总体交通工具安全性能具有较大影响的超参数。
[0144]
响应于确定可用计算资源已减少(即,判定框620=“已减少”),处理器可以在框626中调整对总体交通工具安全性能具有较小影响的超参数。
[0145]
在各实施例中,处理器可基于受将要调整的超参数影响的一个或多个神经网络的相对重要性来确定超参数调整对总体交通工具安全性能的影响。
[0146]
在执行框622、框624或框626的操作之后,处理器可以执行如所描述的方法600a(图6a)的框602的操作。
[0147]
在以下段落中描述了各实现示例。虽然以下实现示例中的一些是以示例方法的形式来描述的,但是进一步示例实现可以包括:由交通工具计算系统实现的在以下段落中讨论的示例方法,该交通工具计算系统包括配置有处理器可执行指令以执行以下实现示例的方法的操作的处理器;由交通工具计算系统实现的在以下段落中讨论的示例方法,该交通工具计算系统包括用于执行以下实现示例的方法的功能的装置;并且在以下段落中讨论的示例方法可被实现为其上存储有处理器可执行指令的非瞬态处理器可读存储介质,这些处理器可执行指令被配置成使交通工具计算系统的处理器执行以下实现示例的方法的操作。
[0148]
示例1。一种由交通工具的处理器执行的用于将计算资源分配给并发执行的神经网络的方法,包括:基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级;以及基于每一个神经网络的所确定的优先级来向所述多个神经网络分配计算资源。
[0149]
示例2。如示例1所述的方法,其中基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级包括:基于在所述交通工具处理系统上执行的所述多个神经网络中的每一者在交通工具操作上下文中对所述总体交通工具安全性能的贡献来确定每一个神经网络的所述优先级。
[0150]
示例3。如示例1或2所述的方法,其中基于在交通工具处理系统上执行的多个神经网络中的每一者对总体交通工具安全性能的贡献来确定每一个神经网络的优先级包括:基于由在所述交通工具处理系统上执行的所述多个神经网络中的每一者提供的对该神经网络对所述总体交通工具安全性能的贡献的指示来确定每一个神经网络的所述优先级。
[0151]
示例4。如示例1-3中的任一者所述的方法,其中所述总体交通工具安全性能是基于使用所述多个神经网络的推断准确度和速度作为输入值的模型来计算的。
[0152]
示例5。如示例1-4中的任一者所述的方法,其中所述总体交通工具安全性能指示
至少部分地基于能被人类乘客感知到的因素的驾驶质量。
[0153]
示例6。如示例1-5中的任一者所述的方法,其中确定在所述交通工具处理系统上执行的所述多个神经网络中的每一者的优先级包括:基于每一个神经网络的每秒输出推断和输出准确度来确定所述多个神经网络中的一者或多者的相对性能。
[0154]
示例7。如示例1-6中的任一者所述的方法,其中基于每一个神经网络的所确定的优先级来向所述多个神经网络分配计算资源包括基于所述多个神经网络中的一个或多个神经网络的所确定的优先级来调整所述多个神经网络中的所述一个或多个神经网络的一个或多个超参数。
[0155]
示例8。如示例7所述的方法,其中基于所述多个神经网络中的一个或多个神经网络的所确定的优先级来调整所述多个神经网络中的所述一个或多个神经网络的一个或多个超参数包括基于所述多个神经网络中的一个或多个神经网络的性能有效性曲线来调整一个或多个超参数。
[0156]
示例9。如示例1-8中的任一者所述的方法,进一步包括:使用所分配的计算资源来确定所述多个神经网络中的一者或多者的性能;以及基于所述多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给所述多个神经网络中的一者或多者。
[0157]
示例10。如示例9所述的方法,进一步包括监视所述计算资源的动态可用性以及所述计算资源的实际使用,其中基于所述多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给所述多个神经网络中的一者或多者包括基于计算资源的所述动态可用性以及所述计算资源的实际使用来将计算资源重新分配给所述多个神经网络中的一者或多者。
[0158]
示例11。如示例9所述的方法,其中基于所述多个神经网络中的一者或多者的所确定的性能来将计算资源重新分配给所述多个神经网络中的一者或多者包括基于所述多个神经网络中的每一者的所确定的性能来重新调整所述多个神经网络中的一者或多者的一个或多个超参数。
[0159]
示例12。如示例1-11中的任一者所述的方法,进一步包括:确定可用计算资源已增加、已减少还是保持相同;以及响应于确定所述可用计算资源已增加而调整对总体交通工具安全性能具有相对较大影响的一个或多个神经网络超参数。
[0160]
示例13。如示例12所述的方法,进一步包括响应于确定所述可用计算资源已减少而调整对总体交通工具安全性能具有相对较小影响的一个或多个神经网络超参数。
[0161]
所解说和描述的各个实施例是仅作为解说权利要求的各种特征的示例来提供的。然而,针对任何给定实施例所示出和描述的特征不必限于相关联的实施例,并且可以与所示出和描述的其他实施例联用或组合。此外,权利要求书不旨在限于任何一个示例实施例。
[0162]
上述方法描述和过程流图是仅作为解说性示例而提供的,且并非旨在要求或暗示各个实施例的框必须按所给出的次序来执行。如本领域技术人员将领会的,前述各实施例中的框次序可按任何次序来执行。诸如“其后”、“随后”、“下一”等的措辞并非旨在限定框的次序;这些措辞仅是简单地用以指引读者历经各方法的描述。此外,对单数形式的权利要求元素的任何引述(例如使用冠词“一”、“某”或“该”的引述)不应解释为将该元素限定为单数。
[0163]
结合本文中所公开的实施例来描述的各种解说性逻辑框、模块、电路、和算法框可
实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路和块在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实施例决策不应被解读为致使脱离各个实施例的范围。
[0164]
用以实现结合本文中公开的实施例描述的各种解说性逻辑、逻辑框、模块、以及电路的硬件可用设计成执行本文中描述的功能的通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为通信设备的组合,例如,dsp与微处理器的组合、多个微处理器、与dsp核心协同的一个或多个微处理器、或任何其他此类配置。替换地,一些框或方法可由专用于给定功能的电路系统来执行。
[0165]
在各个实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可作为一条或多条指令或代码存储在非瞬态计算机可读介质或非瞬态处理器可读介质上。本文中公开的方法或算法的操作可在处理器可执行软件模块中实施,该处理器可执行软件模块可驻留在非瞬态计算机可读或处理器可读存储介质上。非瞬态计算机可读或处理器可读存储介质可以是能被计算机或处理器访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可读或处理器可读介质可包括ram、rom、eeprom、闪存、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。以上的组合也被包括在非瞬态计算机可读和处理器可读介质的范围内。附加地,方法或算法的操作可作为一条代码和/或指令或者任何代码和/或指令组合或集合而驻留在可被纳入计算机程序产品中的非瞬态处理器可读介质和/或计算机可读介质上。
[0166]
提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用本发明的实施例。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文中定义的通用原理可被应用于其他实施例而不会脱离实施例的范围。因而,各个实施例并非旨在被限定于本文中所示出的各实施例,而是应被授予与以下权利要求以及本文中所公开的原理和新颖特征一致的最广范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1