【YOLO v5 v7 v8 v9小目标改进】辅助超推理SAHI:分而治之,解决高分辨率图像中小物体检测的问题

辅助超推理SAHI:分而治之,解决高分辨率图像中小物体检测的问题

    • 设计思路
    • 结构
    • 小目标涨点
      • YOLO v5 魔改
      • YOLO v7 魔改
      • YOLO v8 魔改
      • YOLO v9 魔改

 


论文:https://arxiv.org/pdf/2202.06934.pdf

代码:https://github.com/obss/sahi

 

设计思路

用一个超高清的相机拍摄一片风景,而你想在这张大照片里找到一些非常小的物体,比如远处的小鸟或花朵。

因为这些物体在整张照片中占的比例非常小,所以直接找它们会很困难,而且需要非常强大的算力。

你有一张大拼图,它由成百上千的小拼图块组成。

如果你试图一次性理解整张图的内容可能会感到困难和压力,特别是如果这张图非常复杂,细节丰富。

但是,如果你将拼图分成几个部分,一块一块地完成,每一块拼好之后再把所有的小块合并起来,最终得到的将是一幅完整的图画。

这种方法不仅使任务变得更加管理和操作上可行,而且每完成一小块就能带来成就感,激励你继续前进。

在科学和工程领域,这种思路同样适用。

例如,在计算机科学中,大型软件项目往往会被分解为多个小模块或组件,每个部分由不同的团队独立开发。

只有当这些独立开发的模块都完成并通过测试后,它们才会被集成在一起,形成完整的软件系统。

这样做的优点包括提高了开发效率,降低了错误和问题的复杂性,使得更容易定位和修复问题。

 
我们提出了一个办法来解决这个问题:

  1. 把大照片切成小块:就像用剪刀把一张大照片切成很多小片一样。这样,每个小块里的小物体相对于这个小块就变得更大了,更容易被找到。

  2. 在每个小块上做“练习”:我们有一些事先训练好的模型,它们擅长找东西,但主要是在比较小的图片中找。我们用这些模型在每个小块上找我们想要的小物体。

  3. 再把找到的东西放回原位:当我们在所有小块中都找完后,就把找到的小物体的位置标记起来,再放回到原来的大照片中相应的位置。

这样做的好处是,我们既没有错过任何小物体,又没有需要非常强大的计算力去一次性处理整张大照片。

这个方法可以用在任何需要找小物体的场景中,比如用监控摄像头监视一片区域,或者用无人机拍摄的大面积地图上寻找特定的小目标。

为了解决高分辨率图像中小物体检测的问题,我们提出了一个基于切片的通用框架,在模型的微调和推理阶段使用。

结构

在这里插入图片描述
这张图是一幅流程图,展示了基于切片的模型微调(Slicing Aided Fine-tuning, SF)和基于切片的高效推理(Slicing Aided Hyper Inference, SAHI)两种方法。

