YOLOv8最新改进系列:融合YOLOv9下采样机制,扩大YOLOv8网络模型感受野,降低过拟合,让小目标无处可遁!检测精度再提新高!!

YOLOv8最新改进系列:融合YOLOv9下采样机制,扩大YOLOv8网络模型感受野,降低过拟合,让小目标无处可遁!检测精度再提新高!!!

YOLOv9下采样原文链接戳这里,原文全文翻译请关注B站Ai学术叫叫首er

B站全文戳这里!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

截止到发稿时,B站YOLOv8最新改进系列的源码包,已更新了38种+损失函数的改进!自己排列组合2-4种后,不考虑位置已达10万种以上改进方法!考虑位置不同后可排列上百万种!!专注AI学术,关注B站博主:Ai学术叫叫兽er!


一、下采样详解

1.1 下采样的目的:

为了使得图像符合显示区域的大小,生成对应图像的缩略图。在信号处理的不同模块中,下采样可以带来许多好处,例如提高信噪比,减少计算量,防止过拟合,增大感受野,使得后面的卷积核能够学到更加全局的信息。

1.2上采样与下采样的区别

1.2.1上采样的方式:

它有反卷积(Deconvolution,也称转置卷积)、上池化(UnPooling)方法、双线性插值(各种插值算法)。
在卷积神经网络中,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(如图像的语义分割),这个使图像由小分辨率映射到大分辨率的操作,叫做上采样,它的实现一般有三种方式:

1.插值,一般使用的是双线性插值,因为效果最好,虽然计算上比其他插值方式复杂,但是相对于卷积计算可以说不值一提,其他插值方式还有最近邻插值、三线性插值等;

2.转置卷积又或是说反卷积(Transpose Conv),通过对输入feature
map间隔填充0,再进行标准的卷积计算,可以使得输出feature map的尺寸比输入更大;

3.Up-Pooling - Max Unpooling && Avg Unpooling --Max Unpooling,在对称的max pooling位置记录最大值的索引位置,然后在unpooling阶段时将对应的值放置到原先最大值位置,其余位置补0;

1.2.2下采样的方式

1、采用stride为2的池化层,如Max-pooling和Average-pooling,目前通常使用Max-pooling,因为他计算简单而且能够更好的保留纹理特征;
2、采用stride为2的卷积层,下采样的过程是一个信息损失的过程,而池化层是不可学习的,用stride为2的可学习卷积层来代替pooling可以得到更好的效果,当然同时也增加了一定的计算量。

二、YOLOv9概述

如今的深度学习方法重点关注如何设计最合适的目标函数,从而使得模型的预测结果能够最接近真实情况。同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。然而,现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。
因此,YOLOv9 深入研究了数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。研究者提出了可编程梯度信息(programmable gradient information,PGI)的概念,来应对深度网络实现多个目标所需要的各种变化。PGI 可以为目标任务计算目标函数提供完整的输入信息,从而获得可靠的梯度信息来更新网络权值。
此外,研究者基于梯度路径规划设计了一种新的轻量级网络架构,即通用高效层聚合网络(Generalized Efficient Layer Aggregation Network,GELAN)。该架构证实了 PGI 可以在轻量级模型上取得优异的结果。
研究者在基于 MS COCO 数据集的目标检测任务上验证所提出的 GELAN 和 PGI。结果表明,与基于深度卷积开发的 SOTA 方法相比,GELAN 仅使用传统卷积算子即可实现更好的参数利用率。
对于 PGI 而言,它的适用性很强,可用于从轻型到大型的各种模型。我们可以用它来获取完整的信息,从而使从头开始训练的模型能够比使用大型数据集预训练的 SOTA 模型获得更好的结果。

详细的改进教程以及源码和YOLOv9全文翻译,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

三、 改进教程

2.1 修改YAML文件

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

2.2 新建D.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

2.3 修改tasks.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

三、验证是否成功即可

执行命令

python train.py

改完收工!
关注B站:AI学术叫叫兽
从此走上科研快速路
遥遥领先同行!!!!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 14:12:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 14:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 14:12:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 14:12:02       20 阅读

热门阅读

  1. virtual-pc/VMware/bochs的区别

    2024-03-14 14:12:02       20 阅读
  2. 数据库设计三范式

    2024-03-14 14:12:02       24 阅读
  3. Unix运维_CMake教程_CMake中的link_libraries指令

    2024-03-14 14:12:02       20 阅读
  4. springBean的三种实例化

    2024-03-14 14:12:02       22 阅读
  5. Kubernetes kafka系列 | k8s部署kafka+zookeepe集群

    2024-03-14 14:12:02       16 阅读
  6. boost 压缩与解压缩流

    2024-03-14 14:12:02       20 阅读
  7. TCP的三次握手和四次挥手

    2024-03-14 14:12:02       21 阅读
  8. [AIGC] 探索消息队列事务

    2024-03-14 14:12:02       18 阅读