三分支网络——目前目标检测性能最佳网络框架

尺度变化是目标检测中的关键挑战之一。今天要说的这个技术就特别厉害,在目标检测领域中,目前是性能最强的一个框架。下面让我们一起去见证下它的优势所在。

本次介绍的算法框架:

Scale-Aware Trident Networks for Object Detection

下载地址:https://arxiv.org/abs/1901.01892

在该网络框架中,首先进行了一个控制实验,以研究感受野对不同尺度目标检测的影响。根据勘探实验的结果,提出了一种新的三分支网络(Triddnet),该网络的目标是生成具有均匀代表性的标度特征图。

等下~今天主角是Trident Network,但是其是借鉴了CVPR一篇文章中的Multi-Scale思想,所以接下来我还是有必要带大家了解下那片高质量文章及其框架,那就是——SNIP。那我们开始梳理下SNIP是如何目标检测的。

论文链接:https://arxiv.org/abs/1711.08189

这个框架研究点是目标检测中的小目标的问题。小目标检测一直是目标检测中的难题,如果自己实践过的小伙伴应该都知道,数据集中small类的AP基本都是最低的,主要原因如下:

从上图可以看到,COCO数据集中90%的样本例子的大小都在0.472以下,和ImageNet差别非常大。

  • 说明了类似COCO这样的数据集中存在着大量的小物体;

  • 也说明了ImageNet预训练的模型在迁移到样本大小差异较大的COCO数据集中,很可能产生一定的domain-shift偏差。

于是,就由生了这样的动机

实际上,现在有很多针对小目标的措施和改良,如下:

  • 最常见的是Upsample来Rezie网络输入图像的大小;

  • 用dilated/strous等这类特殊的卷积来提高检测器对分辨率的敏感度;

  • 用FPN这种把浅层特征和深层特征融合的,或者最后在预测的时候,用浅层特征和深层特征一起预测;

  • 有比较直接的在浅层和深层的Feature Map上直接各自独立做预测的,这个就是我们常说的尺度问题。

主要思路:

在训练和反向传播更新参数时,只考虑哪些在指定的尺度范围内的目标,由此提出了一种特别的多尺度训练方法,即SNIP(Scale Normalization for Image Pyramids)。

如上图所示,在训练时划分了三类尺度,对应三种不同分辨率的图像。每个分辨率下的RoI都有其指定范围,如果GT的box大小在这个范围内,就被标记做valid,否则就被标记为invalid。

在生成Anchor并给Anchor分配label的时候,检查该Anchor是否和某个invalid GT box的overlap超过0.3,若存在,则该Anchor会被视作invalid Anchor;若不存在,则会被视作valid Anchor。

这些invalie anchor在train的时候都会被无效化,也不会加入到反向传播的过程中从而对参数产生影响,相当于在每个分辨率上,只对大小合适的目标进行训练,这就符合了该网络框架设计的初衷。相应的,在inference时候,如果区域面积在那个分辨率的指定范围外,也同样会被抛弃,最后,在进行Rescale和NMS等操作。

仔细阅读后,你会发现该框架考虑了很多细节元素:

  • 用的是Deformable RFCN detector,而不是常见的卷积,根据自己的需要作出一定的改变 ;

  • 网络结构是Dual path networks(DPN)和ResNet-101,由于需要内存很大,为了适应GPU内存,对图像进行了采样,具体方法是选取一个1000x1000的包含最多目标的区域作为子图像,然后重复该步骤直到所有目标都被选取 ;

  • 为了提升RPN的效果,尝试了使用7个尺度,连接conv4和conv5的输出;

  • 从功能上来讲,对每一层金字塔图像,分别检测不同尺寸的目标,金字塔图像越大,检测的目标尺寸越小;

  • 从网络结构上来讲,3个分支进行参数共享,故网络结构完全一致,区别在于目标尺寸的超参数不同。

实验结果

MS表示multi-scale

今天貌似讲多了,那我们下期认真讲解Trident Network,大家记得关注哦!

点一下好看再走吧

(0)

相关推荐