Enhancement of SSD by concatenating feature maps for object detection(R-SSD)

github地址:https://github.com/soo89/Rainbow-SSD

摘要

我们提出了一种对象检测方法,该方法提高了传统SSD(Single Shot Multibox Detector)的准确性,该方法是精度和速度两方面的顶级目标检测算法之一。深度网络的性能已知晓,提高了数字的性能。然而,它很难提高性能,但是会略微提高性能图表的数量。在本文中,我们提出并分析如何有效地使用功能映射来提高传统SSD的性能。通过改变靠近分类器网络的结构,而不是靠近输入数据来增加层数,例如通过用ResNet替代VGGNet,可以获得增强的性能。所提出的网络适用于在分类器网络中共享权重,通过这些属性,训练可以更快,并具有更好的通用化功能。使用VOC2007和VOC 2012训练集进行ForthePascalVOC2007test集训练后,输入尺寸为300×300的网络在速度为35.0FPS(帧秒)时达到78.5%mAP(平均平均精度),而使用Nvidia Titan X GPU的网络以512×512比例输入达到80.8%mAPat16.6FPS。所提出的网络显示了最先进的mAP,比传统的SSD,YOLO,Faster-RCNN和RFCN更好。而且,它比Faster-RCNN和RFCN更快。

1、介绍

目标检测是计算机视觉研究的主要领域之一。 近年来,卷积神经网络(CNN)已经以各种方式应用于物体检测算法,提高了物体检测的准确性和速度。

在各种目标检测方法中,SSD [11]相对较快且对尺度变化具有鲁棒性,因为它使用多个卷积层进行目标检测。 尽管传统的SSD在速度和检测精度方面表现良好,但它具有双点支持。 首先,如图1所示,它显示了传统SSD的结构,各层中的每一层都独立地用于分类器网络。 因此,可以在多个比例中检测相同的对象。考虑下层(如Conv4-3)中的特征映射的某个位置被激活。 这个信息可以延续到最高层(Conv11-2),这意味着更高层的相关位置有很好的机会被激活。

 

图1:传统SSD的整体结构。 用作分类器网络输入的从Conv4-3到Conv11-2的层被表示为特征金字塔。 特征金字塔中的每个图层都负责检测相应大小的对象。

但是,SSD不考虑不同比例之间的关系,因为它仅针对每个比例查看一个图层。 例如,在图5(a)中,SSD为一个对象寻找各种尺度框。

其次,SSD具有小型物体检测不到的局限性。 这不仅仅是SSD的问题,而是大多数物体检测算法的问题。 为了解决这个问题,已经进行了各种尝试,例如用更强大的基础网络取代基础网络,例如用ResNet替换VGGNet [3,8]或增加一个层次中的channel数目[7]。 图5(b)显示SSD在检测小物体方面存在局限性。 特别是,在这两个图中,船上和小牛的人分别未被检测到。

在本文中,我们解决这些问题如下。 首先,考虑特征金字塔中各层之间的关系来实现分类器网络。 其次,一层中的通道(或特征图)的数量有效地增加了。 更具体地说,只有特征金字塔中的图层才允许增加特征图的数量,而不是增加基础网络中的图层数量。 所提出的网络适用于在不同规模的分类器网络中共享权重,从而形成一个分类器网络。 借助先进的泛化性能,可以加快训练速度。 而且,这种分类网络的性能很少用于小型数据库。 在传统的SSD中,如果没有一定大小的对象,那么这个大小的分类器网络就无法学习任何东西。 但是,如果使用单个分类器网络,则可以从不同规模的训练实例中获取有关对象的信息。

如图5(c)所示,使用该建筑结构,我们的SSD版本可以防止为一个对象检测多个box。 另外,如图5(d)所示,通道数量可以有效地增加以检测小物体。 所提出的方法显示了与传统SSD相比稍微降低的速度的最先进的mAP(平均平均精确度)。

本文的结构如下。 在第二部分中,我们将在第三部分中介绍对象检测领域中的相关工作,然后提出一个不同版本的SSD,在第三节中被称为RainbowSSD。第四部分将介绍该算法的实验和评估。在第五部分,讨论 并且提出了所提出的方法的一些示例性结果。 最后,本文在第6节中得出结论。

 

图2:传统的SSDvs。 (a)对于一个对象有两个box的SSD; (b)SSD用于小物体; (c)一个对象用一个box的R-SSD; (d)小型物体的R-SSD

2、相关工作

使用深度学习的各种方法已应用于对象检测问题,并继续显示性能改进。 在由R-CNN(基于区域的CNN)开创的早期工作中[4],候选区域是通过单独的算法如选择性搜索[16]或边缘框[19]提出的,并且分类是通过深度学习来进行的。

尽管R-CNN使用快速学习提高了准确性,但速度和速度问题以及端到端的学习是不可能的。 区域提案网络(RPN)首先在faster R-CNN中提出,它显着提高了对象检测器的速度,并能够学习端到端。

YOLO(你只看一次)通过将单个图像分成多个网格并同时在每个网格中执行定位和分类来大大提高速度[14]。 虽然YOLO通过集中速度检测对象,但YOLO的增强版本YOLO,去除了有效的连接层和使用的anchor box,以提高速度和精度。

另一方面,SSD在给定的位置和比例上创建边界框候选者,并获得他们每个类的实际边界框和得分[11]。 最近,为了提高SSD的准确性,尤其是对于小物体,提出了使用大容量金字塔尺寸的超大规模集成文本的DSSD(反卷积SSD)[3]。 DSSD应用汇编模块到特征金字塔,并使用ResNet而不是VGGNet。 DSSD成功地提高了速度的精度。

除了目标检测领域之外,分割领域也深受应用深层神经网络的开发。 他们中的许多人使用基于像素的物体分类结合上采样或反卷积来获得与输入图像相同大小的分割结果[12,18]。 此外,功能通过各种方式设计,以元素为单位,以逐元素方式产生,以获得改进的性能。 本文的启发是,我们从不同尺度的特征中提取原始图像的抽象表示[1,5]。

 

Figure 3: Proposed methods of feature concatenation: (a) concatenation through pooling (b) concatenation through deconvolution; (c) rainbow concatenation through both pooling and concatenation. (best viewed in color. See Fig. 1 for comparison.)

 

3、方法

如上所述,我们提高SSD准确性的策略是让分类器网络充分利用特征金字塔中各层之间的关系,而不必改变与输入数据紧密相关的基础网络。 此外,它还可以有效地增加特征金字塔中的通道数量。

图3显示了增加不同层数的不同层数对于分类器网络利用特征金字塔中各层之间的关系的方法。 为了实现这一点,在图3(a)中,较低层中的特征映射通过pooling连接到较高层的特征映射。 这样,具有大接收域的分类器网络可以丰富对象检测的表示能力。 另一方面,图3(b)展示了通过反卷积或上采样将上层的特征映射图连接到下层特征的方法。 图3(c)示出了利用较低层合并和较高层反卷积的特征映射连接方法。

需要注意的一点是,在连接特征映射之前,规范化步骤是不可避免的。 这是因为不同图层中的特征值在比例上有很大差异。 这里,batch size归一化[6,10]应用于每个过滤器之前的过滤器。

 

Table 1: The number of boxes for each classifier network and the number of total boxes

所有上述方法都具有可以进行端到端学习的优点。 有关每个更详细的描述如下。

3.1 Concatenation through pooling or deconvolution

在SSD的结构中,一般来说,下层的通道数量要多于上层的通道数量。 为了明确特征金字塔之间的关系并有效地增加channel数量,我们通过pooling或者通过反卷积将较低层的特征图连接起来来连接上层的特征映射。 与DSSD [3]不同,DSSD [3]使用由3卷积层,1卷积层,3卷批次归一化层,2 Relu和元素产品组成的反卷积模块,我们的反卷积级联模型仅采用batch size归一化反卷积,不需要单元乘积。

这些结构的优点是可以利用来自其他层的信息执行对象检测。 另一方面,缺点是信息流向单向,分类网络不能利用其他方向信息。

3.2 Rainbow concatenation

如图3(c)所示,在Rainbow pooling中,同时进行pooling和反卷积,并在不同层次之间建立关联关系。 在将每个图层中的要素汇集或解构为相同大小后,我们将它们连接起来。 使用这些共同的特征,检测是在物体的尺寸小于或大于特定尺度的情况下进行的。 也就是说,它可以有更多关于对象的附加信息,而不是对象的对象。 因此,如图5(c)所示,预期特定大小的对象可能仅在特征金字塔中的适当层中被检测到。

另外,低层特征通过高层特征的串联而具有限制性表现,导致像DSSD [3]中的小物体检测的良好表示能力,而没有太多计算开销。

通过raindow concatenation,每个特征金字塔层总共包含2,816个特征映射(512,1024,512,256,256和256个通道的concatenation)。 由于特征金字塔中的每个图层现在具有相同数量的特征图,因此可以为不同图层中的不同分类器网络共享权重。 传统SSD的每个分类网络检查4个或6个default boxes,并且所提议的raindow SSD可以在不同层中统一具有权重共享的default boxes(在feature map的每个小格(cell)上都有一系列固定大小的box)。如表1所示,传统的SSD产生了8,732个盒子。 另一方面,在带有4个默认框的共享分类器中,该数字变为7,760,同样,对于具有6个默认框的共享分类器,它总计为11,640。

 

3.3 Increasing number of channels

众所周知,通道数越多,性能就越好。 为了演示我们的方法是多么有效,我们提出了一个比较模型,为此我们只需更改原始基础网络中的通道数量,如表2所示。与SSD一样,减少的VGG-16预训练模型用作 基础网络。 通道数量和通道数量都是原始网络的2倍到8倍。 从此以后,这种比较网络将被认为是I-SSD,这意味着增加了channel SSD。

4、Experiments

为了评估所提出的算法的性能,我们test了PASCAL VOC2007数据集的各种SSD版本[2]。 VOC数据集由20个对象类组成,其中包含注释的地面真实位置和每个图像的相应类别信息。

我们用VOC2007和VOC2012'训练'数据集训练了我们的模型。 输入300×300的SSD的batch size为8,学习率从10-3降至10-6,10-1。 学习速度分别为80K,20K,20K和20K。 因此每个模型的迭代总次数为140K。 512×512输入模型以batch size=4进行,学习率等于300×300模型的学习率。 在速度的情况下,通过使用batch size为1的网络的正向路径来测量。使用CAFFE时间函数,使用cuDNN v5.1完成实验。 因此,如果从预处理(调整大小图像等)开始测量检测时间,则可能需要更长的时间。

 

在表中,YOLO [14],YOLOv2 [13],Faster R-CNN [15],R-FCN [8]和DSSD [3]的表现从他们的主页或各自的论文中获得。 为了观察各种性能提升方法的性能,我们使用3.1节中描述的通过pooling(SSD pooling)和反卷积(SSD去卷积)连接的功能进行实验性实验。 我们还test了3.3节中描述的ISSD以进行比较。 test了三种类型的R-SSD。 第一个使用单独的分类器网络,用于不同的标度,以及第3.2节中描述的四个或六个默认的盒子标度。 传统的SSD也由我们自己进行了train和test。

在表中,YOLO [14],YOLOv2 [13],Faster R-CNN [15],R-FCN [8]和DSSD [3]的表现从他们的主页2或各自的论文中获得。 为了观察各种性能提升方法的性能,我们使用3.1节中描述的通过池化(SSD池化)和解卷积(SSD去卷积)连接的功能进行实验性实验。 我们还test了3.3节中描述的ISSD以进行比较。 test了三种类型的R-SSD。 第一个使用不同尺度的分类分类器网络,其余两个分类器使用第3.2节描述的4或6个default boxes分类器的通用分类器。 传统的SSD也由我们自己进行了train和test。

ISSD:对于300输入模型,我们通过将通道数量从2倍增加到8倍,实验了ISSD,将不同的层数作为表3.3。 因此,与传统SSD相比,mAP有0.4%的mAP提高了准确度,78.1%的mAP。然而,由于通道数量的增加,速度降至26.9 FPS.

Concatenation through pooling or deconvolution:对于300个输入模型,通过去卷积和通过去卷积的串联分别为77.1%和77.3%,这是比传统SSD降低0.6%和0.4%的性能。 此外,二者的复杂性增加,速度分别降低到48.3 FPS和39.9 FPS。

R-SSD:对于300输入模型,与传统SSD相比,精度提高0.8%,mAP为78.5%。 但是,由于计算复杂性增加,速度降至35.0 FPS。 对于512输入模型,其结果是mAP为80.8%,比传统SSD好1%。 但其速度降至16.6 FPS。 特别是,比较两款SSD 512机型,回收率为0.8时的精度提高2.9%,召回率为0.9时提高8.2%。 对于具有300个输入模型的单个分类器模型,当分别使用四个和六个默认框时,它具有76.2%和77.0%的mAP。

5、Discussion

5.1 Newe valuation method

目标检测最常用的评估技术是mAP。 AP(平均精度)是一个集成精度的概念,因为recall从0到1变化,并且mAP被定义为所有对象类别的AP的平均值。

 

在图4中,我们展示了PASCAL VOC 2007测试数据的召回率与平均精度图。请注意,平均精度(垂直轴)是所有对象类别的平均值。在图中,我们可以看到不同版本的SSD(SSD 300,SSD 512,R-SSD 300,R-SSD 512)对于小的(<0.5)召回值具有几乎相同的平均精度。由于这个原因,即使大算法的精度在算法之间存在显着差异(SSD 300和R-SSD 512的差异大约为14%),mAP的差异相对较小(对于SSD 300和R-SSD 512大约为3%)。考虑到大多数物体检测算法(例如自主车辆)的用例,在高recall(> 0.7)下测量的精度值比在小回叫值下测量的精度值更重要。因此,在表4中,我们展示了通过仅平均0.7或更高的平均值计算出的mAP。在表格中,我们可以更清楚地看到R-SSD在SSD上的有效性。在召回0.9时,R-SSD(512)超过SSD(512)超过8%。注意事项1,所有事件都应该记录在案。无论我们如何降低分数阈值,这些都可能导致设备无法正常工作。

5.2 Concatenation by pooling or deconvolution

尽管这两种模型在多层之间建立了明确的关系,并增加了通道数量,但与传统SSD相比,它们的准确度和速度均较差。 这两个模型需要执行更多的操作,因此速度可能会下降。 至于准确性,可以推测出原因可以认为与其他图层共享相同特征图的图层会受到其他图层损失的影响,并且不能完全关注比例尺。 也就是说,他们无法在规模上正确学习。

5.3 Singleclassifiervs. Multipleclassifiers

与传统的SSD不同,因为R-SSD具有相同尺寸的不同层的相似特征映射,因此可以共享分类器网络。在这里,通过统一每个特征金字塔等级中的信道数量来实现单个分类器网络的实验。如表3所示,盒子数量有所不同,但速度差别不大。相比之下,性能比传统SSD低1.2%和0.7%。然而,单一分类器的优点是学习可以有效,特别是当不同尺寸的软雨样品之间存在显着的不平衡时。在这种情况下,传统的SSD无法训练具有少量样本的规模的分类器。但是,在R-SSD中,由于分类器网络是共享的,因此避免了这个问题。此外,单个分类器在训练的早期阶段速度更快。因此,即使对于大型数据集,R-SSD也可以通过在早期阶段训练单个分类器来快速训练,并且在某个时刻,分类器可以分别进行不同规模的训练。

 

5.4 Accuracy vs. Speed

传统SSD是精度和速度两方面的顶级物体检测算法之一。 对于SSD300或SSD512,它分别具有77.7%的mAP和79.8%的mAP,具有61.1FPS和25.2FPS。 查看ISSD的结果与我们的算法进行比较,ISSD的精度增益为0.4%,但速度降至26.9 FPS。 在我们的实验中,R-SSD显示速度有点慢,精度提高。 与ISSD相比,R-SSD显示出更高的精度和更快的速度。 此外,它显示了比传统SSD大约1%的mAP改进。 我们的R-SSD显示速度高达15%,mAP为80.8%。 与具有相似准确度的R-FCN相比,R-SSD快三倍。

5.5 Performances for different scales

表5显示了每个对象大小的回忆[9]。 通常情况下,应该获得AP或AR(平均召回),但VOC2007测试集共有12032个对象,其中567个是小对象。 在评估小对象的性能时,有几个类没有对象。 因此,我们整合所有对象来衡量召回。 当物体尺寸较小时,R-SSD300和R-SSD512分别检测到比SSD300和SSD512更多的物体。 可以看出R-SSD没有放入一些小物体。 在中等尺寸的情况下,R-SSD300比SSD512更具召回性。 此外,当物体尺寸较大时,所有模型的召回显示超过0.93的较高值。 R-SSD300,SSD512和R-SSD512的差异不到7,641个中的10个。

6、Conclusion

在本文中,我们提出了一种可以有效解决传统SSD问题的彩虹级联方案。 该论文的贡献如下。 首先,它会在每个特征金字塔等级之间创建相互关联的船舶,以防止不必要的检测,例如针对一个对象的不同比例的多个箱子。 其次,通过有效地增加特征金字塔中每个图层的特征图的数量,精确度得到改善,而没有太多时间开销。 最后,不同层次的特征映射的数量匹配,可以用来分配不同层次的特征映射。 通过使用分类器,可以预期泛化性能的改进,并且可以有效地使用,并且可以使不均衡的数据集小很多。 提出的R-SSD是同时考虑精度和速度的结果,并且在速度超过15 FPS的情况下显示出现状态。

猜你喜欢

转载自blog.csdn.net/qq_36396104/article/details/84995158
ssd