SSD: Single Shot MultiBox Detector 论文翻译
SSD: Single Shot MultiBox Detector 论文翻译
目录
@TOC
摘要
我们提出了一种使用单个深度神经网络检测图像中目标的方法。我们的方法(SSD)将边界框的输出空间离散化为不同长宽比的一组默认框并缩放每个特征映射的位置。在预测时,网络为每个默认框中的每个对象类别的存在生成分数,并产生对框的调整以更好地匹配对象形状。另外,网络将来自具有不同分辨率的多个特征映射的预测组合在一起以自然地处理各种大小的目标对象。 SSD相对于区域网络生成的方法而言是简单的,因为它完全消除了区域生成后的像素或特征重采样阶段,并将所有计算封装在单个网络中。这使得SSD易于训练并且可以直接集成到需要检测组件的系统中。在PASCAL VOC,COCO和ILSVRC数据集上的实验结果表明,SSD与使用额外目标区域网络步骤的方法相比具有较高的精确度,并且速度更快,同时为训练和推理提供了统一的框架。在VOC2007数据集上,对于300×300输入,SSD在NFCidia Titan X上以59 FPS进行测试时达到74.3%mAP;对于512×512输入,SSD达到76.9%mAP,这个结果要好于最新的Faster R-CNN模型。与其他single single方法相比,即使输入图像尺寸较小,SSD也具有更高的精度。代码实现地址:[https://github.com/weiliu89/caffe/tree/ssd](https://github.com/weiliu89/caffe/tree/ssd)关键词:实时目标检测;卷积神经网络
1. 引言
当前最先进的目标检测系统都是由以下方法改进而来:假设边界框、对像素或每个框重采样,并使用高质量的分类器。在选择性搜索方法[1]出现之后,Faster R-CNN[2]在PASCAL VOC,COCO和ILSVRC数据集上进行检测取得最新的结果,这种思路流程在目标检测领域开始成为主流方式,并像文献[3]所述那样具有更深的特征。这种方法虽然精确度很高,但对于嵌入式系统来说计算量过大,即使对于高端硬件,这种方法对于实时检测的要求来说也太慢。通常这些方法的检测速度是以每秒多少帧(SPF)进行测量,甚至目前最快的高精度检测器Faster R-CNN模型的速度也才打到每秒7帧。目前有很多研究者尝试通过研究检测流程的每个阶段(参见第4部分中的相关工作)来建立更快的检测器,但是到目前为止,显著的速度提升仅仅是以精度的的显著下降为代价的。 这篇文章提出了第一个基于深度网络的目标检测器,这种检测器不需要对边界框假设的像素和特征的进行重采样,而且精度能达到一样的效果。这种方法在高精度检测中显著的提高了速度(在VOC2007测试集上可以达到59 FPS,mAP 74.3%;vs Faster R-CNN模型的7 FPS ,mAP 73.2%,YOLO模型下 45 FPS,mAP 63.4%)。这种方法在速度上的提高根本原因是消除了边界框区域和之后的像素或特征的重采样步骤。我们不是第一个去做这个方法的(cf[4,5]),但是通过添加一系列的改进,显著的提高了以前尝试的准确性。我们的改进包括使用一个小的卷积滤波去预测目标并在边框回归中抵消,使用分离的预测滤波对不同的长宽比检测,并在来自后面步骤的网络的多尺度特征图上使用这些滤波,为了去更能好的进行多尺度预测。随着这些修改——尤其是在不同尺度上使用多层网络进行预测——我们通过低分辨率的输入可以实现高精度的检测,进一步提高了检测的速度。尽管这些贡献看起来比较小和独立,但是我们注意到在PASCAL VOC数据集上提高了实时检测的精度,分别是YOLO:63.4% mAP和SSD:74.3%。这在当前的目标检测领域精度得到了很大的提高,也是残差网络很好的应用体现[3]。此外,显著的提高高质量目标检测的速度可以可以扩大计算机视觉的应用范围。
我们总结了我们的工作主要如下:
- 我们提出了SSD模型,他是一种单帧多尺度检测器且比目前最好的单帧检测器(YOLO)速度要快,而且精度更高,实际上使用基于Region Proposals更慢的技术(如:Faster R-CNN)也能达到同样的精度。
- SSD的核心是在特征图上使用小的卷积滤波器预测一个策略分数和边框偏移,以此来修正一系列默认的边界框。
- 为了实现高精度的检测,我们在不同尺度上的特征图上进行不同尺度的预测,而且通过长宽比明确的分离和预测。
- 这些特征图的设计会产生一个更简单的端到端的训练及更高的精度,甚至在输入低分辨率图像的情况下,可以进一步以牺牲精度为代价提高检测的速度。
- 实验包括SSD模型在PASCAL VOC,COCO和ILSVRC数据集上通过不同的输入尺寸进行时间和精度的分析评估,并与当前最新的一些检测方法进行比较。
2. 单帧检测器(SSD)
这部分描述了我们提出的SSD检测框架(见2.1)和训练的方法(见2.2)。之后第三部分展示了专用数据集模型方法的的细节和实验的结果。2.1. 模型
SSD方法在基于前馈卷积神经网络的基础上,对存在的目标对象实例产生一个固定尺寸大小的边界框和策略分数,并通过非最大抑制步骤去产生最终的检测结果。早期的网络层是基于标准的结构 在分类层之前使用高质量的图片分类截图,我们称这位基础的网络(VGG-16)。然后为这个网络添加一个辅助结构并根据下面的关键特征产生检测结果:多尺度特征图:我们在基础网络的最后一层添加一个卷积特征层。这些层的大小逐步下降并可以在多尺度层上进行预测。预测的卷积模型对每个特征层都是不同的(cf在单层上操作的的特征图: Overfeat[4] 和 YOLO[5])。
卷积预测:每一个添加的特征层(或者使用基础网络外的特征层)可以通过卷积滤波器产生一系列的检测预测。SSD网络的顶层结构表示如图2所示。
图2:一个在两个单帧检测模型中的比较:SSD和YOLO[5]。我们的SSD模型在基础网络的后面添加了一些特征层,它可以在不同尺度和长宽比以及置信度上预测出默认的边框。SSD模型是300300的尺寸输入,很明显的优于YOLO模型的448448的尺寸大小输入,相应的在VOC2007测试集上精度和速度都有所提高。
一个特征层的尺寸大小是m * n并有p个通道,检测器预测的基础元素是一个3 * 3 * p的小的卷积核元素,由它产生每一个预测的策略分数,或者一个默认边框的形状。在卷积核应用的每一个m * n的局部区域,都产生一个输出值。