目标检测--- STDN:Scale-Transferrable Object Detection

STDN:Scale-Transferrable Object Detection

CVPR2018

http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhou_Scale-Transferrable_Object_Detection_CVPR_2018_paper.pdf

概述

当前目标检测领域主要两大分支,一个是特征提取+分类器的经典的faste-rcnn结果及其变形,还有就是基于回归的,需要one-stage的SSD,yolo及其分支结果。此算法为SSD的改进分支,属于典型的one-stage物体检测模型,作者尝试通过尺度变换模块(scale-transfer module )去解决物体检测中不同目标检测时的尺度问题,取得了不错的效果,并兼顾的速度和准确性

STDN模型介绍

为解决物体检测中的多尺度问题,特别是提高对于小物体的检测效果,一些经典的算法不断出现,例如FPN、DSSD等,通过整合不同尺度的语义特征,在不同尺度的map上做预测,但是这些方法,在提高对于目标物体特别时小物体识别效果的同时由于加入了额外的层,也增大了计算量,影响了检测的实时性。下图显示了目前主流方法与本文方法之间的不同。通过(d)图我们可以发现,本文的scale-transfer module不仅改变了预测层map的尺寸,也改变了部分层的通道数。

针对以上问题,作者提出尺度变换模块(scale-transfer module    STM),即获得了不同尺度的语义特征,又没有增加额外的参数,降低检测的速度。其整体框架基于SSD,基础网络采用的是DenseNet-169,DenseNet通过多层连接的方式整合低层和高层信息,其特征提取能力较强。STDN模型的主要框架如下:

整体网络结构与SSD类似,提取DenseNet-169的最后一个Dense block中的6个concatenate层作为预测的特征层。与SSD直接利用VGG16后几层直接预测不同的是,STDNC则加入了独创的STM,在不增加任何参数和计算量的同时达到基于低分率特征map获得高分率特征map的目的,最终实现整体网络正确率和速度的提升。

STM模块简介

STM模块由池化层(Pooling)和尺度转换(scale-transfer)层组成。基础网络DenseNet-169最后一个block的尺寸为9*9,各层之间的通道数不同。为了获取不同尺度的特征map,作者将STM直接嵌入到DenseNet中,具体做法如下:①Pooling用来获得小尺度的特征map②尺度转换层通过减少feature maps的通道个数获得大尺度的map,整个过程没有增加任何参数。

参考上图整体模型结构,对于①很好理解,即是一般池化过程获得较小分辨率的map;对于②则相当于增大的map尺寸而压缩了通道数。作者在文中说“The scale-transfer layer is an operation of periodic rearrangement of elemenets”,并用了一个看似很深奥的公式表示这一过程

博主当时看到如此解释和公式时一时也没能理解,但是结合作者给出的一个示意图和网络模型的最后两层就非常好理解。

我们以网络的最后一个预测层为例,DenseNet-169的输出维度为9*9*1664,经过一个4X的scale-transfer后变为36*36*104。如作者所说,整个过程是像素值周期排列的过程,在此次变换中r=4,变换后的第一个通道上一个r*r像素块的像素值相当于是原来前r*r个通道上1*1的像素值的重新排列。在这个不得不佩服作者的奇思妙想,在不增加任何参数的情况下完成了不同尺度特征的提取!

STDN总结:对于小尺度的,平均池化。对于大尺度的特征,将多个通道的特征点排列组合成一个通道,放大特征图

实验结果

作者分别在COCO和VOC2007等多个数据集上对STDN进行了实验比较,结果如下:                

从上图可以看出,STDN在取得较高准确率的同时又兼顾了速度。例如STDN321和513两个模型相比于Faster-RCNN、YOLOv2、SSD、DSSD等,首先在正确率上已具有相同或者更高的水平,但是在速度上优势很大,特别是对于准确率较高的R-FCN和DSSD513简直是碾压。

猜你喜欢

转载自blog.csdn.net/qq_20481015/article/details/81535214