论文原址:https://arxiv.org/pdf/1904.02701.pdf

github:https://github.com/OceanPang/Libra_R-CNN

摘要

相比模型的结构,关注度较少的训练过程对于检测器的成功检测也是十分重要的。本文发现,检测性能主要受限于训练时,sample level,feature level,objective level的不平衡问题。为此,提出了Libra R-CNN,用于对目标检测中平衡学习的简单有效的框架。主要包含三个创新点:(1)IoU-balanced sampling用于减少采样过程中的不平衡(2)balanced feature pyramid用于减少feature 的不平衡(3)balanced L1 loss用于减少objective level的不平衡。

介绍

在较为大众的目标检测算法中,虽然存在着单阶段,双阶段之分,但训练整体流程大致相同:sampling regions->extracting features ->基于标准的多任务目标函数同时对类别的识别及位置的增强。因此,目标检测训练的成功主要依赖于三个方面:I.挑选出的区域样本是否具有代表性?II.是否可以完全利用提取出的视觉特征?III.设计的目标函数是否是最优的?然而,本文发现在训练过程中上述三个方面中存在这严重的不平衡问题。这些不平衡问题会使得网络的结构无法得到完全开发进而影响整体的目标检测性能。如下图所示。

      Sample level imbalance:在目标检测的训练过程中,hard samples更有利于提升目标检测的性能,然而,基于随机采样机制造成的结果一般是使挑选的样本趋向于easy类型,harde mining算法如OHEM可以更多的关注hard samples。然而,这些方法对噪声标签比较敏感,容易造成大量的内存及计算量的消耗。Focal Loss应用于单阶段的效果较好,但是,扩展到大部分样本为简单负样本的双阶段检测模型中,效果一般。

      Feature level imbalance:在backbone中深层具有更多的语义信息,而较低层为更多的内容描述等细节信息。FPN及PANet等通过侧连接来进行特征融合,因此,低层特征与高层特征可以对目标检测进行补充。结合金字塔的特征表示利用这些特征的方法决定着目标检测的性能。本文认为,融合的信息应该包含每个分辨率的平衡信息。但上述方法使得融合的特征更多关注于相邻的分辨率而不是其他分辨率。在信息传递过程中,每次融合操作,会使得非相邻层级的语义信息变得稀释。

      Objective level imbalance:检测器包含分类及定位两个任务。因此,在训练目标函数中结合两个不同的目标。如果二者不是平衡的,一个目标可能会被限制,进而导致整体不好的效果。此情形同样适用于训练过程中的样本,如果不平衡,由简单样本产生的小梯度值会淹没hard样本产生的较大的梯度值,进而限制了后续的一些强化操作。因此,针对最优收敛,本文平衡了相关的任务及样本。

为解决上述问题,提出了简单有效的Libra R-CNN框架。三点创新如下:

(a)IoU-balanced sampling:根据assigned ground-truth进行mine hard samples

(b)balanced feature pyramid:利用相同深度融合的平衡后的语义特征增强多层次的特征。

(c)balanced L1 loss:增强重要的梯度,进而对分类,粗定位,细定位进行再平衡。

Methodology

Libra R-CNN整体结构如下,目标是消除目标检测训练过程中存在的不平衡问题。

     IoU-balanced Sampling:本文首先提出了一个问题:训练样本及对应ground truth的重叠度IoU是否与样本的difficulty(这里类比于easy samble,hard sample)相关。实验如下所示,

主要考虑了hard sample,发现超过60%的hard negatives的IoU超过0.05,但基于随机采样只得到30%左右的训练样本。极度的不平衡导致许多hard samples被淹没在数以万计的easy样本中。为此,提出了IoU-balanced sampling:在不增加额外计算量的基础的简单有效的mining 方法。假定我们需要从M个相关候选中采样出N个负样本。基于随机采样,每个样本被挑选出的概率为:

      为了提高hard negatives选中的概率。根据IoU的值将采样区间划分为K个格子。N要求负样本是在每个格子区间中是均匀分布的,然后对其进行均匀采样。得到的采样概率如下,

