Yolo11改进策略:Block改进|FCM,特征互补映射模块|AAAI 2025|即插即用

news2025/6/10 8:44:59

1 论文信息

FBRT-YOLO(Faster and Better for Real-Time Aerial Image Detection)是由北京理工大学团队提出的专用于航拍图像实时目标检测的创新框架,发表于AAAI 2025。论文针对航拍场景中小目标检测的核心难题展开研究,重点解决小目标因分辨率低背景干扰多导致的定位困难,以及现有方法在实时性精度间的失衡问题。

航拍图像目标检测是无人机、遥感监测等应用的关键技术,但面临独特挑战:图像中目标(如车辆、行人)通常仅由少量像素(<0.1%图像面积)构成,且易受云层、建筑群等复杂背景干扰。传统方法通过增加分辨率提升精度,但显著增加计算负担,难以满足嵌入式设备(如无人机芯片)的实时需求。FBRT-YOLO通过轻量化设计,在Visdrone、UAVDT和AI-TOD三大航拍数据集上实现了精度与速度的突破性平衡。

论文链接:https://arxiv.org/pdf/2504.20670

GitHub链接:https://github.com/galaxy-oss/FCM.

2 创新点

2.1 特征互补映射模块(FCM)

FCM模块致力于解决深层网络中小目标空间信息丢失这一根本问题。传统特征金字塔(如FPN)虽融合深浅层特征,但主干网络在传递过程中仍会弱化小目标的精确位置信息。FCM通过“拆分-变换-互补映射-聚合”四步策略实现信息融合:

  1. 通道分割:将输入特征按比例α拆分为两部分( X 1 ∈ R α C × H × W , X 2 ∈ R ( 1 − α ) C × H × W ) X¹∈R^{αC×H×W}, X²∈R^{(1-α)C×H×W}) X1RαC×H×W,X2R(1α)C×H×W,其中α随网络深度动态调整(深层α更低以保留更多空间信息)。
  2. 定向变换:X¹分支通过3×3卷积提取语义信息,X²分支通过逐点卷积提取空间位置信息
  3. 互补映射:通过通道交互(生成通道权重 W c W_c Wc)和空间交互(生成空间权重 W s W_s Ws)计算信息权重,强化关键特征。
  4. 特征聚合:按公式 Y = W c ⋅ X 1 + W s ⋅ X 2 Y = W_c·X¹ + W_s·X² Y=WcX1+WsX2融合信息,使深层特征同时保有语义和位置信息。

2.2 多内核感知单元(MKP)

针对航拍图像中目标尺度差异大的挑战,MKP取代了YOLO的最终下采样层,采用多尺度卷积核级联结构增强感受野适应性:

  • 并行使用3×3、5×5、7×7卷积核提取不同尺度特征
  • 通过逐点卷积(A)整合跨尺度信息,公式表达为: M K P ( X ) = A ( C o n v k = 3 ( X ) ⊕ C o n v k = 5 ( X ) ⊕ C o n v k = 7 ( X ) ) MKP(X) = A(Conv_{k=3}(X) ⊕ Conv_{k=5}(X) ⊕ Conv_{k=7}(X)) MKP(X)=A(Convk=3(X)Convk=5(X)Convk=7(X))
    该设计避免单一卷积核的局限性:小卷积核感受野不足,大卷积核引入过多背景噪声。

2.3 冗余驱动的轻量化设计

传统检测器在高分辨率图像处理中存在结构冗余。FBRT-YOLO通过两项精简策略优化效率:

  1. 下采样层重构:用分组卷积替代标准卷积执行空间下采样,后续接逐点卷积扩展通道,参数量降至标准卷积的1/4(公式对比: P a r a m s s t d = k 2 C i n C o u t , P a r a m s o p t = k 2 C i n G + C i n C o u t Params_{std}=k²C_inC_out, Params_{opt}=k²C_inG + C_inC_out Paramsstd=k2CinCout,Paramsopt=k2CinG+CinCout,G为分组数)。
  2. 检测头简化:结合MKP单元移除冗余检测头,减少输出层计算量。

3 方法

3.1 整体架构

