论文下载地址:https://arxiv.org/pdf/1807.11013v1.pdf
目录
提出目的和方法
提出目的
由于资源有限,当前的目标检测算法对于计算资源的需求非常大,因此这对于目标检测算法的部署本身不利,比如永远在线的设备,电池供电的低端设备等。
提出方法
考虑到计算资源和准确率之间的平衡,基于DSOD模型框架,设计了一个目标检测模型框架,,称之为Tiny-DSOD;具体方法是:Tiny-DSOD引入了两个创新且超高效的架构块:基于深度密集块(DDB)的主干和基于深度特征金字塔网络(D-FPN)的前端。。
整体模型架构
Depthwise Dense Blocks
图1(a)中的DDB-a单元受到MobileNet-v2中提出的新型反向残差块的启发。它首先将输入通道扩展w倍到w×n,其中n是块的输入通道数,w是一个整数超参数,用于控制模型的容量。然后,它应用深度卷积,并通过点卷积(即1x1卷积)将特征图进一步投影到g个通道(g是DDB-a的增长率)。最后,使用拼接将输入和输出特征图合并在一起,而不是MobileNet-v2中的残差加法操作。DDB-a有两个超参数w和g,因此将其表示为DDB-a(wg)。
DDB-a有两个主要缺陷。首先,假设堆叠了L个DDB-a块,堆叠结构的复杂度为O(L3g2)。这意味着资源消耗随着L的增加而迅速增长,因此即使只是将几个DDB-a堆叠在一起,同时必须将增长率g控制在一个较小的值。然而,较小的增长率g会损害整个模型的区分能力。第二,DDB-a拼接了浓缩的(即经过1x1卷积投影的)特征图,因此在两个相邻的DDB-a单元之间存在连续的1x1卷积。这种处理方式将引入模型参数之间的潜在冗余。
考虑到这一点,本文设计了另一种深度密集块,称为DDB-b,如图1(b)所示。DDB-b首先将输入通道压缩到增长率g,然后执行深度卷积。深度卷积的输出直接与输入拼接,而不需要额外的1x1投影。L个堆叠的DDB-b块的整体复杂度为O(L2g2),这比DDB-a的复杂度要小。实验中进一步验证,DDB-b在相似的资源限制下不仅更高效,而且比DDB-a更准确。因此,我们选择DDB-b作为构建最终主干子网络结构的基本单元。
Depthwise FPN based Front-end
GT Box和Anchor box之间的最佳匹配过程
难例挖掘(Hard Negative Mining)
论文Receptive Field Block Net for Accurate and Fast Object Detection详解(+代码详解)
实验部分
注:主要是对各个模块的消融,最终实验结果是在使用DDB-b模块和D-FPN模块时的效果是最好的。
Tiny-DSOD达到72.1%的mAP,显著优于大多数轻量级检测器,仅次于DSOD-smallest 。然而,Tiny-DSOD只有DSOD-smallest的1/6参数和1/5 FLOPs。在将模型与最先进的全尺寸模型进行比较时,确实存在轻微的准确度下降。然而,Tiny-DSOD需要的模型存储器持续内存要小得多,计算成本也更低。例如,Faster-RCNN 的准确度只比Tiny-DSOD高1.1%,但模型大小却大了140倍以上,理论计算成本则高出了180倍(实际上在fps上慢了10倍)。这些比较表明,Tiny-DSOD在资源(模型大小与FLOPs)和检测准确度之间实现了更好的平衡,对于资源受限的应用极为有用。
注:在KITTI 2D数据集上的测试结果一样说明了速度和精度方面,Tiny-DSOD做的更好。