YOLOv11 改进 - 下采样 轻量化突破:ADown 下采样让 YOLOv11 参量减、精度升

前言

本文介绍了一种轻量级的特征下采样模块 ADown,它结合平均池化与最大池化策略,实现更有效的信息保留与压缩。在传统卷积网络中,特征下采样常造成信息损失,而 ADown 通过双通道并行结构优化了下采样效果,提升了模型的表达能力。在 YOLOv11 中引入 ADown 替换原有的下采样模块后,网络在保持高效性的同时,显著提升了目标检测的精度与稳定性。文章详细介绍了 ADown 的核心代码实现、模块注册流程以及 YOLOv11-ADown 模型的配置和训练方法,为轻量化目标检测模型的优化提供了实用参考。

文章目录: YOLOv11改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

专栏链接: YOLOv11改进专栏

@

介绍

摘要

当今的深度学习研究主要聚焦于如何设计合适的目标函数 ,以使模型的预测结果尽可能接近真实值。同时,还需构建高效的网络架构 ,以充分提取输入数据中的关键信息用于预测。然而,现有方法普遍忽视了一个重要事实:在输入数据经过深层特征提取与空间变换的过程中,会不可避免地丢失大量信息 。本文将深入探讨这一关键问题------数据在深度网络中的信息丢失机制 ,并从信息瓶颈可逆函数的角度进行分析。

为解决深度网络在多目标学习中面临的梯度退化与信息缺失问题,我们提出了**可编程梯度信息(Programmable Gradient Information, PGI)**的概念。PGI能够为目标任务保留完整的输入信息,以在目标函数计算中提供可靠的梯度,从而有效指导网络权重的更新。

在此基础上,我们设计了一种全新的轻量级网络结构------基于梯度路径规划的广义高效层聚合网络(Generalized Efficient Layer Aggregation Network, GELAN)。实验结果表明,GELAN在轻量级模型中充分验证了PGI的有效性,显著提升了模型的性能与参数利用率。

我们在 MS COCO 数据集 上对所提出的 PGI 与 GELAN 进行了目标检测实验。结果显示,GELAN 仅使用常规卷积算子,即可超越基于深度卷积的多种先进方法,实现更高的参数效率。PGI 机制具有良好的通用性,可应用于从轻量级到大型模型的广泛场景,并能帮助从零训练的模型在无预训练的条件下超越使用大规模数据集预训练的最先进模型。相关结果如图 1 所示。

源代码已开源于:https://github.com/WongKinYiu/yolov9

文章链接

论文地址: 论文地址

代码地址: 代码地址

基本原理

核心代码

复制代码
class ADown(nn.Module):
    def __init__(self, c1, c2):  # ch_in, ch_out, shortcut, kernels, groups, expand
        super().__init__()
        self.c = c2 // 2
        self.cv1 = Conv(c1 // 2, self.c, 3, 2, 1)
        self.cv2 = Conv(c1 // 2, self.c, 1, 1, 0)

    def forward(self, x):
        x = torch.nn.functional.avg_pool2d(x, 2, 1, 0, False, True)
        x1,x2 = x.chunk(2, 1)
        x1 = self.cv1(x1)
        x2 = torch.nn.functional.max_pool2d(x2, 3, 2, 1)
        x2 = self.cv2(x2)
        return torch.cat((x1, x2), 1)

实验

脚本

复制代码
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
#     修改为自己的配置文件地址
    model = YOLO('/root/ultralytics-main/ultralytics/cfg/models/11/yolov11-ADown.yaml')
#     修改为自己的数据集地址
    model.train(data='/root/ultralytics-main/ultralytics/cfg/datasets/coco8.yaml',
                cache=False,
                imgsz=640,
                epochs=10,
                single_cls=False,  # 是否是单类别检测
                batch=8,
                close_mosaic=10,
                workers=0,
                optimizer='SGD',
                amp=True,
                project='runs/train',
                name='ADown',
                )

结果

相关推荐
辰尘_星启3 小时前
【三维重建】概述
计算机视觉·机器人·slam·控制·三维重建·sfm
卡梅德生物科技小能手3 小时前
卡梅德生物科普:CD94(NKG2A)
人工智能·深度学习
直接冲冲冲4 小时前
61-NIN(补充端侧部署和云端部署的概念)
深度学习
林中青木4 小时前
OpenCV 5.0 使用方法及注意事项
人工智能·opencv·计算机视觉
硅谷秋水4 小时前
FATE:面向物理落地机器人课程学习具备主动修复功能且考虑可行性-觉察的闭环任务生成方法
人工智能·深度学习·语言模型·机器人
Token炼金师5 小时前
目标的抉择:CLM 称王、MLM 退场、FIM 补刀、多 Token 与多语 —— 预训练目标五辩
人工智能·深度学习·预训练·clm·mlm·fim·mtp
大鱼>5 小时前
深度学习入门:神经网络原理与 PyTorch 实战
pytorch·深度学习·神经网络
手写码匠5 小时前
手写 LLM 安全护栏:从内容审核到越狱防御的完整实现
人工智能·深度学习·算法·aigc
大囚长5 小时前
信息约简对智能系统预测的重要性
人工智能·深度学习·机器学习