SqueezeDet:一种应用于自动驾驶实时目标检测中的标准、小型、低功耗的全卷积神经网络(一)

来源:互联网 发布:医疗产业化 知乎 编辑:程序博客网 时间:2024/04/30 12:21

论文原文:SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving
源代码下载:https://github.com/BichenWuUCB/squeezeDet
论文翻译:XJTU_Ironboy
时间:2017年8月

摘要

  目标检测是自动驾驶技术中一个至关重要的部分,除了要求很高的准确度以保证驾驶中的安全之外,对于自动驾驶技术中的目标检测也要求有足够快的响应速度以保证对车辆的精准控制,同样对于嵌入式系统的部署,还需要保证小的模型尺寸较高的能源利用效率
  在我们这篇论文中,我们提出了SqueezeDet的概念,一种应用于目标检测中同时满足上述所有约束条件的全卷积神经网络结构。在我们的网络中,使用卷积层不只是用来提取特征图,同时也是作为输出层去计算边界框(bounding box)和分类概率。我们模型中的检测管道(detection pipeline)只包含一个神经网络的前向通路,因此它运行起来是极其迅速的。我们的模型是全卷积结构的,因此可以达到小的模型规模和很高的能量利用效率。最后的实验表明我们的模型能达到很高的精度,在 KITTI 基准上达到了最高的精确度。并且SqueezeDet的代码已经开源(见开头的源代码链接)。

1.介绍

  一个安全稳健的自动驾驶系统是依赖于系统对环境的精准感知的,更具体地来说,一个自动驾驶的车辆需要能够准确实时地检测出车辆、行人、骑行的人、马路标识和其他的对象,从而做出正确的控制行为来保证安全。更重要的是,为了能够得到更高的经济效益和通用性,目标检测系统必须能够部署到相比于GPU(一种用于典型计算机视觉实验中测试的硬件设备)来说更加低能耗的嵌入式系统中。
  目标检测是自动驾驶技术中一个十分关键的任务。不同的自动驾驶解决方案可能有不同的感知传感器组合,但基于图像的目标检测技术几乎是不可替代的。图像传感器相比于其他如 LIDAR(激光雷达系统)是十分廉价的,然而图像数据(包括视频数据)中的信息比 LIDAR cloud points(激光雷达云点)更加丰富,并且更容易收集和标注解释。最近一段时间以来在深度学习方面的新进展显示了一个重要的趋势,那就是越来越多的数据涵盖了各种长的场景,我们总是可以设计出更强大的神经网络,用更多的参数来消化数据,使其变得更加精确和健壮。
  最近很多人的研究工作都基本关注于提高网络的准确度,然而在实际的自动驾驶车辆的实际部署中,图像目标检测的其他问题同样关键。对于自动驾驶,图像目标检测的一些基本要求包括以下几点:
  (a) 精度,更具体地说,是指探测器在理想情况下实现对目标对象的100%高精度识别;
  (b) 速度,检测器应该实时地或者更快地进行运算以减少对车辆控制周期的延时;
  (c) 小的模型尺寸,正如SqueezeNet原著所叙述的,较小的模型尺寸有利于模型的分布式训练,通过线上更新、更少的能耗和更可行的嵌入式系统部署, 将新机型导出到客户端的通信开销将减少;
  (d) 能源效率,台式机和机架系统可能在运行神经网络计算中需要消耗 250W的能量,但是针对自动驾驶市场的嵌入式处理器必须具有更小的功率和能量包络。虽然精确数字不同,但例如来自NVIDIA(英伟达)的Xavier处理器针对的是20W 的能耗功率而设计的。而针对移动应用处理器有一个更小的功率预算,必须在3W–10w范围。
  如果不彻底解决(a) 精度 (b) 速度 (c) 小的模型尺寸 (d) 能源效率 这些问题,那么我们将无法真正利用深度神经网络在自动驾驶方面的能力。
  在本篇论文中,我们通过提出了一种用于目标检测的全卷积神经网络SqueezeDet解决了以上存在的问题。 SqueezeDet中检测管道(detection pipeline)的提出是受到了YOLO(You only look once)的启发:首先,我们使用层叠卷积滤波器( stacked convolution filters)从输入图像中提取高维度、低分辨率的特征图,然后我们使用ConvDet,一个将特征图作为输入,计算大量的目标边界框并预测它们的类别的卷积层,最后,我们过滤这些边界框,以获得最终的检测结果。这个核心的卷积神经网络结构(CNN)是SqueezeNet, 它使用了不到5MB大小的模型(并且可以更进一步压缩到0.5MB),在ImageNet数据集上达到了AlexNet 同样的精度结果。在用ConvDet中额外的层来强化SqueezeDet之后,整个模型的规模仍然小于8MB,并且在输入图片的分辨率为1242x375时模型的运行速度达到57.2FPS。得益于小模型尺寸和激活尺寸,SqueezeDet只占用非常小的内存和更少的DRAM连接,因此它在一个 TITAN X GPU上运行时每张图片仅消耗1.4J的能量,相当于Faster R-CNN的八十四分之一。并且SqueezeDet的精度非常的高,我们的一个训练好的模型在KITTI目标检测挑战中的三个检测骑行者的高难度检测中达到了最佳的平均精度。
  本文其余部分的结构如下所述,我们首先在第2节中回顾相关工作,然后介绍我们的检测管道(detection pipeline)、ConvDet层、训练中数据传递的方式和第3节SqueezeDet的网络结构设计。第4节中我们陈述了我们在KITTI数据库上的实验,并且探讨了模型的精度、速度和参数的规模。由于论文篇幅的限制,我们把对能量效率的讨论放在了论文的补充材料中,并且在第5节对我们的论文做了一个总结。