FBRT-YOLO以YOLOv8为基线,主干网络嵌入FCM模块替代原C2f单元,并在最后一层用MKP单元替换下采样操作。整体架构分为三阶段:

  1. 特征提取:输入图像经多层卷积,每阶段输出接入FCM模块融合空间-语义信息。
  2. 多尺度感知:MKP单元在最终阶段捕获大范围上下文,输出多尺度特征图。
  3. 检测头:精简后的头部输出预测框(类别、置信度、坐标)。

3.2 FCM模块技术细节

  • 通道交互机制:通过全局平均池化生成通道权重 W c = σ ( M L P ( G A P ( X ) ) ) ( σ 为 S i g m o i d ) W_c = σ(MLP(GAP(X)))(σ为Sigmoid) Wc=σ(MLP(GAP(X)))σSigmoid
  • 空间注意力:空间权重 W s = σ ( C o n v 1 × 1 ( C o n c a t [ A v g P o o l ( X ) , M a x P o o l ( X ) ] ) ) W_s = σ(Conv_{1×1}(Concat[AvgPool(X), MaxPool(X)])) Ws=σ(Conv1×1(Concat[AvgPool(X),MaxPool(X)]))
  • 分割比例策略:实验表明α取(0.75, 0.75, 0.25, 0.25)时效果最佳(即深层保留更多空间信息)。

3.3 FCM模块创新特点

FCM模块的创新之处在于:

  1. 通道分割策略:1:3比例分割,深层网络保留更多位置信息
  2. 双分支异构处理:语义分支(3×3卷积) + 位置分支(1×1卷积)
  3. 双向注意力互补:空间注意力和通道注意力交叉作用
  4. 轻量化设计:仅使用标准卷积操作,计算高效

在这里插入图片描述

4 效果

4.1 性能对比实验

在三大航拍数据集上的测试表明,FBRT-YOLO全面超越现有实时检测器:

  • Visdrone数据集:FBRT-YOLO-S模型AP达30.1%,较YOLOv8-S提升2.3%,参数量减少74%。
  • UAVDT数据集:AP为18.4%,超过GLSAN(17.1%)和CEASC(17.6%)。
  • AI-TOD数据集(小目标为主):AP50提升2.2%,GFLOPs降低20%。

表2:Visdrone数据集上模型性能对比

模型AP(%)参数量(M)GFLOPs推理速度(FPS)
YOLOv8-S27.811.128.6142
FBRT-YOLO-S30.12.922.8189
RT-DETR-R3428.919.298.3156
FBRT-YOLO-M30.218.776.5173

4.2 消融实验

以YOLOv8-S为基线,逐步引入改进组件:

  1. 冗余优化:参数减少18%,计算负载降11%,精度略降0.2%(AP)。
  2. 添加FCM:AP50提升1.4%,因特征增强补偿了精度损失。
  3. 替换MKP:AP提升1.6%,训练收敛速度加快30%。

可视化热图显示,FBRT-YOLO对密集小目标的响应强度显著高于基线模型,尤其在车辆群、行人小目标等场景中关注区域更精确。

4.3 效率优势

  • 边缘部署潜力:FBRT-YOLO-N仅2.9M参数,在嵌入式GPU上达189 FPS,较YOLOv8-N加速45%。
  • 计算负载优化:MKP单元通过多核并行计算,单帧处理延迟降至5ms以下,满足无人机实时避障需求。
    在这里插入图片描述

5 总结

FBRT-YOLO通过特征互补映射模块(FCM)多内核感知单元(MKP) 的创新设计,解决了航拍图像检测中小目标信息丢失多尺度适应性不足的核心问题。其贡献主要体现在三方面:

  1. 理论层面:提出空间-语义信息互补映射机制,缓解深层网络位置信息衰减问题;
  2. 工程层面:轻量化设计(参数量最高降74%)满足嵌入式设备实时需求;
  3. 应用层面:在Visdrone等数据集上AP提升1.1-2.3%,为无人机安防、灾害监测提供高效解决方案。

代码

import torch
import torch.nn as nn
import torch.nn.functional as F

# 辅助函数:自动计算padding大小
def autopad(k, p=None, d=1):
    """Pad to 'same' shape outputs."""
    if d > 1:
        k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k]
    if p is None:
        p = k // 2 if isinstance(k, int) else [x // 2 for x in k]
    return p

