CN113439262B - 用于自适应模型处理的系统和方法 - Google Patents
用于自适应模型处理的系统和方法 Download PDFInfo
- Publication number
- CN113439262B CN113439262B CN202080014432.1A CN202080014432A CN113439262B CN 113439262 B CN113439262 B CN 113439262B CN 202080014432 A CN202080014432 A CN 202080014432A CN 113439262 B CN113439262 B CN 113439262B
- Authority
- CN
- China
- Prior art keywords
- neural network
- vehicle
- model
- processor
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000003044 adaptive effect Effects 0.000 title description 13
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000013528 artificial neural network Methods 0.000 claims description 71
- 238000004891 communication Methods 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 14
- 230000000295 complement effect Effects 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 abstract description 2
- 238000010276 construction Methods 0.000 description 32
- 230000003287 optical effect Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000013459 approach Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 206010039203 Road traffic accident Diseases 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000013439 planning Methods 0.000 description 3
- 238000010187 selection method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000009430 construction management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
Abstract
描述了一种由装置执行的方法。该方法包括:接收远程数据。该方法还包括:基于远程数据来适配模型处理。该方法还包括:基于经适配的模型处理来确定驾驶决策。在一些示例中,适配模型处理可以包括:选择模型,调整模型调度,和/或调整帧计算频率。
Description
要求优先权
本专利申请要求享受于2019年2月22日递交的、名称为“SYSTEMS AND METHODSFOR ADAPTIVE MODEL PROCESSING”的美国非临时申请No.16/283,443的优先权,该申请被转让给本申请的受让人并且据此通过引用的方式被明确地并入本文中。
技术领域
概括而言,本公开内容涉及电子设备。更具体地,本公开内容涉及用于自适应模型处理的系统和方法。
背景技术
在过去的几十年中,对电子设备的使用已经变得普遍。具体地,电子技术的进步降低了日益复杂且有用的电子设备的成本。成本降低和消费者需求已经使得对电子设备的使用激增,从而使得其在现代社会中几乎无处不在。由于对电子设备的使用已经扩展,所以对电子设备的新功能和改进特征的需求也已经扩展。更具体地,执行新功能和/或更快地、更高效地或更可靠地执行各种功能的电子设备经常广受欢迎。
一些电子设备处理指令和/或数据。一些处理负载可能难以管理,并且可能消耗大量资源,诸如处理带宽和功率。从该讨论中可以看出,用于改进处理的系统和方法可能是有益的。
发明内容
描述了一种由装置执行的方法。所述方法包括:接收远程数据。所述方法还包括:基于所述远程数据来适配模型处理。所述方法还包括:基于经适配的模型处理来确定驾驶决策。
适配模型处理可以包括基于所述远程数据来选择神经网络。选择所述神经网络可以包括在第一神经网络和第二神经网络之间进行选择。与所述第二神经网络相比,所述第一神经网络可以包括较多的节点。与所述第二神经网络相比,所述第一神经网络可以利用较多的乘积累加运算(MAC)或每秒浮点运算(FLOP)。
适配模型处理可以包括调整神经网络调度。调整所述神经网络调度可以包括调整针对神经网络的计算速率。调整所述神经网络调度可以包括将神经网络计算从第一处理器转移到第二处理器。
调整模型处理可以包括调整针对神经网络的帧计算频率。所述神经网络可以是针对帧集合的第一帧子集进行计算的,并且计算机视觉跟踪可以是针对至少第二帧子集执行的。所述第二帧子集可以是与所述第一帧子集互补的。
还描述了一种装置。所述装置包括存储器。所述装置还包括与所述存储器进行电子通信的至少一个处理器。所述至少一个处理器被配置为:接收远程数据。所述至少一个处理器还被配置为:基于所述远程数据来适配模型处理。所述至少一个处理器还被配置为:基于经适配的模型处理来确定驾驶决策。
还描述了一种存储计算机可执行代码的非暂时性有形计算机可读介质。所述计算机可读介质包括:用于使得装置接收远程数据的代码。所述计算机可读介质还包括:用于使得所述装置基于所述远程数据来适配模型处理的代码。所述计算机可读介质还包括:用于使得所述装置基于经适配的模型处理来确定驾驶决策的代码。
还描述了一种装置。所述装置包括:用于接收远程数据的单元。所述装置还包括:用于基于所述远程数据来适配模型处理的单元。所述装置还包括:用于基于经适配的模型处理来确定驾驶决策的单元。
附图说明
图1是示出可以在其中实现用于自适应模型处理的系统和方法的装置的一个示例的框图;
图2是示出用于自适应模型处理的方法的一种配置的流程图;
图3是示出可以根据本文公开的系统和方法的一些配置来实现的一个或多个元件和/或功能的示例的框图;
图4是示出可以根据本文公开的系统和方法来实现的自主驾驶模块的示例的框图;
图5是拥堵交通状况的示图;
图6是开放道路状况的示图;
图7是道路施工状况的示图;
图8是示出用于自适应模型处理的方法的另一种配置的流程图;以及
图9示出了可以被包括在被配置为实现本文公开的系统和方法的各种配置的装置内的某些组件。
具体实施方式
本文公开的系统和方法涉及自适应模型处理。如本文所使用的,术语“模型”指代机器学习模型和/或深度学习模型。模型的示例包括人工神经网络和/或深度神经网络(DNN)。可以对模型进行处理以执行各种任务。例如,模型可以被应用于驾驶控制。例如,可以处理模型以检测图像中的一个或多个对象、执行场景分析和/或处理传感器数据(例如,雷达处理、激光雷达处理等)。可以执行对模型的处理以实现驾驶控制,例如自主驾驶、半自主驾驶、驾驶辅助等。
复杂模型处理和/或高速率模型处理可能利用相对大量的资源,诸如处理带宽和/或功率。因此,在一些情况下,不加区分地执行模型处理可能是浪费或低效的。例如,在驾驶任务的背景下,对传感器数据的每个帧执行模型处理可能不必要地利用资源。例如,在交通拥堵或开放道路的情况下,复杂和/或高速率模型处理可能不是必要的,但是在诸如交通事故或道路施工之类的情况下可能是有益的。例如,在事故情况或道路施工情况下,利用更复杂的模型来提高可靠性和/或利用更高的模型处理速率(例如,帧每秒(FPS))可能是有益的。因此,使模型处理适配现场情况可能是有益的。例如,基于道路和/或交通状况的自适应模型处理可以提高处理效率和/或降低资源消耗。例如,本文公开的系统和方法的一些配置可以涉及基于交通状况来调度用于自主驾驶的模型(例如,DNN)处理流水线。从该讨论中可以看出,本文公开的系统和方法中的一些系统和方法可以通过提高处理效率和/或减少资源消耗来改进计算机本身的运作。本文公开的系统和方法中的一些系统和方法还可以改进另一科技或技术领域。例如,本文公开的系统和方法的一些配置可以通过基于驾驶条件来适配模型处理,从而改进自主驾驶、半自主驾驶和/或辅助驾驶的领域,这可以提供根据驾驶条件定制的模型准确度和/或速度。
现在参考附图来描述各种配置,其中相同的附图标记可以指示功能相似的元素。如在本文的附图中总体描述并且示出的系统和方法可以以各种不同的配置来布置和设计。因此,如附图中所表示的,以下对若干配置的更详细的描述并非旨在限制所要求保护的范围,而仅代表系统和方法。
图1是示出可以在其中实现用于自适应模型处理的系统和方法的装置102的一个示例的框图。装置102的示例包括电子设备、车辆、自主驾驶车辆、相机、便携摄像机、数码相机、智能电话、计算机(例如,集成计算机、机载计算机、膝上型计算机等)、平板设备、个人相机、运动相机、监视相机、安装式相机、连接式相机、机器人、飞行器、无人机、无人驾驶飞行器(UAV)、医疗设备、游戏控制台、个人数字助理(PDA)等。例如,装置102可以是自主驾驶车辆、自动驾驶车辆等,和/或可以包括高级驾驶员辅助系统(ADAS)。装置102可以包括一个或多个组件或元件。这些组件或元件中的一个或多个组件或元件可以用硬件(例如,电路、专用集成电路(ASIC)等)来实现,用硬件和软件的组合来实现(例如,具有指令的处理器),和/或可以用固件来实现。
在一些配置中,装置102可以包括一个或多个处理器112、存储器126(例如,一个或多个存储器设备)、一个或多个显示器132、一个或多个传感器104和/或一个或多个通信接口108。处理器112可以耦合到存储器126、显示器132、传感器104和/或通信接口108(例如,与其进行电子通信)。应当注意,在图1中所示的元件中的一个或多个元件可以是可选的。具体而言,在一些配置中,装置102可以不包括在图1中所示的元件中的一个或多个元件。例如,装置102可以包括或者可以不包括传感器104。另外或替代地,装置102可以包括或者可以不包括显示器132。另外或替代地,装置102可以包括或者可以不包括通信接口108。
在一些配置中,装置102可以执行结合图1-9中的一个或多个图描述的功能、过程、方法、步骤等中的一项或多项。另外或替代地,装置可以包括结合图1-9中的一个或多个图描述的结构中的一个或多个结构。
处理器112是被配置为处理指令和/或数据的一个或多个设备。处理器112可以在电路(例如,集成电路、晶体管、寄存器等)中实现。例如,处理器112可以是在集成电路、ASIC、现场可编程门阵列(FPGA)等中实现的处理器。可以从存储器126向处理器112提供指令和/或数据。
存储器126是被配置用于存储指令和/或数据的一个或多个设备。存储器126可以包括易失性和/或非易失性存储器。存储器126的示例包括随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、与处理器包括在一起的机载存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)等。
存储器126可以存储指令和/或数据。处理器112可以访问存储器126(例如,从存储器126读取和/或写入存储器126)。可以由存储器126存储的指令和/或数据的示例可以包括远程数据122、模型数据124、传感器数据128、对象检测数据、对象位置数据、对象跟踪数据、远程数据获取器106指令、模型处理适配器116指令、传感器数据获取器114指令、模型118指令、驾驶控制器120指令、和/或用于一个或多个其它元件的指令等。
通信接口108是被配置为发送和/或接收信号的设备或组件(例如,硬件和/或软件)。通信接口108可以使得装置102能够与一个或多个其它装置进行通信。例如,通信接口108可以提供用于有线和/或无线通信的接口。在一些配置中,通信接口108可以耦合到用于发送和/或接收射频(RF)信号的一个或多个天线110。另外或替代地,通信接口108可以实现一种或多种有线(例如,通用串行总线(USB)、以太网等)通信。
在一些配置中,可以实现和/或利用多个通信接口108。例如,一个通信接口108可以是蜂窝(例如,3G、长期演进(LTE)、5G等)通信接口108,另一通信接口108可以是以太网接口,另一通信接口108可以是通用串行总线(USB)接口,而另一通信接口108可以是无线局域网(WLAN)接口(例如,电气与电子工程师协会(IEEE)802.11接口)。在一些配置中,通信接口108可以将信息(例如,远程数据请求、传感器数据128、驾驶控制信息等)发送给另一装置(例如,车辆、智能电话、相机、显示器、远程服务器等)和/或从该另一装置接收信息(例如,远程数据122、模型数据124、传感器数据128等)。
一个或多个传感器104是被配置为感测来自环境的信息的设备。传感器104的示例包括一个或多个图像传感器(例如,可见光谱图像传感器、相机)、红外传感器、热传感器、音频传感器(例如,麦克风)、深度传感器(例如,飞行时间相机)、光探测和测距(激光雷达)传感器、无线电探测和测距(雷达)传感器等。从环境感测的信息的示例可以包括静态图像、视频(例如,图像帧序列)、深度图、热图、音频等。
在一些配置中,装置102可以包括一个或多个光学系统(在图1中未示出)。光学系统可以将位于光学系统的视场内的对象的图像聚焦到传感器104上。例如,光学系统可以包括一个或多个透镜。在一些配置中,光学系统可以耦合到处理器112和/或由处理器112控制。
相机可以包括至少一个图像传感器和至少一个光学系统。因此,在一些实现中,装置102可以是一个或多个相机和/或可以包括一个或多个相机。在一些配置中,传感器104可以捕获一个或多个图像(例如,图像帧、视频、静态图像、连拍模式图像、立体图像等)。例如,可以利用在特定帧速率(例如,30帧每秒(fps)、60fps、120fps等)下具有特定分辨率(例如,视频图形阵列(VGA)分辨率、1280×800像素等)的相机。在其它实现中,装置102可以包括多个光学系统和/或多个传感器104。例如,在一些配置中,装置102可以包括的两个或更多个透镜。透镜可以具有相同的焦距或不同的焦距。
在一些配置中,装置102可以从另一装置(例如,耦合到装置102的一个或多个外部图像传感器、网络服务器、落差相机、车辆相机等)请求和/或接收一个或多个图像。在一些配置中,装置102可以经由通信接口108请求和/或接收一个或多个图像。例如,装置102可以包括或者可以不包括相机(例如,传感器104和/或光学系统),并且可以从一个或多个远程设备接收图像。
在一些示例中,传感器104和/或光学系统可以机械地耦合到装置102(例如,可以附接到以下各项、安装在其上和/或集成到其中:汽车的引擎盖、后视镜支架、侧视镜、保险杠、在装置102的内部或外部的任何其它地方等)。传感器104可以经由有线和/或无线链路来链接到装置102。例如,传感器104可以硬连线到车辆中的控制机构(例如,处理器112),或者由图像传感器捕获的信息可以被无线地发送(例如,流式传输或以其它方式无线传输)到控制机构(例如,处理器112)。
一个或多个显示器132是被配置用于呈现图像的一个或多个设备。显示器132的示例包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、发光二极管(LED)面板、投影器等。在一些配置中,装置102可以在显示器132上呈现用户界面134。例如,用户界面134可以使得用户能够与装置102交互。在一些配置中,显示器132可以是从物理触摸(例如,通过手指、触笔或其它工具)接收输入的触摸屏。另外或替代地,装置102可以包括或耦合到另一输入接口。例如,装置102可以包括面向用户的相机,并且可以检测用户姿势(例如,手势、手臂姿势、眼睛跟踪、眼睑眨动等)。在另一示例中,装置102可以耦合到鼠标,并且可以检测鼠标点击。
在一些配置中,本文描述的图像中的一个或多个图像可以被呈现在显示器132和/或用户界面134上。例如,位于图像传感器的视场内的场景和/或对象的图像可以被呈现在显示器132上。在一些配置中,由图像传感器捕获的视频可以被呈现在显示器132上。例如,显示器132可以被配置为输出一个或多个对象(例如,车辆、道路、标志、车道标记、施工屏障等)的视图。
显示器132可以集成到装置102中和/或可以耦合到装置102。例如,装置102可以是膝上型计算机、平板设备或具有集成显示器的智能电话。在另一示例中,装置102可以是具有集成显示器132的虚拟现实耳机。在另一示例中,装置102可以是耦合到具有显示器132的虚拟现实耳机的计算机。在另一示例中,装置102可以是车辆。
处理器112可以包括和/或实现远程数据获取器106、模型处理适配器116、传感器数据获取器114、一个或多个模型118和/或驾驶控制器120。应当注意,在装置102和/或处理器112中所示的元件中的一个或多个元件可以是可选的。例如,在一些配置中,处理器112可以不包括和/或可以不实现远程数据获取器106、模型处理适配器116、传感器数据获取器114、模型118和/或驾驶控制器120。另外或替代地,在处理器112中所示的元件中的一个或多个元件可以与处理器112分开实现(例如,在其它电路中、在另一处理器上、在单独的电子设备上、在图形处理单元(GPU)上等等)。
处理器112可以包括和/或实现传感器数据获取器114。传感器数据获取器114可以获取传感器数据128。传感器数据128是由一个或多个传感器(例如,在装置102上的传感器104、耦合到装置102的传感器和/或远程传感器)提供的数据。传感器数据128可以被存储在存储器126中。传感器数据128的示例包括图像数据、视频数据、深度图数据、激光雷达数据、雷达数据、热数据(例如,温度)等。
处理器112可以包括和/或实现一个或多个模型118。例如,处理器112可以利用被存储在存储器126中的模型数据124来实现模型118。例如,模型数据124可以指示模型结构和/或训练(例如,权重)。可以使用模型数据124来执行模型118指令以产生模型输出。如上所述,模型118的示例包括机器学习模型、深度学习模型、人工神经网络、深度神经网络等。模型118可以被实现为执行一个或多个任务。模型118可以利用传感器数据128来执行一个或多个任务。可以由模型118执行的任务的示例包括对象检测、对象跟踪、标志读取、车辆检测、行人检测、车道标记检测、驾驶决策等。例如,模型118可以基于由传感器104提供的图像和/或视频来执行对象检测和/或对象跟踪。
可以执行一个或多个任务来控制驾驶。例如,如果行人正在道路上行走,则模型118可以检测到行人并且作出减速、停车和/或避开行人的驾驶决策。在另一示例中,模型118可以读取停车标志并且作出停车的驾驶决定。在另一示例中,模型118可以检测到车辆碰撞并且作出避免车辆碰撞的驾驶决策。
处理器112可以包括和/或实现驾驶控制器120。驾驶控制器120被配置为控制驾驶。例如,驾驶控制器120可以控制驾驶的一个或多个方面,诸如加速、转向、制动、转弯、换档等。在一些配置中,装置102可以是车辆,并且驾驶控制器120可以控制对装置102的驾驶。在一些配置中,装置102是与车辆进行通信的单独设备,并且可以经由通信(例如,远程地)控制对车辆的驾驶。
处理器112可以实现和/或包括远程数据获取器106。远程数据获取器106可以被配置为接收远程数据122。远程数据122是由远程装置提供的数据。远程装置的示例包括服务器、车辆、相机、无人机、计算机、平板设备等。在一些配置中,通信接口108可以从一个或多个远程装置请求和/或接收远程数据122。远程数据获取器106可以从一个或多个远程装置和/或从通信接口108接收远程数据122。远程数据122可以被存储在存储器126中。
远程数据122的示例包括交通状况信息、道路状况信息、施工信息、拥堵信息、驾驶信息、安全信息、道路事件信息、地图信息、兴趣点信息(例如,指示诸如餐馆、购物中心、停车场、加油站、休息站、办公室等的位置的信息)、事故信息等。在一些配置中,可以根据交通信息递送协议来接收远程数据122。例如,可以根据传输协议专家组(TPEG)协议来接收远程数据122,该协议可以提供交通状况广播。用于远程数据的源(例如,远程装置)可以包括例如地图服务器、交通信息服务器、无线基站、网页服务器、新闻提供商服务器、车辆、无人机、智能电话、平板设备等。
处理器112可以实现和/或包括模型处理适配器116。模型处理适配器116可以被配置为基于远程数据122来适配模型118处理。适配模型118处理可以包括选择模型、调整模型调度、和/或调整帧计算频率(和/或推断)。例如,模型选择可以包括根据交通状况来选择或利用较重型或较轻型模型。模型调度可以包括以可变时钟速度(例如,用于快速帧每秒(fps)性能的全时钟速度)来运行处理器112和/或在不同的处理器上执行模型118。在一些示例中,调整针对模型118的帧计算频率可以包括选择针对其执行模型118的帧(例如,视频帧)的比例。例如,在一些条件下,对所有帧运行DNN可能是浪费的。可能有益的是,基于交通状况,选择性地对针对自主驾驶的道路场景的一些帧运行DNN。
自适应模型118处理可以是基于由远程数据122指示的一个或多个条件。例如,远程数据122可以指示车辆(例如,装置102)正在行驶的道路上的交通状况。交通状况的示例可以包括拥堵交通、中等交通、开放道路、交通事故和施工。拥堵交通是交通正在相对缓慢(例如,小于10英里每小时)地移动和/或道路被许多车辆密集地占据(例如,车辆之间的间隔或平均间隔小于门限量)的状况。中等交通是车辆正在近似以预期速度移动和/或道路被适度占据的状况(例如,在车辆之间的间隔或平均间隔的范围内)。开放道路是在道路上有很少其它车辆(如果有的话)的状况。交通事故是已经发生交通异常(例如,由于碰撞、撞车、事故、障碍、故障、紧急情况等)的状况。施工是道路施工、施工规划、施工管理或其它施工影响交通的状况。例如,施工屏障、交通锥、由于施工造成的车道限制、由于施工造成的障碍、道路变更等可能影响交通。其它交通状况也可以由远程数据指示,诸如光滑道路、降水(例如,雨、雪、雨夹雪等)、受损道路、危险状况、洪水等。
在一些配置中,适配模型118处理可以包括基于远程数据来从模型118集合中选择模型118。不同的模型118(例如,神经网络)可以利用不同的处理量。可以通过给定模型中的节点数量或通过由给定模型执行的操作数量来反映由不同的模型118利用的不同的处理量。例如,与“较轻型”模型相比,“较重型”模型可以利用较多的处理来执行,其中,与较轻型模型相比,较重型模型包括较多的节点和/或利用较多的操作(例如,乘积累加运算(MAC)和/或每秒浮点运算(FLOP))。在一些配置中,较轻型模型可以被分类在节点和/或操作数量的第一范围内,而较重型模型可以被分类在节点和/或操作数量的第二范围内,第二范围大于第一范围。在一些配置中,与较轻型模型相比,较重型模型可以提供较大的准确度和/或可以被配置为管理更广泛的各种情形。例如,与较重型模型相比,较轻型模型(例如,较轻型神经网络)可能提供较低的精度和/或可能需要较少的执行资源。这可以允许以较高的速率(例如,以增加的检测和/或跟踪速率)运行较轻型模型,同时以精度为代价降低资源(例如,处理和功率)利用。
在一些方法中,模型处理适配器116可以基于由远程数据122指示的交通状况来选择模型。例如,模型处理适配器116可以为某些交通状况选择较重型模型,或者为其它交通状况选择较轻型模型。例如,当交通状况为拥堵交通或开放道路时,模型处理适配器116可以选择较轻型模型。当交通状况为中等交通、事故或施工时,模型处理适配器116可以选择较重型模型。
在一个示例中,选择模型118包括在来自模型118集合的第一模型和第二模型之间选择。在该示例中,与第二模型(例如,第二神经网络)相比,第一模型(例如,第一神经网络)包括较多的节点。另外或替代地,与第二模型相比,第一模型使用较多的操作(例如,MAC和/或FLOP)。如果远程数据122指示拥堵交通或开放道路,则模型处理适配器116可以选择第二模型。如果远程数据122指示中等交通、事故或施工,则模型处理适配器116可以选择第一模型。
在一些配置中,适配模型118处理可以包括基于远程数据来调整模型118(例如,神经网络)调度。调整模型118调度可以包括调整用于模型的计算速率(例如,时钟速度)和/或在处理器之间转移模型计算。调整用于模型的计算速率可以包括调整处理器正在运行的时钟速度,其中,处理器正在执行模型118。例如,如果远程数据122指示拥堵交通或开放道路,则模型处理适配器116可以降低时钟速度。如果远程数据122指示中等交通、事故或施工,则模型处理适配器116可以增加时钟速度。在一些示例中,如果远程数据122指示特定种类的驾驶区域(例如,其中增加的精度和快速响应是有益的区域,诸如在学校区域、施工区域、动物穿越区域等),则可以增加时钟速度(例如,时钟速率)以防止潜在事故。
在一些配置中,时钟速度的调整量(例如,增加或减少)可以是设定量(例如,预定量)或可变量。例如,可以基于一个或多个条件来从预定量集合中选择调整时钟速度的量。在一些方法中,时钟速度可以是基于一个或多个条件(例如,区域、交通量、行人的潜在性、自行车的潜在性、天气等)来从一个或多个表(例如,查找表)中选择的。另外或替代地,调整时钟速度的量可以是基于装置102的计算预算以在线方式(例如,在运行时)选择的。例如,时钟速度的增加量可以是计算预算所允许的最大量。在另一示例中,增加量可以是可用计算预算的比例(例如,25%、50%、75%等)。
在一些配置中,调整模型118调度可以另外或替代地包括:在处理器之间(例如,从第一处理器向第二处理器)转移神经网络计算。例如,在一些配置中,装置102可以包括多个处理器112。在一些配置中,远程数据获取器106、模型处理适配器116、传感器数据获取器114、模型118和/或驾驶控制器120可以分布在多个处理器112之间和/或由多个处理器112共享。处理器112的示例可以包括图形处理单元(GPU)、数字信号处理器(DSP)和中央处理单元(CPU)。在一些方法中,如果远程数据122指示拥堵交通或开放道路,则模型处理适配器116可以将计算转移到DSP和/或CPU(或在DSP和/或CPU处维持计算)。在DSP和/或CPU上计算模型118可以提高功率效率或降低功耗。如果远程数据122指示中等交通、事故或施工,则模型处理适配器116可以将计算转移到GPU(或在GPU处维持计算)。在一些方法中,针对中等交通、事故或施工状况,可以提高计算速率,并且可以将计算转移到GPU。另外或替代地,针对拥堵或开放道路状况,可以降低计算速率,并且可以将计算转移到DSP和/或CPU。
在一些配置中,适配模型118处理可以包括调整帧计算频率(和/或推断)。例如,模型处理适配器116可以确定针对其执行模型118的帧(或执行多个模型118)的频率或比例。在一些方法中,如果远程数据122指示拥堵交通或开放道路,则模型处理适配器116可以减少针对其执行模型118的帧的比例(和/或频率)。降低帧计算频率可能降低基于模型的对象检测和/或场景分析的速率,这可能花费相对大的计算预算。如果远程数据122指示中等交通、事故或施工,则模型处理适配器116可以增加针对其执行模型118的帧的比例(和/或频率)。例如,可以针对较大比例的帧或所有帧执行模型118。
另外或替代地,在一些方法中,可以通过针对一个或多个帧应用计算机视觉(CV)跟踪(例如,非神经网络CV跟踪)而不是执行模型118(例如,基于CPU的计算机视觉跟踪而不是基于神经网络的跟踪),来执行推断。CV跟踪的示例可以包括和/或可以是基于基于光流的特征跟踪、Kanade Lucas Tomasi(KLT)特征跟踪和/或基于滤波的跟踪(例如,基于卡尔曼滤波器的跟踪、基于粒子滤波的跟踪)等。在一些示例中,可以周期性地执行模型118,并且可以在模型118的周期性执行之间执行CV跟踪(例如,不执行模型118)。
在一些方法中,例如,可以针对在其中执行模型118的帧之间的一个或多个帧执行推断。在一个示例中,可以针对帧集合的第一帧子集计算模型118(例如,神经网络),并且可以针对至少第二帧子集执行CV跟踪,其中,第二帧子集是与第一帧子集互补的。在该情况下,与第一子集“互补”的第二子集可以意味着第二子集包括不在第一子集中的一个或多个元素。例如,假设从0到99编号的100个帧的集合。第一帧子集可以包括20个帧,具有帧编号0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90和95。与第一帧子集互补的第二帧子集可以包括剩余的80个帧,具有帧编号1-4、6-9、11-14、16-19、21-24、26-29、31-34、36-39、41-44、46-49、51-54、56-59、61-64、66-69、71-74、76-79、81-84、86-89、91-94和96-99。在一些示例中,可以针对20帧的第一子集执行模型118,并且可以针对80帧的第二子集执行CV跟踪。
在一些配置中,模型处理适配器116可以另外或替代地基于远程数据122来改变一个或多个门限。在一些示例中,可以基于远程数据122来改变用于确定是否利用较高精度和/或较重型模型118的一个或多个门限。例如,如果远程数据122(例如,交通数据、新闻数据)指示交通事故和/或道路施工,则可以改变一个或多个门限,其可以影响针对高精度或使用具有高精度的较重型模型的决策。
在一些示例中,模型118(例如,神经网络)输出可以表示针对执行任务的一个或多个概率。一个或多个概率可以用于作出决策(例如,路径规划、运动控制、速度、转向等)。在一些配置中,一个或多个概率的原始输出可以与一个或多个门限一起使用,以确定是否作出一个或多个决策。在模型118性能可能降级的一些情况下(例如,一些道路事件情况,诸如汽车事故和/或环境条件,诸如雨、雪等),模型处理适配器116可以控制针对决策的门限。在一些配置中,在一个或多个门限上的调整量(例如,增加或减少)可以是设定量(例如,预定量)或可变量。例如,可以基于一个或多个条件从预定量的集合中选择调整门限的量。在一些方法中,可以基于一个或多个条件(例如,区域、交通量、行人的可能性、自行车的可能性、天气等)从一个或多个表(例如,查找表)中选择门限。另外或替代地,可以以在线方式(例如,在运行时)选择调整门限的量。
在一些配置中,处理器112(例如,模型118)可以基于经适配的模型处理来确定驾驶决策。例如,模型118可以基于经适配的模型处理来确定驾驶决策(例如,是否加速、减速、制动、转向、变道、避开障碍物等)。例如,经适配的模型处理可以确定模型选择、经调整的模型调度和/或经调整的帧计算频率(和/或推断),其可以影响由模型118产生的驾驶决策。
装置102(例如,处理器112)可以可选地耦合到一种或多种设备,作为这些设备的一部分(例如,集成到其中),包括和/或实现这些设备。例如,该装置可以在配备有一个或多个相机的车辆中实现。
图2是示出用于自适应模型处理的方法200的一种配置的流程图。例如,方法200可以由装置102执行。
装置102可以接收202远程数据。这可以如结合图1所描述地实现。例如,装置102可以从一个或多个远程装置接收远程数据,诸如交通状况信息、新闻、天气信息、施工提醒、行驶时间等。
装置102可以基于远程数据来适配204模型处理。这可以如结合图1所描述地实现。例如,装置102可以选择模型、调整模型调度和/或调整帧计算频率(和/或推断)。在一些配置中,如结合图1所描述的,装置102可以基于远程数据来改变一个或多个门限。
装置102可以基于经适配的模型处理来确定206驾驶决策。这可以如结合图1所描述地实现。例如,装置102可以基于模型选择、经适配的模型调度和/或经调整的帧计算频率(和/或推断)来执行一个或多个模型。在一些配置中,装置102可以基于驾驶决策来控制车辆。例如,装置102可以执行驾驶决策以控制车辆移动,或者可以将驾驶决策发送给车辆以控制车辆。
图3是示出可以根据本文公开的系统和方法的一些配置而实现的一个或多个元件和/或功能的示例。例如,结合图3描述的元件和/或功能中的一者或多者可以被包括在结合图1描述的装置102中和/或由装置102来执行。具体而言,图3示出了远程数据获取器306、传感器数据获取器314、模型处理适配器316、模型318、以及驾驶控制器320。这些元件可以是结合图1描述的相应元件的示例。
在图3中,模型处理适配器316包括模型选择器336、模型调度器338和计算频率控制器340。模型选择器336可以在模型318之间进行选择,如结合图1所描述的。例如,如果来自远程数据获取器306的远程数据指示中等交通、事故或施工状况,则模型选择器336可以选择较重型模型。或者,如果远程数据指示拥堵交通或开放道路状况,则模型选择器336可以选择较轻型模型。
模型处理适配器316可以包括模型调度器338。模型调度器338可以调整模型调度,如结合图1所描述的。例如,如果来自远程数据获取器306的远程数据指示中等交通、事故或施工状况,则模型调度器338可以增加处理器的时钟速度和/或将模型318计算转移到不同的处理器。或者,如果来自远程数据获取器306的远程数据指示拥堵交通或开放道路状况,则模型调度器338可以降低处理器的时钟速度和/或将模型318计算转移到不同的处理器。
模型处理适配器316可以包括计算频率控制器340。计算频率控制器340可以调整模型318计算频率,如结合图1所描述的。例如,如果来自远程数据获取器306的远程数据指示中等交通、事故或施工状况,则计算频率控制器340可以增加针对其执行模型318的帧的比例。或者,如果来自远程数据获取器306的远程数据指示拥堵交通或开放道路状况,则计算频率控制器340可以减少针对其执行模型318的帧的比例。
应当注意的是,模型处理适配器316可以包括以下各者中的一者、一些或全部:模型选择器336、模型调度器338或计算频率控制器340。在一些配置中,模型选择器336、模型调度器338和/或计算频率控制器340可以并行地和/或同时地操作。例如,模型选择、模型调度调整和/或计算频率调整可以基于由远程数据指示的交通状况一起(例如,同时)执行。在一些配置中,模型选择器336、模型调度器338和/或计算频率控制器340可以以顺序方式和/或分层方式来执行,其中,一个调整在另一调整之前完成,和/或其中,一系列调整可以是有条件地基于远程数据。
在一些配置中,模型选择器336、模型调度器338和计算频率控制器340(例如,时钟速度控制器)中的两者或更多者可以被同时使用(例如,在重叠的时间段中,并行地等)和/或可以根据利用选择方法(例如,预定选择方法)被选择以供利用。在利用选择方法的示例中,可以首先利用模型选择器336,然后利用模型调度器338,并且然后利用计算频率控制器340。例如,这些模型中的每个模型可以提供相关联的准确度(例如,近似准确度)。在一些配置中,不同的情况(例如,驾驶条件、情形等)可以具有相关联的目标准确度。例如,目标准确度可以是提供目标性能的最小准确度。在该示例中,模型选择器336可以首先选择具有相关联的准确度的模型,该模型将满足针对给定情况(例如,驾驶条件)的目标准确度(例如,提供大于或等于目标准确度的准确度)。例如,模型选择器336可以选择具有同样满足目标准确度的相关联的准确度的最轻型(例如,最不复杂)模型。
在一些配置中,模型调度器338可以通过选择时钟速度(例如,运行模型的最大时钟速度)来调度模型。例如,模型调度器338可以利用与功率预算和/或交通状况相关的一个或多个策略,以通过选择时钟速度来显式地或隐式地在运行时调度模型。在一些方法中,模型调度器338可以调度由模型选择器336选择的模型(在模型选择之后)。
在一些配置中,计算频率控制器340可以控制计算频率。例如,计算频率控制器340可以在从模型(例如,深度神经网络)输出中缺失的一个或多个帧上利用一个或多个计算机视觉算法。计算机视觉算法可以利用较少的功率和/或相对快地操作(例如,与复杂模型相比)。
模型318可以基于经调整的模型318处理来产生驾驶决策342。在一些配置中,驾驶决策342可以被提供给驾驶控制器320以控制车辆移动。
图4是示出可以根据本文公开的系统和方法而实现的自主驾驶模块460的示例的框图。例如,结合图4描述的元件和/或功能中的一者或多者可以被包括在结合图1描述的装置102中和/或由装置102来执行。具体而言,图4示出了模型处理适配器416、模型318、模型数据424以及驾驶控制器320。这些元件可以是结合图1描述的对应元件的示例。在一些配置中,结合图4描述的自主驾驶模块460可以由结合图1描述的处理器112来实现。
在图4所示的示例中,远程数据450(例如,交通状况、TPEG数据等)被提供给模型处理适配器416。模型处理适配器416可以执行模型选择466,如结合图1所描述的。例如,模型处理适配器416可以根据模型数据424来选择模型418。模型数据424可以表示可以从中选择模型418的用于自主驾驶的模型库(例如,经训练的模型)。在一些配置中,模型处理适配器416可以执行如结合图1的模型处理适配器116描述的额外或替代功能。例如,模型处理适配器416可以选择模型418,执行模型调度,选择帧计算频率,和/或选择一个或多个门限,这可以影响模型418的行为。
在图4中所示的示例中,(所选择的)模型418包括标志读取器444、车辆检测器446、行人检测器448以及车道标记检测器449。将传感器数据452从图像传感器462和/或麦克风464提供给模型418。模型418可以利用传感器数据452来确定驾驶决策442。例如,模型418可以利用图像和/或音频来读取标志、检测车辆、检测行人,和/或检测车道标记。在一些示例中,标志读取器444、车辆检测器446、行人检测器448和车道标记检测器449中的每一者都是神经网络,其利用传感器数据452来作出关于以下各项的决策:标志指示什么内容,在图像中是否存在任何车辆以及在何处存在任何车辆,在图像中是否存在任何行人以及在何处存在任何行人,和/或在图像中是否存在任何车道标记以及在何处存在任何车道标记。这些决策可以用于作出驾驶决策442(例如,路线规划、加速控制、制动控制、转向控制等)。
驾驶决策442可以被提供给驾驶控制器420。驾驶控制器420可以实现驾驶决策442。例如,驾驶控制器420可以是自主驾驶系统控制器。驾驶控制器420可以向一个或多个执行器和/或控制器提供信号以控制对车辆的驾驶。
图5是拥堵交通状况的示图554。如本文所描述的,在拥堵交通状况的情况下,可以选择较轻型模型,可以减少模型调度,和/或可以减少帧计算频率。例如,由于交通正在缓慢地移动,可能不需要进行高强度计算。因此,当车辆处于拥堵交通状况时,模型处理可以被适配为减少资源使用。
图6是开放道路状况的示图656。如本文所描述的,在开放道路状况的情况下,可以选择较轻型模型,可以减少模型调度,和/或可以减少帧计算频率。例如,由于可能缺少其它车辆和障碍物,因此可以不需要高强度计算。因此,当车辆处于开放道路状况时,模型处理可以被适配为减少资源使用。
图7是道路施工状况的示图758。如本文所描述的,在道路施工状况的情况下,可以选择较重型模型,可以增加模型调度,和/或可以增加帧计算频率。例如,由于在道路施工状况下可能存在许多物体(例如,施工锥、屏障、其它车辆等),因此可以利用增加的计算来保持性能。因此,当车辆处于道路施工状况时,模型处理可以被适配为提高性能(例如,精度、准确度、速度等)。
图8是示出用于自适应模型处理的方法800的另一种配置的流程图。例如,方法800可以由结合图1描述的装置102、结合图3描述的元件和/或结合图4描述的自主驾驶模块460来执行。
装置102可以执行802一个或多个模型。这可以如结合图1所描述地实现。例如,装置102可以将传感器数据输入到模型中并且执行该模型以产生一个或多个输出(例如,检测结果、驾驶决策等)。
装置102可以接收804远程数据。这可以如结合图1所描述地实现。例如,装置102可以从一个或多个远程装置接收远程数据,诸如交通状况信息、新闻、天气信息、施工提醒、行驶时间等。
装置102可以确定806交通状况是否已经变化。例如,装置102可以保持与交通状况相对应的状态。如果传感器数据指示与当前状态的交通状况不同的交通状况,则装置102可以确定存在交通状况的变化。在不存在交通状况的变化的情况下,装置102可以继续执行802模型并且接收804远程数据。
在检测到交通状况的变化的情况下,装置102可以确定808新的交通状况是拥堵交通状况还是开放道路状况。在新的交通状况是拥堵交通状况或开放道路状况的情况下,装置102可以选择810较轻型模型,可以将模型处理转移812到CPU和/或DSP,可以降低814CPU和/或DSP的时钟速度,和/或可以降低816帧计算频率。这些操作中的一个或多个操作可以如结合图1所描述地执行。
在新的交通状况是事故交通状况或道路施工状况的情况下,装置102可以选择818较重型模型,可以将模型处理转移820到GPU,可以增加822GPU的时钟速度,和/或可以增加824帧计算频率。这些操作中的一个或多个操作可以如结合图1所描述地执行。装置102可以返回以根据经更新的选择和/或设置来执行802模型。
图9示出了可以被包括在被配置为实现本文公开的系统和方法的各种配置的装置902内的某些组件。装置902的示例可以包括车辆、相机、摄像机、数码相机、智能电话、计算机(例如,集成计算机、台式计算机、膝上型计算机、车辆控制台计算机等)、平板设备、媒体播放器、电视机、车辆、自主车辆、半自主车辆、汽车、个人相机、可穿戴相机、虚拟现实设备(例如,头戴式设备)、增强现实设备(例如,头戴式设备)、混合现实设备(例如,头戴式设备)、运动相机、监视相机、安装式相机、连接式相机、机器人、飞行器、无人机、无人驾驶飞行器(UAV)、个人数字助理(PDA)等。装置902可以根据结合图1描述的装置102来实现。
装置902包括处理器939。处理器939可以是通用单芯片或多芯片微处理器(例如,ARM)、专用微处理器(例如,数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器939可以被称为中央处理单元(CPU)。尽管在装置902中仅示出了单个处理器939,但是在替代配置中,可以实现处理器的组合(例如,ARM和DSP或者GPU和DSP)。
装置902还包括存储器919。存储器919可以是能够存储电子信息的任何电子组件。存储器919可以被体现为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、与处理器包括在一起的机载存储器、EPROM存储器、EEPROM存储器、寄存器等,包括其组合。
数据923a和指令921a可以被存储在存储器919中。指令921a可以是可由处理器939执行,以实现本文所述的方法200、800、过程、步骤和/或功能中的一项或多项。执行指令921a可以涉及使用被存储在存储器919中的数据923a。当处理器939执行指令921时,指令921b的各个部分可以被加载到处理器939上和/或数据923b的各个片段可以被加载到处理器939上。
装置902还可以包括发射机929和/或接收机931,以允许向装置902发送信号以及从装置902接收信号。发射机929和接收机931可以被统称为收发机933。一个或多个天线927a-b可以电耦合到收发机933。装置902还可以包括(未示出)多个发射机、多个接收机、多个收发机和/或额外天线。
装置902可以包括数字信号处理器(DSP)935。装置902还可以包括通信接口937。通信接口937可以允许和/或实现一种或多种输入和/或输出。例如,通信接口937可以包括用于将其它设备链接到装置902的一个或多个端口和/或通信设备。在一些配置中,通信接口937可以包括发射机929、接收机931或两者(例如,收发机933)。另外或替代地,通信接口937可以包括一个或多个其它接口(例如,触摸屏、小键盘、键盘、麦克风、照相机等)。例如,通信接口937可以使得用户能够与装置902进行交互。
装置902的各种组件可以通过一条或多条总线耦合在一起,这些总线可以包括功率总线、控制信号总线、状态信号总线、数据总线等。为了清楚起见,在图23中将各种总线示为总线系统925。
术语“确定”涵盖各种各样的动作,并且因此,“确定”可以包括计算、运算、处理、推导、调查、查找(例如,在表格、数据库或者另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
除非另外明确地指定,否则短语“基于”并不意味着“仅基于”。换言之,短语“基于”描述“仅基于”以及“至少基于”两者。
术语“处理器”应当被广义地解释为包含通用处理器、中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、控制器、微控制器、状态机等。在一些情况下,“处理器”可以指代专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)等。术语“处理器”可以指代处理设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或者任何其它这种配置。
术语“存储器”应当被广义地解释为包含能够存储电子信息的任何电子组件。术语存储器可以指代各种类型的处理器可读介质,例如,随机存储存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除PROM(EEPROM)、闪速存储器、磁性或者光数据存储单元、寄存器等。存储器被认为是与处理器进行电子通信,如果处理器能够从存储器读取信息和/或将信息写入到存储器中的话。作为处理器的组成部分的存储器与处理器进行电子通信。
术语“指令”和“代码”应当被广义地解释为包括任何类型的计算机可读语句。例如,术语“指令”和“代码”可以指代一个或多个程序、例程、子例程、函数、过程等。“指令”和“代码”可以包括单个计算机可读语句或者许多计算机可读语句。
本文描述的功能可以用由硬件执行的软件或者固件来实现。所述功能可以作为一个或多个指令存储在计算机可读介质上。术语“计算机可读介质”或“计算机程序产品”指代能够由计算机或者处理器访问的任何有形存储介质。通过举例而非限制的方式,计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或者其它磁性存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望程序代码并且能够被计算机访问的任何其它介质。如本文中所使用的,磁盘(disk)和光盘(disc)包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。应当注意的是,计算机可读介质可以是有形和非暂时性的。术语“计算机程序产品”指代与可以由计算设备或者处理器执行、处理或运算的代码或者指令(例如,“程序”)相结合的计算设备或者处理器。如本文中所使用的,术语“代码”可以指代可由计算设备或者处理器执行的软件、指令、代码或数据。
软件或者指令还可以在传输介质上发送。例如,如果利用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或无线技术(例如,红外线、无线电和微波)从网站、服务器或其它远程源发送软件,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(例如,红外线、无线电和微波)被包括在传输介质的定义中。
本文公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。这些方法步骤和/或动作可以在不脱离权利要求的范围的情况下彼此互换。换句话说,除非对于所描述的方法的正确操作而言要求步骤或动作的特定次序,否则可以在不脱离权利要求的范围的情况下,修改特定步骤和/或动作的次序和/或使用。
此外,应当明白的是,用于执行本文描述的方法和技术的模块和/或其它合适的单元可以由设备下载和/或以其它方式获得。例如,设备可以耦合到服务器以促进用于执行本文描述的方法的单元的传输。替代地,可以经由存储单元(例如,随机存取存储器(RAM)、只读存储器(ROM)、诸如压缩光盘(CD)或软盘之类的物理存储介质等)提供本文描述的各种方法,从而使得在将存储单元耦合到设备或向设备提供存储单元时,该设备可以获得各种方法。
如本文中所使用的,术语“和/或”应当被解释为意指一个或多个项目。例如,短语“A、B和/或C”应当被解释为意指以下各项中的任何项:仅A、仅B、仅C、A和B(但是没有C)、B和C(但是没有A)、A和C(但是没有B)、或所有的A、B和C。如本文中所使用的,短语“中的至少一个”应当被解释为意指一个或多个项目。例如,短语“A、B和C中的至少一个”或短语“A、B或C中的至少一个”应当被解释为意指以下各项中的任何项:仅A、仅B、仅C、A和B(但是没有C)、B和C(但是没有A)、A和C(但是没有B)、或所有的A、B和C。如本文中所使用的,短语“中的一个或多个”应当被解释为意指一个或多个项目。例如,短语“A、B和C中的一个或多个”或短语“A、B或C中的一个或多个”应当被解释为意指以下各项中的任何项:仅A、仅B、仅C、A和B(但是没有C)、B和C(但是没有A)、A和C(但是没有B)、或所有的A、B和C。
应理解的是,权利要求不限于以上示出的精确配置和组件。可以在不脱离权利要求的范围的情况下,在本文描述的系统、方法和装置的布置、操作和细节方面进行各种修改、改变和变化。
Claims (30)
1.一种在车辆处执行的方法,包括:
在所述车辆处接收包括与所述车辆的位置相关联的当前交通状况的远程数据;
经由所述车辆的一个或多个传感器来接收传感器数据;
在所述车辆处基于包括与所述车辆的位置相关联的当前交通状况的所述远程数据来确定交通状况的变化;
在所述车辆处至少基于所确定的交通状况的变化来适配模型处理;
在所述车辆处基于所适配的模型处理来处理经由所述车辆的一个或多个传感器接收的所述传感器数据;以及
在所述车辆处基于所述处理来确定针对所述车辆的驾驶决策。
2.根据权利要求1所述的方法,其中,适配模型处理包括基于所述远程数据来选择神经网络。
3.根据权利要求2所述的方法,其中,选择所述神经网络包括在第一神经网络和第二神经网络之间进行选择。
4.根据权利要求3所述的方法,其中,与所述第二神经网络相比,所述第一神经网络包括较多的节点。
5.根据权利要求3所述的方法,其中,与所述第二神经网络相比,所述第一神经网络利用较多的乘积累加运算或每秒浮点运算。
6.根据权利要求1所述的方法,其中,适配模型处理包括调整神经网络调度。
7.根据权利要求6所述的方法,其中,调整所述神经网络调度包括调整用于神经网络的计算速率。
8.根据权利要求6所述的方法,其中,调整所述神经网络调度包括将神经网络计算从第一处理器转移到第二处理器。
9.根据权利要求1所述的方法,其中,调整模型处理包括调整用于神经网络的帧计算频率。
10.根据权利要求9所述的方法,其中,所述神经网络是针对帧集合的第一帧子集计算的,并且计算机视觉跟踪是针对至少第二帧子集执行的,其中,所述第二帧子集是与所述第一帧子集互补的。
11.一种车辆装置,包括:
存储器;
一个或多个传感器;以及
与所述存储器进行电子通信的至少一个处理器,其中,所述至少一个处理器被配置为:
接收包括与所述车辆装置的位置相关联的当前交通状况的远程数据;
经由所述车辆装置的一个或多个传感器来接收传感器数据;
基于包括与所述车辆装置的位置相关联的当前交通状况的所述远程数据来确定交通状况的变化;
至少基于所确定的交通状况的变化来适配模型处理;
基于所适配的模型处理来处理经由所述车辆装置的一个或多个传感器接收的所述传感器数据;以及
基于所述处理来确定针对所述车辆装置的驾驶决策。
12.根据权利要求11所述的车辆装置,其中,所述至少一个处理器被配置为通过以下操作来适配所述模型处理:基于所述远程数据来选择神经网络。
13.根据权利要求12所述的车辆装置,其中,所述至少一个处理器被配置为通过以下操作来选择所述神经网络:在第一神经网络和第二神经网络之间进行选择。
14.根据权利要求13所述的车辆装置,其中,与所述第二神经网络相比,所述第一神经网络包括较多的节点。
15.根据权利要求13所述的车辆装置,其中,与所述第二神经网络相比,所述第一神经网络被配置为利用较多的乘积累加运算或每秒浮点运算。
16.根据权利要求11所述的车辆装置,其中,所述至少一个处理器被配置为通过调整神经网络调度,来适配模型处理。
17.根据权利要求16所述的车辆装置,其中,所述至少一个处理器被配置为通过调整用于神经网络的计算速率,来调整所述神经网络调度。
18.根据权利要求16所述的车辆装置,其中,所述至少一个处理器被配置为通过将神经网络计算从第一处理器转移到第二处理器,来调整所述神经网络调度。
19.根据权利要求11所述的车辆装置,其中,所述至少一个处理器被配置为通过调整用于神经网络的帧计算频率来适配模型处理。
20.根据权利要求19所述的车辆装置,其中,所述至少一个处理器被配置为:针对帧集合的第一帧子集计算所述神经网络,并且针对至少第二帧子集执行计算机视觉跟踪,其中,所述第二帧子集是与所述第一帧子集互补的。
21.一种存储计算机可执行代码的非暂时性有形计算机可读介质,所述计算机可执行代码在被执行时,使得车辆的一个或多个处理器进行以下操作:
接收包括与所述车辆的位置相关联的当前交通状况的远程数据;
经由所述车辆的一个或多个传感器来接收传感器数据;
基于包括当前交通状况的所述远程数据来确定交通状况的变化;
至少基于所确定的与所述车辆的位置相关联的交通状况的变化来适配模型处理;
基于所适配的模型处理来处理经由所述车辆的一个或多个传感器接收的所述传感器数据;以及
基于所述处理来确定针对所述车辆的驾驶决策。
22.根据权利要求21所述的计算机可读介质,其中,所述计算机可执行代码在被执行时,还使得所述车辆的所述一个或多个处理器基于所述远程数据来选择神经网络。
23.根据权利要求22所述的计算机可读介质,其中,所述计算机可执行代码在被执行时,还使得所述车辆的所述一个或多个处理器在第一神经网络和第二神经网络之间进行选择。
24.根据权利要求21所述的计算机可读介质,其中,所述计算机可执行代码在被执行时,还使得所述车辆的所述一个或多个处理器调整神经网络调度。
25.根据权利要求21所述的计算机可读介质,其中,所述计算机可执行代码在被执行时,还使得所述车辆的所述一个或多个处理器适配用于神经网络的帧计算频率。
26.一种车辆装置,包括:
用于接收包括与所述车辆装置的位置相关联的当前交通状况的远程数据的单元;
用于经由所述车辆装置的一个或多个传感器来接收传感器数据的单元;
用于基于包括与所述车辆装置的位置相关联的当前交通状况的所述远程数据来确定交通状况的变化的单元;
用于至少基于所确定的交通状况的变化来适配模型处理的单元;
用于基于所适配的模型处理来处理经由所述车辆装置的一个或多个传感器接收的所述传感器数据的单元;以及
用于基于所述处理来确定针对所述车辆装置的驾驶决策的单元。
27.根据权利要求26所述的车辆装置,还包括:用于基于所述远程数据来选择神经网络的单元。
28.根据权利要求27所述的车辆装置,还包括:用于在第一神经网络和第二神经网络之间进行选择的单元。
29.根据权利要求26所述的车辆装置,还包括:用于调整神经网络调度的单元。
30.根据权利要求26所述的车辆装置,还包括:用于调整用于神经网络的帧计算频率的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/283,443 US11372404B2 (en) | 2019-02-22 | 2019-02-22 | Systems and methods for adaptive model processing |
US16/283,443 | 2019-02-22 | ||
PCT/US2020/017299 WO2020171984A1 (en) | 2019-02-22 | 2020-02-07 | Systems and methods for adaptive model processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113439262A CN113439262A (zh) | 2021-09-24 |
CN113439262B true CN113439262B (zh) | 2024-07-05 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941819B2 (en) | Object detection using skewed polygons suitable for parking space detection | |
US11966228B2 (en) | Safety procedure analysis for obstacle avoidance in autonomous vehicles | |
US20230418299A1 (en) | Controlling autonomous vehicles using safe arrival times | |
US20210326678A1 (en) | Stereo depth estimation using deep neural networks | |
US11436484B2 (en) | Training, testing, and verifying autonomous machines using simulated environments | |
US11579629B2 (en) | Temporal information prediction in autonomous machine applications | |
US11537139B2 (en) | Determining drivable free-space for autonomous vehicles | |
US20210349460A1 (en) | Remote control system for training deep neural networks in autonomous machine applications | |
US12001958B2 (en) | Future trajectory predictions in multi-actor environments for autonomous machine | |
CN108602509B (zh) | 基于运动规划来操作自动驾驶车辆的方法和系统 | |
WO2020247265A1 (en) | Multi-object tracking using correlation filters in video analytics applications | |
US20200302250A1 (en) | Iterative spatial graph generation | |
CN113050049A (zh) | 通过静态环境测量进行在线雷达相位校准 | |
US11372404B2 (en) | Systems and methods for adaptive model processing | |
WO2020150237A1 (en) | Weighted normalized automatic white balancing | |
CN113439262B (zh) | 用于自适应模型处理的系统和方法 | |
US20230296758A1 (en) | Sensor data point cloud generation for map creation and localization for autonomous systems and applications | |
US11904870B2 (en) | Configuration management system for autonomous vehicle software stack | |
US20240020255A1 (en) | Dynamic skew realignment over multiple transmission lanes in integrated computing platforms | |
CN116704764A (zh) | 车辆控制方法及装置、电子设备及自动驾驶车辆 | |
JP2023082647A (ja) | 自律システム及びアプリケーションのためのカメラベースの入力を使用した深層学習ベースの動作領域検証 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |