文章一:

Stitcher: Feedback-driven Data Provider for Object Detection ,该文发明了一种简单方法改进业界老大难:小目标检测问题。

该文作者来自中科院自动化所、旷视科技、香港中文大学,孙剑老师和贾佳亚老师都为论文的共同作者。

大多数目标检测算法在小目标检测上都有显著的性能下降,作者通过统计分析发现,这与训练阶段小目标对损失函数的贡献小有关系,Feedback-driven Data Provider 顾名思义,作者提出了一种基于训练时反馈然后提供数据的方式改进训练,而制作新数据的方式也很简单,就是把图像拼接起来 Stitcher。

请看下图,这是Faster RCNN算法在COCO 数据集上训练时小目标对Loss贡献比例,baseline方法来自小目标的Loss贡献比例小于10%,而该文发明的方法 Stitcher 则让其更加均衡。

相比于业界已有的多尺度训练的方法,Stitcher几乎不增加训练时间,但取得的精度提升却更加可观,如下图:

下表为在COCO数据集上大中小三种目标的统计,小目标占整个标注框的41.4%,但仅出现在52.3%的图像中,可见小目标数量很多,且在图像中出现较集中。

因为小目标在图像中出现的比例低,那么在训练时缺少小目标时如何制作小目标数据作为补充呢?将正常图像中的目标resize小一点,其纹理依然清晰类别仍然可辨,作者通过将多幅正常图像resize并拼接的方式制作数据集,这就是Stitcher的由来。

算法流程

在训练时,根据小目标对loss的贡献比率确定是否要在下一次迭代提供给网络拼接的图像训练,如下图:

图中是将4幅正常图像拼接resize后拼接为一幅新的训练图像。

当小目标对Loss的贡献比例小于一定阈值,即将拼接的图像加入下一次迭代的训练集。

实验结果

使用上述看似简单的方法,却能带来非常稳固的性能提升,下图为训练Faster R-CNN 随着迭代次数增加AP的变化,

为了验证方法的有效性,作者使用不同的目标检测算法(Faster R-CNN、RetineNet)、骨干网(Res-50-FPN、Res-101-FPN)做了实验,只要加上Stitcher 就能提高模型精度,而且不仅对小目标有效,对大、中目标也有效!当然从结果看,小目标获得的精度增益更大。

作者又将其与其他处理小目标检测的常见方法比如多尺度训练、SNIP、SNIPER进行了比较,Stitcher 在提高精度更多的情况下,几乎不增加时间代价,当然是更好的选择。

在大的骨干网上也获得了精度增益:

更长的训练周期,Stitcher持续获得精度增益,而baseline在训练周期达到6时精度开始下降,如下表:

换到 PASCAL VOC数据集,依然能涨点:

值得一提的是,Stitcher不仅适用于目标检测,在实例分割的对比实验中,同样获得了不晓得精度提升。如下表:

总之,作者从训练样本对Loss贡献不平衡的角度思考小目标检测问题,通过设计Loss反馈驱动的机制和图像拼接的方法显著改进了小目标检测,其稳固的精度增益表明,该机制可以成为目标检测算法训练的通用组件。

论文地址:

https://arxiv.org/abs/2004.12432

作者称代码将开源。

文章二:

方法来自于:《Augmentation for small object detection》

https://arxiv.org/pdf/1902.07296.pdf​arxiv.org

什么是小物体?

在COCO数据集,其给出了小目标、中等目标、大目标的区分定义,如上图。主要是看目标框的大小。

小物体的检测效果怎么样?

COCO上state-of-art目标实例分割算法的性能情况:

看上图,可以发现小目标的检测性能  几乎只有大目标  的一半。因此,小目标的检测性能成了很多任务、算法的瓶颈所在。

分析:为何小目标的检测性能不好

直观上,当我们看到一幅时,我们首先关注的是图像中比较醒目的图像,一般的,这些醒目的图像往往在图中所占的比例比较大。而小目标目标往往被我们忽略。数据集中也存在这种情况,很多图像中包含的小物体并没有被标出。另外,小目标所在区域较小,在提取特征的过程中,其提取到的特征非常少,这些都不利于我们对小目标的检测。

下面从量化的角度来分析一下为何小目标不好做。

上图是在COCO上的统计图,可以发现COCO中,小目标的个数还是很高的,占到了41.43%,但是含有小目标的图片只有51.82%,大目标(large)所占比例为24.24%,但是含有大目标的图像却有82.28%。这说明有一半的图像是不含小目标的,大部分的小目标都集中在一些少量的图片中。这就导致在训练的过程中,模型有一半的时间是学习不到小目标的特性的。

另外,对于小目标,平均能够匹配的anchor数量为1个,平均最大的IoU为0.29,这说明很多情况下,有些小目标是没有对应的anchor或者对应的anchor非常少的,且即使有对应的anchor,他们的IoU也比较小,平均最大的IoU也才0.29。

如上图,左上角是一个anchor示意图,右上角是一个小目标所对应的anchor,一共有只有三个anchor能够与小目标配对,且配对的IoU也不高。左下角是一个大目标对应的anchor,可以发现有非常多的anchor能够与其匹配。匹配的anchor数量越多,则此目标被检出的概率也就越大。

基于上述分析,我们可以得到小目标不好检测的两大原因:

1)数据集中包含小目标的图片比较少,导致模型在训练的时候会偏向medium和large的目标。

2)小目标的面积太小了,导致包含目标的anchor比较少,这也意味着小目标被检测出的概率变小。

