论文:Scale-Aware Trident Networks for Object Detection
<https://arxiv.org/pdf/1901.01892.pdf>

Github:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet
<https://github.com/TuSimple/simpledet/tree/master/models/tridentnet>

 

图森的工作

论文提出了TridentNet ,基于ResNet-101 的基础骨架网络在coco数据集上达到了单模型48.4的准确性,刷新了coco记录。

 

论文贡献:

* 首次提出感受野(receptive field)对目标检测任务中不同scale大小物体的影响,并进行相关实验验证
* 提出了适应于多尺度的目标检测框架TridentNet
* 使用参数共享的方法,提出了训练时3个branch,测试时只使用其中一个branch,这样保证推断时不会有额外参数和计算量的增加
* 使用ResNet-101的backbone在coco数据集上达到48.4的map
 

处理多尺度问题的方法:



* 图像金字塔,传统的检测算法
* 特征金字塔,FPN
* 本文的三叉戟网络,分为3个分支,所有的参数都一样,唯一的区别就是膨胀卷积的膨胀率不一样。
 

膨胀卷积Dilated convolution(空洞卷积Atrous convolution):



假设膨胀率为ds,使用的卷积核大小为3*3,则使用膨胀卷积的感受野大小为3+2*2*(ds-1),

例如,假设

* ds=1,表示不进行膨胀,感受野大小为3*3
* ds=2,表示进行膨胀,感受野大小为7*7
* ds=4,表示进行膨胀,感受野大小为15*15
实验验证,随着感受野的增大,小目标的检测准确性也开始下降,但是大目标的检测准确性开始上升。



 

TridentNet 网络结构:



TridentNet
模块主要包括3个完全一样的分支,唯一不同的只是膨胀卷积的膨胀率。从上到下,膨胀率分别为1,2,3,分别检测小,中,大的目标。三个分支共享权值。

每个分支的详细结构如下,



在训练过程中,对每一个分支都进行优化。因此,需要对目标的ground truth进行大小测试,



假设,w,h为ground truth的宽,高。Li,ui表示实验中定义的最小的面积和最大的面积。在coco实验中分别为32*32和96*96。

基于此公式实现小的目标走第一个分支,中等目标走第二个分支,大的目标走第三个分支。而不是所有目标都走所有分支。这样就可以进行有针对性的训练。

在测试阶段,只使用中间的那个分支进行推断,然后对结果进行NMS,输出最终的结果。

当然这样做会有一些精度的损失,但是好处就是不会引入额外的参数,不会增加额外的计算量。

 

实验结果:

Multi-branch ,Weight-sharing, Scale-aware有效性证明:



TridentNet 模块分支个数的实验:



TridentNet 模块在Resnet不同block中的实验:



TridentNet 每个分支中unit个数的实验:



TridentNet 各分支检测结果的评估:



TridentNet 中间分支在coco测试的结果:



coco数据集结果:



 

总结:

TridentNet
是一种尺度敏感的检测框架,并且训练过程也得进行尺度敏感的训练。检测准确性很高,并且不会有额外的参数,额外的计算量。是对ASPP结构的一种升华。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信