在深度学习驱动的密集预测任务(如 salient object detection、图像分割、目标检测)中,模型常面临两大核心挑战:一是高频信息丢失与低频信息冗余,低分辨率编码器特征往往侧重低频语义信息(如物体大致类别、整体轮廓),而解码阶段需高频细节(如物体边缘、纹理、局部结构)以生成高精度结果,若无法有效筛选高频信息,易导致预测结果模糊、细节缺失;二是通道特征权重失衡,不同通道特征对任务的贡献度存在差异,简单平等对待所有通道会掩盖关键特征(如目标的独特纹理通道、边缘的梯度变化通道),降低模型对目标与背景的判别能力。
传统注意力机制(如 RCAB,Residual Channel Attention Block)虽能通过通道注意力优化特征权重,但仅在空间域操作,难以直接捕捉频率维度的全局依赖关系,对高频细节的强化能力有限。同时,随着模型深度增加,神经网络固有的 “光谱偏差”(倾向于学习易优化的低频模式,忽略难学习的高频模式)会进一步加剧高频信息的丢失问题。为解决这些痛点,FRCAB 结合快速傅里叶变换(FFT)的全局表征能力与残差通道注意力的优势,在频率域与空间域协同优化特征,为密集预测任务提供更高效的特征增强方案。
1.FRCAB原理
FRCAB 的核心原理是 **“频率域全局依赖捕捉 + 空间域残差特征增强”**,通过在频率维度挖掘通道间的全局关联,同时利用残差结构保留原始特征信息,实现对高频关键特征的优先强化与通道权重的自适应调整。

1. 频率域全局依赖挖掘:首先对输入特征进行通道维度的快速傅里叶变换(CFFT),将通道特征从空间域转换到频率域。在频率域中,每个频率分量对应特征的全局分布模式(高频分量对应细节、边缘,低频分量对应整体语义),通过提取频率域的振幅(反映特征强度)与相位(反映特征位置)信息,可直接捕捉跨通道的全局依赖关系(如不同通道中高频边缘的协同分布)。
2. 频率特征增强与逆变换:对频率域的振幅和相位分别施加增强操作(如通过 1×1 卷积与 LeakyReLU 组成的 CLC₁ 模块优化特征强度与位置精度),再通过逆通道傅里叶变换(ICFFT)将增强后的频率特征映射回空间域,此时的特征已融合全局频率信息,高频细节得到针对性强化。
3. 残差通道注意力与特征精炼:将频率增强后的特征与原始输入特征通过残差连接结合,避免特征信息丢失;同时引入全局平均池化(GAP)提取通道统计信息,通过通道注意力机制对不同通道的特征权重进行自适应调整,让模型重点关注对任务更关键的通道(如包含目标边缘、纹理的高频通道),最终通过 DNRU(包含深度可分离卷积、归一化、ReLU 与上采样)模块完成通道数压缩与特征上采样,输出精炼后的高分辨率特征。
2. FRCAB习作思路
1. 在目标检测中的优点
FRCAB 能显著提升目标检测模型对小目标、模糊目标及复杂背景下目标的检测精度。一方面,其频率域操作可针对性强化小目标的高频边缘与局部纹理特征(如小物体的轮廓梯度、细节纹理),解决传统检测模型对小目标 “特征模糊、易漏检” 的问题;另一方面,通道注意力机制能自适应抑制背景噪声通道(如复杂场景中的无关纹理通道),突出目标专属通道(如车辆的金属反光通道、行人的轮廓边缘通道),增强模型对目标与背景的判别能力,尤其在低光照、遮挡等恶劣环境下,可通过频率域全局依赖捕捉目标的完整特征模式,减少因局部特征缺失导致的误检与漏检。
2. 在图像分割中的优点
FRCAB 为图像分割提供了 “高频细节保留 + 全局特征协同” 的双重优势,有效提升分割结果的边缘精度与区域一致性。在频率域层面,其深度分解与增强操作可精准提取物体的高频边缘特征(如医学影像中器官的细微边界、自然场景中物体的轮廓纹理),避免传统分割模型常见的 “边缘模糊、分割不连续” 问题;在通道优化层面,通过全局通道注意力可协调不同通道的分割特征(如不同通道中同一物体的区域特征),确保分割区域的完整性与一致性,同时残差连接能保留低层级的原始特征信息,避免深层网络导致的细节丢失,尤其适用于精细分割任务(如语义分割中的小物体分割、实例分割中的目标部件分割)。
3. YOLO与FRCAB的结合
将 FRCAB 集成到 YOLO 系列模型中,可从细节捕捉与特征判别两方面提升检测性能:一是 YOLO 模型在处理小目标与细粒度目标时,常因高频细节不足导致边界框定位不准,FRCAB 的频率域增强能强化目标边缘与局部纹理,帮助模型更精准地预测边界框,降低定位误差;二是 YOLO 的特征融合模块(如 PANet、FPN)易受背景噪声干扰,FRCAB 的通道注意力可筛选关键特征通道,减少无关背景对检测的干扰,提升模型在复杂场景(如密集目标、杂乱背景)下的检测精度与鲁棒性。
4.FRCAB代码部分
YOLO11|YOLO12|改进| 傅里叶残差通道注意力块(FRCAB),通过频域分析和通道注意力机制,提升小目标检测能力_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub
5. FRCAB到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV11.YAMY文件中
第五:运行代码
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":
# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO("/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/models/11/yolo11_FRCAM.yaml")\
# .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt') # build from YAML and transfer weights
results = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",
epochs=300,
imgsz=640,
batch=4,
# cache = False,
# single_cls = False, # 是否是单类别检测
# workers = 0,
# resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
amp = False
)
5947

被折叠的 条评论
为什么被折叠?



