点上方计算机视觉联盟获取更多干货

仅作学术分享,不代表本公众号立场,侵权联系删除

转载于:作者:知乎—Lighthouse

地址:https://www.zhihu.com/org/lighthouse-52-16

AI博士笔记系列推荐

周志华《机器学习》手推笔记正式开源!可打印版本附pdf下载链接

01

概述

在训练分类或分割网络时,图像的类别或图像像素的类别均有明确的定义。检测网络是学习预测前景物体的bbox,然而,bbox的类别并不一定是十分确定的。这是因为,一般而言,预测的bbox不会与某个gt box 100%完全重合,最可能的是仅有一部分重合,甚至在检测密集物体时,预测的bbox可能与不止一个gt box的交不为空。那么,如何评价当前预测的bbox的质量,定义bbox的类别,以实现网络的训练,是需要进一步思考的。关于目标检测网络中正负例的定义,不同的方法采用了不同的机制。在本系列文章中,将对Anchor-based、Anchor-free方法中如何定义正负例进行解读。本文将首先介绍Anchor-based方法中正负例是如何定义的。

02

Anchor的前世今生

Faster RCNN是第一个端到端检测网络,江湖地位自不必讳言,直至现在,它都是最常用的一种检测网络。但是,我认为,Faster RCNN对使用者并不友好,当我一开始接触Faster RCNN时,就被它多到爆的超参给吓趴下了,这些超参相当一部分是由Anchor机制带来的。这也是在Anchor-free方法经常批判它的原因。为了便于理解,我们首先简要介绍一下Anchor的概念。

在最原始的Faster RCNN(无FPN)中,在stride为16的特征图上,在每个特征点生成{1:1,1:2,2:1}纵横比、{128,256,512}大小的box,即为Anchor。依据纵横比和大小的两两组合,每个特征点生成9个Anchor,一个m*n大小的特征图生成的Anchor数量为m*n*9。Anchor的生成机制类似于传统DPM的移动滑窗。在Anchor-based方法中,对这些Anchor进行分类和回归,确定类别,并且使Anchor的区域尽可能接近gt box,然后NMS后输出。

在原始的Faster RCNN中,Anchor的数量约为17.1K。加上FPN后,Anchor的数量会直接增加8倍,约130K。由于是在每个特征点均生成相同数据的特征图,故Anchor的数量与特征图的分辨率有关。FPN在五个特征图上生成Anchor,其中分辨率最高的特征图stride为4,与stride为16的特征图相比,分辨率增加了16倍,再加上其他4个特征图,Anchor的数量共计提升了约8倍左右。在RetinaNet中,Anchor设置的方式与FPN有些差别,主要体现在,首先,使用的特征图不同,FPN使用{C2、C3、C4、C5}特征图,RetinaNet使用了{C3、C4、C5}特征图,同时又根据C5生成了C6和C7特征图,总共使用C3~C7五层特征图;另外,设置Anchor时,使用的纵横比和大小也不相同。

针对每个特征点生成的Anchor及整幅图Anchor的分布可视化如下图

03

如何定义正负例

在原始Faster RCNN方法中,分为两个RPN和fast rcnn两个步骤。

在RPN网络中,对每一个Anchor分配标签 。正例:对于每一gt box,交并比最大的Anchor,或与任一gt box的交并比大于0.7。负例:与所有gt boxes交并比小于0.3。交并比在(0.3,0.7)区间的Anchor忽略。从而,保证每一个gt box都有一个Anchor与之对应。RPN训练中,一张图片选取256个Anchors计算loss,正负样本Anchor的比例是1:1,如果正样本数量不够,用负样本填充。

在fast rcnn中,对输出的proposal分配标签。正例:与某一gt box交并比超过0.5。负例:与gt boxes的最大交并比在(0.1,0.5)。其它忽略。在fast rcnn训练中,一张图像选取128个proposals计算loss,正负样本Proposal的比例是1:3,如果正样本数量不够,用负样本填充。

关于在两个阶段,为什么阈值为有差异。这是因为,RPN网络的意义在于,对于输放的质量较低的Anchor,需要保证高召回率,同时将明显的背景区域去除。因此,在保证每个gt box均有一个Anchor与之对应的基础上,忽略潜在的对抗样本(IoU在(0.3,0.7)的样本),学习一个更明显的分类面,加快网络的收敛效率。在fast rcnn网络中,它的输入是RPN输出的proposal,与Anchor相比,质量已经有了较大提升,可以忽略较差、容易区分的样本(IoU<0.1的样本),因为此类样本会降低网络的学习效率。同时,可以学习IoU在0.5左右的困难样本,以提高输出的bbox的准确率。

其它的Anchor-based方法,如RetinaNet和SSD,也均是根据IoU设定正负例。

end

我是王博Kings,一名985AI博士,华为云专家/CSDN博客专家,单个AI项目在Github上获得了2000标星,为了方便大家交流,附上了联系方式。

这是我的私人微信,还有少量坑位,可与相关学者研究人员交流学习 

目前开设有人工智能、机器学习、计算机视觉、自动驾驶(含SLAM)、Python、求职面经、综合交流群扫描添加CV联盟微信拉你进群,备注:CV联盟

王博Kings 的公众号,欢迎关注,干货多多

王博Kings的系列手推笔记(附高清PDF下载):

博士笔记 | 周志华《机器学习》手推笔记第一章思维导图

博士笔记 | 周志华《机器学习》手推笔记第二章“模型评估与选择”

