zl程序教程

您现在的位置是:首页 >  其他

当前栏目

《TridentNet:Scale-Aware Trident Networks for Object Detection》论文笔记

论文笔记 for object Detection Networks scale aware
2023-09-11 14:22:29 时间

代码地址:TridentNet

1. 概述

导读:对于检测网络来说网络的深度、stride大小与感受野会直接影响检测性能,对于网络的深度与stride大小已经有很多前人的工作在里面了,这篇文章从感受野的角度去优化检测网络(着力于不同的目标尺度),从而在Faster RCNN的基础上进行对应的改进提出了TridentNet。该网络在一个backbone上添加一个平行的多分支结构(分支上的参数共享,使用不同膨胀系数获取不同大小的感受野),之后使用SNIP文章中对不同目标分开训练和预测的方式适应不同尺度范围的目标(这个思路是不是有点像ASPP、RFBNet呢?)。这篇文章的算法在COCO数据上使用backbone为ResNet-101的网络实现了48.4的mAP。

在检测任务中不同尺度大小的目标会给检测带来难度,对于不同大小的目标像图像金字塔与特征金字塔是典型的思路,特别是特征金字塔(FPN)在现有的检测算法框架下基本上成为了标配,但由于FPN网络对于不同尺度目标的表达能力不尽相同,这在一定程度上使得PFN达不到图像金字塔的性能。

其实这两个尺度适应的方法都理解为从不同的感受野上去表达不同尺度上的目标。这篇文章也是从感受野的角度去解决不同尺度范围的目标对于检测带来的影响,而且这里使用的思路是使用共享参数的多分支的膨胀卷积去实现的。这里将文章的方法与图像金字塔、特征金字塔进行比较,他们的差异见图1所示:
在这里插入图片描述
这篇文章提出的检测算法大致结构如上图1(c)所示,这个算法是在输出特征图上使用不同膨胀系数的卷积去获取不同的感受野,而且这些不同膨胀系数所在的分支权值共享,其输出的预测结果会根据目标的尺度范围给目标划定所在的表达分支。

文章的主要贡献:

  • 1)探究了感受野在检测框下的影响;
  • 2)对于尺度变化的检测问题提出了TridentNet,这是通过不同感受野多分支结构与对应尺度划分训练(参考SNIP)实现的;
  • 3)这里使用在Trident-block中共享参数的形式减少参数量与计算量(只带来了少量的性能损失);
  • 4)在标准COCO benchmark数据集下获得了48.4%的mAP,backbone为ResNet-101;

2. 感受野对于检测性能的影响

这里在ResNet-50与ResNet-101的stage4上实验不同膨胀系数(感受野)对于检测性能的影响,其结果见表1所示,其总的结论文小的感受野对于小的目标更友好,大的感受野对大的目标更友好。
在这里插入图片描述
基于这个实验结果给出的意见:

  • 1)不同尺度目标的检测性能是受网络的感受野影响的,每个不同的尺度都有对应的感受野;
  • 2)对于ResNet-101这样的网络在理论上其感受野是足够涵盖COCO数据集中对于大目标定义的范围的,但是在变化膨胀卷积参数的时候仍然出现了性能提升,说明实际的感受野是小于理论值的。而且不同的感受野与不同大小的目标相适配很重要;

3. 方法设计

3.1 网络结构

文章的网络结构大致上就如下图所示,下面三个分支的部分就是trident-block了。
在这里插入图片描述

3.2 其它细节

Trident-block中的分支权值共享
这些分支结构中卷积的参数共享带来了如下的一些好处:

  • 1)减少潜在的过拟合风险;
  • 2)减少了计算量与计算量;
  • 3)由于参数共享不同尺度的目标都可以使用同一套参数进行训练,这样就可以使用更多的样本来进行训练了;

不同尺度的训练机制
这里对于不同尺度的目标训练,这里参考了SNIP的设计,对于分支 i i i其有效的回归尺度范围为 [ l i , u i ] [l_i,u_i] [li,ui],其对应的表达就是:
l i ≤ w h ≤ u i l_i\le \sqrt{wh} \le u_i liwh ui

快速的Inference估计
文章使用Trident-block的中间分支来进行最后检测结果的估计,而且提到最后结果与原始的Trident-block只有少量的损失,这样的话速度就与Faster R-CNN相差无几了。

4. 实验结果

4.1 总体性能比较

在这里插入图片描述

4.2 消融实验

主要的几个模块对网络性能的影响:
在这里插入图片描述
trident-block中分支数量对于性能的影响,折中取值为3
在这里插入图片描述
trident-block添加位置对性能的影响:
在这里插入图片描述
预测的时候单独分支对性能的影响与训练目标大小划分对性能的影响:
在这里插入图片描述
使用trident-block替换ResNet-101中stage4中残差块,替换数量对性能的影响:
在这里插入图片描述