cnn加工是什么意思_天秤座R-CNN:全面平衡的目标检测器
这是一篇浙江大学和香港中文大学发表于 CVPR 2019 的论文,这篇文章十分有趣,网友戏称:“无痛涨点,实现简单,良心 paper”,在我看来确实是这样的,没有太大的改造结构,不需增加计算成本的条件下,居然能涨两个点 mAP。
除了本文解读的 Libra R-CNN(天秤座 RCNN)[1],我记得陈恺他们港中文的实验室今年还中了一篇 CVPR 2019,Region Proposal by Guided Anchoring [2],这篇也是不错的,看题目就知道是指导 anchor 的形状涨分的了。
这两篇改进的源码都会在 Github 上放出,作者表示还在完善中,地址是:
https://github.com/open-mmlab/mmdetection
三个不平衡
纵观目前主流的目标检测算法,无论 SSD、Faster R-CNN、Retinanet 这些的 detector 的设计其实都是三个步骤:
- 选择候选区域
- 提取特征
- 在 muti-task loss 下收敛
往往存在着三种层次的不平衡:
- sample level
- feature level
- objective level
这就对应了三个问题:
- 采样的候选区域是否具有代表性?
- 提取出的不同 level 的特征是怎么才能真正地充分利用?
- 目前设计的损失函数能不能引导目标检测器更好地收敛?
其实如果不对 detector 的结构做功夫的话,针对这些 imbalance 改进的其实就是为了把 detector 的真正功效给展现出来,就是如果把一个目标检测器 train 好的问题。
对应的三个改进
IoU-balanced Sampling
作者认为 sample level 的不平衡是因为随机采样造成的,Ross Girshick 后面提出了 OHEM(online hard example mining,在线困难样本挖掘)是一个 hard negative mining 的一种好方法,但是这种方法对噪音数据会比较敏感。随机采样造成的不平衡可以看下图:
作者发现了如果是随机采样的话,随机采样到的样本超过 70% 都是在 IoU 在 0 到 0.05 之间的,有人会问不是随机吗?为什么大部分样本都落在了 IOU 较小的部分了呢?
因为样本的分布在 IoU 上并不是均匀分布的,生成候选框时随机采样会造成背景框远远大于框中 GT 的框,一张图这么大,是目标物体的区域只占很小一部分,背景占了绝大多数的位置,所以大部分样本都挤在了 IoU 在 0 到 0.05 的区间了。
作者觉得这里就是不科学的地方,统计得到的事实是 60% 的 hard negative 都落在 IoU 大于 0.05 的地方,但是随机采样只提供了 30%。所以作者提出了 IoU-balanced Sampling。
随机采样就是比如你要选 N 个 hard negative,有 M 个候选框,选中的概率就是:
如果一共还是要采样 N 个,通过 IoU 的值划分为 K 个区间,每个区间中的候选采样数为
,则IoU-balanced sampling 的采样公式即为:
作者通过在 IoU 上均匀采样,把 hard negative 在 IoU 上均匀分布,在 COCO 数据集上达到的效果比 OHEM 的要好,并且这样简单很多。
Balanced Feature Pyramid
feature level 的不平衡表现在 low/high level 特征的利用上,如何利用不同分辨率的特征。具体分为四步:
- rescaling
- integrating
- refining
- strengthening
1. rescaling & integrating
假设
表示第 l 层特征,越高层分辨率越低,若有
的多层特征,C2 分辨率最高,我们知道低层特诊分辨率高往往学习到的是细节特征,高层特征分辨率低学习到语义特征,把四层特征 resize 到中间层次的 C4 的 size,然后后面再做简单的相加取平均操作:
就是这样简单的操作并没有引入什么计算就可以实现,最终在 AP 上也得到了验证是有效的。
2. refining & strengthening
rescaling 后取平均提取到的的特征还可以进一步地 refine 成更 discriminative,作者这里用到了 non-local 模块,paper 中使用了 Gaussian non-local attention [4] 增强 integrate 后的特征。
就像 Figure 4 画的一样,这样提取的特征其实与 FPN 可以一同使用,是作为 feature pyramid 的补充,作为一种增强手段。
Balanced L1 Loss
Fast R-CNN [5] 中是通过 multi-task loss 解决 Classification(分类)和 Localization(定位)的问题的,定义如下:
和
分别对应着分类和定位的损失函数,p, u 分别是
的预测和目标,
是对应 u 类的回归结果。v 是回归目标。λ 用于在多任务学习下调整损失权重。
之所以会提出 Balanced L1 loss,是因为这个损失函数是两个 loss 的相加,如果分类做得很好地话一样会得到很高的分数,而导致忽略了回归的重要性,一个自然的想法就是调整 λ 的值。
我们把样本损失大于等于 1.0 的叫做 outliers,小于的叫做 inliers。由于回归目标是没有边界限制的,直接增加回归损失的权重将会使模型对 outliers 更加敏感。
对于 outliers 会被看作是困难样本(hard example),这些困难样本会产生巨大的梯度不利于训练的过程,而 inliers 被看做是简单样本(easy example)只会产生相比 outliers 大概 0.3 倍的梯度。
首先我们看 Smooth L1 Loss:
所以作者从常见的 Smooth L1 Loss 中推导出了 Balanced L1 Loss:
它的梯度计算遵从下面的准则:
作者从需求出发,想要得到一个梯度当样本在 |x|<1 附近产生稍微大点的梯度,作者设计了下面这个函数,从 Figure 5 可以看出 αln(b|x|+1) 大于 x。
根据梯度反求出 Lb(x) 表达式:
还有很重要的一点就是为了函数的连续性,需要满足 x=1 时 Lb(1)=γ:
其实意思就是
。
这个函数不得不说非常妙,成功掰弯了梯度,我也不知道他怎么想出来的。
实验结果
在 COCO test-dev 数据集上与目前 state-of-the-art 的目标检测的方法对比,能比 Faster R-CNN、RetinaNet、Mask R-CNN 要高 2+ 的 AP。
三种解决方案的各种组合情况的对比实验:
值得注意的是,作者对 IoU-balanced samping 做实验时对 K 的取值做了实验证明该方法对 K 的取值并不敏感,即对 IoU 分多少个区间并不敏感。
这是 IoU-balanced sampling 的候选框的可视化效果:
总结
paper 逻辑清晰,紧紧抓住三个层次去做改进,三个问题对应三个解决方案,结构清晰一目了然,实验充分,相比两个单阶段和两阶段检测器的两个代表 Faster R-CNN 和 RetinaNet 分别高了 2+ 的 AP,图画得也不错,我觉得是篇好论文,而且应该是作者在比赛中实际运用到的才写出了这篇 paper,以后目标检测的比赛我觉得都可以参考这篇去做改进。
参考文献
[1]. Pang J, Chen K, Shi J, et al. Libra R-CNN: Towards Balanced Learning for Object Detection[J]. arXiv preprint arXiv:1904.02701, 2019.
[2]. Wang J, Chen K, Yang S, et al. Region proposal by guided anchoring[J]. arXiv preprint arXiv:1901.03278, 2019.
[3]. Shrivastava A, Gupta A, Girshick R. Training region-based object detectors with online hard example mining[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 761-769.
[4]. Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7794-7803.
[5]. Ross Girshick. Fast R-CNN. In IEEE Conference on Computer Vision and Pattern Recognition, 2015.
转自:https://www.jiqizhixin.com/articles/2019-04-26-12
cnn加工是什么意思_天秤座R-CNN:全面平衡的目标检测器相关推荐
- CVPR 2019 | 天秤座R-CNN:全面平衡的目标检测器
作者丨文永亮 学校丨哈尔滨工业大学(深圳) 研究方向丨目标检测.GAN 推荐理由 这是一篇浙江大学和香港中文大学发表于 CVPR 2019 的论文,这篇文章十分有趣,网友戏称:"无痛涨点,实 ...
- cnn 回归 坐标 特征图_论文笔记 | CNN 是怎么学到图片绝对位置信息的
来自 | 知乎作者丨Xinlong Wang来源丨https://zhuanlan.zhihu.com/p/99766566编辑 | 深度学习这件小事仅作学术交流,如有侵权,请联系删文 昨天读到一篇挺 ...
- Faster R CNN
Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...
- 来自天秤座的梦想_天秤座:单线全自动机器学习
来自天秤座的梦想 Libra is one of the python package, which helps in performing deep learning on a given data ...
- 使用集合映射和关联关系映射_使用R进行基因ID映射
使用集合映射和关联关系映射 Inter-conversion of gene ID's is the most important aspect enabling genomic and proteo ...
- plt保存图片_人工智能Keras CNN卷积神经网络的图片识别模型训练
CNN卷积神经网络是人工智能的开端,CNN卷积神经网络让计算机能够认识图片,文字,甚至音频与视频.CNN卷积神经网络的基础知识,可以参考:CNN卷积神经网络 LetNet体系结构是卷积神经网络的&qu ...
- macos上的硬盘检测工具_如何在MacOS上使用双镜头面部检测器(DSFD)实现90%以上的精度
macos上的硬盘检测工具 新程序员指南: (New Programmer's Guide:) 介绍: (Introduction:) This article is for those of us ...
- python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
在过去几个月中,我一直在实验室中研究提升目标检测的方法.在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你去做的. 在本教程中,我们将使用 PyT ...
- 为什么vs会输出一个框作为结果_检测与分类专辑 | 对精准目标检测的含不确定性的边界框回归...
摘要 大型目标检测数据集(如MS-COCO) 试着尽可能地将边界框框的非常清晰,但是在标记边框时会存在歧义.在本文中,提出了一种新的边界框回归损失学习边界框的移动及位置方差,此方法在不增加计算量的基础 ...
最新文章
- QLineEdit学习
- LAMP 环境搭建实例
- React脚手架学习笔记
- zemax验证高斯公式_ZEMAX 实验讲义
- (17)css3新增背景属性
- python做算法分析_Python实现迪杰斯特拉算法过程解析
- php 实现资料下载功能,学习猿地-php如何实现下载功能
- 用双十一的故事串起碎片的网络协议(中)
- msf生成php木马,11.7 Weevely3生成网页木马、Backcookie后门生成工具、使用msf生成木马、一句话变形技巧和使用...
- FastDFS原理介绍及集群搭建
- oracle自增序列
- 用简单易懂的话语来快速入门windows缓冲区溢出
- 国外大牛推荐:计算机专业人士必读好书(30本经典)
- 【解题报告】2021CCPC东北四省赛
- 各团队对《t铁大导航》评价及我组回复
- 模仿blblblbl登录页面
- apple pencil值不值得购买?ipad平替电容笔安利
- JS - 阿里云 OSS 文件下载通用办法(支持跨域)
- 青少年软件编程(202209)(C语言)(数据结构)等级考试(六级)试题及参考答案
- python打开文件管理器
热门文章
- jsp,servlet交互驱动层实现
- bzoj1257: [CQOI2007]余数之和sum
- char *p = new char[256]; delete p; / delete[] p; 哪个对 为什么
- 随想录(怎么阅读代码)
- 画PCB开始前的准备工作
- linux部署python web_在linux上部署web环境
- mysql 5.6 cmake_mysql5.6如何使用cmake编译
- 获取计算机主机mac地址的命令有,怎么获取计算机的MAC地址和IP地址?
- 编程心得体会_CimatronE14高级五轴第三步,平行于曲线铣,会3轴编程更易理解
- 桌面版应用_类Jupyter notebook编辑器桌面版应用nteract