文章目录

  • 一、图片输入层面
    • 1. 数据增强策略
    • 2. 多尺度输入
    • 3. SNIP
    • 4. SNIPER
  • 二、 Neck部分(采用金字塔结构改进方案的)
    • 1. 某种金字塔
    • 2. AugFPN
    • 3. PANet
    • 4. M2Det
    • 5. Effective FPN
    • 6. MatrixNets
  • 三、 Head部分的改进方案
  • 四、 其他

一、图片输入层面

1. 数据增强策略

  • 增加包含小目标样本的采样率,缓解了训练过程中包含小目标图片较少的这种不均衡;

  • 将小目标在同一张图像中多拷贝几次;增加了匹配到小目标GT的anchor的数量;

2. 多尺度输入

<HRDNet: High-resolution Detection Network for Small Objects>
多尺度输入分别送入独立的主干网络,然后再FPN层结合,最后输入,计算量太大;

3. SNIP

<An Analysis of Scale Invariance in Object Detection – SNIP>

作者先做了实验,得到在小尺度图像上训练的分类器,得到几个结论:

  • 在高分辨率图像上训练的分类器,以低分辨率上采样图像作为输入,效果最差(因为训练和推理明显在scale层面存在domain-shift);

  • 在低分辨率图像上训练的分类器,以低分辨率图像作为输入,效果会比CNN-B好很多;

  • 在高分辨率图像上训练的分类器,用低分辨率上采样图像fine-tune,然后低分辨率上采样图像作为输入,效果最好。

基于以上结论,采用多尺度训练过程中,要在避免那些极小的和极大的(多尺度后)带来的不好的影响时,考虑保证目标有足够的多样性。所以在进行多尺度训练过程中,将每种输入尺度下,不满足要求的proposal以及anchor忽略。论文中使用了三种尺度如图所示,比一般的多尺度训练的尺度跨度要大。

  • 训练第二阶段的proposals时,在某个图片输入分辨率下,那些不满足尺寸约束的proposals和GT将被忽略(既不是正样本,也不是负样本),这些ROI将是invalid;

  • 对于invalid GT(GT也会分为valid和invalid),训练RPN过程中anchor和这些invalid GT交并比>0.3的将不参与训练;

  • 推理时在某个特别的分辨率下,检测框的尺寸不满足要求也会被滤除;

4. SNIPER

二、 Neck部分(采用金字塔结构改进方案的)

1. 某种金字塔

一般意义的FPN网络结构是最右边似的结构,而本文中采用的结构则是

该方法首先无疑是增加了计算量,优点就是最终输出的每一层的特征不是一个线性的变换(应该想表述的说不是从一层特征直接到另一层特征),而是使用共享的多层特征。最终相比RetinaNet提升一个点左右吧,效果一般。VisDrone2020检测的冠军团队采用了这个结构

2. AugFPN

<AugFPN: Improving Multi-scale Feature Learning for Object Detection> 双阶段专用结构,忽略。

3. PANet

PANet

PANet 作为path aggregation network(用在neck部分,效果能够提升4个点左右):是基于Mask-rcnn的改进,主要三点贡献:

  • 自底向上的路径增强,FPN只是将语义信息向下传递,没有对定位信息传递;本文则增加一个自底向上的金字塔,将浅层的定位信息再传递上去;
  • 动态特征池化:FPN将每个Proposal根据大小分配到不同的特征层,文中解释大小相近的proposal可能分配到相邻的层;特征的重要程度可能与层级没关系,可以说是强行解释了。我认为这样的好处仅仅是每个proposal聚合了更多层的信息。动态池化也就是同一个proposal根据特征图相应缩放,取到特征后进行融合。(proposal是2-stage的名词,表示前景推荐框。RPN网络得到的ROI需要经过ROI Pooling或者ROI Align提取ROI特征,这一步操作中,其他方法都是单层特征,FPN同样也是基于单层特征。)
  • 全连接层融合:如图所示。

4. M2Det

<M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network>

该文章利用多个TUM模块试图更充分构建的特征金字塔的网络结构,靠前的TUM提供浅层特征,中间的TUM提供中间层特征,靠后的TUM提供深层特征,通过这种方式能够多次将深层浅层特征融合,参数量多了。和RetinaNet对比可以看到,512输入,都不采用multi-scale推理,mAP由33提升到37.6,小目标精度也提升了一点;以参数量和计算量堆砌的精度提升,不是好方法。

5. Effective FPN

文章认为不同层的重要程度应该和目标的绝对尺度分布有关系,所以在FPN自上而下融合的时候,加入了一个尺度因子用来平衡金字塔不同层的重要性。个人感觉意义不大,实际提升也不明显。

6. MatrixNets

<MatrixNets: A New Scale and Aspect Ratio Aware Architecture for Object Detection>

    1.  采用centerNet作为base:*   GT根据长宽比分配到具体的layer,再分配到最近的特征点,用来训练中心点热力图;*   由具体的中心点来回归左上和右下角点;*   采用的soft nms;

    2.  采用cornerNet作为base: 略