2. 相关的工作

2.1 目标检测中的CNN

  从2005年到2013年,各种各样的技术被应用到了提高数据库上目标检测的精度上,例如PASCAL。最近几年, HOG+SVMDPM的各种版本在这些数据集上达到了较好的精度水平。然而在2013年,Girshick提出的基于区域的卷积神经网络(R-CNN),使得目标检测的精度有了较大的提高。这R-CNN的方法以region proposals(可能包含对象的区域)开始,并且使用CNN对这些区域进行分类。R-CNN的一个缺点是它在每一个region proposal上的CNN计算不是完全独立的,导致了时间的消耗(<1 fps)和较低的能量利用效率(>200J/frame),为了改进这个问题,GirshickFaster R-CNN上使用了很多的策略在所有的region proposals中分摊这种计算量。在其他的模型中,R-FCN是一个全卷积结构并且能够达到R-CNN的精度,但是R-FCN是一个能够在所有的region proposals中分摊计算量的全卷积结构。
  目前已经有很多项目采用了R-CNN的方法做自动驾驶中的目标检测。几乎所有在 KITTI 排行榜上排名靠前的方法都是基于Faster R-CNN,通过修改 CNN 体系结构以使用较浅的网络来提高精确度的。另一方面人们更加关注的是怎么生成更好的region proposals,大多数方法的关注点都是怎样获得更好的精度,并且据我们了解,之前的那些方法都没有宣布在 KITTI 数据集上的实时的响应速度。
  region proposals是我们迄今为止讨论过的所有目标检测方法的基础,然而,在YOLO(You Only Look Once)中,region proposals和目标分类是可以集成在同一个结构中的。相比于那些基于R-CNNFaster R-CNN的方法,YOLO的单个统一结构运行是非常快的,这也使得YOLO成为第一个能够满足实时目标检测中运行速度要求的通用的卷积神经网络。

2.2 小规模的CNN

  对于计算机视觉基准的任何特定精度级别,通常情况下会设计一个多层的CNN来达到那个精度级别。假定要求达到同一个精度级别,设计规模越小的CNN(模型参数更少)是越有利的,AlexNetVGG-19都是被设计用来进行图像分类的CNN的结构,并且已经被应用到了其他的计算机视觉的任务中了。AlexNet的模型包含240MB的参数,并且在ImageNet top-5图像分类任务中达到约80%的准确度。VGG-19模型包含575MB的参数,并且能够在ImageNet top-5图像分类任务中达到87%的准确度。然而,包含更少参数的网络结构也能达到相似的准确度,如SqueezeNet只有4.8MB的参数量(比AlexNet小50倍),并且它在ImageNet上面的测试能够达到和AlexNet相同级别的准确度。GoogLeNet-V1模型只有53MB的参数量,他在ImageNet能达到VGG-19相同的级别的准确度。

2.3 全卷积网络

  全卷积网络(FCN)的潮流是被Long带动起来的,它将其运用到了语义分割领域。FCN定义了一个通用的神经网络类, 其最终参数化层的输出是一个网格(grid)而不是一个向量,这在语义分割领域是非常有用的,在网格中的每个位置都对应于一个像素的预测类。
  其实FCN模型也可以被应用到了其他的领域。为了去解决图像分类的问题,一个CNN的结构需要最终输出一个一维的表示分类概率的向量,一个通用的方法就是通过定义输出为1 x 1 x Channels的向量,添加一个或者多个全连接层。然而还有一个可选择的办法是使得最后一层为卷积层输出一个网格(W x H x Channels即:宽x高x通道数),然后用平均池化的方法对输出网格进行下采样,输出能表示分类概率的1 x 1 x Channels的向量。最后我们注意在这节之前提到的R-FCN的方法是一个全卷积的网络结构。

由于本论文较长,中文翻译分为三个部分连载:

SqueezeDet:一种应用于自动驾驶实时目标检测中的标准、小型、低功耗的全卷积神经网络(二)
SqueezeDet:一种应用于自动驾驶实时目标检测中的标准、小型、低功耗的全卷积神经网络(三)

注:第一次写博客,且水平有限,有些地方翻译的很不到位,望谅解!
如有问题需要讨论,可发送问题到我的邮件:tzj19970116@163.com

阅读全文
2 0
原创粉丝点击