CN117597637A - 人工智能车辆操作系统 - Google Patents
人工智能车辆操作系统 Download PDFInfo
- Publication number
- CN117597637A CN117597637A CN202280026881.7A CN202280026881A CN117597637A CN 117597637 A CN117597637 A CN 117597637A CN 202280026881 A CN202280026881 A CN 202280026881A CN 117597637 A CN117597637 A CN 117597637A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- vos
- adv
- student
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013473 artificial intelligence Methods 0.000 title claims description 86
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012549 training Methods 0.000 claims abstract description 26
- 238000013439 planning Methods 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 12
- 238000007726 management method Methods 0.000 claims description 10
- 230000008447 perception Effects 0.000 claims description 10
- 230000009467 reduction Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 238000013135 deep learning Methods 0.000 claims description 4
- 230000004807 localization Effects 0.000 claims description 4
- 230000033001 locomotion Effects 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 35
- 230000015654 memory Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 28
- 238000002379 ultrasonic velocimetry Methods 0.000 description 10
- 230000001186 cumulative effect Effects 0.000 description 8
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000007670 refining Methods 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- ZSBXGIUJOOQZMP-JLNYLFASSA-N Matrine Chemical compound C1CC[C@H]2CN3C(=O)CCC[C@@H]3[C@@H]3[C@H]2N1CCC3 ZSBXGIUJOOQZMP-JLNYLFASSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Traffic Control Systems (AREA)
Abstract
一种自动驾驶汽车(ADV)中的车辆操作系统(VOS)可以与云平台通信,以自动训练AI模型。VOS从ADV收集实时数据,并使用AI模型的教师边缘模型基于实时数据生成推断数据,并利用AI模型的学生边缘模型基于实时数据生成第二推断数据(601)。然后VOS获得第一推断数据和第二推断数据之间的一个或多个差异(603),并基于该一个或多个差异重新训练AI模型的学生边缘模型(605)。实时数据以及重新训练的学生边缘模型被上传到云平台,用于在云平台上升级学生边缘模型和教师边缘模型。升级后的教师边缘模型和学生边缘模型可以通过软件定义过程进行空中(OTA)重新部署。上述训练AI模型的过程可以在闭环中自动重复,无需用户干预。
Description
技术领域
本公开的实施例总体上涉及车辆操作系统。更具体地,本公开的实施例涉及一种训练用于车辆操作系统(VOS)中的人工智能(AI)模型的方法。
背景技术
在自动模式下运行的车辆(例如无人驾驶车辆)可以减轻车内人员,尤其是驾驶员的一些驾驶相关任务。当车辆在自动模式下运行时,可以使用车载传感器将车辆导航到不同位置,从而车辆行驶时能够尽量减少人机交互,或在没有乘客的情况下行驶。
ADV(autonomous driving vehicle,自动驾驶车辆)包括许多由车辆操作系统(vehicle operating system,VOS)管理的硬件和软件组件,该车辆操作系统可以在一个或多个多处理器单元(microcontroller unit,MPU)和一个或更多微控制器单元(microcontroller unit,MCU)上运行。一种流行的VOS是Linux,因为它对开发人员非常友好,并且易于迁移、扩展、修订以及升级。
VOS可以运行各种软件应用和服务来操作ADV,包括感知环境、规划轨迹、控制车辆内部温度以及降低功耗。然而,使用AI(artificial intelligence,人工智能)模型可以更有效地执行这些任务。训练AI模型和完善AI模型可能非常耗时。
附图说明
本公开的实施例以示例而非限制的方式在附图中示出,其中相似的附图标记表示相似的元件。
图1示出了根据本公开实施例的自动驾驶车辆中的车辆操作系统(VOS)。
图2示出了根据本公开实施例的VOS和云平台之间的交互。
图3示出了根据本公开实施例的在ADV的VOS中完善AI模型的过程。
图4示出了根据本公开实施例的部署到ADV的VOS的各种AI模型。
图5进一步示出了根据本公开实施例的与多个ADV通信的云平台。
图6示出了根据本公开实施例的在ADV中训练人工智能(AI)模型的过程。
图7是示出了根据本公开一实施例的自动驾驶网络配置的框图。
图8示出了根据本公开实施例的ADV的传感器控制系统。
图9A和图9B是示出了根据本公开的一些实施例的ADS及其模块的示例的框图。
图10A和图10B是示出了根据一实施例的传感器单元的示例的框图。
具体实施例
将参考下述细节对本公开的各种实施例和方面进行描述,附图将示出各种实施例。以下描述和附图是说明性的,不应解释为对本公开的限制。为了透彻理解本公开的各种实施例,描述了许多具体细节。然而,在某些情况下,为了简明论述本公开的实施例,没有对众所周知的或常规的细节进行描述。
说明书中提到的“一个实施例”或“实施例”表示结合该实施例描述的特定特征、结构或特性可以包括在本公开的至少一个实施例中。在说明书中不同位置出现的“在一实施例中”不一定都指同一个实施例。
根据一些实施例,自动驾驶车辆(ADV)中的车辆操作系统(VOS)可以与云平台通信以自动训练AI模型。VOS从ADV收集实时数据,使用AI模型的教师边缘模型基于实时数据生成推断数据,使用AI模型的学生边缘模型基于实时数据生成第二推断数据。然后VOS获得第一推断数据和第二推断数据之间的一个或多个差异,并基于该一个或更多个差异重新训练学生边缘模型。标记的实时数据和重新训练的的学生边缘模型都可以上传到云平台,用于在云平台中升级学生边缘模型和教师边缘模型。
在一实施例中,云平台包括相应的云模型,并由此导出学生边缘模型和教师边缘模型。云模型可以被配置为根据AI模型的重新训练的学生边缘模型,至少部分地基于用第二推断数据标记的实时数据重新训练教师边缘模型和学生边缘模型。重新训练的教师边缘模型和重新训练的学生边缘模型可以通过空中更新重新部署到ADV,以取代现有的学生边缘模型和现有的教师边缘模型。
因此,ADV和云平台可以形成一个自动训练循环,在这个循环中,任何AI模型都可以在云平台上进行初始训练,部署到ADV,在ADV上AI模型对实时数据进行推断,并且AI模型可以被完善。完善后的学生边缘模型可以与新标记的训练数据一起上传到云平台。云平台可以包括在多个不同的ADV中由教师边缘模型标记的新的训练数据,并使用新的训练数据升级教师边缘模型和学生边缘模型,以便重新部署到每个ADV。
在一实施例中,AI模型是部署到ADV的VOS的多个AI模型中的一个AI模型。多个AI模型包括功耗降低AI模型、存储寿命延长AI模型、温度预测和控制AI模型、资源管理AI模型、IPC优化AI模型、感知AI模型、定位AI模型、预测AI模型,决策AI模型、规划AI模型以及控制AI模型。多个AI模型中的每一个AI模型可以为深度学习神经网络。
在一实施例中,功耗降低AI模型可以将任务分类为具有与功耗限制相对应的优先级的任务。存储寿命延长AI模型被配置为当多个数据路径可用时,选择需要对存储介质进行最小写入次数的数据路径。温度预测和控制AI模型被配置为预测应用程序的序列以使多处理器单元(MPU)的温度达到预定级别,以及调度不同的应用程序序列以避免温度达到预定级别。IPC优化AI模型被配置为基于多个因素来选择多处理器单元(MPU)和微控制器单元(MCU)之间的通信信道,多个因素包括通信信道中的流量以及与数据传输相关联的任务的优先级。
本文公开的实施例在软件定义的车辆(即ADV)中实现,其通过软件提供显著的安全性和便利性特征以实现新的车内体验和功能,并通过空中(over-the-air,OTA)传送更新和服务。教师边缘模型和学生边缘模型在云平台上升级,并通过OTA部署到ADV,在ADV中,两个模型对相同的实时数据进行推断,比较它们的推断结果,用教师边缘模型的推断数据标记实时数据,对学生边缘模型进行重新训练,使其成为重新训练的学生边缘模型。然后,将重新训练的学生边缘模型和标记的数据上传到云平台,其中,教师边缘模型和学生边缘模型是基于来自连接到云平台的各种车辆的标记数据升级的。上述过程可以以闭环形式自动重复,而无需用户干预,使得可以在软件定义过程之后通过OTA升级ADV中的VOS。
其他实施例、功能和优点将从附图以及下面的详细描述中显而易见。
图1示出了根据本公开实施例的自动驾驶车辆101中的车辆操作系统(VOS)102。
如在本文所使用的和如图1所示的,VOS102包括硬件和在硬件上运行的软件堆栈。VOS102的硬件包括MPU 103和MCU 105。VOS102的软件堆栈可以分散在MPU 103和MCU 105上。MPU 103可以包括内核123、管理程序113、一个或多个实时相关服务115、内核补丁121、快速路径包119以及一个或更多个人工智能模型117。MCU 105可以包括微控制器抽象层(microcontroller abstraction layer,MCAL)129、一组统一的API 128、服务层127、运行时环境125、以及应用层124。MCU 105和MPU 103都可以包括多个核,每个核可以是中央处理单元(central processing unit,CPU)、图形处理单元(graphical processing unit,GPU)、数字信号处理器(digital signal processor,DSP)或另一类型的处理器。
MCU 105和MPU 103上的MPU的数量、ECU(Elecmal Control Unit,电子控制单元)的数量以及核的数量都是为了说明本公开的实施例而提供的。在实际的实现中,这些数量可以不同。
内核123可以负责许多内核级任务,例如调度进程、设备管理、中断处理、存储器管理以及进程管理。MPU 103可以经由进程间通信(interprocess communication,IPC)111与MCU 105通信,使得内核123可以调度进程在MCU的核上运行。
如图1所示,MPU 103的多个核(core)可以划分为被称为指定核111的第一组核和被称为默认核109的第二组核。每组核中的核数量可以由用户(例如,车辆制造商)根据其对实时性能的需求和要求来确定。
例如,在16核的MPU中,两个核可以是指定核111,其余14个核可以为默认核109。这两组核彼此隔离,指定核111支持实时相关服务115,默认核109支持AI模型117、快速路径包119、内核补丁121以及内核123。管理程序113可以在任何指定核111或任何默认核109上运行,以虚拟化这两组核。
在一实施例中,实时相关服务115可以包括网络服务、通信服务、任务管理服务以及加密服务。这些服务可以被关联到指定核111,并且仅在核111上运行。
此外,可以赋予实时相关服务115比内核级线程更高的优先级。默认情况下,在诸如Linux之类的软实时系统中,内核级线程被赋予最高的优先级,因为内核123使用这些线程来向应用程序提供特权服务、调度进程,并跟踪系统上运行的进程、有多少资源以及哪些资源被分配给哪个进程。因此,在默认的Linux系统中,实时相关服务115的执行不能得到保证,并且需要依赖于系统的总工作负载。
因此,通过核分区、服务仿射化和内核线程级降级,所有内核级线程要么被隔离到默认核109,要么将其优先级降级到低于任何实时相关服务115,因此,除非发生硬件中断,可以保证在指定核111上执行实时相关服务115,这有效地将VOS 102转换为硬实时系统。
在一实施例中,内核补丁121可以是硬实时包(例如,开源包)或硬实时内核,这取决于内核123的配置。如果内核123是原生内核,例如MontaVistaTM,则可以使用硬实时包来修改内核补丁121,以使VOS 102在性能和/或安全方面基本上接近硬实时。在一实施例中,硬实时包可以是开源包中的一个,并可以用于修补内核123的调度器。如果内核123是双内核配置(例如WindRiverTM)中的两个内核之一,则内核补丁121可以替换这两个内核中的一个,使得内核补丁121能够作为与未被替换的内核并行的硬实时内核运行。
例如,修补内核(即,内核补丁121)可以作为与另一内核(例如,软实时内核)并排的硬实时协同内核运行,以处理所有时间关键型活动,例如处理中断和调度实时线程。修补内核可以具有比原生内核活动更高的优先级。
由于内核补丁121是硬实时包,因此它可以将VOS102转换为具有基本上接近硬实时的性能的系统。硬实时VOS是这样一种VOS,其中即使是满足单个截止期限的故障也会导致完全或糟糕的系统故障,而软实时VOS是这样一种VOS,其中一个或多个满足最后期限的故障不被视为完全的系统故障而被视为性能下降。
在一实施例中,VOS102可以具有映射表,该映射表具有将MPU的体系结构(包括版本)映射到配置模式(即,原生内核或双内核)的条目。当需要对VOS102进行修补以获得硬实时性能时,VOS可以自动确定需要什么类型的修补包。
在一实施例中,MCU 105中的多个核可以包括同一组服务,例如以太网服务、存储器服务、诊断服务、通信服务或ECU状态管理服务。每个服务都可以根据诸如AutoSAR标准之类的行业标准进行定制。此外,定制服务的数量可以根据许多因素(例如VOS需要通过的行业认证类型、工作量)进行自适应调整。每个核还可以支持在它们各自的应用层113、127和141中实现定制功能。每个应用可以包括特定的软件组件和应用程序,这些软件组件和应用程序根据诸如AutoSAR之类的行业标准,根据指令执行特定任务。也可以根据VOS需要通过的行业认证类型以及客户需求进行自适应调整应用程序的数量和应用程序的类型。
每个核上的运行时环境可以是服务层和应用层之间的中间件层,并可以为应用层提供通信服务。每个核上的MCAL实现了用于特定微控制器的接口。每个MCAL具有通过寄存器与MCU 105集成的软件层,并可以提供诸如系统驱动程序、诊断驱动程序、存储器驱动程序、通信驱动程序(CAN、LIN、以太网等)以及I/O驱动程序之类的驱动程序。MCU 105还包括板级支持包(board support package,BSP)(未示出),该板级支持包具有硬件专用引导固件和其他例程,允许上层软件应用程序在给定硬件环境中运行。
MCAL 129以及BSP是硬件相关的,这意味着它们是MCU 105所特有的,MCU 105可以是多种类型中的一种。例如,MCU 105可以是可编程接口控制器(programmable interfacecontroller,PIC)微控制器、8051微控制器、AVR(Alf and Vegard’s RISC)微控制器,ARM(Advanced RISC Machine)微控制器或Renesas(Renaissance Semiconductor ForAdvanced Solutions)微控制器中的一种。
在一实施例中,该组统一的API 128可以用于为服务层中的每个定制服务,加载与MCAL层中的MCU驱动程序的类型相对应的一个或多个MCU驱动程序,以及为与MCU 105相关联的I/O设备加载一个或多个I/O驱动程序。
如上所述的MCU驱动程序可以包括系统驱动程序、诊断驱动程序、存储器驱动程序以及通信驱动程序(CAN、LIN、以太网等)。这些MCU驱动程序以及I/O驱动程序是硬件相关的。每种类型的MCU都有一组特定的驱动程序,每种I/O设备都有一套特定的I/O驱动程序。
在本公开中,每个MCAL可以包括用于多种类型的MCU和多种类型的I/O设备的驱动程序。可以调整和/或动态配置MCU类型的数量和I/O设备类型的数量。
在该实施例中,核在硬件级别上彼此分离,并且仅在应用级别上可以彼此通信。因此,尽管这些核在同一MCU 105上,但是由于各个核之间在硬件级别的架构差异,这些核可以具有不同的MCU驱动程序和不同的I/O设备。
因此,每个核上的统一API 128有效地集成了每个核上服务层中的每个服务的设备路径。每个服务都可以在设备(即核)上有一条跨多个软件层(包括MCAL和服务层)的路径。
通过每个核上针对每个服务的统一API进行这种垂直集成,可以在任何类型的MCU上运行服务集和应用程序任务,并与具有适当配置的任何I/O设备一起工作,而不考虑MCU驱动程序和I/O驱动程序的硬件相关性。统一的API有效地充当了MCU上硬件和核硬件的底层细节的标准包装器。
在一实施例中,每个核上的统一API是相同的,每一个核上的服务集也是相同的,每一个核上的应用任务可以是不同的。每个核上的服务和应用任务可以由MPU 103上的内核123调度,但是彼此异步且独立地运行,使得不同核上的业务之间没有依赖性,并且应用任务之间没有依赖性,从而确保VOS102的硬实时性能。
在一实施例中,尽管核在硬件级别上是分离的,并且核上的服务和应用任务独立且异步地运行,但是核可以经由硬件保护的存储器使用IPC彼此通信。每个硬件保护的存储器可以是在硬件级别受到保护的存储器区域,以防止未经授权的实体(例如,未经授权的核)的访问。
每个核都有一组硬件保护的存储器,包括一对硬件保护的存储器,用于CPU上彼此的核,该硬件保护的存储器对只能由核本身和另一核访问。该硬件保护的存储器对包括写入存储器和读取存储器。
这些硬件保护的存储器充当消息队列,允许核在应用程序级别经由IPC相互通信。然而,核上的服务和应用程序可以并行运行,而不需要相互依赖,也不需要相互等待以获得硬实时性能。
在一实施例中,一个或多个人工智能(AI)模型117可以在由MPU 103上的管理程序177创建的虚拟机上运行。可以使用从多个ADV中的MCU收集的数据来训练AI模型117,然后可以将AI模型117应用于ADV 101以进行推断,从而最大化VOS102的性能。
在ADV 101中,每个MCU包括一个或多个硬件计数器和一个或更多个软件计数器,这些计数器可用于从ADV 101收集信息,例如车辆温度、功耗、存储装置的写入次数以及运行的应用任务。系统监视器可以从各种计数器接收收集的信息。如果需要,可以手动标记所收集的一些信息。收集的信息然后可以存储在云中,用于训练一个或多个AI模型117。
在一实施例中,AI模型117可以用于预测和分类。例如,AI模型117可以基于可用信息预测车辆温度何时可以达到峰值,并相应地预先安排降低温度的任务,以防止车辆在极高的温度下行驶。类似地,AI模型117可以以避免对存储装置的过度写入以及避免不必要的功耗的方式来调度应用任务,以延长ADV 101中的电池的寿命。
图2示出了根据本公开实施例的VOS和云平台之间的交互。
如图2所示,MPU 103可以包括教师边缘模型A 209和学生边缘模型A 211。这两个模型都可以从ADV 101通信耦接到的云平台204中的对应云AI模型A 221导出,然后被部署到ADV 101。云AI模型A 221是一个结构(例如层数和参数数量等)更复杂的综合模型。教师边缘模型A 209和学生边缘模型A 211都是云AI模型A 221的简化版本,用于部署到边缘设备(例如ADV 101)。然而,学生边缘模型A 211是比教师边缘模型A 209更简化的版本,因此在推断中可能不那么准确但更快。因此,云AI模型A 221、学生边缘模型A 209和教师边缘模型A 211都对应于相同的AI模型,但在结构和推断速度上有所不同。
图2仅使用一个AI模型来说明其相关的云模型、教师边缘模型、学生边缘模型及其关系。本领域技术人员应当理解,可以在云平台204上训练所需的尽可能多的AI模型,并且可以将其相关联的学生边缘模型和教师边缘模型部署到ADV 101。
如图2所示,具有教师边缘模型A 209和学生边缘模型211的ADV 101可以经由在MCU 105上运行的数据收集器212收集实时数据210。数据收集器202可以包括系统监视器214和传感器系统216。系统监视器214可以收集ADV 101中的每个硬件组件和每个软件组件的审计日志记录信息。审计日志记录信息可以包括调用软件组件的次数和每个硬件组件的属性,例如硬件组件的温度。传感器系统216可以从ADV 101上的传感器(例如,相机、LiDAR(laser radar,激光雷达)设备等)收集传感器信息。数据收集器212收集的信息由ADV在ADV101运动时实时生成。本领域技术人员应当理解,实时数据A 210是学生边缘模型和教师边缘模型的输入数据,而不是任何实时数据。
教师边缘模型A 209和学生边缘A 211都可以将实时数据A 210作为输入,并生成它们各自的推断数据213和推断数据215。当推断数据213和推断数据215相同时,ADV 101可以基于来自学生边缘模型A 215的推断数据215采取行动。然而,当推断数据213和推断数据215不同时,ADV 101可以基于来自教师边缘模型A 209的推断数据213采取行动。
由于教师边缘模型A 209和学生边缘模型A 211都是从已经基于从多个车辆收集的训练数据而训练的云AI模型221导出的,因此推断数据213和推断数据215被预期在大多数时间是相同的。当它们不同时,如图2所示,VOS102可以使用推断数据差异A 217来重新训练学生边缘模型A 211,使得学生边缘模型A 211的性能可以接近教师边缘模型A 209的性能。
因此,在完善学生边缘模型A 213的过程中,可以在损失函数中实际使用推断数据差异217。完善过程可以包括调整学生边缘模型A 211的一个或多个参数值,该模型可以为深度学习网络,例如卷积神经网络(convolutional neural network,CNN)。因此,来自学生边缘模型A 209的推断数据213可以被认为是“软地面真值”,并且完善过程可以被认为是将教师边缘模型A 209中的知识(例如,参数值)提取到学生边缘模型A211的过程。
在一实施例中,在学生边缘模型A 211被完善之后,它成为重新训练的学生边缘模型A 219。此后,ADV 101可以使用重新训练的学生边缘模型A 219而不是学生边缘模型A211来执行相应的功能,直到从云平台204向ADV 101部署学生边缘模型A 211的新版本为止。
在一实施例中,一旦生成了重新训练的学生边缘模型A 219,VOS 102就可以立即将该模型以及由推断数据213标记的相应实时数据210上传到云平台204,其中可以将实时数据210保存到累积训练数据储存库231中。
在一实施例中,云平台204可以包括来自运行教师-学生边缘网络结构的大量ADV中的每一个ADV的重新训练的学生边缘模型A。类似地,累积训练数据储存库231可以包括标记的实时数据,该标记的实时数据使对应的学生边缘模型A在每个ADV中被重新训练。
云平台204可以以预定的固定间隔,基于累积训练数据储存库231中的标记训练数据,根据来自ADV的所有重新训练的学生边缘模型,更新学生边缘模型A 211和教师边缘模型A 209。
在一实施例中,当来自大量ADV的云AI模型A 221的重新训练的学生边缘模型的总数达到阈值时,或当累积训练数据储存库231中的训练数据的数据量达到阈值时,也可以触发学生边缘模型A 211和教师边缘模型A 209的更新。在教师边缘模型A 209和学生边缘模型A 211被更新之后,它们可以被部署到每个ADV,以替换ADV中的现有教师边缘模型和现有学生边缘模型。
在一实施例中,来自每辆车的实时数据可以与来自教师边缘模型的相应推断数据一起上传到累积训练数据储存库231。实时数据因此被认为是标记数据,因为来自教师边缘模型的相应推断数据被认为是“软标签”。
在一实施例中,云AI模型A 221也可以基于累积训练数据储存库231中的训练数据在预定的固定间隔内手动或自动更新。
因此,云平台204以及通信耦接至云平台204的各种ADV构成了一个系统,该系统可以在没有用户干预的情况下自动收集实时训练数据,并完善各种教师边缘模型和学生边缘模型以及相应的云模型。
图3示出了根据本公开实施例的在ADV的VOS中完善AI模型的过程。图3示出了云平台204和特定ADV之间的交互。
在框301,具有相同VOS的ADV从各种硬件组件和软件组件收集审计日志记录数据(例如,功耗、温度以及性能),从ADV上的各种传感器收集传感器数据,并将收集的数据上传到云平台。
在框303,云平台基于从ADV收集的数据来训练教师边缘模型和学生边缘模型。在一实施例中,云平台可以首先基于收集的数据训练云AI模型,然后生成用于部署到每个ADV的相应的教师边缘模型和相应的学生边缘模型。
在框305,教师边缘模型和学生边缘模型被部署到每个ADV。
在框307,每个ADV可以在相同的实时数据上运行学生边缘模型和教师边缘模型,并且可以生成它们各自的推断数据。推断过程也是一个标记过程,其中教师边缘模型和学生边缘模型都用各自的推断数据标记相应的实时数据。教师边缘模型的标记被认为比学生边缘模型更准确。当来自两个模型的推断数据之间存在任何差异时,ADV可以使用来自教师边缘模式的推断数据,并根据推断数据采取行动。当教师边缘模型和学生边缘模型的推断数据相同时,ADV可以使用学生边缘模型中的推断数据。
在框309,教师边缘模型可以基于教师边缘模型和学生边缘模型各自的推断数据之间的差异,在线地在VOS中重新训练学生边缘模型。推断数据差异是可以在损失函数中用于调整学生边缘模型中参数的损失,使得学生边缘模型可以在推断性能方面更接近教师边缘模型。
在框311,可以通过对VOS的空中更新来重新部署重新训练的学生边缘模型,以替换现有的学生边缘模式。此后,ADV可以使用重新训练的学生边缘模型在操作ADV时对其预先配置的功能进行推断。或者,ADV也可以继续使用现有的学生边缘模式,直到现有的学生边缘模型被来自云平台的新版本取代。
在框313,ADV可以收集delta数据,该delta数据包括使得学生边缘模型被重新训练的实时数据以及来自教师边缘模型的相应推断数据。delta数据因此被标记为训练数据,即,由来自教师边缘模型的推断数据标记的实时数据。在一实施例中,delta数据可以包括过去一段时间(例如,最后30分钟或最后一小时)内的如此标记的实时数据。
在框315,云平台可以从许多ADV接收如此标记的实时数据,并可以基于来自ADV的标记的实时数据(标记的训练数据)来升级教师边缘模型和学生边缘模型。
在框31 7,云平台在更新学生边缘模型和教师边缘模型之后,可以将更新后的模型推送给每个ADV。
图4示出了根据本公开实施例的部署到ADV的VOS的各种AI模型。
如图所示,ADV 101可以包括功耗降低AI模型401、存储寿命延长AI模型403、温度预测和控制AI模型405、资源管理AI模型407、IPC优化AI模型409、定位AI模型411、感知AI模型413、预测AI模型415、决策AI模型417、规划AI模型419以及控制AI模块412。
在一实施例中,AI模型401~402中的每一个AI模型由ADV 101中的学生边缘模型和教师边缘模型表示,并且在云平台204上还具有对应的教师边缘模型、对应的学生边缘模式以及对应的云模型。
AI模型411-421各自在ADV 1 01的自动驾驶中执行一个或多个功能,每个AI模型的功能稍后将在本公开的图9A和图9B中详细描述。
在一实施例中,功耗降低AI模型401可以为深度字习神经网络,深度学习神经网络被配置为将任务分类为不同等级,每个等级对应于功耗上限。在该实施例中,任务可以被定义为操作序列。任务的示例是用于对捕获的图像进行分类的操作序列。示例任务可以包括以下操作:相机捕捉图像,图像信号处理(image signal processing,ISP)组件处理图像,以及应用程序根据图像内容对图像进行分类。该操作序列是安全关键的,因此被归类为1级任务,并在功耗方面被赋予最高限制/上限。
功耗降低AI模型401可以将不同的操作序列分类为具有不同功耗上限的不同等级的任务。任务的功耗上限是基于任务的历史功耗数据。功耗降低AI模型401可以确保ADV101仍安全地操作,而没有任何任务超过其分配的功耗上限。
存储寿命延长AI模型403能够识别可以实现相同写入任务的一个或多个可用操作序列,并可以选择需要对存储介质进行最小写入的操作序列以延长其寿命。每个操作序列需要基于用于向存储介质写入的API调用的数量对存储介质进行多次写入。
例如,以下两个操作序列可以实现相同的目的:将10个相机拍摄的图像数据写入存储装置。第一操作序列包括分别写入来自每个相机的图像数据,这需要向存储介质进行10次写入,而另一操作序列包括组合来自10个相机的图像数据并将组合的图像数据写入存储介质,这需要1次写入。存储寿命延长AI模型403可以选择第二操作序列。
温度预测和控制AI模型405可以基于MPU要执行的一系列计算操作来预测MPU(例如CPU或GPU)何时会达到不期望的温度,并建议不同的计算操作序列以避免MPU达到不期望的温度级别。
例如,任务1包括计算操作A、计算操作B以及计算操作C;任务2包括计算操作D、计算操作E以及计算任务F。如果温度预测和控制AI模型405预测任务1中所有计算操作的连续执行将导致MPU达到不期望的温度级别,则VOS可以延迟任务1中一个或多个计算操作的执行。例如,VOS可以在计算操作A之后调度计算操作E和计算操作F的执行,而不是调度计算操作B和计算操作C的执行,以避免有问题的操作序列。
类似地,资源管理AI模型407可以识别用于实现相同功能的多个操作序列,并选择消耗最少资源(例如,存储器、I/O等)的序列。
IPC优化AI模型409可以识别MPU和MCU之间的多个通信信道,并基于多个因素来选择具有快速或具有最高吞吐量的通信信道,这些因素包括每个通信信道中的流量以及与数据传输相关联的任务的优先级。IPC通信可以经由多个通信信道进行,多个通信信道包括外围组件互连(eripheral component interconnect,PCIe)以及以太网。
图5进一步示出了根据本公开实施例的与多个ADV通信的云平台204。
如图5所示,多个ADV 101、501和503可以通信地耦接至云平台204,每个ADV可以包括教师边缘模型A和学生边缘模型A,然后教师边缘模型A和学生边缘模型A可以基于ADV运动或运行时收集的实时数据在ADV上自动在线重新训练。
如图所示,每个重新训练的学生边缘模型A 219、505和509可以被上传到云平台204。同时,与重新训练的学生边缘模型219、505和509相对应的标记的实时数据506、507和511可以被上传并保存到累积训练数据储存库231。标记的实时数据506、507和511被认为是由相应的教师边缘模型使用“软标签”标记的,如本公开中先前所述。
云AI模型A 221可以使用累积训练数据储存库231中的带标记的实时数据以及重新训练的学生边缘模型219、505和509来更新教师边缘模型A 209和学生边缘模型A 211。更新的教师边缘模型A 209和更新的学生边缘模型A 211可以被重新部署到每个ADV,以替换ADV中的现有教师边缘模型和现有学生边缘模型。
图6示出了在自动驾驶车辆(ADS)中训练人工智能(AI)模型的过程600。过程600可以由包括软件或硬件组件或其组合的处理逻辑来执行。例如,处理逻辑可以包括图2中描述的MPU 103。
在操作601中,处理逻辑使用AI模型的教师边缘模型基于实时数据生成第一推断数据,并使用AI模型的学生边缘模型基于该实时数据生成第二推断数据。教师边缘模型和学生边缘模型都是从云平台接收的。在操作603中,处理逻辑获得第一推断数据和第二推断数据之间的一个或多个差异。在操作605中,处理逻辑基于一个或多个差异重新训练学生边缘模型。在操作607中,处理逻辑运行AI模型的升级的学生边缘模型,以在操作ADV时执行一个或多个功能。
图7是示出了根据本公开的一实施例的自动驾驶网络配置的框图。参见图7,网络配置700包括自动驾驶车辆(ADV)101,其可以经由网络702与一个或多个服务器703~704通信连接。图中示出了一个自动驾驶车辆,但多个自动驾驶车辆可以经由网络702相互耦接和/或耦接到服务器703~704。网络702可以是任何类型的有线或无线网络,例如局域网(LAN)、诸如因特网的广域网(WAN)、蜂窝网络、卫星网络或其组合。服务器703~704可以是任何类型的服务器或服务器集群,例如Web或云服务器、应用服务器、后端服务器或其组合。服务器703~704可以是数据分析服务器、内容服务器、交通信息服务器、地图和兴趣点(mapand point ofinterest,MPOI)服务器或位置服务器等。
自动驾驶车辆是指可配置为处于自动模式的车辆,在该模式下,在驾驶员进行少量输入或不进行输入的环境下即可对车辆进行导航。这种自动驾驶车辆可以包括传感器系统,该传感器系统具有一个或多个传感器,用于对车辆运行时的环境信息进行检测。车辆及其相关联的控制器在该环境下利用检测到的信息进行导航。自动驾驶车辆101可在手动模式、全自动模式或部分自动模式下运行。
在一实施例中,自动驾驶车辆101包括但不限于自动驾驶系统(autonomousdriving system,ADS)710、车辆控制系统711、无线通信系统712、用户接口系统713和传感器系统715。自动驾驶车辆101还可以包括普通车辆中的一些通用部件,例如引擎、车轮、方向盘、传动装置等。通过车辆控制系统711和/或自动驾驶系统710,可以利用例如加速信号或命令、减速信号或命令、转向信号或命令、制动信号或命令等各种通信信号和/或命令对这些部件进行控制。
部件710~715可以经由互连件、总线、网络或其组合相互通信耦接。例如,部件710~715可以经由控制器局域网(CAN)总线相互通信耦接。CAN总线是一种车辆总线标准,旨在在没有主机的应用中使得微控制器和设备相互通信。CAN总线是一种基于消息的协议,最初设计用于汽车内的多路电气布线,但也用于许多其他环境。
参见图8,在一实施例中,传感器系统715包括但不限于一个或多个相机811、全球定位系统(global positioning system,GPS)单元812、惯性测量单元(inertialmeasurement unit,IMU)813、雷达单元814和激光雷达(light detection and range,LIDAR)单元815。GPS单元812可以包括收发器,用于提供与自动驾驶车辆的位置有关的信息。IMU单元813可以基于惯性加速度感测自动驾驶车辆的位置和朝向变化。雷达单元814可以表示在自动驾驶车辆局部环境内利用无线电信号感测对象的系统。在一些实施例中,除了感测对象之外,雷达单元814还可以感测对象的速度和/或航向。激光雷达单元815可以利用激光感测自动驾驶车辆所在环境中的对象。激光雷达单元815可以包括一个或多个激光源、激光扫描器和一个或多个检测器以及其他系统部件。相机811可以包括一个或多个用于捕获自动驾驶车辆周围环境图像的设备。相机811可以是照相机和/或摄像机。通过例如将相机安装在旋转和/或倾斜平台上,相机可以机械地移动。
传感器系统715还可以包括其他传感器,例如声纳传感器、红外传感器、转向传感器、油门传感器、制动传感器和音频传感器(例如麦克风)。音频传感器可以用于捕获来自自动驾驶车辆周围环境的声音。转向传感器可以用于感测方向盘、车轮或其组合的转向角。油门传感器和制动传感器分别感测车辆的油门位置和制动位置。在一些情况下,油门传感器和制动传感器可以集成为集成油门/制动传感器。
在一实施例中,车辆控制系统711包括但不限于转向单元801、油门单元802(也称作加速单元)和制动单元803。转向单元801用于调整车辆的方向或航向。油门单元802用于控制电机或发动机的速度,进而控制车辆的速度和加速度。制动单元803通过提供摩擦使车辆的车轮或轮胎减速,从而使车辆减速。需要注意的是,图8中所示的部件可以实现为硬件、软件或其组合。
再次参见图7,无线通信系统712允许自动驾驶车辆101与外部系统,例如设备、传感器和其他车辆等进行通信。例如,无线通信系统712可以与一个或多个设备直接进行无线通信,或通过例如网络702上的服务器703~704等通信网络与一个或多个设备进行无线通信。无线通信系统712可以利用任何蜂窝通信网络或无线局域网(wireless local areanetwork,WLAN),例如WiFi,与另一部件或系统通信。无线通信系统712可以例如利用红外链路、蓝牙等与设备(例如,车辆101内的乘客的移动设备、显示设备、扬声器)直接进行通信。用户接口系统713可以是在车辆101内实现的部分外围设备,包括例如键盘、触摸屏显示设备、麦克风和扬声器等。
自动驾驶车辆101的部分或全部功能可以通过自动驾驶系统710进行控制或管理,尤其是在自动驾驶模式下运行时。自动驾驶系统710包括必要的硬件(例如处理器、内存、存储器)和软件(例如操作系统、规划和路线选择程序),以从传感器系统715、控制系统711、无线通信系统712和/或用户接口系统713接收信息,对接收到的信息进行处理,规划从起点到目的地的路线或路径,然后基于规划和控制信息驾驶车辆101。或者,自动驾驶系统710可以与车辆控制系统111集成在一起。
例如,作为乘客的用户可以例如通过用户界面指定行程的起始位置和目的地。自动驾驶系统710获得行程相关数据。例如,自动驾驶系统710可以从地图和兴趣点服务器获得位置和路线数据,地图和兴趣点服务器可以是服务器703~704的一部分。位置服务器提供位置服务,地图和兴趣点服务器提供地图服务和一些位置的兴趣点。或者,这些位置以及地图和兴趣点信息可以在本地缓存于自动驾驶系统710的持久存储设备中。
当自动驾驶车辆101沿着路线移动时,自动驾驶系统710还可以从交通信息系统或服务器(traffic information system or server,TIS)获取实时交通信息。需要注意的是,可以通过第三方实体对服务器703~704进行操作。或者,服务器703~704的功能可以集成于自动驾驶系统710中。自动驾驶系统710可以基于实时交通信息、地图和兴趣点信息、位置信息以及传感器系统715检测或感测到的实时局部环境数据(例如障碍物、对象、附近车辆),例如经由控制系统711根据规划路线规划出最佳路线并驾驶车辆101,以安全高效地到达指定目的地。
在一实施例中,服务器703~704中的一个或多个服务器可以在云中并且是云平台204的一部分。
服务器703可以是用于为各种客户端进行数据分析服务的数据分析系统。在一实施例中,数据分析系统703包括数据收集器721和机器学习引擎722。数据收集器721从自动驾驶车辆或由人类驾驶员驾驶的常规车辆等各种车辆收集驾驶统计数据723。驾驶统计数据723包括的信息指示在不同时间点发出的驾驶命令(例如,油门命令、制动命令、转向命令)以及由车辆传感器捕获的车辆响应(例如,速度、加速度、减速度、方向)。驾驶统计数据723还可以包括描述不同时间点的驾驶环境的信息,例如,路线(包括起始位置和目标位置)、MPOI、道路状况、天气状况等。
基于驾驶统计数据723,机器学习引擎722生成或训练一组规则、算法和/或预测模型724,以实现各种目的。在一实施例中,算法724可以包括图4中描述的AI模型401~402的云版本。
图9A和图9B是示出了根据一实施例的与自动驾驶车辆一起使用的自动驾驶系统的示例的框图。自动驾驶系统710可以实现为图7的自动驾驶车辆101的一部分。参见图9A和图9B,自动驾驶系统710包括但不限于定位模块901、感知模块902、预测模块903、决策模块904、规划模块905、控制模块906以及路线模块907。这些模块可以实现为AI模型。图3示出了一些实现为AI模型的模块。
模块901~907中的部分或全部模块可以实现为软件、硬件或其组合。例如,这些模块可以安装在持久存储设备752中,加载到存储器751中,并通过一个或多个处理器(未示出)执行。需要注意的是,这些模块中的部分或全部模块可以与图8的车辆控制系统711的部分或全部模块通信耦接或集成在一起。模块901~907中的部分模块可以集成为集成模块。
定位模块901确定自动驾驶车辆101的当前位置(例如,利用GPS单元812),并管理与用户的行程或路线相关的任何数据。定位模块901(也称为地图和路线模块)管理与用户的行程或路线相关的任何数据。用户可以例如通过用户界面登录并指定行程的起始位置和目的地。定位模块901与自动驾驶车辆101的其他部件,例如地图和路线数据911进行通信,以获得行程相关数据。例如,定位模块901可以从位置服务器以及地图和兴趣点服务器获得位置和路线数据。位置服务器提供位置服务,地图和兴趣点服务器提供地图服务和一些位置的兴趣点,可以将这些地图服务和兴趣点缓存为地图和路线数据911的一部分。当自动驾驶车辆1 01沿着路线移动时,定位模块901还可以从交通信息系统或服务器获得实时交通信息。
感知模块902可以基于传感器系统715提供的传感器数据和定位模块901获得的定位信息,确定周围环境的感知信息。感知信息可以表示普通驾驶员在驾驶时可以感知到的车辆周围的信息。感知信息可以包括例如对象形式的车道配置、交通灯信号、其他车辆的相对位置、行人、建筑物、人行横道或其他交通相关标志(例如停车标志、让行标志)等。车道配置包括描述一条或多条车道的信息,例如车道形状(例如,直线或曲线)、车道宽度、道路上的车道数量、单向或双向车道、合并或划分车道、离开车道等。
感知模块902可包括计算机视觉系统或计算机视觉系统的功能,对通过一个或多个相机捕获的图像进行处理和分析,以识别自动驾驶车辆环境中的对象和/或特征。对象可包括交通信号、道路边界、其他车辆、行人和/或障碍物等。计算机视觉系统可以利用物体识别算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统可以映射环境、跟踪对象并估计对象的速度等。感知模块902还可以基于由诸如雷达和/或激光雷达的其他传感器提供的其他传感器数据检测对象。
对于每个对象,预测模块903预测对象在环境下的行为。该预测是基于感知数据来执行的,该感知数据根据地图/路线信息911和交通规则912的集合来感知某个时间点的驾驶环境。例如,如果对象是位于相反方向的车辆,并且当前驾驶环境包括交叉路口,则预测模块903将预测车辆可能向前直行或转弯。如果感知数据指示该交叉路口没有交通信号灯,则预测模块903可以预测车辆在进入交叉路口之前必须完全停止。如果感知数据指示车辆当前处于左转专用车道或右转专用车道,则预测模块903可以分别预测车辆将更有可能左转或右转。
对于每个对象,决策模块904做出与应对对象有关的决策。例如,对于特定对象(例如交叉路线中的另一车辆)及其描述该对象的元数据(例如速度、方向、转弯角度),决策模块904决定如何应对该对象(例如超车、让行、停车、通过)。决策模块904可以根据诸如交通规则或行驶规则912之类的规则集合做出这些决策,这些规则可以存储在持久存储设备952中。
路线模块907用于提供从起点到目的地的一条或多条路线或路径。对于例如从用户处接收的从起始位置到目的地位置的给定行程,路线模块907获得路线和地图信息911,并确定从起始位置到目的地位置的所有可能的路线或路径。路线模块907可以为其所确定的每条从起始位置到目的地位置的路线生成地形图形式的参考线。参考线是指在没有其他车辆、障碍物或交通状况等干扰的情况下的理想路线或路径。也就是说,如果道路上没有其他车辆、行人或障碍物,自动驾驶车辆应完全或近似遵循该参考线。之后,将地形图提供给决策模块904和/或规划模块905。决策模块904和/或规划模块905检查所有可能的路线,以根据其他模块提供的其他数据,例如来自定位模块901的交通状况、感知模块902感知的驾驶环境以及预测模块903预测的交通状况,来选择和修改最优路线中的一条路线。用于控制自动驾驶车辆的实际路径或路线可以接近或不同于路线模块907提供的参考线,这取决于该时间点处的具体驾驶环境。
规划模块905可以基于针对每个感知到的对象的决策,以路线模块907提供的参考线为基础,规划自动驾驶车辆的路径或路线以及驾驶参数(例如距离、速度和/或转弯角度)。也就是说,对于给定对象,决策模块904决定针对该对象做什么,而规划模块905决定如何做。例如,对于给定对象,决策模块904可以决定通过该对象,而规划模块905可以确定是从该对象的左侧还是右侧通过。规划模块905生成规划和控制数据,包括描述车辆101在下一移动周期(例如,下一路线/路径段)将如何移动的信息。例如,规划和控制数据可以指示车辆101以每小时30英里(miles per hour,mph)的速度移动10米,然后以每小时25英里的速度变换到右侧车道。
控制模块906通过向车辆控制系统711发送合适的命令或信号,根据规划和控制信息定义的路线或路径,基于规划和控制数据控制和驾驶自动驾驶车辆。规划和控制数据包括足够的信息,从而沿着该路径或路线,在不同的时间点使用合适的车辆设置或驾驶参数(例如油门、制动、转向命令)将车辆从路线或路径的第一点驾驶到第二点。
在一实施例中,规划阶段在多个规划周期中执行,规划周期也称为驾驶周期,例如为每100毫秒(ms)的时间间隔。对于每个规划周期或驾驶周期,可以根据规划和控制数据发出一个或多个控制命令。也就是说,对于每100毫秒,规划模块905规划例如包括目标位置和自动驾驶车辆到达目标位置所需时间的下一路线段或路径段。或者,规划模块905还可以指定具体速度、方向和/或转向角等。在一实施例中,规划模块905规划例如为5秒的下一预定时间段的路线段或路径段。对于每个规划周期,规划模块905基于在前一周期中规划的目标位置,对当前周期(例如接下来的5秒)的目标位置进行规划。之后,控制模块906基于当前周期的规划和控制数据生成一个或多个控制命令(例如油门、制动器、转向控制命令)。
需要注意的是,决策模块904和规划模块905可以集成为集成模块。决策模块904/规划模块905可以包括导航系统或导航系统的功能,以确定自动驾驶车辆的驾驶路径。例如,导航系统可以确定一系列速度和定向航向,使得自动驾驶车辆沿着基本上避开感知障碍物的路径进行移动的同时,也通常使得自动驾驶车辆沿着通向最终目的地的基于车道的路径前进。可以经由用户接口系统713根据用户输入对目的地进行设置。当自动驾驶车辆运行时,导航系统可以动态地更新行驶路径。导航系统可以结合来自GPS系统的数据和一个或多个地图,从而确定自动驾驶车辆的行驶路径。
图10A是示出了根据本公开一实施例的传感器系统的示例的框图。参考图10A,传感器系统715包括多个传感器1010和耦接至主机系统1021的传感器单元1000。主机系统1021代表如上所述的规划和控制系统,其可以包括图9A所示的至少一些模块。传感器单元1000可以以FPGA(field programmable gate array,现场可编程门阵列)器件或ASIC(application specific integrated circuit,专用集成电路)器件的形式来实现。在一实施例中,传感器单元1000包括一个或多个传感器数据处理模块801(也称为传感器处理模块)、数据传输模块802和传感器控制模块或逻辑1003。模块1001~1003可以经由传感器接口1004与传感器1010通信,并经由主机接口1005与主机系统1021通信。可选地,内部或外部缓冲器806可以用于缓冲数据以进行处理。
在一实施例中,对于接收路径或上行方向,传感器处理模块1001用于经由传感器接口804从传感器接收传感器数据,并处理该传感器数据(例如,格式转换、错误检查),该传感器数据可以被临时存储在缓冲器1006中。数据传输模块1002用于使用与主机接口1005兼容的通信协议将处理后的数据传输至主机系统1021。类似地,对于传输路径或下行方向,数据传输模块1002用于从主机系统1021接收数据或命令。然后,该数据被传感器处理模块1001处理为与相应的传感器兼容的格式。然后,处理后的数据被传输至传感器。
在一实施例中,传感器控制模块或逻辑1003用于响应于经由主机接口1005从主机系统(例如,感知模块902)接收的命令来控制传感器1010的某些操作,例如,定时以激活对传感器数据的捕获。主机系统1021可以将传感器1010配置为以协作和/或同步的方式来捕获传感器数据,这使得可以使用传感器数据在任何时间点感知车辆周围的驾驶环境。
传感器接口1004可以包括以太网、通用串行总线(universal serial bus,USB)、长期演进技术(long term evolution,LTE)或蜂窝、WiFi、GPS、相机、CAN、串行(例如,通用异步收发器(universal asynchronous receiver transmitter,UART))、SIM(subscriberidentification module,用户身份识别)卡以及其他通用输入/输出(general purposeinput/output,GPIO)接口中的一者或多者。主机接口805可以是任何高速或高带宽的接口,例如PCIe(peripheral component interconnect express or pci-express,高速串行计算机扩展总线标准)的接口。传感器810可以包括在自动驾驶车辆中使用的各种传感器,例如,相机、激光雷达设备、雷达设备、GPS接收器、IMU、超声波传感器、GNSS(globalnavigation satellite system,全球导航卫星系统)接收器、LTE或蜂窝SIM卡、车辆传感器(例如,节气门传感器、制动传感器、转向传感器)以及系统传感器(例如,温度传感器、湿度传感器、压力传感器)等。
例如,相机可以经由以太网或GPIO接口耦接。GPS传感器可以经由USB或特定的GPS接口耦接。车辆传感器可以经由CAN接口耦接。雷达传感器或超声波传感器可以经由GPIO接口耦接。激光雷达设备可以经由以太网接口耦接。外部SIM模块可以经由LTE接口耦接。类似地,内部SIM模块可以被插入到传感器单元1000的SIM插座上。诸如UART之类的串行接口可以与控制台系统耦接以用于调试。
需要注意的是,传感器1010可以是由各种供货商或供应商提供的任何种类的传感器。传感器处理模块1001用于处理不同类型的传感器及其各自的数据格式和通信协议。根据一实施例,每个传感器1010与特定通道相关联,以用于处理传感器数据并在主机系统1021和相应的传感器之间传输处理后的传感器数据。如图10B所示,每个通道可以包括特定的传感器处理模块和特定的数据传输模块,该特定的传感器处理模块和特定的数据传输模块被配置或编程为处理相应的传感器数据和协议。
现在参考图10B,传感器处理模块1001A~1001C被特别配置为分别处理从传感器810A~810C获得的传感器数据。需要注意的是,传感器1010A~1010C可以是相同或不同类型的传感器。传感器处理模块1001A~1001C可以被配置(例如,软件可配置)为针对不同类型的传感器处理不同的传感器过程。例如,如果传感器1010A是相机,则处理模块1001A可以被配置为处理对特定像素数据的像素处理操作,其中特定像素数据表示由相机1010A捕获的图像。类似地,如果传感器1010A是LIDAR设备,则处理模块1 001A被配置为专门处理LIDAR数据。也就是说,根据一实施例,根据特定传感器的特定类型,其相应的处理模块可以被配置为使用与传感器数据的类型相对应的特定过程或方法来处理相应的传感器数据。
类似地,数据传输模块1002A~1002C可以被配置为以不同的模式操作,因为不同种类的传感器数据可以具有不同的数据量或灵敏度,这需要不同的速度或定时要求。根据一实施例,数据传输模块1002A~1002C中的每一个可以被配置为在低延迟模式、高带宽模式和存储器模式(也称为固定存储器模式)中的一个中操作。
当在低延迟模式下操作时,根据一实施例,数据传输模块(例如,数据传输模块1002)被配置为在没有延迟或具有最小延迟的情况下尽可能快地将从传感器接收到的传感器数据发送到主机系统。一些传感器数据在定时方面非常敏感,需要尽快处理。这样的传感器数据的示例包括车辆状态,例如车辆速度、车辆加速度、车辆转向角等。
当在高带宽模式下操作时,根据一实施例,数据传输模块(例如,数据传输模块1002)被配置为从传感器接收到的传感器数据累积到预定量,但仍在数据传输模块和主机系统1021之间的连接带宽内。然后累积的传感器数据批量传输到主机系统1022,该批量最大限度地利用数据传输模块和主机系统1021之间的连接带宽。通常,高带宽模式用于产生大量传感器数据的传感器。这样的传感器数据的示例包括相机像素数据。
当在存储器模式下操作时,根据一实施例,数据传输模块被配置为将从传感器接收的传感器数据直接写入主机系统1021的映射存储器的存储器位置,类似于共享存储器页。使用存储器模式传输的传感器数据的示例包括系统状态数据,例如温度、风扇速度等。
应当注意,上文所示和所述的部分或全部部件可通过软件、硬件或其组合实现。例如,这些部件可以实现为安装并存储在持久存储设备中的软件,该软件可以通过处理器(未示出)在存储器中加载并执行,以执行本申请中描述的过程或操作。或者,这些部件可以实现为编程或嵌入专用硬件中的可执行代码,例如集成电路(例如,专用IC或ASIC)、数字信号处理器(DSP)或现场可编程门阵列(FPGA),其可以经由相应的驱动器和/或操作系统从应用进行访问。此外,这些部件可以实现为处理器或处理器内核中的特定硬件逻辑,作为可由软件部件通过一个或多个特定指令访问的指令集的一部分。
前述详细描述的一些部分已经依据在计算机内存中对数据位进行操作的算法和符号表示进行了介绍。这些算法描述和表示是数据处理领域技术人员用来将其工作实质最有效地传达给本领域中其他技术人员的方式。本文中,算法通常被认为是导致期望结果的自洽操作序列。这些操作是指需要对物理量进行物理操控的操作。
但是,应当记住,所有这些术语和类似的术语均将与适当的物理量关联,仅仅是应用于这些量的方便标记。除非在以上讨论中明确指出,否则应当了解,在整个说明书中,使用诸如所附权利要求书中阐述的术语进行的讨论是指计算机系统或类似电子计算设备的动作和处理,该计算机系统或电子计算设备操控在计算机系统寄存器和存储器内表示为物理(电子)量的数据,并将该数据变换成在计算机系统存储器或寄存器或者其他此类信息存储设备、传输设备或显示设备内类似地表示为物理量的其他数据。
本公开的实施例还涉及用于执行本文中的操作的装置。这种计算机程序被存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存存储器设备)。
前述附图中描绘的过程或方法可以由处理逻辑来执行,处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管以上依据一些顺序操作描述了该过程或方法,但是应当了解,所描述的一些操作可以以不同的顺序执行。此外,一些操作可以并行执行而非顺序执行。
本公开的实施例并未参考任何特定的编程语言进行描述。应当了解,可以使用多种编程语言实现如本文描述的本公开的实施例的教导。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开的实施例。显然,在不背离所附权利要求书中所述的本公开的更宽泛的精神和范围的情况下,可以对本公开进行各种修改。因此,说明书和附图应视为说明性意义而非限制性意义。
Claims (20)
1.一种运动中的自动驾驶车辆ADV中训练人工智能AI模型的方法,包括:
所述ADV的车辆操作系统VOS使用AI模型的教师边缘模型基于实时数据生成第一推断数据,使用所述AI模型的学生边缘模型基于所述实时数据生成第二推断数据,其中,AI模型的所述教师边缘模型和所述AI模型的学生边缘模型是从云平台接收的;
获得所述第一推断数据和所述第二推断数据之间的一个或多个差异;
基于所述一个或多个差异重新训练所述AI模型的所述学生边缘模型;以及
通过所述ADV的所述VOS运行所述AI模型的所述重新训练的学生边缘模型,以在操作所述ADV时执行一个或多个功能。
2.根据权利要求1所述的方法,还包括:
所述ADV的所述VOS将由所述第一推断数据标记的所述实时数据以及所述重新训练的学生边缘模型上传至所述云平台,其中,所述AI模型的云模型被配置为根据所述AI模型的所述重新训练的学生边缘模型,至少部分地基于所述标记的实时数据重新训练所述教师边缘模型和所述学生边缘模型。
3.根据权利要求1所述的方法,还包括:
所述ADV的所述VOS从所述云平台接收所述重新训练的教师边缘模型和所述重新训练的学生边缘模型;以及
所述ADV的所述VOS将所述ADV中的所述教师边缘模型和所述学生边缘模型分别替换为所述重新训练的教师边缘模型和所述重新训练的学生边缘模型。
4.根据权利要求1所述的方法,其中,所述实时数据是通过所述VOS中的系统监视器或通过所述ADV中的一个或多个传感器收集的。
5.根据权利要求1所述的方法,其中,所述AI模型是部署到所述ADV的所述VOS的多个AI模型中的一个AI模型,其中,所述多个AI模型包括功耗降低AI模型、存储寿命延长AI模型、温度预测和控制AI模型、资源管理AI模型、IPC优化AI模型、感知AI模型、定位AI模型,预测AI模型、决策AI模型、规划AI模型以及控制AI模型。
6.根据权利要求5所述的方法,其中,所述多个AI模型中的每一个AI模型为深度学习神经网络。
7.根据权利要求5所述的方法,其中,所述功耗降低AI模型被配置为将任务分类为具有预定等级的任务,其中,所述优先级对应于功耗限制。
8.根据权利要求5所述的方法,其中,所述存储寿命延长AI模型被配置为,当多个路径可用时,选择需要对存储介质进行最小次数写入的路径。
9.根据权利要求5所述的方法,其中,所述温度预测和控制AI模型被配置为,预测应用程序的序列以使多处理器单元MPU的温度达到预定级别,以及调度不同的应用程序序列以避免所述温度达到所述预定级别。
10.根据权利要求5所述的方法,其中,所述IPC优化AI模型被配置为,基于多个因素来选择所述多处理器单元MPU和微控制器单元MCU之间的通信信道,其中,所述多个因素包括所述数据路径中的流量以及与数据传输相关联的任务的优先级。
11.一种自动驾驶车辆ADV的车辆操作系统VOS,包括:
一个或多个微控制器单元MCU,其中,每个MCU包括被配置为从运动中的所述ADV收集实时数据的数据收集器;
微处理器单元MPU,其中,所述MPU包括程序指令,所述程序指令在被执行时使得所述VOS执行以下操作:
基于所述实时数据使用所述教师边缘模型生成第一推断数据,基于所述实时数据使用所述学生边缘模型生成第二推断数据,其中,AI模型的所述教师边缘模型和所述AI模型的学生边缘模型是从云平台接收的;
获得所述第一推断数据和所述第二推断数据之间的一个或多个差异;
基于所述一个或多个差异重新训练所述AI模型的所述学生边缘模型;以及
通过所述ADV的所述VOS运行所述AI模型的所述重新训练的学生边缘模型,以在操作所述ADV时执行一个或多个功能。
12.根据权利要求11所述的VOS,其中,所述操作还包括:
将由所述第一推断数据标记的所述实时数据以及所述重新训练的学生边缘模型上传至所述云平台,其中,所述AI模型的云模型被配置为根据所述AI模型的所述重新训练的学生边缘模型,至少部分地基于所述标记的实时数据重新训练所述教师边缘模型和所述学生边缘模型。
13.根据权利要求11所述的VOS,其中,所述操作还包括:
从所述云平台接收所述重新训练的教师边缘模型和所述重新训练的学生边缘模型;以及
将所述ADV中的所述教师边缘模型和所述学生边缘模型分别替换为所述重新训练的教师边缘模型和所述重新训练的学生边缘模型。
14.根据权利要求11所述的VOS,其中,所述实时数据是通过所述VOS中的系统监视器或通过所述ADV中的一个或多个传感器收集的。
15.根据权利要求11所述的VOS,其中,所述AI模型是部署到所述ADV的所述VOS的多个AI模型中的一个AI模型,其中,所述多个AI模型包括功耗降低AI模型、存储寿命延长AI模型、温度预测和控制AI模型、资源管理AI模型、IPC优化AI模型、感知AI模型、定位AI模型,预测AI模型、决策AI模型、规划AI模型以及控制AI模型。
16.根据权利要求15所述的VOS,其中,所述多个AI模型中的每一个AI模型为深度学习神经网络。
17.根据权利要求15所述的VOS,其中,所述功耗降低AI模型被配置为将任务分类为具有预定等级的任务,其中,所述优先级对应于功耗限制。
18.根据权利要求15所述的VOS,其中,所述存储寿命延长AI模型被配置为,当多个路径可用时,选择需要对存储介质进行最小次数写入的路径。
19.根据权利要求15所述的VOS,其中,所述温度预测和控制AI模型被配置为,预测应用程序的序列以使多处理器单元MPU的温度达到预定级别,以及调度不同的应用程序序列以避免所述温度达到所述预定级别。
20.根据权利要求15所述的VOS,其中,所述IPC优化AI模型被配置为,基于多个因素来选择所述多处理器单元MPU和微控制器单元MCU之间的通信信道,其中,所述多个因素包括所述数据路径中的流量以及与数据传输相关联的任务的优先级。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/134810 WO2024113120A1 (en) | 2022-11-28 | 2022-11-28 | Artificial intelligence enabled vehicle operating system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117597637A true CN117597637A (zh) | 2024-02-23 |
Family
ID=89917058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280026881.7A Pending CN117597637A (zh) | 2022-11-28 | 2022-11-28 | 人工智能车辆操作系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117597637A (zh) |
WO (1) | WO2024113120A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632502B1 (en) * | 2015-11-04 | 2017-04-25 | Zoox, Inc. | Machine-learning systems and techniques to optimize teleoperation and/or planner decisions |
US11616839B2 (en) * | 2019-04-09 | 2023-03-28 | Johnson Controls Tyco IP Holdings LLP | Intelligent edge computing platform with machine learning capability |
CN113366440A (zh) * | 2019-12-20 | 2021-09-07 | 百度时代网络技术(北京)有限公司 | 具有致动延时的动态模型 |
CN112003955A (zh) * | 2020-10-27 | 2020-11-27 | 深圳裹动智驾科技有限公司 | 云端人机混合决策的方法 |
CN112256537B (zh) * | 2020-11-12 | 2024-03-29 | 腾讯科技(深圳)有限公司 | 模型运行状态的展示方法、装置、计算机设备和存储介质 |
US11932271B2 (en) * | 2021-02-05 | 2024-03-19 | Ford Global Technologies, Llc | Drive assist optimization systems and methods using artificial intelligence |
CN113467875A (zh) * | 2021-06-29 | 2021-10-01 | 阿波罗智能技术(北京)有限公司 | 训练方法、预测方法、装置、电子设备以及自动驾驶车辆 |
CN115189997B (zh) * | 2022-06-24 | 2023-06-16 | 华南理工大学 | 基于云、雾、边缘协同的云机器人实时监测与控制方法 |
CN115049151A (zh) * | 2022-07-12 | 2022-09-13 | 润联软件系统(深圳)有限公司 | 导航路线推荐方法、装置、设备及存储介质 |
CN115285148B (zh) * | 2022-09-01 | 2024-06-18 | 清华大学 | 自动驾驶车速规划方法、装置、电子设备和存储介质 |
-
2022
- 2022-11-28 CN CN202280026881.7A patent/CN117597637A/zh active Pending
- 2022-11-28 WO PCT/CN2022/134810 patent/WO2024113120A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024113120A1 (en) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230004801A1 (en) | Training, testing, and verifying autonomous machines using simulated environments | |
CN107943016B (zh) | 用于自主车辆的群体驾驶风格学习框架 | |
KR102078488B1 (ko) | 차량 주변의 컨텍스트에 기초하여 차량의 하나 이상의 궤적을 예측하는 방법 및 시스템 | |
CN108974009B (zh) | 用于自动驾驶控制的方法、介质和系统 | |
CN108068815B (zh) | 用于自动驾驶车辆的基于规划反馈的决策改进系统 | |
US11592570B2 (en) | Automated labeling system for autonomous driving vehicle lidar data | |
JP6799643B2 (ja) | 自動運転車両のデータ取得用センサをトリガするためのトリガロジック | |
CN110895147B (zh) | 自动驾驶车辆的用相机捕获图像数据的图像数据获取逻辑 | |
CN111538323B (zh) | 限定自动驾驶系统的安全可驾驶区域的方法 | |
KR20180092314A (ko) | 모션 계획에 기초한 자율 주행 차량의 운행 방법 및 시스템 | |
CN112238862B (zh) | 用于自主驾驶平台的开放和安全监视系统 | |
KR20200143242A (ko) | 비전 기반 인식 시스템에 의한 대립적 샘플들 검출 방법 | |
US11198444B2 (en) | Automated factory testflow of processing unit with sensor integration for driving platform | |
CN111399495B (zh) | 具有灵活主机和客户端配置的自动驾驶计算与存储扩展装置 | |
JP6831474B2 (ja) | センサ間でデータを伝送するためのデータ伝送ロジック並びに自動運転車の計画及び制御 | |
CN111862226B (zh) | 用于车辆中的摄像机校准和图像预处理的硬件设计 | |
CN117597637A (zh) | 人工智能车辆操作系统 | |
CN111857117B (zh) | 用于在自动驾驶期间解码gps消息的gps消息解码器 | |
US20240086238A1 (en) | General purpose real-time safety implementation on mpu | |
US20240086264A1 (en) | Hardware adaptive vehicle os design on mcu | |
CN111655561B (zh) | 无需地图和定位的自动驾驶车辆的拐角协商方法 | |
CN111858202B (zh) | 诊断自主驾驶车辆的传感器处理单元的方法、装置和系统、及计算机可读介质 | |
US20240210939A1 (en) | Camera image compression for autonomous driving vehicles | |
US20240220437A1 (en) | Uniform virtual bus for system-to-system connectivity in an autonomous driving vehicle | |
US20240208529A1 (en) | Sensor data transfer with self adaptive configurations for autonomous driving vehicle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |