目标检测论文阅读:Trident Networks

目标检测论文阅读:Trident Networks

论文链接:https://arxiv.org/abs/1901.01892
代码链接:预计本月公开
这周来介绍一下王乃岩大神团队比较新的一个成果。我在他的专栏中看到了这篇文章后,很感兴趣,看了之后,感觉有很多值得注意的点,方法比较直接、效果很好,对目标检测中的尺度问题比较关注的推荐亲自去看一下。

1. Background

尺度问题一直是目标检测领域比较核心的待解决的问题。目前,对于这个问题还没有比较彻底的解决思路,有两种比较好的方法来处理这一问题:

  1. 图像金字塔,即网络输入图像的多尺度,比如常见的multi-scale test的trick,这种方法需要耗费很大的计算量
  2. 特征金字塔,即融合不同深度的feature map来获得多尺度特征,比如FPN,这种方法速度更快,但是性能不好,按照论文的说法,是因为它牺牲了不同尺度的特征一致性(即不同scale的feature经过不同深度不同参数的变换,反应出来的特征会更全面和表达能力更强)

抛除这些结构上的因素,具体到DNN的设计上,影响DNN对尺度处理能力的因素主要有两点:

  1. 较深的层一般感受野越大,因此处理大目标的能力较强
  2. 过多的下采样层会损伤网络对小目标的检测能力

这篇文章探究了另一个可能的关键因素对目标检测的影响,即感受野的大小问题。并在此基础上,提出了Trident Network的结构来处理尺度变化,并附赠了权重共享、scale-aware training和快速inference方法等礼包,并附带了大量的对比实验,内容比较充实。

2. Method

2.1 感受野探究

通过使用dilated convolution,不同的rate可以使网络获得不同的感受野。作者通过resnet 50和resnet 101进行探究实验,改变了conv4 stage中residual blocks中的卷积为dilated convolution,得到了不同rate对不同尺度的performance:
在这里插入图片描述
结论也很直观:Dilation的rate越大,感受野越大,对大尺度的检测效果越好,个人认为这个对于尺度问题算是蛮重要的一个结论。在此基础上,自然而然地有了一个想法,如果可以对不同尺度的目标、同时能有大小不同的感受野去反应它们的特征,不就可以取得很好的效果了吗?

2.2 Trident Network

2.2.1 Multi-branch Block

既然要同时有不同的感受野,就要有多分支结构。作者提出的设想就是对某个特定的网络结构来说,只改变kernel不为1的卷积,为它们添加多个分支,每个分支采用不同的dilation rate。以ResNet的residual block为例,一般是1x1,3x1,1x1连续三个卷积核,其中3x3的卷积将用上述方法改良,获得三个由不同rate的dilate卷积构成的并行分支,改良后的结构称之为trident blocks。
在这里插入图片描述

2.2.2 权重共享

权重共享的含义是三个分支的三个kernel使用相同的参数,区别只是rate不同。这样有如下好处:

  1. 减少了参数数量,Trident Network和原来的网络相比,不需要添加额外的参数
  2. 符合motivation,也就是文章一开始提到的feature pyramids的不足,让不同尺度的目标在同一层经过一个统一的变换,增加特征表达能力
  3. 变换参数,也就是卷积参数,可以同时在不同感受野的分支上学习所有尺度的目标,样本数量增加,也减少了过拟合问题
2.2.3 scale-aware训练策略

该策略类似于SNIP的思路,详情可以看这里的介绍。核心就是,让感受野小的分支训练小尺度的目标,感受野大的分支训练大尺度的目标,就是将所有尺度的目标按照大小的不同分配到不同的分支上,各个分支各司其职。
具体实现来说,是给每个分支指定一个范围,若gt的大小超出该范围则对该分支来说属于非法的gt,不计入考虑。在RPN的anchor label assignment阶段,只选择valid的gt。因为和SNIP的思想很类似这里不再多做介绍。

2.2.4 Inference

简单来说,由于存在多分支,最后inference的时候,会像SNIP一样,每个分支预测出来的结果,只有大小没超出该分支合法范围的gt才作数。最后会统计所有分支的结果进行汇总。
而作者提出的fast inference approximation就是用rate为2的分支近似替代三个分支,来加速预测。

3. Experiment

作者做了很多对比实验,时间关系不一一介绍,仅介绍几个比较主要和我觉得比较注意的.

  1. 多分支、权重共享和scale-aware策略的实验,可以看到单纯的多分支已经有很明显的提升
    在这里插入图片描述

  2. trident blocks在网络中的位置:
    在这里插入图片描述
    对于resnet 50来说,最好的是conv4,也就是Build RPN的stage,作者认为这是conv2和conv3的stride不大,不足以区分三个分支。

  3. fast inference的时候,不同分支指定的尺度范围的影响:
    在这里插入图片描述
    这个现象其实很有趣,因为如果inference的时候不在所有分支上,不使用training aware策略反而看起来更好,且medium branch的范围越大效果越好,这应该是由于只喂给了medium branch特定尺度的object,却让它在检测时候要处理所有尺度的Object的原因。

4. Results

网络在wtihout bells and whistles的情况下,可以获得42.7 AP,而像目前很多算法一样添加上所有tricks之后,可以得到48.4 AP的优异效果。使用fast inference,这两个数字也有42.2/47.6。
概括一下,这个工作还是条理清晰、很干净的,对感受野的研究个人认为算是一个比较重要的结论,以后应该也会有用武之地。其实在一开始看的时候,感觉文章和ASPP思路有点像,但是仔细想想在motivation和结构设计上还是有很大不同的,欢迎大家留言交流~感兴趣的推荐自己去看一下这几篇文章,利用不同rate来处理不同尺度这一思想还是很有前景的。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值