当前位置:网站首页>ATSS(CVPR2020)
ATSS(CVPR2020)
2022-04-23 07:23:00 【swust_fang】
论文地址:《ATSS》
Motivation
首先介绍了目标检测的一个发展路线,从RNN到FasterRCNN的two stage 目标检测以及到后来的Yolo,fcos,sdd等one stage的发展路线。因为二阶段的方法是通过在第一阶段筛选了候选框以及正负样本均衡。所以普遍来说二阶段的比一阶段的精度要快,但是速度上了却比不过one stage。
在one stage中也分为是否使用anchor的 anchor based 方法以及 anchor free 方法两条路线。举例比较经典的Retina net 以及 FCOS,两者网络结构基本一样。


通过深入研究两者的不同之处,找到anchor based 与 anchor free的区别。
Idea
首先分析了retina net 与 fcos主要的不同之处,也是anchor based 与 anchor free 的不同之处:
1. 特征图上每一个位置生成的anchor 数量,前者在特征图的一个点生成不同scale 和 aspect ratio大小的anchor,而fcos在特征图的一个点作为一个anchor point。
2. 定义正负样本的方式,前者是使用最大iou匹配,后者是使用空间限制和特征层回归尺度限制。

3. 回归的初始状态,回归的方式从点回归还是框框回归。
作者做出实验进行验证:首先为了保证公平性,将第一个主要区别也就是anchor数量进行统一,将retina net 的anchor 数量变成1,如上图所示。
然后做了系列实验:
左边是FCOS里边的一些独自的Trick,在retina net 没有使用左边任何trick的时候,map为32.5,与fcos的37.8相差很远,作者一步一步将fcos里边用的trick加入到retina net里边。in GT Box应该就是上边正负样本图中的Spaital Constraint,Centerness 就是fcos里的中心度loss,Scalar不知道是什么。
最终的的结果达到了37.0,但是跟实际的fcos的37.8还是存在0.8的差距,这个差距的根本原因是什么,不同之处就剩下上边的另外两个主要区别。
正负样本的选取以及回归方式(由anchor point还是由anchor box)
作者做了如下实验,将两种不同的样本选取以及回归方式组合,结果如下:
这个左上角表示retina net 使用box回归,iou筛选正负样本,fcos使用point回归,SSC筛选正负样本。
第一个是正负样本实验,两个网络交换不同的筛选正负样本方式,就得到了上述表格。可以看出来筛选正负样本是至关重要的问题,是anchor based 与 anchor free 的根本区别。
那接着做了第二个实验,就是retina net 使用对应anchor 的中心点也就是point去回归,fcos使用point对应的box回归,同样得出了上表一样的结果。
一个是交换正负样本得到,一个是交换回归方式得到,两次实验看似得到相同的结果,其实把之前所有的变量都逐一消除之后就没有所谓的retina net 与fcos之分了。
得出结论:如何定义正负样本两者的anchor based与anchor free核心区别。
然后基于这个提出了一种筛选正负样本的方式:Adaptive Training Sample Selection
算法流程如下:
1. 首先对于一张图上的每一个gt box,遍历对应在FPN每一张特征图(比如p2~p6),首先选取距离该gt最近K个anchor,将每一层的备选anchor都放入Cg.
2. 计算Cg与gt的IOU
3. 计算IOU的均值M(g)以及标准差Std(g)
4. 设定一个Iou阈值T(g)= M(g) + std(g),只这些anchor中iou>=T(g)并且anchor的中心点在之gt之内的作为正样本。除了正样本,所有其他生成的anchor都为负样本。
这是一种自适应选取正样本的方法,首先来说为什么选取anchor里gt距离作为第一步重要的筛选,首先对于retina net 来说,越靠近gt,iou越大(iou越大,检测器质量越高,CascadeRCNN的概念)。对于fcos来说,近距离的anchor point会生成更高质量的检测器。因此距离越近就相当于越好的正样本候选框或者点。
对于计算均值和标准差的和作为最终的iou阈值,如上图所示,这个主要是对于自适应的一种体现吧,就是对于每一个gt不是使用特定的iou去取正样本,而是对基于统计的方式选取对应较好的anchor,并且能够确保取出足够多的正样本。理解一下就是说,如果按照之前Max iou assign的方式,需要直接选定一个iou阈值的情况来说(不基于已经统计),对anchor取最大max iou 的gt作为标签,可能存在某个gt没有匹配(具体可以看源码,anchor based 的样本划分),按照之前的方法对每一个gt都找一个与之最大iou匹配作为该gt的一个anchor样本(这种方法可能存在覆盖问题)。