处理后的结果如上图,IoU-balanced的采样使得训练样本的分布更接近于hard negatives。同时,也表明,其性能与K的取值无关,更高IoU的样本更容易被挑选出来。同时,本方法也适用于hard positive 样本的挑选。然而,大多数情况下,没有足够的候选样本,对正样本进行扩充,因此,本文选择了一个替代的方法来达到平衡采样的目的,即对每个ground truth采样相同数量的正样本。

     Balanced Feature Pyramid:本文不同于以前通过侧连接的方法来结合多个层级特征的方法,本文通过使用相同深度的融合平衡后的语义信息来增强不同层级的特征,如下图所示,主要包含四步:rescaling,integrating,refining,strengthening

     Obtaining balanced semantic features:在l级分辨率的特征记作Cl,不同层级的特征数量记作L。最底层及最高层特征的索引记作lmin,lmax,为了融合不同层级的特征,同时保留其语义信息,首先将不同层级的特征{C2,C3,C4,C5}基于插值或者max pooling resize 到同一个尺寸,如C4,然后,取其均值得到平衡后的语义特征。得到的特征,进行rescale然后通过反向操作增强原始每层的特征,此过程不包含任何参数,证明了信息传递的高效性。

     Refining balanced semantic features:平衡后的语义特征可以进一步增强增加其分辨性。本文发现卷积和non-local 模型的增强效果都很好,但是non-local模型更加稳健。因此,使用embeded Gaussian non-local attention。refining这一步可以进一步的丰富特征信息,进而提升结果。融合后得到的特征{P2,P3,P4,P5}用于后续的目标检测中,流程和FPN相同。

     Balanced L1 Loss:Faster R-CNN中定义的多任务损失如下,用于同时处理,分类及定位问题。

平衡上述损失的一个常规方法是,调整两个任务损失的权重,然而,对于没有边界的回归目标,直接增加定位损失的权重将会是模型对outliers的点更加敏感,outliers可以被看作是hard samples,这些hard samples可能会产生过大的损失,不利于训练。inliers可以看作是easy samples,相比outliers对整体的梯度贡献度较低,相比hard sample,平均每个,easy sample对梯度的贡献为hard sample的30%,基于上述分析,提出了balanced L1 Loss记作Lb。

balanced L1 loss由传统的smooth L1损失演化而来,Smooth L1损失通过设置一个拐点来分类inliers与outliers,并对outliers通过一个max(p,1.0)进行梯度截断。如图5-a虚线所示,

balanced L1 loss的关键思想是,促进影响较大的回归梯度,(像来自inliers即准确样本的梯度)。进而平衡包含的样本及任务。从而可以在分类,粗定位,及细定位中进行平衡的训练。,基于balanced L1 loss的定位损失如下,

其梯度流程如下,

上图5-a中显示,通过调整参数alph,可以增加inliers的梯度,而对outliers不发生作用,通过设置参数gamma来调整回归误差的上界。通过调整这两个参数,可以得到更加平衡的训练。参数b用于保证Lb(x=1)条件下,下列等式中两种情形的值是相同的,及函数是连续的,balanced L1 loss如下

Experiments

Reference

[1] Sean Bell, C Lawrence Zitnick, Kavita Bala, and Ross Girshick. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In IEEE Conference on Computer Vision and Pattern Recognition, 2016.

[2] Zhaowei Cai, Quanfu Fan, Rogerio S Feris, and Nuno Vasconcelos. A unified multi-scale deep convolutional neural network for fast object detection. In European Conference on Computer Vision, 2016.

[3] Zhaowei Cai and Nuno Vasconcelos. Cascade r-cnn: Delving into high quality object detection. In IEEE Conference on Computer Vision and Pattern Recognition, 2018.

[4] Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, Xiaoxiao Li, Shuyang Sun, Wansen Feng, Ziwei Liu, Jianping Shi, Wanli Ouyang, and Dahua Lin. Hybrid task cascade for instance segmentation. arXiv preprint arXiv:1901.07518, 2019.

