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

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

3天内不再提示

自动驾驶芯片之争(一):图像识别是锦上添花而非不可或缺

佐思汽车研究 来源:lq 2018-12-12 15:54 次阅读

一、图像识别是锦上添花而非不可或缺

自动驾驶领域首先要保证的是安全,其次才是智能。 在无人车环境感知问题中,必须要知道自动驾驶车辆与目标间的距离、方位角,目标移动的速度,目标位置按时间序列的的预测(目标追踪),只有知道这些才能避免碰撞。传统的做法是先获得目标的三维Bounding Box,再与毫米波雷达的数据融合,获得目标的速度和方位角,再通过激光雷达做目标追踪。我们并不需要对目标进行精确的语义分割,只需将目标以一个三维的Bounding Box准确框出即可(即Detection)。 最后才是识别目标,才是图像识别。

通常有两种做法获得3D Bounding Box,第一种如上图,采用激光雷达与摄像头融合的方法,这是目前业内的主流。这种密集PointFusion体系结构有两个特征提取器:一个处理原始点云数据的PointNet变体(A),以及一个从输入图像中提取视觉特征的CNN(B)。之后有两种融合,一种是预测8个角中每个角相对于输入点的空间偏移,如(C)所示:对于每个输入点,网络预测从角落(红点)到输入点(蓝色)的空间偏移(白色箭头),并选择具有最高分数的预测作为最终预测(E)。另外一种直接回归盒角位置的香草全局结构(D)。

另一种是只使用激光雷达,以苹果为代表,使用VoxelNet。VoxelNet是一个端到端的点云目标检测网络,VoxelNet的网络结构主要包含三个功能模块:(1)特征学习层;(2)卷积中间层;(3) 区域提出网络( Region Proposal Network,RPN)。

特征学习网络的结构如上图所示,包括体素分块(Voxel Partition),点云分组(Grouping),随机采样(Random Sampling),多层的体素特征编码(Stacked Voxel Feature Encoding),稀疏张量表示(Sparse Tensor Representation)等步骤。卷积层相对简单,每一个卷积中间层包含一个3维卷积,一个BN层(批标准化),一个非线性层(ReLU)。

RPN 是目标检测网络中常用的一种网络,该网络包含三个全卷积层块(Block),每个块的第一层通过步长为2的卷积将特征图采样为一半,之后是三个步长为1的卷积层,每个卷积层都包含BN层和ReLU操作。将每一个块的输出都上采样到一个固定的尺寸并串联构造高分辨率的特征图。

这种只使用激光雷达的方法效果要比传感器融合效果更好,苹果的论文里有对比,如上表。缺点是点云密度要求高,最好是128线,最低也要是64线。

无论哪一种方法,所需的运算资源都远小于图像识别类深度学习或语义分割类深度学习。按照ISO26262 功能安全的思路,安全关联度高的领域要投入尽量多的资源,安全关联度低的领域要尽量减少资源的浪费,这样既保证安全,又降低成本。

双目也可以获得自动驾驶车辆与目标间的距离、方位角,目标移动的速度。目标位置按时间序列的预测(用光流法的目标追踪),但是要获得精确的3D Bounding Box,双目是不大可能的,双目的深度数据不够精确。

双目的好处是不使用复杂的传感器融合,也不使用昂贵的激光雷达,消耗运算资源相对较低,整体成本是最低的,缺点是无法做到全天候。双目对剧烈变化的光线无法适应,当然单目也有同样的问题。此外,双目使用传统的线性算法,可解释性、确定性远高于深度学习,更符合ISO26262对安全的要求。对于深度学习这种黑盒子,即便是最低的ISO26262 ASILA级都无法达到,因为ISO26262最基本的要求就包括确定性和可解释性。

反过来说,如果选择双目,那么所需要的运算资源会大大减少。目前英伟达的Xavier、瑞萨的V3H、NXP的S32V3都有对双目的硬核支持。通常都用硬核来完成双目视差和光流的计算,因为双目的视差和光流是多任务的并行计算。

来源:博世

