0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DNN模型的ADS深度学习算法选型探讨

sakobpqhz 来源:Dr. Luo 2023-01-31 14:06 次阅读

对于自动驾驶ADS行业而言,其核心演进趋势可以定义为群体智能的社会计算,简单表述为,用NPU大算力和去中心化计算来虚拟化驾驶环境,通过数字化智能体即自动驾驶车辆AV的多模感知交互决策,以及车车协同,车路协同,车云协同,通过跨模数据融合、高清地图重建、云端远程智驾等可信计算来构建元宇宙中ADS的社会计算能力。

ADS算法的典型系统分层架构一般包括传感层,感知层,定位层,决策层(预测+规划)和控制层。每个层面会采用传统算法模型或者是与深度学习DNN模型相结合,从而在ADS全程驾驶中提供人类可以认可的高可靠和高安全性,以及在这个基础上提供最佳能耗比、最佳用车体验、和用户社交娱乐等基本功能。

01基于DNN模型的感知算法

ADS部署的传感器在极端恶劣场景(雨雪雾、低照度、高度遮挡、传感器部分失效、主动或被动场景攻击等)的影响程度是不一样的。所以传感器组合应用可以来解决单传感器的感知能力不足问题,常用的多模传感器包括Camera(Front-View or Multiview orSurround-View; Mono or Stereo;LD or HD),毫米波Radar(3Dor4D)和激光雷达LIDAR(LDorHD)。ADS的一个主要挑战是多模融合感知,即如何在感知层能够有效融合这些多模态传感器的输出,配合高清HD地图或其它方式定位信息,对应用场景中的交通标识,动态目标属性(位置、速度、方向、高度、行为),红绿灯状态,车道线,可驾驶区域,进行特征提取共享和多任务的2D/3D目标检测、语义分割、在线地图构建、Occupancy特征和语义提取(Volume/Flow/Surface)等等。基于DNN模型的感知算法,在实际工程部署中的一个挑战,还需要解决图 1所示的三个方向关键难题:数据挑战、模型挑战、和复杂场景挑战。

c25bf032-96d4-11ed-bfe3-dac502259ad0.png  

图 1DL算法在智能交通ITS和自动驾驶领域ADS的部署挑战(Azfar 2022) 目前大多数AI视觉感知任务,包括目标检测跟踪分类识别,场景语义分割和目标结构化,其算法流程都可以简单总结为特征抽取,特征增强和特征融合,然后在特征空间进行(采样)重建,最后进行多任务的各类检测识别与语义理解。以目标检测任务为例,一个主要的发展趋势,是从CNN (Compute-bound)向 Transformer (memory-bound)演进。CNN目标检测方法包括常用的Two-Stage Candidate-based常规检测方法(Faster-RCNN)和One-Stage Regression-based 快速检测方法(YOLO, SSD, RetinaNet, CentreNet)。

Transformer目标检测方法包括DETR, Vision Transformer, Swin Transformer, DTR3D, BEVFormer, BEVFusion等等。两者之间的主要差别是目标感知场的尺寸,前者是局部视野,侧重目标纹理,后者是全局视野,从全局特征中进行学习,侧重目标形状。可以看出针对各类模型包括混合模型和通过NAS架构搜索生成的模型,学术界和工业界在持续推陈出新,高速迭代,依旧呈现出多元多样化态势,但如何有效进行模型选型,以及模型小型化和工程化加速,一直是ADS产业算法能否成功落地的核心难题。

02基于DNN模型的决策算法

基于DNN模型的决策算法,是一种在数据充分的条件下,通过少量的人力投入就可以提供非常有力的设计表达。尤其是针对社交关系建模与推理来解决ADS中预测与规划问题,通过监督和自监督学习的方式,单独或者联合建模的方式,以及模仿学习IL和强化学习RL的学习流程。交互建模的输入来自车辆状态,包括定位信息,速度,加速度,角速度,车辆朝向等。端到端的DL-based方法通常直接通过卷积处理原始传感数据(RGB图像和点云),计算简洁但会损失弱的或者隐含的交互推理的内容表达。如图 2所示,深度学习模型中的不同构建模块,是可以对多智能体的交互推理进行有效建模和表达的,其中

