目标检测 - TridentNet
转载: https://zhuanlan.zhihu.com/p/54334986
http://haha-strong.com/2019/07/25/20190725-TridentNet/
开源代码:https://github.com/TuSimple/simpledet/tree/master/models/tridentnet
Facebook detectron2 官方收录:https://github.com/facebookresearch/detectron2/tree/master/projects/TridentNet
算法思路
将网路backbone最后一个改成三个不同卷积率的卷积层并联,实现对不同尺度特征的提取。
如下图所示:

motivation
对于一个backbone net而言有几个因素会影响他们的性能,下采样率、网络深度以及感受野。前面两个因素已经有人研究过了,对于目标检测中的感受野的影响还没有人专门对此进行研究。本文通过对网的最后一个backbone中的卷积层改变卷积的空洞率以实现输出特征的感受野的调整。实验证明,不同的感受野对不同尺度目标的检测有着不同的影响,大的感受野对尺度较大的目标检测性能较好,小的感受野对小目标的检测性能较好。
做法
作者提出的网络框架如下图所示:

如上图所示,作者在特征提取的最后一层增加了一个多分支的卷积层,用来提取不同尺度的特征信息。为了减少网络参数量这几个网络共享参数,便于网络的优化,在这里作者通过实验验证当采用三个不同卷积空洞率时网络的性能最佳。实验结果如下图所示:


Figure 3: A trident block constructed from a bottleneck residual block.
同时,作者也通过实验证明将TridentNet添加在最后一层对网络的性能提升是最佳的:

facebook/detectron2中TridentNet快速版本就是将ResNet50中的res4中某个卷积替换为TridentConv即可,并且这里TridentConv中不同空洞率的卷积最后是通过concat后输出,也就是可以无缝替换到ResNet结构中:

Scale-aware training Scheme
最后一个设计则是借鉴SNIP,为了避免receptive field和scale不匹配的情况,TridentNet对于每一个branch只训练一定范围内尺度样本,避免极端scale的物体对于性能的影响,根据ground truth box的宽w和高h,对每个分支branch i 选择proposal 的ROI的最大最小尺度为:li和ui。

性能

上图所示,是该算法与现有算法的性能比较。这些算法都采用相同的网络backbone,ResNet-101.
与采用多层特征融合的SSD算法相比,本算法性能提升10个点左右。
与Fastr-RCNN相比,本算法较之有8个点的性能提升。
同时,多分支不同空洞率和可行变卷积的联合使用可以将网络的性能比提升6个点左右。表明不同感受野的应用有助于算法对不同目标的检测。
总结一下
TridentNet在原始的backbone上做了三点变化:第一点是构造了不同receptive field的parallel multi-branch,第二点是对于trident block中每一个branch的weight是share的。第三点是对于每个branch,训练和测试都只负责一定尺度范围内的样本,也就是所谓的scale-aware。这三点在任何一个深度学习框架中都是非常容易实现的。
目标检测 - TridentNet的更多相关文章
- AI佳作解读系列(五) - 目标检测二十年技术综述
计算机视觉中的目标检测,因其在真实世界的大量应用需求,比如自动驾驶.视频监控.机器人视觉等,而被研究学者广泛关注. 上周四,arXiv新出一篇目标检测文献<Object Detection ...
- 基于COCO数据集验证的目标检测算法天梯排行榜
基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...
- 目标检测方法——SSD
SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者及相关链接 文章的选择原因 方法概括 方法细节 相关背景补充 实验 ...
- 目标检测方法总结(R-CNN系列)
目标检测方法系列--R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD 目录 相关背景 从传统方法到R-CNN 从R-CNN到SPP Fast R-CNN ...
- #Deep Learning回顾#之基于深度学习的目标检测(阅读小结)
原文链接:https://www.52ml.net/20287.html 这篇博文主要讲了深度学习在目标检测中的发展. 博文首先介绍了传统的目标检测算法过程: 传统的目标检测一般使用滑动窗口的框架,主 ...
- 目标检测的图像特征提取之(一)HOG特征(转载)
目标检测的图像特征提取之(一)HOG特征 zouxy09@qq.com http://blog.csdn.net/zouxy09 1.HOG特征: 方向梯度直方图(Histogram of Orien ...
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方“深度学习大讲堂”可订阅哦!深度学习大讲堂是高质量原创内容平台,邀请 ...
- 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...
- Adaboost原理及目标检测中的应用
Adaboost原理及目标检测中的应用 whowhoha@outlook.com Adaboost原理 Adaboost(AdaptiveBoosting)是一种迭代算法,通过对训练集不断训练弱分类器 ...
随机推荐
- linux基础6-bash shell编程
1. type [-ta] name 一般情况下,type命令被用于判断另外一个命令是否是内置命令,但是它实际上有更多的用法. 1.1.判断一个名字当前是否是alias.keyword.functio ...
- 用arduino的uno开发板为nano板子烧写bootloader
这篇文章,是为了记录下某宝上淘到的一个没有bootloader的nano开发板的历程(比较坑),自己搜索资料而记录的. 如果没有bootloader,板子就不能接收上传的程序,什么也干不了. 烧写bo ...
- PHP 二维数组排序函数的应用 array_multisort()
<?php $arrayData = array( array("name"=>"泰山", "age"=>"23 ...
- Boostnote跨平台 Markdown 编辑器
Boostnote 0.11.6 发布了,Boostnote 是一个 Markdown 编辑器,可用于 Mac.Windows.Linux.Android 和 iOS 平台. 新版特性 Dev: 更新 ...
- Python 15__屏幕抓取
- django获取数据
获取单个值 request.POST.get('user') # user对应前端name属性对应的值 获取多个值(如checkbox,multiple) request.POST.getlist(' ...
- Maven+Docker 部署
Maven+Docker 部署 安装jdk8镜像 docker pull openjdk:8-jdk-alpine maven插件推送方式 修改/etc/docker/daemon.json文件,加入 ...
- php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
使用压缩包函数必须要安装zip扩展,否则会报错 $ apt install php-zip
- tarjan求强连通分量(模板)
https://www.luogu.org/problem/P2341 #include<cstdio> #include<cstring> #include<algor ...
- js 数组 删除第一个和最后一个
.shift(); 删除第一个 .pop(); 删除最后一个