点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:AI算法与图像处理

导读

在计算机视觉中,检测小目标是最有挑战的问题之一。本文给出了一些有效的策略。

从无人机上看到的小目标

为了提高你的模型在小目标上的性能,我们推荐以下技术:

  • 提高图像采集的分辨率

  • 增加模型的输入分辨率

  • tile你的图像

  • 通过增强生成更多数据

  • 自动学习模型anchors

  • 过滤掉无关的类别

为什么小目标检测很困难?

小目标问题困扰着世界各地的目标检测模型。不相信吗?查一下最近的模型在COCO上的评估结果,YOLOv3,EfficientDet和YOLOv4:

查看AP_S、AP_M、AP_L以了解最新的模型。小物体检测是很难的!

以Efficient为例,小目标的AP只有12%,大目标的AP为51%。这几乎是五倍的差异!那么,为什么检测小物体如此困难呢?

这一切都归结于模型。目标检测模型通过在卷积层中对像素进行聚合来形成特征。

物体检测中的特征聚合

在网络的末端,基于损失函数进行预测,损失函数根据预测值和ground truth之间的差异对所有像素进行加和。

YOLO中的损失函数

如果ground truth框不大,则在进行训练时信号会很小。此外,小物体最有可能有数据标记错误,他们的识别可能被忽略。

从经验和理论上讲,小物体是很难的。

提升图像采集的分辨率

分辨率,分辨率,分辨率……都是分辨率的锅。

非常小的物体的边界框中可能只包含几个像素,这意味着增加图像的分辨率可以增加探测器可以从那个小盒子中形成的丰富特征,这是非常重要的。

因此,我们建议尽可能提高采集图像的分辨率。

提高模型的输入分辨率

一旦你有了更高分辨率的图像,你就可以放大模型的输入分辨率。警告:这将导致大型模型需要更长的时间来训练,并且当你开始部署时,也会更慢地进行推断。你可能需要实验来找出速度与性能之间的正确权衡。

在训练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

你也可以在训练YOLOv5中通过改变训练命令中的图像尺寸参数来轻松缩放你的输入分辨率:

!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

对图像进行Tiling

检测小物体的另一个重要策略是将图像切割后形成batch,这个操作叫做tile,作为预处理步骤。tile可以有效地将检测器聚焦在小物体上,但允许你保持所需的小输入分辨率,以便能够运行快速推断。

tile图像作为预处理步骤

如果你在训练中使用tile,重要的是要记住,你也需要在推理时tile你的图像。

通过增强产生更多数据

数据增强从基本数据集生成新的图像。这对于防止模型过拟合训练集非常有用。

一些特别有用的小物体检测增强包括随机裁剪、随机旋转和马赛克增强。

自动学习模型Anchors

Anchors是你的模型学会预测的与之相关的原型边界框。也就是说,anchors可以预先设置,有时对你的训练数据不是最优的。最好根据你手头的任务自定义调优它们。幸运的是,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

过滤掉无关的类别

类别管理是提高数据集质量的一项重要技术。如果你有一个类与另一个类明显重叠,你应该从数据集中过滤掉这个类。也许,你认为数据集中的小物体不值得检测,所以你可能希望将其拿掉。

总结

正确地检测小物体确实是一项挑战。在这篇文章中,我们讨论了一些策略来改善你的小物体探测器,即:

  • 提高图像采集的分辨率

  • 增加模型的输入分辨率

  • tile你的图像

  • 通过增强生成更多数据

  • 自动学习模型anchors

  • 过滤掉无关的类别

英文原文:https://towardsdatascience.com/tackling-the-small-object-problem-in-object-detection-6e1c9976ee69

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

目标检测难题 | 小目标检测策略汇总相关推荐

  1. 目标检测之小目标检测和遮挡问题

    小目标检测trick 小目标难检测原因 小目标在原图中尺寸比较小,通用目标检测模型中,一般的基础骨干神经网络(VGG系列和Resnet系列)都有几次下采样处理: 导致小目标在特征图的尺寸基本上只有个位 ...

  2. 从目标检测到小目标检测

    目标检测 目标检测(object detection),就是在给定的一张图片中精确找到物体所在的位置,并标注出物体的类别.所以,目标检测要解决的问题就是物体在哪里以及是什么的整个流程问题.但是,在实际 ...

  3. 针对遥感目标检测(小目标、旋转框、密集目标)的论文整理

    文献整理 文章目录 文献整理 A Multi-Feature Fusion-Based Change Detection Method for Remote Sensing Images 内容摘要 A ...

  4. 目标检测算法——小目标检测

    一.定义 1.以物体检测领域的通用数据集COCO物体定义为例,小目标是指小于32×32个像素点(中物体是指32*32-96*96,大物体是指大于96*96). 2.在实际应用场景中,通常更倾向于使用相 ...

  5. 【目标检测】小目标检测相关

    文章相关 [CVPR2022]QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detecti ...

  6. 【目标检测】小目标检测问题及解决方法

    本部分主要节选自 <Augmentation for small object detection>. 针对目标检测中的小目标问题,主要有以下几种解决方法: (1) 增加输入图片分辨率 [ ...

  7. 《小目标目标检测的解决方法及方式》

    <小目标目标检测的解决方法及方式> 最近在做小目标相关的项目,参考了一些博客.论文及书籍,在这里对小目标的方法和方式做了些总结.如果有哪些问题理解错误或补充欢迎讨论. 1.什么是小目标检测 ...

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

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

  9. 我们是如何改进YOLOv3进行红外小目标检测的?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [导语]本文将介绍BBuf.小武和笔者一起在过年期间完成的一个目标检测项目,将描述我们模型改进的思路. ...

最新文章

  1. 废旧光盘手工小制作_[创意手工]废旧光碟手工制作变废为宝
  2. 老虎Sitemap生成器 0.2
  3. 2020Alibaba数学预选赛第2轮试题
  4. java中连接mysql数据库_java中怎么连接mysql数据库
  5. MasterPage控件的用法
  6. matlab 小波滤波器,matlab小波滤波器使用
  7. 用python分析拼多多_利用Python分析拼多多上卖的最热的产品, 结果出乎大多数人意料!...
  8. php结构的项目,ThinkPHP修改项目结构
  9. NoSuchMethod: ByteBuffer.position(I)
  10. 十大关系数据库SQL注入工具一览
  11. linux中查看ruby版本号,Ruby 版本常量
  12. BitCoke测评报告 | TokenInsight
  13. Linux基础与部署
  14. 别人的计算机网络看不到,局域网内看不到别人的电脑怎么办
  15. 参考文档一:性能测试---测试方案
  16. 日本感情电影 -- 情书
  17. 贝叶斯统计 韦来生 课后题答案 第二章
  18. c语言程序设计吴国良,刘细良
  19. iPhone越狱开发--Cydia起源篇
  20. web前端时间控件使用

热门文章

  1. info testing mysql_sqlmap新手注入
  2. XR872 移植 u-boot-v2021.07
  3. pdf转换成html后打印不清晰,图片转换成pdf后很模糊不清晰怎么办?
  4. 如何隐藏CAD图层?怎么显示隐藏的CAD图层?
  5. 5.26——工作记录
  6. OWT Server信令分析 (下) [Open WebRTC Toolkit]
  7. JavaWeb开发切换皮肤技术
  8. 剪切caspase3_Caspase-3活性检测
  9. ByVal与ByRef的区别
  10. txt文本去重复 亲测50G文本高效去重复