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

news2025/1/18 6:45:54

辅助超推理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.coloradmin.cn/o/1496519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

造极宋韵:大麗和和全新城市系列

中国美学,造极于宋。杭州,一座生活在宋画里的城市,一座繁华与优雅交织的华贵天城。 钱塘自古繁华,温润华贵的丝绸与漆器,诉说这座城市底蕴深藏的华贵;湖上雨霁,山水涳濛,油纸伞与石拱桥,描绘杭州空灵雅逸的自然山水;比德于玉,谦和含章,玉琮与礼玉文化,象征玉成和合的城市气质。…

管理类联考--复试--面试问题--底层逻辑

文章目录 了解面试官提问问题的背后逻辑,在面试时遇到,即使不懂,也能往边边靠近哈一句顶一万句自我介绍 了解面试官提问问题的背后逻辑,在面试时遇到,即使不懂,也能往边边靠近哈 “你最有挑战性的事是啥”…

开源工业软件:SCADA系统开源

PyScada是一个开源的scada系统 源代码地址 http://www.gitpp.com/huangtomy/pyscada-cn SCADA系统是Supervisory Control And Data Acquisition的缩写,即数据采集与监视控制系统。它是以计算机为基础的DCS与电力自动化监控系统,应用领域非常广&#x…

nginx代理参数proxy_pass

proxy_pass参数用于配置反向代理,指定客户端请求被转发到后端服务器,后端地址可以是域名、ip端口URI 代理后端报错提示本地找不到CSS文件、JavaScript文件或图片 例如: nginx :10.1.74.109 后端服务:http://10.1.74.…

Github 2024-03-07 开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4C++项目3C#项目1TypeScript项目1非开发语言项目1HTML项目1CSS项目1屏幕截图转代码应用 创建周期:114 天开发语言:TypeScript, Pyt…

vscode中eslint插件不生效问题

case: 最近使用webpack打包js资源中使用到了VS Code中的eslint插件辅助eslint plugin对代码进行校验,在.eslintrc.js文件中以及webpack.config.js配置好后, 在控制台运行npx webpack可以读取到eslint plugin的检测结果 一、eslint插件读取项目中.eslint…

下载无水印抖音视频

在抖音看到某些视频想下载,却出现无法保存在本地【显示"作品暂时无法保存,链接已复制"】。或者下载的视频有水印。 而某些微信小程序下载可能需要付费或者有水印。其实我们可以直接使用电脑浏览器直接下载。 举个例子: 这是来自王道官方账号的一条视频链…

小程序环形进度条爬坑

在做微信小程序的时候,发现用canvas做的环形进度条,在带滚动条的view里面显示有闪动、显示不全的问题,后面改成echart-weixin的pie图实现了,option配置如下 // 表示进度的百分比 var progressValue 70;option {series: [{type: …

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.M…

Sqoop “hcatalog does not exist!” 提示信息消除方法

sqoop运行的时候老是有这个报错提示,看着可烦,解决消除一下 解决方法: 1、在$SQOOP_HOME/bin目录下面修改configure-sqoop文件 1)进文件夹 cd /training/sqoop-1.4.7/bin2)编辑文件 vi /configure-sqoop3&#xff…

区块链媒体套餐:精益求精链游媒体宣发推广7个关键细节分享-华媒舍

在如今竞争激烈的游戏行业,一款优秀的游戏缺乏有效的宣发推广,很难脱颖而出。而随着区块链技术的兴起,链游媒体的宣发推广成为游戏开发者和运营商的重要选择之一。本文将为大家介绍精益求精的链游媒体宣发推广的七个关键细节。 1. 定位目标受…

openGauss基于存储复制的资源池化安装部署流程

第一步:在主存储上创建资源池化需要的lun,以及远程同步复制xlog卷对应的lun,并且所有lun全部映射到业务计算节点上 1. 登录主集群DeviceManager,选择服务->LUN组->创建 来创建主集群LUN组; 2.登录主集群Device…

通过docker安装Mongodb

通过Docker安装MongoDB非常简单和方便,以下是基本步骤: 拉取MongoDB镜像: 首先确保你已经在本地机器上安装了Docker。然后,在命令行中执行以下命令来从Docker Hub下载官方的MongoDB镜像(这里以最新版本为例&#xff09…

【洛谷 P8748】[蓝桥杯 2021 省 B] 时间显示 题解(数学+模运算+输入输出)

[蓝桥杯 2021 省 B] 时间显示 题目描述 小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。 现在,小蓝要在客户端显示…

Transformer中的位置编码

在Transformer模型中,位置编码是一种特殊的编码方式,用于向模型提供关于输入序列中单词位置的信息。由于Transformer模型没有循环结构,无法像循环神经网络那样从输入序列中推断单词的位置顺序,因此需要引入位置编码来帮助模型理解…

window环境下使用k8s部署.net core项目

前提:已经部署镜像到Docker 在项目发布目录下新建.yaml文件,内容如下(以下仅举例出两种方式内容,可按需自由配置) --方式一(创建deployment 、服务、指定命名空间) # ------------------- 注意层级结构,…

多线程系列(十五) -常用并发工具类详解

一、摘要 在前几篇文章中,我们讲到了线程、线程池、BlockingQueue 等核心组件,其实 JDK 给开发者还提供了比synchronized更加高级的线程同步组件,比如 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 等并发工具类。 下面我们一起来…

嵌入式工程师必备知识点

嵌入式工程师必备知识点 一、基础知识与理论二、编程语言与工具三、嵌入式操作系统四、通信协议与接口技术五、设计与测试 嵌入式工程师作为现代电子工程领域的核心角色,其职责涵盖了从硬件设计、软件开发到系统测试等多个方面。为了胜任这一职位,嵌入式…

一次一对一服务引起的沉思和笑话

前情提要 客户需求: 分析页面代码和接口请求协议和参数需求,将人工下载视频怎么获得最终的视频链接,这一逻辑清晰的展示并讲解清除。我询问了是否需要成品爬虫,他说代码他自己能搞定。 我给的价格选择: 第一种、首…

mac 下redis

安装 Redis brew install redis 安装完成后,我们可以使用以下命令来确认 Redis 是否正确安装: redis-cli ping 启动 Redis redis-server 后台启动 Redis,可以使用以下命令: redis-server --daemonize yes 指定配置文件启动…