检测小物体是计算机视觉中最具挑战性和重要的问题之一。在这篇文章中,我们将讨论通过迭代数百种小物体检测模型在Roboflow上开发的一些策略。

无人机在公共空中海上数据集中从上方看到的小物体

为了提高模型在小对象上的性能,我们建议以下技术入手:

  • 提高图像拍摄分辨率

  • 增加模型的输入分辨率

  • 平铺图片

  • 通过扩充生成更多数据

  • 自动学习模型

  • 过滤掉多余的类

为什么小物体问题很难?

小物体问题困扰着全世界的物体检测模型。查看最新模型YOLOv3,EfficientDet和YOLOv4的COCO评估结果:

检查AP_S,AP_M,AP_L的最新模型。小物件很难!例如,在EfficientDet中,小型对象的AP仅为12%,大型对象的AP为51%。那几乎是五倍的差异!那么,为什么很难检测小物体呢?一切都取决于模型。对象检测模型通过聚合卷积层中的像素来形成特征。

PP-YOLO中用于对象检测的特征聚合

并且:

YOLO中的损失函数

如果地面物体本来就不大,而在进行训练时还会变小。因此,小物体最有可能出现数据标记错误,甚至可能会省略其标识。从经验和理论上讲,小物体都很难检测。

提高图像拍摄分辨率

分辨率,分辨率,分辨率……全都与分辨率有关。

很小的物体在边界框内可能只包含几个像素,这意味着增加图像的分辨率以增加检测器可以从该边界框提取信息的丰富度,这非常重要。因此,如果可能我们建议捕获尽可能高分辨率的图像。

增加模型的输入分辨率

获得更高分辨率的图像后,就可以扩大模型的输入分辨率。警告:这将导致大型模型需要花费较长的训练时间,并且在开始部署时将较慢地推断出来。您可能需要进行实验以找出速度与性能之间的权衡。大家可以在我们的有关YOLOv4培训的教程中轻松更改输入分辨率,方法是更改配置文件中的图像大小。

[net]
batch=64
subdivisions=36
width={YOUR RESOLUTION WIDTH HERE}
height={YOUR RESOLUTION HEIGHT HERE}
channels=3
momentum=0.949
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue = .1
learning_rate=0.001
burn_in=1000
max_batches=6000
policy=steps
steps=4800.0,5400.0
scales=.1,.1

更改输入分辨率方法是更改训练命令中的图像大小参数:

!python train.py --img {YOUR RESOLUTON SIZE HERE} --batch 16 --epochs 10 --data '../data.yaml' --cfg ./models/custom_yolov5s.yaml --weights '' --name yolov5s_results  --cache

注意:大家只会看到达到最大训练数据分辨率的改进结果。

平铺图片

检测小图像的另一种很好的策略是将图像平铺作为预处理步骤。平铺可以有效地将检测器放大到小物体上,但可以保持所需的小输入分辨率,以便能够进行快速推理。

在Roboflow中平铺图像作为预处理步骤如果大家要在训练期间使用平铺,请务必记住,还需要在推理时平铺图像。

通过扩充生成更多数据

数据扩充会从基本数据集中生成新图像。这对于防止模型过度拟合训练集非常有用。对于小物体检测,一些特别有用的增强包括随机裁剪,随机旋转和镶嵌增强。

自动学习模型的锚定框

锚定框是模型学习预测的原型边界框。也就是说,锚框可以预先设置,有时对于训练数据而言不是最佳的。自定义调整这些参数以适合我们需要完成的任务,这是很好的。YOLOv5模型架构会根据小伙伴的自定义数据自动为您完成此操作。我们要做的就只是是开始训练。

Analyzing anchors... anchors/target = 4.66, Best Possible Recall
(BPR) = 0.9675. Attempting to generate improved anchors, please wait...
WARNING: Extremely small objects found. 35 of 1664 labels are
< 3 pixels in width or height. Running kmeans for 9 anchors on 1664
points... thr=0.25: 0.9477 best possible recall, 4.95 anchors past
thr n=9, img_size=416, metric_all=0.317/0.665-mean/best,
past_thr=0.465-mean: 18,24,  65,37,  35,68,  46,135,  152,54,
99,109,  66,218,  220,128,  169,228 Evolving anchors with Genetic
Algorithm: fitness = 0.6825: 100%|██████████| 1000/1000 [00:00<00:00,
1081.71it/s] thr=0.25: 0.9627 best possible recall, 5.32 anchors past
thr n=9, img_size=416, metric_all=0.338/0.688-mean/best,
past_thr=0.476-mean: 13,20,  41,32,  26,55,  46,72,  122,57,  86,102,
58,152,  161,120,  165,204

过滤掉多余的类