博世和大陆都坚持全面使用双目,浮点运算4TOPS即可。

长期以来有个误解,那就是 GPU擅长并行计算,实际GPU擅长的是单一任务的并行计算,而非多任务的并行计算,多任务的并行计算还是要靠CPU,不过CPU确实不擅长并行计算。所以通常都用硬核来完成双目视差和光流的计算,硬核的缺点是毫无灵活性可言,并且成本偏高。

所以自动驾驶的主芯片,要比拼不是单一任务的浮点运算的算力,只有图像识别,语义分割才是真正消耗单一任务的浮点运算的地方,而这些不是必须的,只是锦上添花。自动驾驶主芯片要比拼的还是多任务的处理能力。

二、卷积与MAC,DSP最适合做深度学习的推理

图像识别是自动驾驶芯片计算力消耗最大的部分,通常核心的算法都是基于CNN的,也就是基于卷积的。卷积是什么?如果纯粹从算法的角度,卷积就是乘积累加算法,即MAC(Multiply Accumulate)。

第二个等号右边每个括号里的系数构成的序列 (14,34,14,4),实际上就是序列 (2,4) 和 (7,3,1) 的卷积。这就是个典型的MAC,通常MAC是DSP的核心运算方式,衡量DSP性能最常用的数据就是GMAC/s,即每秒十亿次乘积累加。

DSP主要的工作也是做MAC的,理论上讲DSP是最适合做卷积运算的,是卷积运算效率最高的硬件,但是我们看到DSP在卷积领域几乎无人提及,即便德州仪器也很少发声。原因在于DSP不是并行处理的架构,也就是说,DSP一般是单核的,而GPU是多核的,单核的DSP远不是GPU的对手。不过DSP的好兄弟FPGA上场了,FPGA天生的并行处理架构,自2010年后,FPGA将多核DSP引入系统,今天几乎所有的中高端FPGA都或多或少拥有数十乃至数百个DSP核,通常这种FPGA可以在 4 瓦的功率电力预算下实现 200 G-ops/s 的速度,也即 50 G-ops/s/W,这个结果几乎是 GPU 效能的 10 倍。

不仅天生更适合做卷积运算,DSP和FPGA在架构上也具备压倒性优势。GPU同CPU一样,都是冯诺伊曼架构,也就是指令执行过程:取指令->指令译码->指令执行,只有在指令执行的时候,计算单元才发挥作用,大部分时候,计算单元是空闲无事可做的。冯诺伊曼架构数据和程序放在同一个地方,不用花销太多的资源就能取到数据和程序。这也算是冯氏结构的优点。可是由于程序和数据存放在同一存储区,存取程序和数据间时共享同一总线,导致了冯诺依曼瓶颈。

与冯氏结构相对的是哈佛结构,即将程序和数据分开存储的结构。其过程CPU首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度。哈佛结构能够完成指令和数据的并发操作,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作,减轻了程序运行时的访存瓶颈,也就是提高了吞吐量,是一种并行结构。而冯氏结构只能是顺序操作,是一种串行的处理方式。原始的冯·诺依曼体系结构,如GPU就通过引入管线技术(Pipeline)提高吞吐量。与哈佛架构比,做并行计算是要吃亏的。但哈佛架构也有缺点,那就是指令既不直观,也不容易使用,通用型的编译器很难做。

对冯诺伊曼架构来说,芯片本身运算速度不是瓶颈,瓶颈在于内存的带宽,换句话说,你看到的计算性能参数都要被内存打折扣,大部分时候运算部分都在等待内存响应。现在一颗手机中处理器的性能已经比20年前超级计算机中的处理器还要强。另一方面,计算机的主要内存使用的是DRAM方案,DRAM是基于电容充放电实现的高密度存储方案,其性能(速度)取决于两方面,即内存中电容充放电的读取/写入速度以及DRAM与处理器之间的接口带宽。DRAM电容充放电的读取/写入速度随着摩尔定律有一定提升,但是速度并不如处理器这么快。另一方面DRAM与处理器之间的接口属于混合信号电路,其带宽提升速度主要是受到PCB板上走线的信号完整性所限制,因此从摩尔定律晶体管尺寸缩小所获得的益处并不大。这也造成了DRAM的性能提升速度远远慢于处理器速度,目前DRAM的性能已经成为了整体计算机性能的一个重要瓶颈,即所谓阻碍性能提升的“内存墙”。

