论文:Scale-Aware Trident Networks for Object Detection
发表时间:2019
发表作者:(University of Chinese Academy of Sciences)Yuntao Chen, (TuSimple)Naiyan Wang
发表刊物/会议:ICCV
论文链接:论文链接
论文代码:代码链接

DetNet

这篇文章主要要解决的问题便是目标检测中最为棘手的scale variation问题。使用了非常简单干净的办法在标准的COCO benchmark上,使用ResNet101单模型可以得到MAP 48.4的结果,远远超越了目前公开的单模型最优结果。

多尺度问题

先简单回顾一下现有处理多尺度问题的两大类方法。第一大类,也是从非Deep时代,乃至CV初期就被就被广泛使用的方法叫做image pyramid。在image pyramid中,我们直接对图像进行不同尺度的缩放,然后将这些图像直接输入到detector中去进行检测。虽然这样的方法十分简单,但其效果仍然是最佳,也后续启发了SNIP这一系列的工作。单论性能而言,multi-scale training/testing仍然是一个不可缺少的组件。然而其缺点也是很明显的,测试时间大幅度提高,对于实际使用并不友好。另外一大类方法,也是Deep方法所独有的,也就是feature pyramid。最具代表性的工作便是经典的FPN了。这一类方法的思想是直接在feature层面上来近似image pyramid。非Deep时代在检测中便有经典的channel feature这样的方法,这个想法在CNN中其实更加直接,因为本身CNN的feature便是分层次的。从开始的MS-CNN直接在不同downsample层上检测大小不同的物体,再到后续TDM和FPN加入了新的top down分支补充底层的语义信息不足,都是延续类似的想法。然而实际上,这样的近似虽然有效,但是仍然性能和image pyramid有较大差距。

总结如下:

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

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

膨胀卷积 假设膨胀率为ds,使用的卷积核大小为$33$,则使用膨胀卷积的感受野大小为$3+22*(ds-1)$,
例如,假设
1、ds=1,表示不进行膨胀,感受野大小为$33$
2、ds=2,表示进行膨胀,感受野大小为$7
7$
3、ds=4,表示进行膨胀,感受野大小为$15*15$
实验验证,随着感受野的增大,小目标的检测准确性也开始下降,但是大目标的检测准确性开始上升。

膨胀卷积2

网络结构

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

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

网络结构

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

\[
l_i ≤ \sqrt{w_h} ≤ u_i
\]

假设,w,h为ground truth的宽,高。Li,ui表示实验中定义的最小的面积和最大的面积。在coco实验中分别为$3232$和$9696$。
基于此公式实现小的目标走第一个分支,中等目标走第二个分支,大的目标走第三个分支。而不是所有目标都走所有分支。这样就可以进行有针对性的训练。
在测试阶段,只使用中间的那个分支进行推断,然后对结果进行NMS,输出最终的结果。
当然这样做会有一些精度的损失,但是好处就是不会引入额外的参数,不会增加额外的计算量。

实验结果

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

实验结果

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

实验结果

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

实验结果

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

实验结果

coco数据集结果:

实验结果

总结:

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

参考:
TridentNet

Paper Reading:TridentNet的更多相关文章

  1. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

  2. [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph

    <Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...

  3. Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection

    Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11  19:47:46   CVPR 20 ...

  4. Paper Reading: In Defense of the Triplet Loss for Person Re-Identification

    In Defense of the Triplet Loss for Person Re-Identification  2017-07-02  14:04:20   This blog comes ...

  5. Paper Reading - Attention Is All You Need ( NIPS 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1706.03762 Motivation: The inherently sequential nature of ...

  6. Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...

  7. Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★

    Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...

  8. Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...

  9. Paper Reading - Mind’s Eye: A Recurrent Visual Representation for Image Caption Generation ( CVPR 2015 )

    Link of the Paper: https://ieeexplore.ieee.org/document/7298856/ A Correlative Paper: Learning a Rec ...

随机推荐

  1. 给引入页面的js和css资源加上版本号,防止浏览器缓存资源

    最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...

  2. 最新 中至数据java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.中至数据等10家互联网公司的校招Offer,因为某些自身原因最终选择了中至数据.6.7月主要是做系统复习.项目复盘.Leet ...

  3. 最新 金蝶软件java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.金蝶软件等10家互联网公司的校招Offer,因为某些自身原因最终选择了金蝶软件.6.7月主要是做系统复习.项目复盘.Leet ...

  4. 学习Elasticsearch原理笔记

    Elasticsearch是一个分布式可拓展的实时搜索和分析引擎 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索 实时分析的分布式搜索引擎 可以拓展到上百台服务器,处理PB级别的结构化或 ...

  5. 纯java代码搭建ssm

    参考: https://blog.csdn.net/Smile__1/article/details/103394460

  6. 剑指offer58:对称的二叉树。判断一颗二叉树是不是对称的,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的

    1 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 2 思路和方法 定义一种遍历算法,先遍历右子结点再遍历左子结点:如对称先序 ...

  7. 串口(USART)框图的讲解

    STM32 的 USART 简介 通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵 ...

  8. Django入门(下)

    一.创建APP 在每一个django项目中可以包含多个APP,相当于一个大型项目中的分系统.子模块.功能部件等.互相之间比较独立,但也有联系. 在pycharm下方的Terminal终端中输入命令: ...

  9. go 结构体定义和结构体指针

    结构体一个结构体(`struct`)就是一个字段的集合. 将来要使用它向java .C# 中的class 有相同的地位 struct 可以用来值传递 同时可以通过引用传递参数(地址) java C# ...

  10. js 根据 数组条件 简单查询的方法临时保存

    let array = [{ date: '2016-05-02', name: 'Ethan', status: 'success', total: '81' }, { date: '2016-05 ...