RefineDet算法笔记
---恢复内容开始---
一、创新点
针对two-stage的速度慢以及one-stage精度不足提出的方法,refinedet 包括三个核心部分:使用TCB来转换ARM的特征,送入ODM中进行检测;
两步级连回归;过滤较多的负样本(容易分类的,类似于ohem)。
(1)anchor refine module 和object detect module。前者类似于rpn,用于剔除过多的负样本和粗略调整anchor位置和尺寸(都是二分类);后者
将refine过的anchor进行进一步的微调(感觉跟two stage很像,为什么能快呢?)。整体结构如下图

图1
(2)在两个部分之间,设计了一个transfor connection block(TCB),如下图。TCB包括两个功能,一是转换ARM的特征,另一个是转换不同层的特征, 使用deconv来扩大特征,
用于后续特征的 element sum 。这一部分更新是FPN,融合多层特征。

图2
---恢复内容结束---
(3)ODM
两步级连回归,有利于小物体检测。先使用ARM生成refined anchors boxes,再将其输入ODM再次回归和分类。此外还包括负样本过滤:当负样本的置信值超过阈值时直接丢弃。
总的来看, 该网络融合了one-stage 和 two-stage的特点,在ARM阶段生成先refined anchor box(类似于RPN), 在ODM,一方面输入refined anchor,另一方面融合多层特征(类似FPN)。
(4) loss
损失函数包括ARM loss 和 ODM loss,对于ARM,包括cross-entropy(二分类)和smoth-L1。对于ODM,则是softmax-loss和smoth-L1

(5)实验
结果还是挺不错的,在精度上,即使是320×320, mAP也能上80;速度很有优势,在500*500这一级别上,仅次于yolov2。

参考:https://blog.csdn.net/u014380165/article/details/79502308
(7)网络结构
以vgg16 320*320为例,主干网络的conv4_3(512*40*40),conv5_3 (512*20*20), fc7(1024*10*10), conv6_2(512*5*5)分别对应图1的主干网络四个特征图,用这四个特征图
1、每个特征图分别生成mbox_loc、mbox_conf、mbox_priorbox, 并通过concat操作,得到ARM相关的arm_priorbox、arm_loc、arm_conf
2、
RefineDet算法笔记的更多相关文章
- 学习Java 以及对几大基本排序算法(对算法笔记书的研究)的一些学习总结(Java对算法的实现持续更新中)
Java排序一,冒泡排序! 刚刚开始学习Java,但是比较有兴趣研究算法.最近看了一本算法笔记,刚开始只是打算随便看看,但是发现这本书非常不错,尤其是对排序算法,以及哈希函数的一些解释,让我非常的感兴 ...
- 算法笔记--数位dp
算法笔记 这个博客写的不错:http://blog.csdn.net/wust_zzwh/article/details/52100392 数位dp的精髓是不同情况下sta变量的设置. 模板: ]; ...
- 算法笔记--lca倍增算法
算法笔记 模板: vector<int>g[N]; vector<int>edge[N]; ][N]; int deep[N]; int h[N]; void dfs(int ...
- 算法笔记--STL中的各种遍历及查找(待增)
算法笔记 map: map<string,int> m; map<string,int>::iterator it;//auto it it = m.begin(); whil ...
- 算法笔记--priority_queue
算法笔记 priority_queue<int>que;//默认大顶堆 或者写作:priority_queue<int,vector<int>,less<int&g ...
- 算法笔记--sg函数详解及其模板
算法笔记 参考资料:https://wenku.baidu.com/view/25540742a8956bec0975e3a8.html sg函数大神详解:http://blog.csdn.net/l ...
- 算法笔记——C/C++语言基础篇(已完结)
开始系统学习算法,希望自己能够坚持下去,期间会把常用到的算法写进此博客,便于以后复习,同时希望能够给初学者提供一定的帮助,手敲难免存在错误,欢迎评论指正,共同学习.博客也可能会引用别人写的代码,如有引 ...
- 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是 ...
- 算法笔记(c++)--回文
算法笔记(c++)--回文 #include<iostream> #include<algorithm> #include<vector> using namesp ...
随机推荐
- Linux修改MAC地址方法
Linux修改MAC地址方法 - Linux modifies MAC address method ifconfig wlan0 down ifconfig wlan0 hw ether MAC地址 ...
- qt5学习目录
qt5下载与安装,VS2017的环境配置 q ...
- Java SE之I/O流:知识框架
- git常用命令(转载自用)
转载自 阮一峰博客: http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 一个码农博客: http://blog.gitor.org ...
- html页面高度问题
首先,上图 说明 1. clientHeight大部分浏览器对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,即然是指可看到内 ...
- Lattice
Lattice是一个无环WFSA,结点可以是hmm状态.hmm(音素).词,每个结点是一段音频在某个时间的对齐 用训练好的声学模型.现成的语言模型和发音字典构建解码网络(wfst),最后将提取的测试集 ...
- 往github上传代码忽略node_modules文件夹
首先必须在你初始化 git 仓库的那个文件夹建立 .gitigonre 文件,在这个文件夹里面写入下面代码 node_modules npm-debug.log package-lock.json ...
- LOJ#2127「HAOI2015」按位或
用$ Min-Max$容斥之后要推的东西少了好多 无耻的用实数快读抢了BZOJ.Luogu.LOJ三个$ OJ$的Rank 1 即将update:被STO TXC OTZ超了QAQ 题意:集合$ [0 ...
- fastclick.js插件使用简单说明
为什么存在延迟? 从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约 300 毫秒的等待时间.为什么这么设计呢? 因为它想看看你是不是要进行双击(double tap)操作. ...
- tarjan算法(求强连通子块,缩点)
tarjan算法求图中的强连通子图的个数. #include<iostream> #include<stack> #include<queue> #include& ...