论文阅读笔记五十三:Libra R-CNN: Towards Balanced Learning for Object Detection(CVPR2019)的更多相关文章

  1. 论文阅读笔记四十四:RetinaNet:Focal Loss for Dense Object Detection(ICCV2017)

    论文原址:https://arxiv.org/abs/1708.02002 github代码:https://github.com/fizyr/keras-retinanet 摘要 目前,具有较高准确 ...

  2. 论文阅读笔记二十四:Rich feature hierarchies for accurate object detection and semantic segmentation Tech report(R-CNN CVPR2014)

    论文源址:http://www.cs.berkeley.edu/~rbg/#girshick2014rcnn 摘要 在PASCAL VOC数据集上,最好的方法的思路是将低级信息与较高层次的上下文信息进 ...

  3. 论文阅读笔记五十六:(ExtremeNet)Bottom-up Object Detection by Grouping Extreme and Center Points(CVPR2019)

    论文原址:https://arxiv.org/abs/1901.08043 github: https://github.com/xingyizhou/ExtremeNet 摘要 本文利用一个关键点检 ...

  4. 论文阅读笔记六十三:DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling(CVPR2017)

    论文原址:https://arxiv.org/abs/1703.10295 github:https://github.com/lachlants/denet 摘要 本文重新定义了目标检测,将其定义为 ...

  5. 论文阅读笔记五十五:DenseBox: Unifying Landmark Localization with End to End Object Detection(CVPR2015)

    论文原址:https://arxiv.org/abs/1509.04874 github:https://github.com/CaptainEven/DenseBox 摘要 本文先提出了一个问题:如 ...

  6. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)

    论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测 ...

  7. 论文阅读笔记五十二:CornerNet-Lite: Efficient Keypoint Based Object Detection(CVPR2019)

    论文原址:https://arxiv.org/pdf/1904.08900.pdf github:https://github.com/princeton-vl/CornerNet-Lite 摘要 基 ...

  8. 论文阅读笔记五十一:CenterNet: Keypoint Triplets for Object Detection(CVPR2019)

    论文链接:https://arxiv.org/abs/1904.08189 github:https://github.com/Duankaiwen/CenterNet 摘要 目标检测中,基于关键点的 ...

  9. 论文阅读笔记五十:CornerNet: Detecting Objects as Paired Keypoints(ECCV2018)

    论文原址:https://arxiv.org/pdf/1808.01244.pdf github:https://github.com/princeton-vl/CornerNet 摘要 本文提出了目 ...

随机推荐

  1. HDU1166-ZKW树

    单点修改,区间求和 // // Created by helica on 2018/3/18. // //zkw #include <cstdio> #include <cstrin ...

  2. MySql自动备份shell

    MySql黑屏备份是每个运维工程师必备的技能,以下是MySQL自动备份脚本: #/bin/bash#This is mysql backup shell on 2019/4/28 BAKUP_DIR= ...

  3. Vim内直接使用p粘贴系统剪切板

    解决方法 set clipboard=unnamed

  4. LOJ#2668 书法家

    题意:要在一张网格纸上画出NOI图形,使得所占格子的权值和最大. 解:暴力DP即可... 从左往右,每个字母都可以被划分成三块,且每块都可用上下两维来表示. 于是一块一块的DP.考虑如何O(1)转移. ...

  5. 洛谷P4630 铁人两项--圆方树

    一道很好的圆方树入门题 感谢PinkRabbit巨佬的博客,讲的太好啦 首先是构建圆方树的代码,也比较好想好记 void tarjan(int u) { dfn[u] = low[u] = ++dfn ...

  6. 30K iOS程序员的简述:如何快速进阶成为高级开发人员

    前言: 本篇文章适用于所有在这个行业已经有了几年时间后想要在职业生涯中取得突破的开发人员,编程人员和程序员(或者你可能刚刚开始,但希望你能看到你的路径) 本文适合那些有着简单愿望的人:你想成为一名高级 ...

  7. libiconv交叉编译提示arm-none-linux-gnueabi-gcc

    title: libiconv交叉编译提示arm-none-linux-gnueabi-gcc date: 2019/3/6 17:45:48 toc: true --- libiconv交叉编译提示 ...

  8. java 源码编译

    Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(叫“编译器的前段”更准确)——把*.java文件转变成*.class文件的过程:也可能是虚拟机的后端运行期编译器( ...

  9. 微信小程序 开发文档

    官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...

  10. Dynamics CRM 日常使用JS整理(二)

    BPF(Business Process Flow)相关的JS 为Stage添加changed或者selected事件: function fnOnLoad() { Xrm.Page.data.pro ...