YOLO12 改进、魔改|直方图 Transformerm模块HTB ,通过动态范围特征分组、针对性注意力与多尺度融合,提高对遮挡以及多尺度目标的关注能力

在恶劣天气(如雨、雪、雾)下的图像恢复任务中,传统 Transformer 模型为降低计算量,常将自注意力限制在固定空间范围或仅在通道维度操作,导致难以捕捉长距离空间特征,尤其无法有效处理天气退化像素(如雪花、雨滴)与清晰背景像素的差异。为解决这一局限,研究者提出了 Histogram Transformer Block(HTB),作为 Histoformer 的核心组件,旨在通过动态范围的特征处理机制,实现对长距离相似退化特征的精准捕捉,同时兼顾局部与全局特征融合,提升恶劣天气下图像恢复的效率与精度。

1.HTB 原理

HTB 的核心原理是通过动态范围特征分组与针对性注意力机制,突破传统卷积和自注意力的局限:

动态范围直方图自注意力(DHSA):将空间特征按像素强度排序并划分为多个 "强度箱(bin)",在箱内或箱间应用自注意力。这使得模型能针对性聚焦于动态范围内的相似特征(如同一强度的雪花或雨滴),将长距离的退化像素统一处理,同时通过 Bin-wise 重塑(全局范围特征整合)和 Frequency-wise 重塑(局部精细特征提取),平衡全局与局部信息。

动态范围卷积:通过对像素进行水平和垂直排序,使卷积操作不再局限于相邻像素,而是在相似强度的像素间进行,增强对天气退化模式的捕捉能力。

双尺度门控前馈(DGFF):采用 5×5 普通卷积和 3×3 扩张卷积两个并行分支,结合门控机制(通过激活函数生成门控图筛选关键特征),提取多尺度、多范围的特征,弥补单一尺度卷积对复杂天气特征的漏检。

HTB 的结构以 "特征增强 - 融合" 为核心,包含两个关键模块,整体遵循 "归一化 - 处理 - 残差连接" 的设计:

整体框架:输入特征先经层归一化(LN),送入 DHSA 模块处理后与原始特征残差相加;再经层归一化,送入 DGFF 模块处理后再次残差相加,输出增强后的特征。

DHSA 模块:内部包含动态范围卷积(对特征分分支排序后卷积)和直方图自注意力(通过两种重塑机制生成箱内 / 箱间注意力图,再融合),最终将特征恢复至原始空间顺序。

DGFF 模块:先通过 1×1 卷积扩展通道,分两个分支分别用 5×5 深度卷积和 3×3 扩张深度卷积提取特征,再通过门控机制(Mish 激活后的分支特征与另一分支特征逐元素相乘)融合,最后通过 1×1 卷积压缩通道输出。

2.HTB 习作思路

HTB 在目标检测中的优点

HTB 凭借动态范围自注意力对长距离相似特征的捕捉能力,能有效聚合恶劣天气下被干扰的目标特征(如被雨雾遮挡的车辆、被雪花覆盖的行人),减少天气噪声对目标特征一致性的破坏;同时,双尺度卷积机制可保留目标的多尺度细节(如小目标的边缘、大目标的局部纹理),使检测器更精准区分目标与背景,尤其在天气导致目标特征模糊或碎片化的场景中,显著提升检测的召回率与定位精度。

HTB 在分割中的优点

HTB 通过直方图自注意力维持像素间的强度关联,能精准区分相似强度的前景(如目标)与背景(如被天气影响的环境),避免因天气导致的强度混淆;动态范围卷积则增强了对模糊边界(如雾中物体的边缘、雪中植被的轮廓)的特征提取,结合双尺度融合细化边界细节,使分割结果在像素级上更贴合真实目标形态,尤其在天气导致前景与背景过渡模糊的场景中,提升分割的边界精度与区域一致性。

3. YOLO与 HTB 的结合

YOLO 追求实时性与检测效率,HTB 的动态范围卷积和轻量化注意力设计(通过分箱机制减少计算量)能在增加有限计算负担的同时,增强对恶劣天气下特征的提取能力;其多尺度特征融合可与 YOLO 的特征金字塔网络(FPN)互补,提升 YOLO 对小目标、模糊目标的识别速度与准确性,使其在复杂天气场景中更稳健。

4. HTB 代码部分

YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili

代码获取: YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

5. HTB 引入到YOLOv12中

第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

第二:在task.py中导入

​​​ ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​

第三:在task.py中的模型配置部分下面代码

​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

第四:将模型配置文件复制到YOLOV11.YAMY文件中

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​​​​​​​

​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​第五:运行代码

python 复制代码
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/yolo12_HTB")\
        # .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 = True
                          )
相关推荐
hixiong12312 小时前
C# 编写一个XmlToDota的转换工具
开发语言·人工智能·yolo·c#
深瞳智检15 小时前
目标检测数据集 第007期-基于yolo标注格式的茶叶病害检测数据集(含免费分享)
人工智能·深度学习·yolo·目标检测·计算机视觉
十八岁牛爷爷2 天前
通过官方文档详解Ultralytics YOLO 开源工程-熟练使用 YOLO11实现分割、分类、旋转框检测和姿势估计(附测试代码)
人工智能·yolo·目标跟踪
lxmyzzs2 天前
【图像算法 - 21】慧眼识虫:基于深度学习与OpenCV的农田害虫智能识别系统
人工智能·深度学习·opencv·算法·yolo·目标检测·计算机视觉
失散132 天前
自然语言处理——04 注意力机制
人工智能·自然语言处理·注意力机制·seq2seq 架构
躺不平的小刘3 天前
从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
linux·python·嵌入式硬件·yolo·conda·pyqt·pip
格林威3 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型和EasyOCR实现汽车牌照动态检测和识别(C#代码,UI界面版)
人工智能·深度学习·数码相机·yolo·c#·汽车·视觉检测
飞翔的佩奇3 天前
【完整源码+数据集+部署教程】遥感森林砍伐检测系统源码和数据集:改进yolo11-SWC
python·yolo·计算机视觉·数据集·yolo11·遥感森林砍伐检测
格林威3 天前
Baumer高防护相机如何通过YoloV8深度学习模型实现网球运动员和网球速度的检测分析(C#代码UI界面版)
人工智能·深度学习·数码相机·yolo·ui·c#·视觉检测
m0_678693334 天前
深度学习笔记34-YOLOv5调用官方权重进行检测
笔记·深度学习·yolo