博士笔记 | 周志华《机器学习》手推笔记第三章“线性模型”

博士笔记 | 周志华《机器学习》手推笔记第四章“决策树”

博士笔记 | 周志华《机器学习》手推笔记第五章“神经网络”

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(上)

博士笔记 | 周志华《机器学习》手推笔记第六章支持向量机(下)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(上)

博士笔记 | 周志华《机器学习》手推笔记第七章贝叶斯分类(下)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(上)

博士笔记 | 周志华《机器学习》手推笔记第八章集成学习(下)

博士笔记 | 周志华《机器学习》手推笔记第九章聚类

博士笔记 | 周志华《机器学习》手推笔记第十章降维与度量学习

博士笔记 | 周志华《机器学习》手推笔记第十一章特征选择与稀疏学习

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论(上)

博士笔记 | 周志华《机器学习》手推笔记第十二章计算学习理论(下)

博士笔记 | 周志华《机器学习》手推笔记第十三章半监督学习

博士笔记 | 周志华《机器学习》手推笔记第十四章概率图模型

点个在看支持一下吧

收藏 | 如何定义目标检测网络的正负例:Anchor-based相关推荐

  1. 目标检测论文阅读:GHM(anchor based)

    目标检测论文阅读:GHM(anchor based) 论文链接:https://arxiv.org/abs/1811.05181 代码链接:https://github.com/libuyu/GHM_ ...

  2. 计算机视觉算法——目标检测网络总结

    计算机视觉算法--目标检测网络总结 计算机视觉算法--目标检测网络总结 1. RCNN系列 1.1 RCNN 1.1.1 关键知识点--网络结构及特点 1.1.2 关键知识点--RCNN存在的问题 1 ...

  3. 目标检测网络之 YOLOv3

    目标检测网络之 YOLOv3 </h1><div class="clear"></div><div class="postBod ...

  4. 计算机视觉算法——基于Anchor Free的目标检测网络总结

    计算机视觉算法--基于Anchor Free的目标检测网络总结 计算机视觉算法--基于Anchor Free的目标检测网络总结 1. CornerNet 1.1 关键知识点--网络结构及特点 1.2 ...

  5. retinanet 部署_RetinaNet: Focal loss在目标检测网络中的应用

    介绍 RetinaNet是2018年Facebook AI团队在目标检测领域新的贡献.它的重要作者名单中Ross Girshick与Kaiming He赫然在列.来自Microsoft的Sun Jia ...

  6. 一种投影法的点云目标检测网络

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 本文来源于早期的一篇基于投影法的三维目标检测文章<An Euler-Region-Pr ...

  7. 目标检测网络中的 bottom-up 和 top-down理解

    看目标检测网络方面的论文时,出现了一组对比词汇: bottom-up和top-down,查了一些资料,结合个人理解,得到的看法是: top-down: 顾名思义是自上而下进行,最初来源于行人检测框架, ...

  8. 深度学习目标检测网络汇总对比,挺好的

    深度学习目标检测网络汇总对比 本文总阅读量次 欢迎star我的博客 2019-01-03 参考 :https://medium.com/@jonathan_hui/object-detection-s ...

  9. 丢弃Transformer!旷视和西安交大提出基于FCN的端到端目标检测网络

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文作者:王剑锋  | 编辑:Amusi https://zhuanlan.zhihu.com ...

最新文章

  1. 外卖平台涉嫌大数据杀熟,处理不能“自说自话”
  2. Nginx 使用中文URL,中文目录路径
  3. JavaScript内存释放笔记
  4. Linux设备驱动程序概念
  5. Docker:Redis启动命令
  6. 如何移植mysql数据库_如何把本地MySql数据库移植到远程服务器上
  7. 双轴按键摇杆控制器控制TFTLCD(使用ADC1双通道DMA传输)
  8. 浙大PAT 乙级(Basic Level) Practice 题解合集(全AC版)
  9. AI足球预测软件|足球大数据预测分析爬虫
  10. githut iOS 开源项目
  11. [转贴]周星驰经典对白
  12. C# 使用Salt+Hash来为密码加密
  13. Ribbon负载均衡及Feign消费者调用服务
  14. 导出带有表格的word文件时,换页自带表头,避免复杂的表格数行数计算
  15. 计算机基础(笔记)——计算机网络(链路层)
  16. bilibili源码泄漏后,程序员们从代码里扒出来的彩蛋
  17. 王树尧老师运筹学课程笔记 06 线性规划与单纯形法(几何意义)
  18. HDU 5882 Balanced Game(2016亚洲区青岛站网络赛)
  19. 乌班图服务器测试软件,如何在Ubuntu 18.04中对你的apache服务器运行压力测试
  20. net-java-php-python-口试考试系统计算机毕业设计程序

热门文章

  1. html中高与行高的区别,CSS中line-height与height有什么区别
  2. mysql报904_数据库错误码[-904]
  3. 【script】python中的函数式编程
  4. java字符串反转及替换_字符串的替换(str_replace)
  5. java.nio教程_Java NIO系列教程(三) Buffer
  6. 编码的奥秘txt_各学科最佳入门丛书推荐
  7. java monitor 翻译_管程(Monitor)概念及Java的实现原理
  8. mysql可以存储整数数值的是_MySQL知识树 数值类型 整数
  9. python itemgetter函数用法_Python itemgetter函数怎么用?
  10. it有啥好咨询的_小经验 | 埃森哲Accenture管理咨询+IT咨询实习