面向规模化量产的自动驾驶感知研发与实践

面向规模化量产的自动驾驶感知研发与实践

01 地平线自动驾驶环境感知量产实践

image

图1

附赠自动驾驶最全的学习资料和量产经验:链接

首先,为大家简单介绍下自动驾驶分级,图1左边来自于SAE,是大家提到自动驾驶分级时最广泛看到或最广泛引用的权威来源。从定义上来看,L3级以上才算是自动驾驶。L3级自动驾驶功能里,汽车具备从A点开到B点的能力。L2级的自动驾驶汽车仅仅具备纵向或横向的控制能力,不具备同时控制的能力,因此无法进行变道、超车、上下匝道,所以不能从一个地点开到另外一个地点。L4相比于L3,不再需要人去接管。到了L5级,对自动驾驶场景的限制就不再有了。

目前,国内的量产乘用车还不具备L3级的能力和功能,所以上面刚刚提到研发的Horizon Matrix Mono和Horizon Matrix Pilot产品,实际上也是ADAS或辅助驾驶产品。现有的一些车型实际上已经具备了L3能力,稍后讲到Pilot时也会提到,所谓L3是能够在限定场景区域内从一个点开到另外一个点。

image

图2

图2是地平线Horizon Matrix智能驾驶解决方案的一个产品矩阵,包括Mono 前视辅助驾驶解决方案、Pilot 领航辅助驾驶解决方案和高级自动驾驶解决方案。它们分别是基于征程2,征程3和征程5开发的。由于今天聚焦于量产实践,所以会讲解在征程2和征程3上已经量产的Mono 和即将量产的Pilot 。从图2中可以看到,Mono的研发时间是从2018年到2021年,三年磨一剑;Pilot 也是用了近两年的研发时间,而SuperDrive,即更高级别基于征程5的解决方案将会在明年量产。

image

图3

先来看下Mono 的简介,Mono 是基于征程2或征程3的前视单目ADAS解决方案,征程2有4 TOPS的算力,征程3有5 TOPS的算力,它们分别支持C-NCAP跟E-NCAP的法规要求。

Mono 产品虽然看似简单,仅仅是一个单目前视解决方案,却是提升用户驾驶安全性,使得客户车型能够满足NCAP要求的重要产品。NCAP是指New Car Assessment Program,这也是欧洲、日本、北美和中国在法规层面,汽车进入市场之前一个逐步强制的要求。

image

图4

Pilot 是基于3颗征程3,10路摄像头,支持高速路领航辅助驾驶和停车场记忆泊车的一款L2+产品,也是首个基于国产AI芯片的行泊一体的平台。从图4右下角可以看到Pilot 摄像头的布局,包括1个前视的8M相机,4个侧视的2M相机,后视的1颗相机和4路的环视鱼眼相机。

一些外部的调研也发现,消费者认为自动驾驶目前最需要解决的场景或最有需求的场景,是停车和高速路驾驶,Pilot 3恰好满足了这个要求,所以Pilot 3这款产品的功能正在逐步成为智能汽车的一个标配。我们也看到并预测,未来具备高速路领航辅助驾驶功能车型的量产会越来越多。

以上是已经量产和即将量产的两款主要产品,接下来会为大家讲解其中的感知算法设计,并且是如何结合征程2和征程3芯片实现高性能表现。

02 软硬协同的自动驾驶感知算法设计

image

图5

最简单的是一个固定的融合网络,这也是最早期的BEV方案。它的好处是所有的都见过,没有特别新的架构在里面,但是足够简单、鲁棒、好用,所以作为一个起点对应上面提到的几个不同层次内容。左边是上面提到的alignment、temporal fusion、 spatial fusion、最终的Task heads,图6以摄像头为例,激光雷达可能会有一些不同的变种,但基本的意思是一样的。首先,在征程2和征程3里,通过采用多任务模型来同时获得更好的感知性能和更低的系统延迟,所以可以认为我们的感知系统是由一个或多个多任务模型组成的。图5有一个简单的示例图,包括以全图输入的一些多任务模型,和若干以ROI作为输入,或是需要做细粒度识别的一些多任务模型。

image

图6

下面将从Backbone、Task设计以及Multi-task model三个方面为大家讲解算法的设计。首先是Backbone的设计,在Google提出MobileNet之后,MobileNet在对低延迟有非常高要求的场景中获得了巨大成功,并且它仅需要更小的算力。但MobileNet也有一定的缺陷,因为它的depthwise convolution与pointwise convolution的计算量分配不均,使得在硬件上会增加计算和访存读取的切换时间。

为了解决上面的问题,我们提出了VarGNet。它是指可变组的卷积,即variable group的CNN,通过可变组卷积升维,再通过pointwise convolution降维。MobileNet则是通过depthwise convolution升维。相比普通的 group convolution,我们的网络group数可变,但每个卷积里分组channel数是一致的,而一般的group convolution是channel数不一致,但group数保持一致。之所以要做到channel数一致,是因为可以组合跨层之间的部分 channel卷积,减少在SRAM与DDR之间的读取。

VarGNet有两个特性,一个是Block内计算更均衡,像刚刚提到的升维和降维分别使用variable group跟pointwise convolution计算,减少了内存切换和计算之间的平衡;另外一方面在block之间采用了一个更小的 channel或更小的feature map,通过这种方式达到更好的访存和计算平衡。

关于特征和参数的组合,以及硬件在计算过程中的流水线,大家可以参考凌坤在2月23日讲解的《好的自动驾驶AI芯片更是“好用”的芯片》,里面有更详细的介绍。这篇VarGNet的论文,也可以在arXiv上找到。

image

图7

之后是感知任务设计,大家最熟悉可能是2D感知。计算机视觉里一些经典的任务,比如检测、分割、分类和关键点检测,组成了自动驾驶里最基础的2D感知。图7有一些示例,像车辆检测、车型分类、针对一个行车场景和停车场景的分割,以及通过车轮接力点的关键点检测,在2D任务里判断车辆的朝向,和在停车场景中停车位的检测。但是2D感知都是在图像域的,所以要变为

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动驾驶真值生产是指通过模拟和仿真技术生成真实场景下的数据,用于测试和验证自动驾驶系统的性能和安全性。它是自动驾驶技术开发过程中非常重要的一环。下面是自动驾驶真值生产的介绍[^1]: 1. 数据采集:通过在真实道路上安装传感器设备,如摄像头、激光雷达、毫米波雷达等,收集车辆周围的环境信息。这些传感器会不断地生成大量的数据,包括图像、点云、雷达数据等。 2. 数据标注:对采集到的数据进行标注,将每个数据样本与其对应的真实场景信息进行关联。例如,对图像数据进行目标检测和语义分割标注,对点云数据进行物体识别和距离测量标注等。 3. 场景建模:将采集到的数据和标注信息进行整合,构建真实场景的三维模型。这些模型可以包括道路、交通标志、车辆、行人等元素,以及它们之间的关系和动态行为。 4. 仿真环境搭建:利用场景建模的结果,搭建一个虚拟的仿真环境,模拟真实道路上的各种情况和事件。在这个仿真环境中,可以通过调整参数和添加干扰来模拟不同的驾驶场景,以测试自动驾驶系统的性能和鲁棒性。 5. 真值生成:在仿真环境中,根据真实场景的数据和标注信息,生成与之相对应的真值数据。这些真值数据可以包括车辆的位置、速度、姿态等信息,以及周围环境的状态和动态变化。 通过自动驾驶真值生产,可以大大提高自动驾驶系统的测试效率和安全性。同时,它也为自动驾驶技术的研发和应用提供了可靠的数据基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值