# 标准卷积模块(带激活函数)
class Conv(nn.Module):
    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, d=1, act=True):
        super().__init__()
        self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p, d), groups=g, dilation=d, bias=False)
        self.bn = nn.BatchNorm2d(c2)
        self.act = nn.SiLU() if act is True else act if isinstance(act, nn.Module) else nn.Identity()
    
    def forward(self, x):
        return self.act(self.bn(self.conv(x)))

# 通道注意力模块
class Channel(nn.Module):
    def __init__(self, dim):
        super().__init__()
        self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, groups=dim)  # 深度可分离卷积
        self.Apt = nn.AdaptiveAvgPool2d(1)  # 全局平均池化
        self.sigmoid = nn.Sigmoid()
    
    def forward(self, x):
        x2 = self.dwconv(x)  # 提取空间特征
        x5 = self.Apt(x2)    # 压缩空间维度
        x6 = self.sigmoid(x5) # 生成通道权重
        return x6

# 空间注意力模块
class Spatial(nn.Module):
    def __init__(self, dim):
        super().__init__()
        self.conv1 = nn.Conv2d(dim, 1, 1, 1)  # 通道压缩到1
        self.bn = nn.BatchNorm2d(1)           # 单通道BN
        self.sigmoid = nn.Sigmoid()
    
    def forward(self, x):
        x1 = self.conv1(x)    # 空间特征提取
        x5 = self.bn(x1)       # 标准化
        x6 = self.sigmoid(x5) # 生成空间权重
        return x6