(a)全连接FC层:又称多层感知器MLP,其中所有输入通过连接可以与输出交互并对输出做出贡献。 (b)卷积CONV层:卷积层采用局部感知场,所以每层的连接会比较稀疏,通常假定合适用来捕获空间关系,最初的底层卷积层一般提取类似边缘纹理类的信息,越接近顶层也偏语义特征。 (c)递归Recurrent层 :通常用来处理时间维度的数据序列,多用来捕获时间关系。 (d)图Graph层:典型的图包括节点、边(用来描述节点间关系)、和上下文全局属性,通常用来捕获图结构表征中显性关系推理,与FC层和RNN层一个不同之处是输入的先后次序不会影响结构,图结构还可以处理不同数目的个体,比较适合多个体的ADS环境。

c2b26cd2-96d4-11ed-bfe3-dac502259ad0.png  

图 2DNN模块对多智能体交互的建模案例(Wang 2022) 对于ADS中社交特征表征,常用的有空间时间状态特征矢量,空间占用方格和图区域动态插入等方式。空时状态特征矢量比较难以定义,尤其是个体数量变化和有效时间步长的不同,另外一个限制是依赖于个体插入的次序。所以一个常用的设计思路是采用占用方格地图Occupancy Grid Map (OGM)来解决上述的两个问题。OGM是以本体ego agent为中心来构建空间方格图,可以处理ROI区域不同数目的智能体。OGM通常采用原始状态(定位,速度,加速度)或者采用FC层来进行状态编码,如果FC层隐层包括个体的历史轨迹信息,可以同时捕获空间时间信息。

OGM的分辨率对计算性能影响比较大。 相对而言,图网络GNN可以通过动态插入区域DIA抽取来更好地构建空间时间交互图关系,图的类型可以基于个体(车辆,行人,机动车等),也可以基于区域area,后者主要聚焦对车辆意图(车道保持,换道并道,左拐右拐)的表征,这里DIA指的是可驾驶场景中空闲空隔。如图 3所示,DIA的优势在于对环境中静态元素(道路拓扑,类似stop道路标志牌等)和动态元素(行驶车辆)非常灵活,可以认为是动态环境的统一表征或者也可以叫做环境的虚拟化。所有时间地平线的DIAs可以用来构建空间时间语义图。

c2edc52a-96d4-11ed-bfe3-dac502259ad0.png  

图 3动态插入区域抽取和场景语义图构建案例(Wang 2022) 如图 2所示,群体智能的社会计算,其中的社交关系,可以采用不同的深度学习层来进行交互建模和编码:

FC层交互编码:采用将不同个体的特征进行拉平,拼接成一个向量。多用来对单体single agent进行运动和意图建模,很少用于multiple agent。

CONV层交互编码:将空间时间特征(状态特征张量)或占用方格地图做为CNN输入来进行交互编码。

Recurrent层交互编码:多采用LSTM来进行时间维度推理,编码产生的embedding张量可以捕获时间空间的交互信息。

Graph层交互编码:对多智能体之间的关系采用节点之间的无向或者有向边来表征,可以用消息传递机制来进行交互学习,每个节点通过聚集邻近节点的特征来更新自身的属性特征。

在实际设计中,多将Recurrent层和Graph层相结合,可以很好地处理时间信息。而注意力attention机制编码可以更好地量化一个特征如何影响其它特征。人类司机会在交互场景中有选择地选取其它个体来进行关注,包括其过去现在的信息和未来的预判。所以注意力机制编码可以基于时间域(短期的和长期的)和空间域(本地的和偏远的),在上述方法中通过加权方案分别进行应用。对个体的注意力建模,可以采用基于距离的方法,这意味着其它个体越近,关注度也越高。 综上所述,DL-based方法由于模块化的设计和海量数据贡献,性能占优,但如何能够提供模型的安全能力和大规模部署,需要解决几个挑战:在保证性能基础上改善可解释性;在不同的驾驶个体,场景和态势下继续增强模型的推广能力;模型选型和工程实现如何有效加速落地问题。

