机器学习

Scale-Aware Trident Networks for

2019-10-09  本文已影响0人  ce0b74704937

《Scale-Aware Trident Networks for Object Detection》发表于ICCV2019的一篇图片检测的文章。

代码地址:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet

文章的主要思路是解决多尺度物体检测的问题。目前一种很常用的解决多尺度物体检测的方法是采用fpn的结构,然后使用fpn不同输出层的featuremap来对不同大小的物体进行检测。文章认为采用fpn的方式来检查不同大小的物体会降低网络的训练速度,而且还可能导致不同尺度的层容易产生过拟合。文章利用dilate convolution(空洞卷积)来对多尺度的物体进行检测,并且可以规避fpn带来的负面影响。

一、网络结构

文章网络取名为trident,可以想象网络的结构类似于三叉戟的样子,如下图所示,最后利用nms将三个分支的结果合并。


1.png

三叉戟的网络细节如下图所示,这里每个分支都是使用resnet来构成的,都是由一个1\times 1卷积接一个3\times 3再接一个1\times 1的残差块构成,唯一的区别是三个分支中3\times 3的卷积采用的是空洞卷积,而且每个分支空洞卷积的系数是不一样的,目的就是为了使得三个分支的感受野不一样,从而有效的检测出不同大小的物体。为了防止引入三个分支,也就是很多参数,可能有过拟合的问题,所以这三个分支采用了权重共享的方式来减轻这个问题。

2.png

二、scale-aware

这里文章所说的是类似于SNIP文章来做的,我看的好像是采用FPN的方式,对每个分支定义不同大小的目标来进行训练,三个分支分别检测的范围是[0, 90], [30, 160], [90, \inf],这个范围是对于框面积的更号来讲的,即\sqrt{w*h}

三、loss

loss计算文章没有说明,毕竟不是本文重点,所以想知道的可以看看代码,每个分支采用的就是类似fasterrcnn的two-stage结构来做的

还有一些快速推断的track,就是在推断过程采用中间的分支来做的。

原理基本就这些,想知道更多实验结果可以查看原文和官方提供的代码

欢迎加入Object Detection交流,群聊号码:910457072

上一篇下一篇

猜你喜欢

热点阅读