# 特征互补映射模块(核心创新)
class FCM(nn.Module):
    def __init__(self, dim):
        super().__init__()
        # 通道分割比例:1/4 vs 3/4
        self.one = dim // 4
        self.two = dim - dim // 4
        
        # 语义分支(小通道):3×3卷积提取语义信息
        self.conv1 = Conv(dim // 4, dim // 4, 3, 1, 1)
        self.conv12 = Conv(dim // 4, dim // 4, 3, 1, 1)
        self.conv123 = Conv(dim // 4, dim, 1, 1)  # 1×1卷积扩展通道
        
        # 位置分支(大通道):1×1卷积保持位置信息
        self.conv2 = Conv(dim - dim // 4, dim, 1, 1)
        
        # 特征融合
        self.conv3 = Conv(dim, dim, 1, 1)  # 最终融合卷积
        
        # 注意力机制
        self.spatial = Spatial(dim)  # 空间注意力
        self.channel = Channel(dim)  # 通道注意力

    def forward(self, x):
        # 1. 通道分割
        x1, x2 = torch.split(x, [self.one, self.two], dim=1)
        
        # 2. 语义分支处理
        x3 = self.conv1(x1)     # 3×3卷积提取语义
        x3 = self.conv12(x3)    # 再次3×3卷积增强
        x3 = self.conv123(x3)   # 1×1卷积扩展通道到dim
        
        # 3. 位置分支处理
        x4 = self.conv2(x2)     # 1×1卷积保持位置信息
        
        # 4. 互补映射(论文核心创新)
        # 空间注意力作用于语义分支
        spatial_attn = self.spatial(x4)  # 基于位置分支生成空间注意力图
        x33 = spatial_attn * x3         # 空间注意力加权语义特征
        
        # 通道注意力作用于位置分支
        channel_attn = self.channel(x3)  # 基于语义分支生成通道注意力
        x44 = channel_attn * x4          # 通道注意力加权位置特征
        
        # 5. 特征聚合
        x5 = x33 + x44          # 互补特征相加融合
        x5 = self.conv3(x5)     # 1×1卷积融合特征
        return x5
        
if __name__ == "__main__":
    # 定义输入张量大小(Batch、Channel、Height、Wight)
    B, C, H, W = 16, 64, 40, 40
    input_tensor = torch.randn(B,C,H,W)  # 随机生成输入张量
    dim=C
    # 创建 ARConv 实例
    block = FCM(dim=64)
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    sablock = block.to(device)
    print(sablock)
    input_tensor = input_tensor.to(device)
    # 执行前向传播
    output = sablock(input_tensor)
    # 打印输入和输出的形状
    print(f"Input: {input_tensor.shape}")
    print(f"Output: {output.shape}")

关键创新点解析

1. 通道分割策略(论文中的α比例)
self.one = dim // 4      # 1/4通道用于语义分支
self.two = dim - dim //4 # 3/4通道用于位置分支
  • 实现论文中的α=0.25分割比例
  • 深层网络保留更多位置信息(3/4通道)
  • 符合航拍图像小目标检测需求
2. 双分支特征处理

语义分支(小通道)

x3 = self.conv1(x1)     # 3×3卷积
x3 = self.conv12(x3)    # 再次3×3卷积
x3 = self.conv123(x3)   # 1×1卷积扩展通道
  • 使用3×3卷积提取丰富语义信息
  • 通过两次卷积增强特征表示能力
  • 1×1卷积扩展通道实现维度匹配

位置分支(大通道)

x4 = self.conv2(x2)  # 1×1卷积
  • 仅使用1×1卷积处理
  • 最大程度保留原始位置信息
  • 避免卷积操作破坏小目标位置特征
3. 互补注意力机制(论文核心)
# 空间注意力作用于语义分支
spatial_attn = self.spatial(x4)  # 从位置分支生成
x33 = spatial_attn * x3         # 加权语义特征

# 通道注意力作用于位置分支
channel_attn = self.channel(x3)  # 从语义分支生成
x44 = channel_attn * x4          # 加权位置特征
  • 双向注意力交互:两个分支相互提供注意力指导
  • 空间注意力:基于位置分支生成,增强语义分支的关键区域
  • 通道注意力:基于语义分支生成,强化位置分支的重要特征通道
  • 实现论文中的"互补映射"机制
4. 特征融合
x5 = x33 + x44      # 特征相加融合
x5 = self.conv3(x5) # 1×1卷积进一步融合
  • 简单有效的逐元素相加融合
  • 1×1卷积实现跨通道信息整合
  • 保持特征图尺寸不变

模块工作流程

  1. 输入分割:将输入特征图按1:3比例分割通道
  2. 双分支处理
    • 小通道分支:通过3×3卷积提取语义信息
    • 大通道分支:通过1×1卷积保留位置信息
  3. 注意力交互
    • 从位置分支生成空间注意力,加权语义分支
    • 从语义分支生成通道注意力,加权位置分支
  4. 特征聚合:加权后的特征相加并通过1×1卷积融合

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

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

相关文章

简单聊下阿里云DNS劫持事件

阿里云域名被DNS劫持事件 事件总结 根据ICANN规则&#xff0c;域名注册商&#xff08;Verisign&#xff09;认定aliyuncs.com域名下的部分网站被用于非法活动&#xff08;如传播恶意软件&#xff09;&#xff1b;顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…

循环语句之while

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为&#xff1a; i); i i 1; } 下面的例子是一个无限循环&#xff0c;因…

机器学习复习3--模型评估

误差与过拟合 我们将学习器对样本的实际预测结果与样本的真实值之间的差异称为&#xff1a;误差&#xff08;error&#xff09;。 误差定义&#xff1a; ①在训练集上的误差称为训练误差&#xff08;training error&#xff09;或经验误差&#xff08;empirical error&#x…

联邦学习带宽资源分配

带宽资源分配是指在网络中如何合理分配有限的带宽资源&#xff0c;以满足各个通信任务和用户的需求&#xff0c;尤其是在多用户共享带宽的情况下&#xff0c;如何确保各个设备或用户的通信需求得到高效且公平的满足。带宽是网络中的一个重要资源&#xff0c;通常指的是单位时间…

今日行情明日机会——20250609

上证指数放量上涨&#xff0c;接近3400点&#xff0c;个股涨多跌少。 深证放量上涨&#xff0c;但有个小上影线&#xff0c;相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析&#xff08;基于最新图片数据&#xff09; 1. 医药&#xff08;11家涨停&#xff09; 代表标…

GC1808:高性能音频ADC的卓越之选

在音频处理领域&#xff0c;高质量的音频模数转换器&#xff08;ADC&#xff09;是实现精准音频数字化的关键。GC1808&#xff0c;一款96kHz、24bit立体声音频ADC&#xff0c;以其卓越的性能和高性价比脱颖而出&#xff0c;成为众多音频设备制造商的理想选择。 GC1808集成了64倍…

生产管理系统开发:专业软件开发公司的实践与思考

生产管理系统开发的关键点 在当前制造业智能化升级的转型背景下&#xff0c;生产管理系统开发正逐步成为企业优化生产流程的重要技术手段。不同行业、不同规模的企业在推进生产管理数字化转型过程中&#xff0c;面临的挑战存在显著差异。本文结合具体实践案例&#xff0c;分析…

VASP软件在第一性原理计算中的应用-测试GO

VASP软件在第一性原理计算中的应用 VASP是由维也纳大学Hafner小组开发的一款功能强大的第一性原理计算软件&#xff0c;广泛应用于材料科学、凝聚态物理、化学和纳米技术等领域。 VASP的核心功能与应用 1. 电子结构计算 VASP最突出的功能是进行高精度的电子结构计算&#xff…

Centos 7 服务器部署多网站

一、准备工作 安装 Apache bash sudo yum install httpd -y sudo systemctl start httpd sudo systemctl enable httpd创建网站目录 假设部署 2 个网站&#xff0c;目录结构如下&#xff1a; bash sudo mkdir -p /var/www/site1/html sudo mkdir -p /var/www/site2/html添加测试…

从数据报表到决策大脑:AI重构电商决策链条

在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…

(12)-Fiddler抓包-Fiddler设置IOS手机抓包

1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求&#xff0c;也可以截获各种智能手机发出的HTTP/ HTTPS 请求。 Fiddler 能捕获Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。同理也可以截获iOS设备发出的请求&#xff0c;比如 iPhone、iPad 和 MacBook 等苹…

第2课 SiC MOSFET与 Si IGBT 静态特性对比

2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流

MCP和Function Calling

MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09; &#xff0c;2024年11月底&#xff0c;由 Anthropic 推出的一种开放标准&#xff0c;旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而…

解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护

摘要 本文以健康管理应用为例&#xff0c;展示鸿蒙系统如何通过细粒度权限控制、动态权限授予、数据隔离和加密存储四大核心机制&#xff0c;实现复杂场景下的用户隐私保护。我们将通过完整的权限请求流程和敏感数据处理代码&#xff0c;演示鸿蒙系统如何平衡功能需求与隐私安…

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…

STM32 低功耗设计全攻略:PWR 模块原理 + 睡眠 / 停止 / 待机模式实战(串口 + 红外 + RTC 应用全解析)

文章目录 PWRPWR&#xff08;电源控制模块&#xff09;核心功能 电源框图上电复位和掉电复位可编程电压监测器低功耗模式模式选择睡眠模式停止模式待机模式 修改主频一、准备工作二、修改主频的核心步骤&#xff1a;宏定义配置三、程序流程&#xff1a;时钟配置函数解析四、注意…

持续交付的进化:从DevOps到AI驱动的IT新动能

文章目录 一、持续交付的本质&#xff1a;从手动到自动的交付飞跃关键特性案例&#xff1a;电商平台的高效部署 二、持续交付的演进&#xff1a;从CI到AI驱动的未来发展历程 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/101f72defaf3493ba0ba376bf09367a2.png)中国…

OpenHarmony标准系统-HDF框架之I2C驱动开发

文章目录 引言I2C基础知识概念和特性协议&#xff0c;四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线&#xff0c;由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…

LeetCode - 148. 排序链表

目录 题目 思路 基本情况检查 复杂度分析 执行示例 读者可能出的错误 正确的写法 题目 148. 排序链表 - 力扣&#xff08;LeetCode&#xff09; 思路 链表归并排序采用"分治"的策略&#xff0c;主要分为三个步骤&#xff1a; 分割&#xff1a;将链表从中间…

多模态大语言模型arxiv论文略读(110)

CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文标题&#xff1a;CoVLA: Comprehensive Vision-Language-Action Dataset for Autonomous Driving ➡️ 论文作者&#xff1a;Hidehisa Arai, Keita Miwa, Kento Sasaki, Yu Yamaguchi, …