流程图的上半部分(Slicing Aided Fine-tuning, SF)说明了以下步骤:

  1. 从预训练数据集中,选取图片(例如 I F 1 I_{F1} IF1 I F 2 I_{F2} IF2)进行微调。
  2. 图片被切割成较小的重叠片段或补丁(例如 P F 1 P_{F1} PF1 P F 2 P_{F2} PF2),然后这些片段被调整大小到一个更大的尺寸。
  3. 这些增强后的图片片段(例如 I 0 ′ I'_{0} I0)被用于微调预训练好的模型,生成了微调后的模型。

流程图的下半部分(Slicing Aided Hyper Inference, SAHI)描述了推理阶段的以下步骤:

  1. 原始查询图像(例如 ( I ))被切割成多个重叠的小片段(例如 P I 1 P_{I1} PI1 P I l P_{Il} PIl)。
  2. 每个小片段大小调整后,单独进行物体检测推理,并生成预测。
  3. 接着,所有小片段的预测结果通过非极大值抑制(NMS)转换回原始图像的坐标尺度。
  4. 可选地,可以加入从原始图像的全尺寸推理中得到的预测结果。

 

这个框架包含以下两个主要部分:

  1. 切片辅助微调 (SF):使用流行的物体检测框架(如Detectron2、MMDetection和YOLOv5)的预训练权重,我们通过将高分辨率图像切割成重叠的小块(称为切片)来增强数据集。

    这些切片相对于原图中的小物体具有更大的像素面积,使得小物体在网络训练时变得更明显,从而提高了模型对小物体的检测性能。

    • 子特征:选择切片尺寸作为超参数,然后在微调过程中将切片调整大小以保持宽度在800到1333像素之间,从而相对于原始图像扩大了物体的相对尺寸。

     
    之所以采用这种方法,是因为预训练的模型通常在低分辨率图像上表现良好,但对高分辨率图像中的小物体检测效果不佳。

  2. 切片辅助高效推理 (SAHI):在推理步骤中,也采用了切片方法。

    首先,将原始查询图像切割成多个重叠的M×N尺寸的切片,每个切片在保持宽高比的情况下调整大小。

    然后,独立地对每个切片进行物体检测推理。

    此外,可以选择使用原始图像进行完整推理以检测较大的物体。

    最后,将所有重叠切片的检测结果(如果使用了完整推理,还包括完整推理的结果)通过非极大抑制(NMS)合并回原始图像大小。

    在NMS过程中,删除那些IoU比预定义匹配阈值低的检测框。

    • 子特征:通过这种方法,可以优化小物体的检测效率和准确性,同时保留了对大物体检测的能力。
       

    之所以使用切片辅助推理,是因为直接对高分辨率图像进行全图推理对于小物体而言效果不佳,而且计算成本高。

小目标涨点

更新中…

YOLO v5 魔改

YOLO v7 魔改

YOLO v8 魔改

YOLO v9 魔改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/518174.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ 交换器

RabbitMQ 交换器 官方例子 http://www.rabbitmq.com/getstarted.html direct 如上图所示,两个队列绑定到了direct交换器上,第一个队列绑定的 binding key 为 orange ,第二个队列有两个绑定,分别是 black 和 green 。 如上图所示…

为什么那么多程序员推荐 Linux,是不是在 Linux 下开发效率高?

为什么那么多程序员推荐 Linux,是不是在 Linux 下开发效率高? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux 的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全…

java SSM厂房管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM厂房管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S…

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

电商自动集成端口(API商品接口)上线!轻松用API对接各大电商接口

对卖家阿沸而言&#xff0c;处理订单配送是一项比较复杂的任务&#xff0c;他必须要同时处理大量的来自全球多个渠道和地点的各种SKU订单&#xff0c;还要将库存分开管理&#xff0c;发货时总是搞得手忙脚乱...... 我们知道&#xff0c;正确配送订单对于保持客户满意度和忠诚度…

Java多线程——如何保证原子性

目录 引出原子性保障原子性CAS 创建线程有几种方式&#xff1f;方式1&#xff1a;继承Thread创建线程方式2&#xff1a;通过Runnable方式3&#xff1a;通过Callable创建线程方式4&#xff1a;通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理&#xff1a;线程池的…

Atomikos详解:数据库XA规范与Atomikos使用与源码分析

文章目录 一、认识2PC - 两阶段提交1、理论2、手撸XA-两阶段提交&#xff08;1&#xff09;时序图&#xff08;2&#xff09;代码实例 3、认识JTA4、今天的主角&#xff1a;Atomikos5、2PC存在的问题 二、Atomikos使用1、依赖配置2、定义AtomikosDataSourceBean数据源3、定义事…

设计模式之模版方法实践

模版方法实践案例 实践之前还是先了解一下模版方法的定义 定义 模板方法模式是一种行为设计模式&#xff0c;它定义了一个骨架&#xff0c;并允许子类在不改变结构的情况下重写的特定步骤。模板方法模式通过在父类中定义一个模板方法&#xff0c;其中包含了主要步骤&#xf…

Batch Nomalization 迁移学习

Batch Nomalization 1.Batch Nomalization原理 图像预处理过程中通常会对图像进行标准化处理&#xff0c;这样能够加速网络的收敛。就是按照channel去求均值和方差&#xff0c;然后原数据减均值除标准差&#xff0c;使我们的feature map满足均值为0&#xff0c;方差为1的分布…

【教程】HBuilderX开发实践:隐私合规检测问题解决方案

文章目录 摘要引言正文1、违规收集个人信息2、APP强制、频繁、过度索取权限 知识点补充总结 摘要 本篇博客介绍了在使用HBuilderX进行开发过程中&#xff0c;常遇到的隐私合规问题&#xff0c;并提供了相应的解决方案。主要包括违规收集个人信息和APP强制、频繁、过度索取权限…

C#知识点-21(初识数据库)

数据库与内存、文件的比较 内存&#xff1a; 优点&#xff1a;存取速度快 缺点&#xff1a;-容量小 -断电后&#xff0c;数据不会保存 文件&#xff1a; 优点&#xff1a;数据可以持久化保存 缺点&#xff1a;-读取速度慢…