类管理是提高数据集质量的一项重要技术。如果有两个类明显重叠的类,则应从数据集中过滤一个。如果因为认为数据集中的小对象不值得检测,并希望将他们先去除。大家可以通过运行Roboflow Pro的高级数据集来快速识别所有这些小对象。可以通过Roboflow的管理工具来实现类遗漏和类重命名。

物体检测中的小物体问题相关推荐

  1. 【深度学习】解决物体检测中的小目标问题

    为了提高模型在小物体上的性能,我们建议使用以下技术: 提高图像捕获分辨率 提高模型的输入分辨率 平铺图像 通过扩充生成更多数据 自动学习模型锚 过滤掉多余的类 为什么小目标问题很难? 小物体问题困扰着 ...

  2. 解决物体检测中的小目标问题

    为了提高模型在小物体上的性能,我们建议使用以下技术: 提高图像捕获分辨率 提高模型的输入分辨率 平铺图像 通过扩充生成更多数据 自动学习模型锚 过滤掉多余的类 1. 提高图像捕获分辨率 非常小的物体在 ...

  3. 物体检测中的评价指标【文末赠书】

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 对于一个检测器,我们需要制定一定的规则来评价其好坏,从而选择需要的检测器.对于图像分类任务来讲,由于其 ...

  4. OpenImage冠军方案:在物体检测中为分类和回归任务使用各自独立的特征图

    点击上方"深度学习技术前沿",关注公众号,选择加"星标"或"置顶" 导读 这篇文章来自商汤科技,是OpenImage竞赛的冠军方案,本文对物 ...

  5. 【论文解读】Confluence:物体检测中不依赖IoU的NMS替代算法论文解析

    导读 基于IoU的NMS实际上是一种贪心算法,这种方法得到的结果往往不是最优的,Confluence给出了另一种选择. 论文地址:https://arxiv.org/abs/2012.00257 摘要 ...

  6. 清华优博论文丨物体检测中的特征构建与模型优化

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 摘 要:本文针对物体检测中的环境变化多样.物体尺度变化不一.搜索空 ...

  7. 物体检测中的Objectness是什么?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自AI公园 作者:Nathan Zhao 编译:ronghu ...

  8. 理解物体检测中的Objectness

    本文转自AI公园. 作者:Nathan Zhao 编译:ronghuaiyang 导读 在本文中,我们将讨论目标检测模型和Objectness的基础知识. 什么是物体检测模型? 物体检测模型本质上,正 ...

  9. 解决目标检测中的小目标问题

    <解决目标检测中的小目标问题>   目标检测的前身是滑窗 + 图像分类,如果想要对图像进行鲁棒的分类,首先特征要能够覆盖整幅图像,而且编码的前景信息要比噪声背景信息更加显著.这对于小目标来 ...

最新文章

  1. OpenCV播放视频-----滚动条随着视频播放移动代码
  2. An Error Correction and DeNovo Assembly Approach for Nanopore Reads Using Short Reads
  3. Android开发学习笔记:数据存取之SQLite浅析
  4. 在React 组件中使用Echarts
  5. 令人作呕的OpenSSL
  6. 开发函数计算的正确姿势——OCR 服务
  7. 在linux下php挂接mysql.so扩展的方法
  8. 软件测试bug文档模板,国家标准测试计划文档模板
  9. SAMBA用户访问指定的目录
  10. Linux 安装 RMVB,rm,ape文件 解码器
  11. 最小二乘支持向量机——LSSVM
  12. 【华为云·云筑2020】DevCloud考卷答案
  13. 情商高的人比智商高的可怕多了
  14. 用户抱怨苹果一体机进灰 苹果称中国环境不好
  15. 翡翠手链更能够突显佩戴者的非凡气质
  16. win10下sticky notes(便笺)数据存放地址、数据备份及恢复
  17. 为何计算机CPU技术不被公布呢
  18. 浅谈微机综合自动化系统在化工企业变电站中应用
  19. Mybatis开启驼峰命名,作用
  20. 微信小程序 音乐播放控件,监听播放事件, 音乐播放的基本实现

热门文章

  1. 深度学习网络各种激活函数 Sigmoid、Tanh、ReLU、Leaky_ReLU、SiLU、Mish
  2. 我工作这十年-中国在崛起
  3. 【C和指针】const指针
  4. 中国电子竞技市场:外国玩家的机遇与挑战
  5. jvm 年轻代、年老代、永久代
  6. MySQL、SqlServer、Oracle 三种数据库的优缺点总结
  7. Java:String转char数组
  8. java数据库规范化,数据库关系模式规范化
  9. 蓝桥杯--历届真题 最优包含【第十届】【决赛】【B组】
  10. USB Type-C引脚解析 CC、DFP、UFP、DRP用途解析【转】