惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Vercel News
Vercel News
月光博客
月光博客
S
SegmentFault 最新的问题
A
About on SuperTechFans
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
B
Blog RSS Feed
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
小众软件
小众软件
WordPress大学
WordPress大学
G
Google Developers Blog
Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
博客园 - 【当耐特】
I
InfoQ

魔改工程师

获取大写字母瓷砖拼出独特图案数量 - 魔改工程师 日志文件异常检测 - 魔改工程师 **操作历史管理器的撤销/重做能力** - 魔改工程师 项目模块依赖构建顺序规划 - 魔改工程师 端口流量统计 - 魔改工程师 最大化游戏试玩资格分发 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 YOLO26改进 – 特征融合 重参数化CSPELAN模块(Reparameterized CSPELAN Module)通过结构重参数化实现高效特征提取 YOLO26改进 – 特征融合 融合Hyper-YOLO混合聚合网络MANet(Mixed Aggregation Network)通过多路径设计实现高效特征学习与模型适应性提升 YOLO26改进 – 特征融合 RepGFPN重参数化特征金字塔网络 ,实现高效多尺度特征交互与融合 YOLO26改进 – 特征融合 EFC增强层间特征相关性,通过多尺度特征交互减少冗余信息丢失即插即用 - 魔改工程师 YOLO26改进 – 注意力机制 融合HCF-Net维度感知选择性整合模块DASI 增强小目标显著性 前言 - 魔改工程师 YOLO26 改进 – 注意力机制 HaloNet 局部自注意力 (Local Self-Attention) 以分块交互策略实现高效全局上下文建模 YOLO26 改进 – 注意力机制 DiffAttention差分注意力:轻量级差分计算实现高效特征降噪,提升模型抗干扰能力 TMLR 2025 前言 - 魔改工程师 YOLO26 改进 – 注意力机制 CAFM (Convolutional Block Attention Module) 卷积块注意力模块:轻量级设计优化特征提取流程,提升小目标感知 YOLO26 改进 – 注意力机制 ACmix自注意力与卷积混合模型:轻量级设计融合双机制优势,实现高效特征提取与推理加速 前言 - 魔改工程师 前言 - 魔改工程师 前言 - 魔改工程师 2026最新YOLO26改进:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总 - 魔改工程师 前言 - 魔改工程师 YOLO26改进 – SPPF模块 替代SPPF,FFocal Modulation焦点调制:即插即用轻量设计优化全局语义捕获 前言 - 魔改工程师 YOLO26改进 – SPPF模块 发论文神器!LSKA注意力改进SPPF,增强多尺度特征提取能力,高效涨点!!! - 魔改工程师 YOLO26改进 – SPPF模块 SPPELAN 空间金字塔池化与增强局部注意力:替代SPPF增强多尺度上下文捕获,提升检测精度
前言 - 魔改工程师
魔改工程师 · 2026-07-05 · via 魔改工程师

本文介绍了一种在YOLO26目标检测模型中引入高效解码器模块EMCAD的创新方法,以提升模型在资源受限场景下的性能与效率。EMCAD由多个模块构成,其中核心的EUCB(高效上卷积块)通过上采样、深度可分离卷积、激活归一化和通道调整等操作,兼顾了特征质量与计算成本。实验结果显示,该模块在显著减少参数与FLOPs的同时仍具备优异性能。文章还提供了完整的YOLO26模型集成流程、配置和训练实战。

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

专栏链接: YOLO26改进专栏

介绍

image-20250807215730116

摘要