但是在这里,因为一定会统计出来的均值+标准差一定会小于某一个anchor与gt的iou,所以对gt来说一定会有正样本,避免了之前定义真负样本可能覆盖的问题,同时也是一种自适应的选取。
加入ATSS模块后的精度提升,直接好多个点。
Experiments
对于唯一的超参数k的实验,可以看出来对k也不敏感,所以作者说基本上是hyperparameter-free.
之前是说retina net 的anchor的数量为1,scale=8*stride,宽高比为1:1。验证一下这anchor的尺度问题,消融实验:


从表中看出确实两个在anchor based上很重要的两个参数,在这里都对实验结果不敏感了。
最后一个实验就是对于anchor based 与anchor free 的第一个主要区别:每一个位置堆叠的anchor 数量,前者是不同scale 和 宽高比的组合,后者一般是singer anchor point。
可以看的出来,当不适用ATSS自适应选取正样本的时候,将fcos里边的小trick拿来用的时候anchor数量多(A=9)的要比(A=1)的时候要好,但是当使用了ATSS,基本上对每一个位置堆叠的anchor数量不敏感了。也就是说只要正样本选取好了,不管你一个位置堆叠多少个anchor,结果都一样。
与其他主流模型的对比:
Conclusion
1. 一阶段这些anchor based 和 anchor free 模型最主要的区别就是正负样本选取的不同。
2. 选取正负样本是目标检测的关键问题。
3. 设计了一种方法,根据统计计算自动选取正负样本,消除anchor base 与 anchor free 的区别。
4. 对于anchor based 方法,一个位置堆叠多少个anchor 根本 doesn't matter .
Thought
实验的思路特别特别好,两个完全不一样的模型,通过一步一步设置消除变量,找到最核心本质的区别。
版权声明
本文为[swust_fang]所创,转载请带上原文链接,感谢
https://blog.csdn.net/swust5120171204/article/details/124325385
边栏推荐
- 常用正则表达式
- 网赚APP资源下载类网站源码
- My heart's broken! A woman's circle of friends envied others for paying wages on time and was fired. Even her colleagues who liked her were fired together
- ApplicationReadyEvent的使用
- clang 如何产生汇编文件
- vslam PPT
- 使用JWT生成与解析Token
- 396. Rotate Function
- dried food! Point based: differentiable Poisson solver
- Comparison of indoor positioning methods of several intelligent robots
猜你喜欢
Somme numérique de la chaîne de calcul pour un problème simple de leetcode
freertos学习02-队列 stream buffer message buffer
CSV column extract column extraction
An article understands variable lifting
ansible自動化運維詳解(一)ansible的安裝部署、參數使用、清單管理、配置文件參數及用戶級ansible操作環境構建
一款拥有漂亮外表的Typecho简洁主题_Scarfskin 源码下载
LeetCode简单题之计算字符串的数字和
How to import Excel data in SQL server, 2019 Edition
浅谈ES6尾调优化
Campus transfer second-hand market source code download
随机推荐
Qt利用QtXlsx操作excel文件
剑指offer day24 数学(中等)
Depth of binary tree
PHP high precision computing
編譯原理題-帶答案
青苹果影视系统源码 影视聚合 影视导航 影视点播网站源码
AQS & ReentrantLock 实现原理
监控智能回放是什么,如何使用智能回放查询录像
LeetCode簡單題之計算字符串的數字和
Interesting JS code
[go]常见的并发模型[泛型版]
Comparison of indoor positioning methods of several intelligent robots
thinkphp6+jwt 实现登录验证
CGM优化血糖监测管理——移宇科技亮相四川省国际医学交流促进会
一个没啥L用,但可以装X的IDEA插件
谈谈那些基础但不简单的股票数据
[appium] encountered the problem of switching the H5 page embedded in the mobile phone during the test
在MATLAB中快速画圆(给出圆心坐标和半径就能直接画的那种)
Briefly describe the hierarchical strategy of memory
5.6 综合案例-RTU-