文章阅读:SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving

SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving

摘要

自动驾驶仪中,为了保证安全,除了要求精度足够外,还需要实时的推理速度以保证车辆的控制时间。同时,需要晓得模型尺寸和高能效以保证嵌入式系统的开发。

1.引入

安全和稳定的自动驾驶系统依赖于对环境的精确感知。
对于自动驾驶,对于图像目标检测有一些基础要求,包括:a)精度,b)速度,c)小的模型尺寸:小的模型尺寸带来的优势包括高效的分布式训练、通过无线传输给客户端少的交互量、低能量消耗和更灵活的嵌入式开发,d)高能效
SqueezeDet的检测流程受启发于:首选,我们使用堆叠卷积滤波器以获取高维度、低分辨率的特征图;然后,使用ConvDet(一个卷积层)以特征图做输入来计算大量的目标bbox并预测类别;最后,对这些bbox做过滤以获得最终检测结果。
SqueezeDet
我们的主神经网络结构是SqueezeDet,它可以获得AlexNet级别的imageNet精度,但是模型尺寸小于5MB,推理速度可达到57.2FPS。

2.相关工作

2.1 CNN做目标检测

几乎所有公开的排名最前的KITTI检测方法都基于Faster R-CNN。

2.2 小CNN模型

AlexNet模型包括240MB参数,获得了大概80%精度在ImageNet上。VGG-19模型包含575MB参数,获得87%精度。SqueezeDet模型只有4.8MB参数(比AlexNet小50倍),它的检测精度和AlexNet相当甚至超过。GoogLeNet-v1模型仅含53MB参数,检测精度与VGG-19相当。

2.3 全卷积网络

全卷积网络(FCN)定义了一大类CNNs,它的最终输出参数是一个网格grid而不是向量vector。
通常,为了解决图像分类问题,需要使用一个或者多个全连接层,然后输出一个一维向量。一个新的方法是通过卷积层得到一个网格,然后通过平均池化降采样网格到一个描述类别概率的向量。

3 方法描述

3.1 检测流程

3.2 ConvDet

SqueezeDet检测流程受YOLO启发
ConvDet本质上是一个输出bbox坐标和类别概率的卷积层,它以滑动窗的形式在特征图上工作。在每个位置,计算出K(4+1+c)个值。K是推理中预选择的bbox个数。
ConvDet类似于Faster R-CNN中RPN的最后一层。主要的区别是,RPN相当于一个弱分类器只用来检测是否存在目标并产生目标提名,而分类通过全连接层完成(强分类器)。但是实际上,卷积层是足够强的,可以同时完成定位和目标分类。

3.3 训练方法

SqueezeDet检测网络可以进行端到端训练,类似于YOLO。
为了训练ConvDet层学习到检测、定位和分类,我们定义了一个多任务损失函数:第一部分是bbox回归损失函数;第二部分是置信值回归损失函数;最后部分是分类交叉熵。函数中的超参数系数是通过经验进行选择的。

3.4 神经网络设计

** 模型尺寸 ** SqueezeDet是通过Fire Module 构建的,包含压缩层(squeeze)做输入,两个并行扩展层做输出。压缩层和扩展层有效的在不损失太多精度的情况下减少了参数尺寸。
高能效 能量消耗最大的是DRAM访问,它的消耗是SRAM访问和浮点操作的100倍以上。减少DRAM访问的最直接办法是减少参数的内存访问。减少参数尺寸的有效办法是尽可能使用卷积层而不是全连接层。卷积层的参数可以获取一次,然后再所有数据中重复使用。除了模型尺寸,另一个重要的方面是控制中间操作的尺寸。
文中使用了两个版本的SqueezeNet结构:第一个是SqueezeNet v1.1模型,模型尺寸4.72MB,大雨80.3%的ImageNet检测精度;第二个是一个更强大的SqueezeNet变体,压缩率0.75,86%精度和19MB模型尺寸。我们使用ImageNet分类预训练这两个模型,然后增加两个随机初始化的fire modules到预训练后的模型顶端,然后连接到ConvDet层。
SqueezeDet accuracy

4 实验

Recall 召回率是自动驾驶安全的很重要指标,所以我们分析了我们模型的召回率。我们只保留最高概率的64个预测bbox参与非极大值抑制。那么保留的bbox数量如何影响召回率?我们设计实验将bbox保留数量N(_box)从8到15048进行实验分析,发现保留前64个时,召回率已经高于80%了。如果使用所有的15048个bbox,本模型可以达到91%召回率。

4.2 设计空间阐释

该部分用来验证一个关键的超参数对检测精度的影响。
图像分辨率 增加图像分辨率通常是提高检测精度的有效手段。但是大图像会导致大的中间操作和运算,长的运算时间。在实验中我们缩放图像到1.5x和0.75x。通过图表发现,方法图像实际造成检测精度下降了。(特列?)
** anchors数量** 图表显示,使用ConvDet模型时,增加anchors数量到16个时,只是增加了模型大小,运算和中间内存。
SqueezeDet exploration

原文地址:https://www.cnblogs.com/Osler/p/7746147.html