在医学图像分割中,设计一种兼具高效性与高性能的解码机制尤为关键,尤其是在计算资源受限的场景下。针对传统解码器计算成本高的问题,本文提出了一种新型高效多尺度卷积注意力解码器——EMCAD,旨在在保证模型精度的同时显著降低计算开销。EMCAD通过引入多尺度深度卷积块,显著增强特征表达能力,并结合通道注意力、空间注意力与大核门控注意力机制,有效捕捉复杂空间关系并聚焦关键区域。借助分组卷积与深度卷积的高效结构,EMCAD在搭配标准编码器时仅需1.91M参数和0.381G FLOPs,具备良好的扩展性和部署友好性。 在6类医学图像分割任务的12个公开数据集上,EMCAD实现了当前先进水平(SOTA)的性能,同时参数量减少79.4%,FLOPs降低80.3%。此外,其对不同编码器的良好适配性和任务通用性进一步验证了其在医学图像分析领域的应用潜力。 项目开源地址:https://github.com/SLDGroup/EMCAD

文章链接

论文地址:论文地址

代码地址:代码地址


基本原理

在本文提出的 EMCAD(Efficient Multi-scale Convolutional Attention Decoder)中,EUCB(Efficient Up-Convolution Block,高效上卷积块) 是解码器实现特征图尺度对齐与高效上采样的核心组件,旨在在提升特征分辨率的同时最大程度降低计算开销。


一、EUCB 的核心功能

EUCB 主要负责逐步放大当前阶段的特征图,以实现与跳跃连接(Skip Connection)中高分辨率特征图的尺寸匹配,从而促进不同尺度特征的有效融合。

  • 在医学图像分割任务中,编码器通常输出多个尺度的特征图(如 1/4、1/8、1/16 等),解码器需通过上采样将其逐层还原。
  • EUCB 正是为此设计,兼顾特征质量与计算效率,规避了传统上卷积结构高计算量的问题。

二、EUCB 的结构与工作流程

EUCB 由四个关键步骤组成,其整体流程可概括为:上采样 → 特征增强 → 通道调整

  1. 上采样(UpSampling)
    使用缩放因子为 2 的上采样操作(如双线性插值)将低分辨率特征图放大一倍,实现初步尺度对齐。

  2. 特征增强(Depth-wise Convolution)
    引入 3×3 深度可分离卷积替代传统卷积,显著降低参数量与 FLOPs,同时增强局部空间细节表达能力。

  3. 归一化与激活(BN + ReLU)
    应用批归一化和 ReLU 激活函数,提高训练稳定性和模型非线性表达能力。

  4. 通道调整(1×1 卷积)
    通过 1×1 卷积调整通道维度,确保后续特征融合时维度一致。


三、EUCB 的核心优势

  1. 高效计算
    借助深度可分离卷积,EUCB 显著降低计算成本,在保持特征增强能力的同时大幅减少参数与 FLOPs,适用于嵌入式与边缘设备部署。

  2. 特征质量保障
    上采样后结合局部增强与归一化激活,有效弥补特征模糊问题,保持语义与空间信息完整。

  3. 结构通用性强
    EUCB 模块结构简洁,适配性强,能够灵活集成至多种 U-Net 变体与编码器架构,支持不同输入分辨率的医学图像分割任务。

核心代码

class EUCB(nn.Module):
    def __init__(self, in_channels, out_channels, kernel_size=3, stride=1, activation='relu'):
        super(EUCB,self).__init__()

        self.in_channels = in_channels
        self.out_channels = out_channels
        self.up_dwc = nn.Sequential(
            nn.Upsample(scale_factor=2),
            nn.Conv2d(self.in_channels, self.in_channels, kernel_size=kernel_size, stride=stride, padding=kernel_size//2, groups=self.in_channels, bias=False),
            nn.BatchNorm2d(self.in_channels),
            act_layer(activation, inplace=True)
        )
        self.pwc = nn.Sequential(
            nn.Conv2d(self.in_channels, self.out_channels, kernel_size=1, stride=1, padding=0, bias=True)
        ) 
        self.init_weights('normal')

    def init_weights(self, scheme=''):
        named_apply(partial(_init_weights, scheme=scheme), self)

    def forward(self, x):
        x = self.up_dwc(x)
        x = channel_shuffle(x, self.in_channels)
        x = self.pwc(x)
        return x

实验

脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

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

结果

image-20260125214645493