三、 Head部分的改进方案

在VisDrones上的冠军方案和若干其他方案都采用了这种“双头部”的方案。soft-NMS似乎可以提升几个点。

四、 其他

小目标目前检测不好,主要原因不是小,应该是小且和背景接近,对比度不高。所以可以借鉴伪装物体检测的思路;

目标检测-小目标检测涨点方法相关推荐

  1. 检测到目标服务器启用了trace方法_深度学习检测小目标常用方法

    引言 在深度学习目标检测中,特别是人脸检测中,小目标.小人脸的检测由于分辨率低,图片模糊,信息少,噪音多,所以一直是一个实际且常见的困难问题.不过在这几年的发展中,也涌现了一些提高小目标检测性能的解决 ...

  2. 深度学习检测小目标常用方法

    作者丨船长@知乎 来源丨https://zhuanlan.zhihu.com/p/83220498 编辑丨极市平台 本文仅用于学术分享,如有侵权,请联系后台作删文处理. 引言 在深度学习目标检测中,特 ...

  3. 干货 | 深度学习检测小目标常用方法

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 github地址:https://github.com/Captain1986/Captain ...

  4. 收藏 | 深度学习检测小目标常用方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨船长@知乎 来源丨https://zhuanlan.z ...

  5. 目标检测——小目标检测问题

    小目标的定义 小目标有两种定义方式,一种是相对尺寸大小,如目标尺寸的长宽是原图像尺寸的0.1,即可认为是小目标,另外一种是绝对尺寸的定义,即尺寸小于32*32像素的目标即可认为是小目标. 解决办法 图 ...

  6. yolov5检测小目标(附源码)

    yolov5小目标检测(图像切割法附源码) 6.30 更新切割后的小图片的label数据处理 前言 yolov5大家都熟悉,通用性很强,但针对一些小目标检测的效果很差. YOLOv5算法在训练模型的过 ...

  7. 目标检测-小目标检测技巧

    目前阶段,目标检测对小目标的检测效果还不尽如人意,例如yolov5经过FPN后有三种输出尺寸,19*19, 38*38, 76*76,最大的76*76负责检测小目标,而对应到608*608上,每格特征 ...

  8. 利用Faster RCNN实现交通标志识别(检测小目标)

    a.k.a.曲老师的期末大作业 观察了一下老师的给的训练集,一共有五类:交通灯d,指示标志s,指路标志l,禁令标志z,警告标志j.训练集里的交通灯太小了,最小的只有3个像素,之前读的一些论文都提到YO ...

  9. 基于改进SSD的车辆小目标检测方法

    基于改进SSD的车辆小目标检测方法 人工智能技术与咨询 来源:<应用光学>,作者李小宁等 摘 要:地面车辆目标检测问题中由于目标尺寸较小,目标外观信息较少,且易受背景干扰等的原因,较难精确 ...

最新文章

  1. 使用Relay部署编译ONNX模型
  2. 会计电算化之Excel
  3. JSP,Servlet,JavaBean在WEB应用的角色
  4. 分布式存储(姚文辉)
  5. wxWidgets:wxRearrangeDialog类用法
  6. 基于域名的apache服务器
  7. Flink : Flink run yarn 报错 could not build the program from jar file -ynm
  8. 有放回采样和无放回采样
  9. led led c语言程序设计,单片机C语言程序设计:8X8LED 点阵显示数字
  10. STC15单片机-RS-485通信
  11. python卸载pip_python 怎样卸载pip
  12. 微信开放平台认证资料填报
  13. 手把手教你如何使用Unity搭建简易图片服务器
  14. 随心情更新的学习笔记——JS代码之栈的佩兹的糖果盒
  15. ENSP华为模拟器:基础命令及简写
  16. 编写一个类Shop(商店)、内部类InnerCoupons(内部购物券)
  17. labelImg 免命令安装(Windows)
  18. SMC压缩空气质量分级及管理——含水量篇
  19. 用Java计算二月份有多少天
  20. 手把手教程1: 华大单片机HC32F460如何新建工程(ddl库版本)

热门文章

  1. 2022-2028年中国移动电竞市场投资分析及前景预测报告
  2. 易语言自己动手修改配置 添加UPX加壳
  3. SQLException: Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp
  4. JSON.parse() 的坑!
  5. php获取微信素材图片乱码,如何解决在php用gd库输出图片到微信浏览器出现乱码...
  6. 有关H5将文字转成语音播放
  7. 分享购商业模式的4大机制,你知道几个?
  8. 易语言和python混合编程_[我叫以赏]Python制作交互式的服务器与客户端互相通讯(引用SOCKET模块)...
  9. matlab的newff语句,matlab 中“newff” 函数的参数设置
  10. JavaScript 字符串:字符串相加