03CNN与Transformer选型对比探讨

Transformer或Transformer + CNN + RNN混合模型选型呈现出了高效的算法性能,对应在工程实现上也开始主导整个ADS行业市场。Transformer采用Attention机制的主干网络,而CNN在特征提取和变换上由Convolution来主导,深度理解两种模型的主要收益到底来自什么样的算法模块或者算子,对ADS主流算法的未来演进,可能会有一种积极的推动作用。

一种看法(Dai 2022)认为,这主要的差别来自特征变换模块(Attention vs Convolution)对空间特征聚类的处理方式,即所谓的Spatial Token Mixer(STM)问题。当前常用构建DNN网络模型包括Attention, Convolution, Hybrid等模块的多种变形,以分类算法为例,先后有HaloNet(Halo Attention), PVT(Spatial Reduction Attention, 2021), Swin Transformer(Shifted Window Attention, 2021), ConvNeXt(7x7 Depth-Wise Convolution, 2022), InternImage (Deformable Convolution v3, 2022)等SOTA模型出世。

c327a484-96d4-11ed-bfe3-dac502259ad0.png   c334f422-96d4-11ed-bfe3-dac502259ad0.png  

图 4特征变换模块的实现案例(Dai 2022) 如图 4所示,CNN和Transformer模型中最常用的四种STM算子类型包括:Local Attention, Global Attention, Depth-Wise Convolution, Dynamic Convolution。采用固定感知场的Static Convolution只在小容量模型(~5MB参数)中表现不错,而Local-Attention STM模型结合跨窗间信息转移策略可以显著提升性能。

STM的设计也反映了假定空间即归纳偏置中采用的先验知识和约束条件对模型学习的影响,包括局部特性Locality、平移不变性,旋转不变性和尺寸不变性等模型特性,这可以从有效感知场ERF与下游多任务学习的关联关系来体现,有趣的是,当上调模型参数时,扩大ERF反而会导致模型饱和,同样我们工程实现中也观察到,对特征提取backbone而言用CNN来替代Transformer Encoder进行推理加速,也有类似模型饱和问题和上下游任务匹配不齐的问题。

至于对于各类目标不变性的性能对比,性能高的模型,对不同场景变化的鲁棒性会好一些,Static Convolution采用权值共享和局部感知场有利于提升平移不变性,而灵活的采样策略可以动态地进行特征聚类,在动态卷积(例如DCNv3)中表现出更好的旋转和尺寸缩放不变性。 Convolution-based STM模型多采用如下架构:Residual Learning, Dense Connection, Grouping, Spatial Attention,Channel Attention。其中Spatial Attention采用Deformable Convolution和Non-Local算子采用灵活可变的点采样来构建长范围的依赖语义依赖关系。

Vision Transformer的出世也给这类设计带来了新的架构设计和探索思路。 对于Attention-based STM模型,比较而言,Transformer采用的全局感知场和动态的空间聚类,也带来了海量的计算复杂度,尤其是ADS 应用中需要场景覆盖的计算区域越来越大时,这对ADS NPU的加速设计引入了一个全新课题。

从算法角度而言,图 4所示的几个算法,也采用了类似CNN的Local Attention机制,例如采用非重叠的局部计算窗和金字塔结构,以及跨窗间信息迁移的机制,例如Haloing,Shifted Windows等等,当前还有一种新的设计思路采用CNN和Transformer算子块的交织实现方式,也可以称作为联合或者混合架构,可以很好的融合CNN和Transformer的各自优势,适当降低总体计算复杂度。而NAS网络架构检索可以采用更加灵活的算子组合的策略,当然这显然增加了硬件计算架构和数据流优化的设计难度。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58382
  • ADS仿真
    +关注

    关注

    0

    文章

    71

    浏览量

    10423
  • dnn
    dnn
    +关注

    关注

    0

    文章

    59

    浏览量

    9041
  • MLP
    MLP
    +关注

    关注

    0

    文章

    57

    浏览量

    4228