改进方法:

1)对于数据集中含有小目标图片较少的情况,使用过度采样(oversample)的方式,即多次训练这类样本。

2)对于第二类问题,则是对于那些包含小物体的图像,将小物体在图片中复制多分,在保证不影响其他物体的基础上,人工增加小物体在图片中出现的次数,提升被anchor包含的概率。

如上图右下角,本来只有一个小目标,对应的anchor数量为3个,现在将其复制三份,则在图中就出现了四个小目标,对应的anchor数量也就变成了12个,大大增加了这个小目标被检出的概率。从而让模型在训练的过程中,也能够有机会得到更多的小目标训练样本。

具体的实现方式如下图:图中网球和飞碟都是小物体,本来图中只有一个网球,一个飞碟,通过人工复制的方式,在图像中复制多份。同时要保证复制后的小物体不能够覆盖该原来存在的目标。

具体性能的提升文章做了较多的实验对比,可以参看论文。

理解目标检测中的老大难:小目标检测相关推荐

  1. 学术生涯中曾经的小目标

    这几天忽然想起自己踏入学术生涯中的一些小目标,觉得挺有趣的. 刚开始准备读博时,特别想发表一篇 sci.因为那时候有点爱玩电子游戏,准备啥时候发表一篇 sci 再玩.后来忍了一年多,实在坚持不下去了, ...

  2. 【ICPR 2021】遥感图中的密集小目标检测:Tiny Object Detection in Aerial Images

    SSPNet: Scale Selection Pyramid Network for Tiny Person Detection from UAV Images 简介: 数据集: M-CenterN ...

  3. 【目标检测】YOLOv5针对小目标检测的改进模型/添加帧率检测

    问题背景 众所周知,YOLOv5会对输入的图片进行放缩,并进行32倍下采样.对于一些分辨率很高的遥感/无人机图片,小目标难以被训练识别. 本篇博文就来尝试这篇博文YOLOV5 模型和代码修改--针对小 ...

  4. 智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)

    # 将YOLO模型的检测框和卡尔曼滤波的跟踪框进行匹配 def associate_detection_to_tracker(detections,trackers,iou_threshold=0.3 ...

  5. 目标检测中评估每类目标在IOU为0.5的PrecisionRecall

    ###################################################################################### ############# ...

  6. 2021年小目标检测最新研究综述 很全面值得收藏

    摘要 小目标检测长期以来是计算机视觉中的一个难点和研究热点.在深度学习的驱动下,小目标检测已取得了重大突破,并成功应用于国防安全.智能交通和工业自动化等领域.为了进一步促进小目标检测的发展,本文对小目 ...

  7. 【文献阅读】小目标检测综述:挑战,技术和数据集(M. MUZAMMUL等人,ACM,2021)

    一.文章概况     文章题目:<A Survey on Deep Domain Adaptation and Tiny Object Detection Challenges, Techniq ...

  8. 解决小目标检测问题的几个途径

    本文转载自AI公园. 作者:Nabil MADALI 编译:ronghuaiyang 导读 本文介绍了一些小目标物体检测的方法和思路. 在深度学习目标检测中,特别是人脸检测中,由于分辨率低.图像模糊. ...

  9. 【CV】小目标检测问题中“小目标”如何定义?其主要技术难点在哪?

    前言: 目标检测是计算机视觉领域中的一个重要研究方向,同时也是解决分割.场景理解.目标跟踪.图像描述和事件检测等更高层次视觉任务的基础.在现实场景中,由于小目标是的大量存在,因此小目标检测具有广泛的应 ...

最新文章

  1. 射频领域中交调和互调的区别
  2. 《上海市数据中心建设导则(2021版)》
  3. 【剑指offer】面试题09:用两个栈实现队列(Java)
  4. 构建嵌入式LINUX的NFS【ZT】
  5. 拒绝病毒威胁 为U盘请个“保护神”
  6. springboot与docker整合
  7. 20190528论文笔记
  8. 搭建一个服务器框架,进程间利用管道通信,线程处理数据
  9. windows 如何录制电脑自身内部的声音,无需 (Stereo mix )立体声混合选项
  10. html微信录制视频,微信视频的时候怎么录制屏幕?这个方法超简单
  11. python3 subprocess.Popen监控控制台输出
  12. 开发对接微信卡包会员卡_微信公众号实现会员卡领取功能
  13. DCM protocol Diagnostic session
  14. 大数据-机器学习导论-1
  15. Recovery 恢复
  16. 星空云协同开发入门(一)
  17. 艺赛旗(PRA)根据制式模板批量生成 word 文件
  18. 任天堂超级玛丽(SuperMario)改编的超级企鹅(java)搞笑版,绝对给力
  19. 转:POI操作Excel:cell的背景颜色类型
  20. android字体ratingbar,Android 自定义View之自定义评分选择器RatingBar

热门文章

  1. 二叉树的中序遍历 递归与非递归
  2. qt登录界面简单制作,是真的保姆级别了!!!
  3. H5学习之旅-H5的基本标签(2)
  4. 将台式机组成云服务器_四种旧PC台式电脑改造桌面云虚拟化的方案介绍
  5. 计算机英语软件系统介绍ppt,ppt软件电脑上显示英文
  6. centos7.x 搭建php运行环境
  7. 如何使用Google Scholar(谷歌学术)
  8. Flash打开其他外部EXE软件
  9. 美国计算机科学专业申请条件,美国CS计算机科学专业申请条件
  10. Python薅羊毛脚本