无人机图像目标检测在多领域应用广泛,但小目标检测面临诸多挑战。一方面,无人机图像分辨率高、背景噪声大,小目标分辨率低,易受噪声影响,特征信息有限,在卷积神经网络特征提取时易出现特征消失问题。另一方面,传统特征金字塔网络(FPN)的融合方法,如简单拼接或相加操作,无法充分利用多尺度融合优势,不同层特征相关性弱,融合后易产生冗余特征,且深层大卷积核会导致语义偏差,不利于小目标检测。因此,需要一种新的方法来改进特征融合,提升小目标检测性能。
上面是原模型,下面是改进模型

1. 增强层间特征相关性(EFC)模块介绍
EFC 模块通过增强层间特征相关性来优化特征融合。其核心在于利用分组特征聚焦单元(GFF)和多级特征重建模块(MFR)。GFF 通过空间集中、特征相关和空间映射归一化操作,聚焦不同特征的上下文信息,增强各层特征相关性;MFR 则对不同层特征中的强弱信息进行分离、定向融合、特征变换和层级融合,减少冗余特征融合,保留小目标信息,降低深层网络中小目标信息的不可逆损失。
分组特征聚焦单元(GFF):先对低分辨率特征上采样并与高分辨率特征相加得到粗略特征,再用 1×1 卷积和 sigmoid 激活生成空间聚合权重,得到含空间信息的特征。然后将该特征按通道分组,组内进行特征交互生成注意力掩码,以增强相邻特征相关性,最后将分组特征拼接并归一化,得到相关性强且空间信息丰富的特征。
多级特征重建模块(MFR):先对不同阶段单级特征处理得到特征\(P_{c}\) ,通过平均池化和 sigmoid 函数生成特征权重阈值,再将单级特征经批归一化和 sigmoid 激活得到权重信息,与阈值比较分离出强弱特征。强特征融合生成丰富特征,弱特征融合生成弱特征,分别进行特征变换,最后将变换后的强弱特征合并,得到包含详细信息和跨通道信息交换的特征。
2. YOLOv11与增强层间特征相关性(EFC)模块的结合
本文使用增强层间特征相关性(EFC)模块替换原有的YOLOv11模型的特征拼接方法,增强YOLO目标检测的小目标能力。
3. EFC代码部分
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub
视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 将EFC引入到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV11.YAMY文件中
第五:运行成功
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
if __name__=="__main__":
# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO(r"D:\model\yolov11\ultralytics\cfg\models\11\yolo11_EMA.yaml")\
.load(r'D:\model\yolov11\yolo11n.pt') # build from YAML and transfer weights
results = model.train(data=r'D:\model\yolov11\ultralytics\cfg\datasets\VOC_my.yaml',
epochs=300,
imgsz=640,
batch=64,
# cache = False,
# single_cls = False, # 是否是单类别检测
# workers = 0,
# resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
amp = True
)