关注上方深度学习技术前沿”,选择“星标公众号”

资源干货,第一时间送达!

作者:ChenJoya

知乎链接:https://zhuanlan.zhihu.com/p/82371629

本文已由作者授权转载,未经允许,不得二次转载。

本文介绍了一篇关于目标检测中不平衡的综述论文:Imbalance Problems in Object Detection: A Review (https://arxiv.org/abs/1909.00169, under review at TPAMI),作者结合自己最近在这方面的 Tech Report: Is Sampling Heuristics Necessary in Training Object Detectors? (https://arxiv.org/abs/1909.04868) 进行一些阐述和思考,希望可以给大家以启发。

开源地址:

Imbalance Problems in Object Detection: A Review

https://github.com/kemaloksuz/ObjectDetectionImbalance

作者总结了在目标检测领域关于不平衡的大量研究,从古老的 Bootstrapping 到现在的 Libra R-CNN,并且在不平衡的各个维度上列出了相关文献,大而全,值得大力关注。

Are Sampling Heuristics Necessary in Object Detectors?

在 YOLOv3 (one-stage), RetinaNet (one-stage), Faster R-CNN (two-stage), Mask R-CNN (two-stage), FoveaBox (anchor-free), Cascade R-CNN (multi-stage) 上没有使用任何 hard/soft sampling (e.g., objectness, under-sampling, Focal Loss) 方法,但取得甚至更好的 COCO AP,可以尝试一下~ https://github.com/ChenJoya/sampling-free

介绍

在 Oksuz 等人投向 TPAMI 的这篇论文中,提炼了一个核心观点:目标检测中存在多种多样的不平衡,这些不平衡会影响最终的检测精度,而现有的许多研究可以归结为解决这些不平衡方法。他们将不平衡分为四类:

1.Class imbalance:类别不平衡,主要由样本数量上的差别引起。最典型的是 foreground-background imbalance,即训练过程中的正例数量远远小于负例数量引起的不平衡;

2.Scale imbalance:尺度不平衡,这种不平衡主要由目标的尺度引起,例如 COCO 中的小物体过多即是一种尺度不平衡;又如将物体分配至 feature pyramid 时的不平衡;

3.Spatial imbalance:空间不平衡,如不同样本对 regression 损失贡献的不平衡,IoU 上的不平衡,物体分布位置的不平衡;

4.Objective imbalance多任务损失优化之间的不平衡,最常见存在于 classification and regression losses 之间。

值得一提的是,这篇综述很大程度上应该是受到了 Libra R-CNN 的启发。Libra R-CNN 发现了 sample level, feature level, and objective level 上的不平衡,而上述四种不平衡中,Spatial imbalance, Scale imbalance,Objective imbalance 似乎都是由其分别引申而来。

下面,我们先从相关研究最少的 Objective imbalance 入手,逐步分析研究工作较多的 Spatial imbalance,Scale imbalance,Class imbalance。

1. Objective imbalance

一般来说,分类任务的损失要比回归任务的损失要大一些,这是因为回归只做 foreground example,而分类要做到所有的 example。其实调过 Faster R-CNN 的小伙伴应该知道,在 RoI-subnetwork 阶段, classification 大约是regression 的 2~4 倍,就如同下面这张图:

最常见的方法是设置 weighting factor 来调,观察什么样的情况可以达到最佳。另外一个解决方案是 Prime Sample Attention in Object Detection,https://arxiv.org/abs/1904.04821 里的 Classification-Aware Regression Loss,其本意是想让网络更加注意到回归较好的bounding-boxes,因此让回归损失和分类的 score 相关,从而使得梯度可以从 regression branch 流到 classification branch:

作者在 open issue 章节中也提到,这种关联应该被更加深入的探索。典型的例子就是 Towards Accurate One-Stage Object Detection with AP-Loss,https://arxiv.org/abs/1904.06373 没有改动回归的 branch,但是 AP@75 却涨了 ~3%。

2. Spatial imbalance

Definition. Size, shape, location – relative to both the image or another box – and IoU are spatial attributes of bounding boxes. Any imbalance in such attributes is likely to affect the training and generalization performance. For example, a slight shift in position may lead to drastic changes in the regression (localization) loss, causing an imbalance in the loss values, if a suitable loss function is not adopted. In this p, we discuss these problems specific to the spatial attributes and regression loss

2.1 Imbalance in Regression Loss

在训练过程中,不同正例对于 regression loss 的贡献是不相同的,对于那些 low-quality IoU bounding-boxes, 会产生很大的损失,L1 和 L2 loss 会被它们所主导:

Smooth L1 Loss 由 Fast R-CNN 提出,降权了那些过大损失的样本(可能是 outliers)。Balanced L1 Loss 由 Libra R-CNN 提出,提升了 inliers 的权重,即相当于进一步降低了 outliers 的权重。其他的研究如下所示:

2.2 IoU Distribution Imbalance

IoU Imbalance 是指 bounding boxes 在 IoU 段的分布上呈现出明显不均匀的分布,Libra R-CNN 和 Cascade R-CNN 都探讨过这个问题。在 negatives 上,IoU 在 0~0.1 范围内的样本占据主导;在 positives 上,IoU 在 0.5~0.6 之间的样本占据主导。

作者推荐的工作是 Cascade R-CNN (Naiyan Wang: CVPR18 Detection文章选介(上),https://zhuanlan.zhihu.com/p/35882192),通过级联结构,逐步调高 IoU threshold,增强正样本的质量,防止 regressor 对单一阈值过拟合。

2.3 Object Location Imbalance

基于 anchor 的检测器 将 anchor boxes 均匀地排布在图像上,但是物体可不服从这种分布,如下所示:

Distribution of the centers of the objects in the MSCOCO dataset over the normalized image

这里作者推荐了 Region Proposal by Guided Anchoring,https://arxiv.org/abs/1901.03278 的工作 (Kai Chen: Guided Anchoring: 物体检测器也能自己学 Anchor,https://zhuanlan.zhihu.com/p/55854246)。作为一个 anchor-free 的 RPN,它可以预测出 proposals 的 location,如下图中的箭头:

3. Scale imbalance

3.1 Object/box-level Scale Imbalance

当某个尺度范围内的物体 over-represent 该数据集后,scale imbalance 就会发生。An Analysis of Scale Invariance in Object Detection - SNIP,https://arxiv.org/abs/1711.08189 中的 investigation 指出这种 imbalance 会极大影响 overall detection performance。下图表达了 COCO 数据集中长宽面积上的不平衡:

为了处理多样性的边界框,pyramid 方法是最常用的。包括 image pyramid (SNIP, SNIPER), feature pyramid(SSD, FPN 等),以及 feature pyramid + image pyramid,作者将 TridentNet (Naiyan Wang: TridentNet:处理目标检测中尺度变化新思路,https://zhuanlan.zhihu.com/p/54334986) 列为这方面的典型工作。

(a) No method. (b) Backbone pyramids. (e.g., SSD). (c) Feature pyramids (e.g., FPN). (d) Image pyramids (e.g., SNIP). (e) Image and feature pyramids. (e.g. TridentNet)

3.2 Feature-level Imbalance

这种不平衡主要是指 FPN-based architecture 里,层级之间特征的不平衡性,Low Level 和 High Level 的特征之间互有定位/语义之间的优缺点,如何 mitigate 这种不平衡来达到最佳的检测效果?而解决方案也大多是结构上的,来看看下面各式各样的连接方法:

4. Class imbalance

4.1 Foreground-Foreground Class Imbalance

这类不平衡指的是分类类别上的不平衡,在数据集(dataset-level imbalance)或者是一个 batch (mini-batch-level imbalance)中都会存在。但是遗憾的是,这一类的不平衡并没有太大的引起现阶段目标检测研究的重视。

4.2 Foreground-Background Class Imbalance

这是目标检测中研究最广泛,程度最深的一类不平衡。这种平衡并不是由于数据集引起的,而是由于现有目标检测架构引起的:background anchors 远远多于 foreground anchors。似乎自 deep detectors 诞生以来,人们就一直在努力去克服这种不平衡。

作者将解决这类不平衡的方法分为两类:

(1)hard sampling:可以理解为有偏采样。包括有 mini-batch undersampling (R-CNN 系列标准配置),OHEM,IoU-balanced sampling,PISA 等,作者在这里将类 RPN 的 objectness 方法也归结为了这一类。

(2)soft sampling:可以理解为 loss reweighting。最著名的方法莫过于 Focal Loss。

遗憾的是,由于时间的缘故,这篇综述中并没有对最新的 anchor-free 检测器进行分析。但是个人认为 anchor-free 的 detector 存在着类似的不平衡。例如,anchor-free 的检测器大多基于关键点的检测驱动,如 extreme point,center point,corner point;其中,foreground points 数量比 background points 存在着明显差异,虽然可能不若 anchor boxes 那般造成如此剧烈的不平衡,但是这仍然导致绝大部分的 anchor-free 检测器采用了 Focal Loss 或者其变体来训练网络。

我们可以看到,几乎所有的 sampling heuristics 都基于启发式,并且具有大量的超参数需要调整。例如,OHEM 需要调 mini-batch size 和 fraction,Focal Loss 需要调 α 与 γ,GHM 有一些必要的前提假设与区间 M 需要调。正如 GHM 文中所说,解决不平衡最佳的策略(分布)是难以定义的。因此,我们重新回顾了 foreground-background imbalance,来探讨 sampling heuristics 是否必要。我们认为,不像一般的,由数据引起的不平衡,foreground-background imbalance 在训练和测试中是具有等同分布的;而使用采样,可能会改变这种分布,并不一定会在测试中取得更好的结果;但不使用采样,就会陷入难以训练的境地。我们发现,从初始化,损失,推理三个方面辅以适当的策略,即可在没有任何 sampling heuristics 的情况下,总是可以达到更好的检测精度。我们开源了相关代码(https://github.com/ChenJoya/sampling-free),希望多多讨论,互相启发 。

5. Conclusions

目标检测中的不平衡问题是一个古老的问题,自检测器诞生之初,人们就在与其战斗。Imbalance Problems in Object Detection: A Review 的作者总结了不平衡的各种类型,并且详细分析了已经出现的研究,还在 open issue 中给出了悬而未解的问题。十分推荐。

重磅!计算机视觉-目标检测方向交流群已成立!

交流学习论文,可加入目标检测微信交流群,本群旨在交流目标检测、密集人群检测、关键点检测、人体姿态估计等内容。更多目标检测最新论文信息将会第一时间在群里发布!欢迎大家进群一起交流学习!

麻烦大家进群后请备注:目标检测+地点+学校/公司+昵称(如目标检测+上海+上交+小明)

???? 长按识别,即可进群!

【TPAMI2020】目标检测中的不平衡问题:综述论文,34页pdf相关推荐

  1. 目标检测中的不平衡问题综述

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家推荐一篇前几天新出的投向TPAMI的论文:Imbalance Problems in Object Detection: A Review,作 ...

  2. 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法

    训练目标检测模型的一个难点是样本不均衡,特别是正负样本比例严重失衡.目前解决这类问题主要是两种方案(见综述Imbalance Problems in Object Detection: A Revie ...

  3. 顶刊TPAMI!目标检测中的不均衡问题综述!

    作者 | Joya  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/82371629 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷 ...

  4. 论文推荐 | 目标检测中不平衡问题算法综述

    (图片付费下载于视觉中国) 作者 | CV君 来源 | 我爱计算机视觉(ID:aicvml) 今天跟大家推荐一篇前几天新出的投向TPAMI的论文:Imbalance Problems in Objec ...

  5. 目标检测中的性能提升方法综述

    文章目录 一.多尺度检测 1.什么是多尺度检测? 2.降低下采样率与空洞卷积 3.多尺度训练 4.优化Anchor尺寸训练 5.深层与浅层特征融合 6.SNIP,尺度归一化 7.TridentNet, ...

  6. 综述:解决目标检测中的样本不均衡问题

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨SFXiang 来源丨AI算法修炼营 编辑丨极市平台 极市导 ...

  7. 检测到目标服务器启用了trace方法_综述:目标检测中的多尺度检测方法

    ↑ 点击蓝字 关注极市平台作者丨SFXiang来源丨AI算法修炼营编辑丨极市平台 极市导读 本文从降低下采样率与空洞卷积.多尺度训练.优化Anchor尺寸设计.深层和浅层特征融合等多个方面入手,对目标 ...

  8. 深度学习在遥感图像目标检测中的应用综述

    深度学习在遥感图像目标检测中的应用综述 1 人工智能发展 1.1 发展历程 1.2 深度学习的应用 2 深度学习 2.1 机器学习概述 2.2 神经网络模型 2.3 深度学习 2.4 深度学习主要模型 ...

  9. 2021综述:一般目标检测中的遮挡处理

    目录 综述:通用对象检测中的遮挡处理 1.简介 2.目标检测的应用 3.数据集 4.户外场景的遮挡处理 A.数据收集 B.遮挡检测 C.生成遮挡区域 D.遮挡目标检测 5.室内场景中的遮挡处理 A.场 ...

最新文章

  1. FLANN特征匹配(Python)
  2. python闭环最短路径_python实现最短路径的实例方法
  3. 判断溢出(ybtoj-字符串)
  4. python django用户登录系统_Django实现用户注册登录
  5. Python sqlalchemy orm 多外键关联
  6. 主管问我:你以为单元测试,只是测试吗?
  7. 网页端对接linux发起cc,(cc)实现Linux系统调用劫持
  8. 坑爹的matlab除法
  9. 去哪儿APP设计总结
  10. S4 HANA 1809 FPS03 Standard装机总结(刘欣2019.11.7)
  11. 【GitHub】GitHub上值得收藏的100个精选前端项目!
  12. lua pairs与ipairs区别
  13. 小程序页面之间跳转的方式
  14. 我上了985,211,才发现自己一无所有 | 或者,也不能这么说
  15. BT4:库中基本类型——Factory和Blackboard
  16. 2021计算机保研记录总结(已上岸计算所)
  17. 解决wsappx占cpu和内存过大问题
  18. ArcGIS中定义查询和属性查询的SQL语句的坑
  19. 通俗易懂 理解散度和旋度
  20. X210刷机经验总结

热门文章

  1. Thttpd manual
  2. 30天敏捷生活(5):形成个人价值观
  3. 一位年轻董事长给大学生的18条好建议
  4. python sftp传输文件总是报文件不存在_Paramiko:通过SFTP传输文件时,windows文件路径出错...
  5. stm32cubemx无法生成工程_经验分享 | STM32CubeMX + STM32F1系列开发时遇到的四个问题及解决方案分享...
  6. cross_val_score,cross_val_predict,cross_validate理解
  7. linux上安装nero4j 关系数据库
  8. loadrunner结果图分析
  9. 如何在Linux下安装MySQL8.0
  10. 哈佛大学研发水下机器人,Science Robotics发表 | AI日报