除了性能之外,内存对于能效比的限制也成了传统冯诺伊曼体系计算机的一个瓶颈。这个瓶颈在人工智能应用快速普及的今天尤其显著。这一代人工智能基于的是神经网络模型,而神经网络模型的一个重要特点就是计算量大,而且计算过程中涉及到的数据量也很大,使用传统冯诺伊曼架构会需要频繁读写内存。目前的DRAM一次读写32bit数据消耗的能量比起32bit数据计算消耗的能量要大两到三个数量级,因此成为了总体计算设备中的能效比瓶颈。如果想让人工智能应用也走入对于能效比有严格要求的移动端和嵌入式设备以实现“人工智能无处不在”,那么内存访问瓶颈就是一个不得不解决的问题。

为了解决“内存墙”问题,一个最近得到越来越多关注的思路就是做内存内计算。2018年的国际固态半导体会议(ISSCC,全球最顶尖的芯片设计会议,发表最领先的芯片设计成果,称为“芯片界的奥林匹克”)有专门一个议程,其中的论文全部讨论内存内计算;今年早些时候,IBM发布了基于相变内存(PCM)的内存内计算,在此之后基于Flash内存内计算的初创公司Mythic获得了来自软银领投的高达4000万美元的B轮融资,而在中国,初创公司知存科技也在做内存内计算的尝试。

另外一种解决思路基于目前的技术,就是3D PoP内存,在处理器内部用TSV技术堆叠内存,与传统的芯片外置内存相比,这种方式可以提高10倍的存取效率,但这需要与内存厂家通力合作,三星在这方面具备天然优势,所以三星也在开发人工智能芯片,将来会是英特尔和英伟达的强劲对手。

对哈佛架构的FPGA来说,内存瓶颈的问题要小得多,几乎可以忽略,FPGA可以做片内SRAM,本质上FPGA就是一片SRAM。

FPGA虽然优势极为明显,然而却有致命缺点。那就是与GPU相比,FPGA都是硬线设计,die面积大,成本高,加上应用面窄,出货量低进而导致性价比太低。GPU的通用性很强,产品IP可以复用,等于出货量很高,所以性价比很高。

三、AUTOSAR

在自动驾驶时代,软件的工作量是惊人的,因此AUTOSAR成为不可或缺的支持,AUTOSAR的好处一言以蔽之就是软件和硬件分离,提高软件的复用性,降低软件开发成本。同时AUTOSAR也是ISO26262 ASIL的关键元素。

只有使用AUTOSAR,才有可能进入主流车厂的供应链,才可能通过ISO 26262的严苛安全标准。因此全球主要芯片厂家如英特尔、英伟达、NXP、瑞萨和意法半导体,中国的华为也于近期加入AUTOSAR联盟。

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

    关注

    455

    文章

    50714

    浏览量

    423147
  • 图像识别
    +关注

    关注

    9

    文章

    520

    浏览量

    38267
  • 自动驾驶
    +关注

    关注

    784

    文章

    13784

    浏览量

    166389

原文标题:自动驾驶芯片之争(一)