原文标题:ADS深度学习算法选型探讨

文章出处:【微信号:算力基建,微信公众号:算力基建】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA加速深度学习模型的案例

    FPGA(现场可编程门阵列)加速深度学习模型是当前硬件加速领域的一个热门研究方向。以下是一些FPGA加速深度学习
    的头像 发表于 10-25 09:22 140次阅读

    AI大模型深度学习的关系

    人类的学习过程,实现对复杂数据的学习和识别。AI大模型则是指模型的参数数量巨大,需要庞大的计算资源来进行训练和推理。深度
    的头像 发表于 10-23 15:25 364次阅读

    深度学习模型有哪些应用场景

    深度学习模型作为人工智能领域的重要分支,已经在多个应用场景中展现出其巨大的潜力和价值。这些应用不仅改变了我们的日常生活,还推动了科技进步和产业升级。以下将详细探讨
    的头像 发表于 07-16 18:25 1669次阅读

    深度学习模型量化方法

    深度学习模型量化是一种重要的模型轻量化技术,旨在通过减少网络参数的比特宽度来减小模型大小和加速推理过程,同时尽量保持
    的头像 发表于 07-15 11:01 452次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>量化方法

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源
    的头像 发表于 07-15 10:03 1173次阅读

    深度学习算法在集成电路测试中的应用

    随着半导体技术的快速发展,集成电路(IC)的复杂性和集成度不断提高,对测试技术的要求也日益增加。深度学习算法作为一种强大的数据处理和模式识别工具,在集成电路测试领域展现出了巨大的应用潜力。本文将从
    的头像 发表于 07-15 09:48 788次阅读

    利用Matlab函数实现深度学习算法

    在Matlab中实现深度学习算法是一个复杂但强大的过程,可以应用于各种领域,如图像识别、自然语言处理、时间序列预测等。这里,我将概述一个基本的流程,包括环境设置、数据准备、模型设计、训
    的头像 发表于 07-14 14:21 1891次阅读

    深度神经网络(DNN)架构解析与优化策略

    深度神经网络(Deep Neural Network, DNN)作为机器学习领域中的一种重要技术,以其强大的特征学习能力和非线性建模能力,在多个领域取得了显著成果。
    的头像 发表于 07-09 11:00 1549次阅读

    深度学习中的模型权重

    深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是
    的头像 发表于 07-04 11:49 936次阅读

    BP神经网络属于DNN

    属于。BP神经网络(Backpropagation Neural Network)是一种基于误差反向传播算法的多层前馈神经网络,是深度学习(Deep Learning)领域中非常重要的一种模型
    的头像 发表于 07-03 10:18 654次阅读

    深度学习模型训练过程详解

    深度学习模型训练是一个复杂且关键的过程,它涉及大量的数据、计算资源和精心设计的算法。训练一个深度学习
    的头像 发表于 07-01 16:13 1078次阅读

    深度学习模型优化与调试方法

    深度学习模型在训练过程中,往往会遇到各种问题和挑战,如过拟合、欠拟合、梯度消失或爆炸等。因此,对深度学习
    的头像 发表于 07-01 11:41 691次阅读

    为什么深度学习的效果更好?

    ,这些原则和进步协同作用使这些模型异常强大。本文探讨深度学习成功背后的核心原因,包括其学习层次表示的能力、大型数据集的影响、计算能力的进步
    的头像 发表于 03-09 08:26 594次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的效果更好?

    目前主流的深度学习算法模型和应用案例

    深度学习在科学计算中获得了广泛的普及,其算法被广泛用于解决复杂问题的行业。所有深度学习算法都使用
    的头像 发表于 01-03 10:28 1754次阅读
    目前主流的<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>算法</b><b class='flag-5'>模型</b>和应用案例

    深度学习如何训练出好的模型

    算法工程、数据派THU深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度
    的头像 发表于 12-07 12:38 1055次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>如何训练出好的<b class='flag-5'>模型</b>