小目标检测论文阅读

下面记录了一些论文的阅读总结:

算法发展历程:

  • 传统图像算法:

传统图像算法使用hand-made feature,常用方法有SIFT、HOG、图像金字塔等。对于小目标的检测,传统图像算法有人工复杂度高,模型泛化性差等缺点,因此逐渐被深度学习模型取代。

  • 深度学习:
  1. 小目标检测在深度学习卷积神经网络模型中一直是一个难题。早期的目标检测框架(R-CNN、YOLO系列)对于小目标检测的效果都不甚良好。近两年提出了利用多层特征图的方法(特征金字塔、RNN思想、逐层预测),对小目标检测的效果产生了显著的提升。
  2. 现阶段主流算法:
  • 图像金字塔:较早提出对训练图片上采样出多尺度的图像金字塔。通过上采样能够加强小目标的细粒度特征,在理论上能够优化小目标检测的定位和识别效果。但基于图像金字塔训练卷积神经网络模型对计算机算力和内存都有非常高的要求。计算机硬件发展至今也难有胜任。故该方法在实际应用中极少。
  • 逐层预测:该方法对于卷积神经网络的每层特征图输出进行一次预测,最后综合考量得出结果。同样,该方法也需要极高的硬件性能。
  • 特征金字塔:参考多尺度特征图的特征信息,同时兼顾了较强的语义特征和位置特征。该方法的优势在于,多尺度特征图是卷积神经网络中固有的过渡模块,堆叠多尺度特征图对于算法复杂度的增加微乎其微。
  • RNN思想:参考了RNN算法中的门限机制、长短期记忆等,同时记录多层次的特征信息(注:和特征金字塔有本质区别)。但RNN固有的缺陷是训练速度较慢(部分操作无法矩阵化)。(待补充原因)

 

1 算法调研

Hypercolumns for Object Segmentation and Fine-grained Localization

  1. 算法思想:
  • 传统做法:(CNN进行图像处理的这一批模型)使用卷积神经网络中最后一层的输出作为这张图像最终的feature map进行object classification。
  • 缺点:CNN网络的最后一层对类别层的语义信息比较敏感,而对扰动(姿态,光照,关节和位置)不敏感。细粒度的分析包括目标分割,姿态分析等,直接使用最后一层不是最优的选择。顶层卷积层的feature maps对信息进行了高度的提取,缺少进行精确定位的信息;中间层的feature maps具有精确定位的信息,但是不能够捕捉整个语义的信息。
  • 本文想法:将每一卷积层中得到的feature maps信息按照一定方式进行“汇总”,得到(超列)“hypercolumns”,用这个既包含了语义信息又包含了位置信息的向量来进行像素的精细化定位。
  • 具体做法:
    提取信息:传统CNN的流程得到每一层的feature maps
    → 统一大小:用双线性插值法(bilinear interpolation)来resize 每一个feature maps,完成上采样工作,达到统一大小的效果
    → 拼接矩阵得到hypercolumn:直接将需要的中间层的feature maps拼接起来得到一个很长的矩阵,矩阵中的每一个向量就表示了这个像素点的所有信息。这个矩阵上每个向量就代表了一个像素点的hypercolumn。(实际计算的时候并不是针对每一个pixel进行的,而是将图片进行划分为多个grid,针对每个grid进行这样的操作)
    → object classification:在每个grid上进行分类。

小目标检测论文阅读_第1张图片

每一个pixel用hypercolumn来表示,每一个hypercolumn都包含了需要层的feature maps中的信息

小目标检测论文阅读_第2张图片

  1. 效果:

小目标检测论文阅读_第3张图片

用hypercolumns这种想法进行bounding box的识别,可以得到更加精确地效果。

Detecting Objects in Context with Skip Pooling and Recurrent Neural Networks

  • 算法思想:本文提出了内外网络结构,通过利用ROI区域的内外部的信息进行区域识别。在外部,通过两个IRNN网络整合ROI区域之外的图像信息;在内部,通过Skip Pooling提取多个尺度(conv3/conv4/conv5)上的信息;将内外部信息结合,用于分类和位置修偏。
  • 具体操作步骤

1 通过ROI pooling层,将内部信息(conv3/conv4/conv5)以及外部信息固定到统一的大小;

2 将得到的大小统一的特征信息分别进行尺度上的标准化后,进行串联,得到一个高维度的特征信息;

3 对这个特征信息进行尺度和维度上的调整后,送入全连接层,进行分类和位置修偏。

小目标检测论文阅读_第4张图片

  • 效果:通过结合上下文信息和多尺度特征信息,提高了小目标的检测精度。下图为将AP进行归一化之后的对比结果。最左侧的蓝色部分代表fast rcnn的检测精度;最右侧的粉红色部分代表本文的一个模型的检测精度。可以看出,小目标物体的检测精度有了极大提高。

小目标检测论文阅读_第5张图片

Feature Pyramid Network

  • 算法思想:作者提出了从上到下的路径和横向路径。从上到下的路径是指对网络结构深层的特征图进行上采样操作,使其跟网络浅层特征图大小一致,从而能够进行特征图堆叠。横向路径是指对每一卷积模块的最终特征图,采用1X1卷积核进行降通道操作, 减少特征图的个数。最终利用堆叠起来的多尺度特征图进行分类及定位的模型学习。
  • 算法效果:对于FPN做法的可行性,作者指出,浅层特征图的语义特征较弱,而位置特征较强;相反,深层特征图的语义特征较强, 但损失了精确地位置特征。同时利用浅层特征图和深层特征图,能够综合考量强位置特征和强语义特征,因此提升模型效果。

Fully Convoluntional Network

  • 算法思想:整体思想与FPN相似。创新点在于(1)舍弃了全连接层,将全连接层换为等价的1X1卷积核,从而使得网络输入的图片尺度可以不一致。(2)对堆叠后的特征图继续进行上采样,使得其和原图大小一致。对上采样后的堆叠特征图,在其映射到原图位置的像素点上做分类预测。这样,可以基于原图做出精细的图像分割。
  • 算法效果:FCN开创了精细图像分割的先河,其之后的MASK-RCNN等算法也借鉴了其思想。对于小目标检测,可以通过像素点的分类,做出更精细的位置划分。

Learning Object Detectors from Scratch with Gated Recurrent Feature Pyramids

  • DSOD算法思想:可以简单理解为SSD+DenseNet=DSOD。首先去掉了ROI Pooling,Faster-RCNN这类方法不收敛,SSD收敛,所以作者选择了SSD进行改进,之后加入DenseNet思想,特征会影响之后的layers,从而构建出了DSOD。

小目标检测论文阅读_第6张图片

缺陷:单层的特征金字塔只有一个尺度的特征表达,像SSD,FPN ,各层的特征相互独立,没有关联;另一重要限制在于当前最优的方法中的每层金字塔贡献出的监督信息是固定的。

  • GRP-DSOD算法思想:简而言之就是一种根据中间层不同尺度动态调整监督强度的目标检测方法。这种方法是DSOD方法的改进。针对上面的缺陷提出了以下两种方法改进。
    • 提出了recurent feature pyramid,通过拼接高水平的语义特征和低水平的空间特征到单个金字塔层中;于是在当前层拼接了下采样得来的细粒度信息以及上采样得来的粗粒度信息,使每个预测层含有丰富的多尺度特征。

小目标检测论文阅读_第7张图片

应用了一个门限机制,在小尺度上的目标很容易被细粒度特征(低水平)检测到,此时,从低水平特征得来的信号应该被增强 ,在大尺度上的目标很容易被粗粒度特征(高水平)检测到,此时,从高水平特征得来的信号应该被增强。

小目标检测论文阅读_第8张图片

    • 算法效果:DSOD这种方法总结就一句话:作者不用预训练,一切从零开始撸起袖子干,照样干的和其他的state-of-art一样好!而GRP-DSOD的Map也有了一定的改进。

小目标检测论文阅读_第9张图片

以上是一些算法调研,最终针对项目我们使用了FPN+FasterRcnn,这个模型在Detectron中有demo。

你可能感兴趣的:(深度学习,图像处理)