遥感图像目标检测(RSOD)面临低质量图像的核心挑战,如对比度低、边缘结构不连续、光照变化导致的特征模糊等。传统深度学习方法难以有效捕捉低质量图像中的细节(如模糊目标的边缘)和不确定性(如噪声影响下的特征分布)。EGA 模块的提出旨在通过融合边缘先验信息和高斯建模,解决上述问题,提升特征表示的鲁棒性,尤其适用于小目标、遮挡和低光照等复杂场景。
上面是原模型,下面是改进模型
1. 边缘 - 高斯聚合模块Edge-Gaussian Aggregation Module 介绍
-
边缘先验(Edge Priors)
-
Scharr 算子:一种改进的 Sobel 边缘检测算子,对边缘方向更敏感,具有旋转不变性,能有效提取高频边缘细节。通过水平(Sx)和垂直(Sy)方向的卷积核,计算边缘响应的欧氏范数,生成边缘注意力图 Aedge,增强目标边界的清晰度。
-
应用场景:适用于图像浅层(Stage 1),此时特征图分辨率较高,保留丰富的边缘细节,适合定位目标轮廓。
-
-
高斯建模(Gaussian Modeling)
-
不确定性感知:低质量图像的特征常呈现模糊或噪声干扰,高斯分布可建模特征的概率分布,通过方差估计量化不确定性。固定高斯核(如σ=1.0的 5×5 核)对特征图进行深度卷积,抑制背景噪声,增强显著特征(如目标中心区域)的权重,生成高斯注意力图 Agauss。
-
应用场景:适用于图像深层(Stages 2-4),此时特征图分辨率降低,目标特征更符合高斯分布,通过平滑处理减少噪声对高层语义的影响。
-
-
传统与深度学习的融合
EGA 通过结合传统图像处理中的边缘检测(Scharr)和深度学习中的概率建模(高斯核),构建了空间边界优化与特征空间不确定性管理的双路径框架,弥补了单一卷积操作在低质量图像中的不足。
EGA(Edge - Gaussian Aggregation)结构分阶段处理输入特征:
Stage 1:采用边缘提取,对输入特征进行处理,生成边缘权重图 Aega ,突出图像边缘信息。
Stages 2 - 4:进行高斯建模,生成高斯权重图 Aega ,强调特征的中心区域 。
之后,生成的 Aega 与输入特征进行元素相加,经卷积块(Conv Block)处理得到 Fa , Fa 与输入特征通过特定运算融合,再经 3×3 卷积,输出最终特征 Fega 。
2. YOLOv12与EGA的结合
将 EGA(边缘 - 高斯聚合模块)与 YOLOv11 的 C3K2 模块结合时,可在 C3K2 的残差分支中嵌入 EGA,利用其边缘先验和高斯建模能力增强特征细节与抗噪性,实现对低质量遥感图像中多尺度目标的鲁棒检测,在轻量化的同时提升特征表达的丰富度。
3. EGA代码部分
https://github.com/tgf123/YOLOv8_improve/blob/master/YOLOV12.md
4. 将EGA引入到YOLOv12中
第一: 先新建一个change_model,将下面的核心代码复制到下面这个路径当中,如下图如所示。YOLOv12\ultralytics\change_model。
第二:在task.py中导入包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV12.YAMY文件中
第五:运行代码
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
if __name__=="__main__":
# 使用自己的YOLOv12.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO(r"E:\Part_time_job_orders\YOLO_NEW\YOLOv12_all\ultralytics\cfg\models\12\yolo12_EGA.yaml")
# .load(r'E:\Part_time_job_orders\YOLO_NEW\YOLOv12\yolo12n.pt') # build from YAML and transfer weights
results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv12\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
)