文章出处:【微信号:zuosiqiche,微信公众号:佐思汽车研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA在自动驾驶领域有哪些应用?

    是FPGA在自动驾驶领域的主要应用: 、感知算法加速 图像处理:自动驾驶中需要通过摄像头获取并识别道路信息和行驶环境,这涉及到大量的
    发表于 07-29 17:09

    FPGA在自动驾驶领域有哪些优势?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有显著的优势,这些优势使得FPGA成为自动驾驶技术中不可或缺部分。以下是FP
    发表于 07-29 17:11

    谷歌的自动驾驶汽车是酱紫实现的吗?

    看到新闻报道说谷歌自动驾驶汽车已经行驶近30万公里了,非常的强大~~上次参加了重庆新能源汽车峰会,对会上富士通半导体宣讲的款全景视频汽车实时监控技术平台似乎看到了自动驾驶的影子(利用MB86R11
    发表于 06-14 16:15

    自动驾驶真的会来吗?

    高速路段,其无法自动识别停车等路标。所以只有当图像识别、判断,信息的分析、学习,得到深入发展,才可能真正解决自动驾驶面临的难题。  另外在硬件层面,图像采集也是难关。无论是各类摄像头还
    发表于 07-21 09:00

    细说关于自动驾驶那些事儿

    展示在市区的自动驾驶情境。这台由光达、定位系统和摄影机组成的自动驾驶车,在车辆偏离车道时可自动导回车道。三种系统的作用优先级,第是光达,不仅可以侦测障碍物,还可以“
    发表于 05-15 17:49

    自动驾驶的到来

    自动驾驶需要海量的数据积累,前期完整的测试是实现自动驾驶的必不可少的步骤。  其次中国非机动车及行人的行为规律存在差异,自动驾驶外部传感器必须对非机动车及行人做出及时准确的判断从而有
    发表于 06-08 15:25

    浅析自动驾驶发展趋势,激光雷达是未来?

    初创公司进入自动驾驶市场的个门槛较低的入口。摄像头:车载摄像头是最基本常见的传感器,价格低廉且应用广泛同时具备雷达无法完成的图像识别功能,不仅可以识别路牌,在
    发表于 09-06 11:36

    激光雷达是自动驾驶不可或缺的传感器

    `激光雷达是自动驾驶不可或缺的传感器2015 年,当时业界还在争论:无人驾驶是该用激光雷达还是用摄像头。到 2016 年,事情发生很大的转变,尤其某汽车公司 Autopilot 致死事故之后,业内
    发表于 09-08 17:24

    如何让自动驾驶更加安全?

    自动驾驶、完全自动驾驶。第四级别是汽车驾驶自动化、智能化程度最高级别,也就是通常所说的无人驾驶
    发表于 05-13 00:26

    浅析自动驾驶不可或缺的几项技术

    不久前,全球管理咨询公司麦肯锡发布了份研究报告,估算自动驾驶技术如能实现,将提升个人安全系数,可减少90%以上的事故。
    的头像 发表于 07-25 17:45 3104次阅读

    如何使用Python进行图像识别自动学习自动训练?

    图像识别自动学习和自动训练。 首先,让我们了解一下图像识别的基本概念。图像识别是指通过计算机程序识别
    的头像 发表于 01-12 16:06 574次阅读

    神经网络在图像识别中的应用

    随着人工智能技术的飞速发展,神经网络在图像识别领域的应用日益广泛。神经网络以其强大的特征提取和分类能力,为图像识别带来了革命性的进步。本文将详细介绍神经网络在图像识别中的应用案例,包括卷积神经网络(CNN)在面部
    的头像 发表于 07-01 14:19 671次阅读

    图像检测和图像识别的区别是什么

    图像检测和图像识别是计算机视觉领域的两个重要研究方向,它们在许多应用场景中都有着广泛的应用。尽管它们在某些方面有相似之处,但它们之间还是存在些明显的区别。本文将从多个角度对图像检测和
    的头像 发表于 07-03 14:41 974次阅读

    图像识别属于人工智能吗

    的过程。它涉及到图像的获取、预处理、特征提取、分类和识别等多个环节。 1.2 重要性 图像识别技术在人工智能领域具有重要的地位,它使计算机能够“看”和“理解”图像,为机器视觉、
    的头像 发表于 07-16 10:44 1077次阅读

    图像识别算法的优缺点有哪些

    图像识别算法是种利用计算机视觉技术对图像进行分析和理解的方法,它在许多领域都有广泛的应用,如自动驾驶、医疗诊断、安全监控等。然而,图像识别
    的头像 发表于 07-16 11:09 1542次阅读