【论文|复现】YOLOFuse:面向多模态目标检测的双流融合框架
目录
■技术特性
■LLVIP基准测试结果
■数据输入规范
■快速部署指南
①环境初始化
②模型训练
③推理验证
④代码
■数据集结构
■扩展
▲常见模态组合与应用场景
▲融合方式
YOLOFuse是基于 Ultralytics YOLO 框架构建的增强型目标检测系统,专为多模态感知任务设计。本框架创新性地引入双流处理架构,支持RGB与红外(IR)图像的协同分析与特征融合,显著提升复杂环境(低照度、烟雾遮挡、极端天气等)下的检测鲁棒性。适用于安防监控、灾害救援、工业巡检等关键场景。
github代码:https://github.com/WangQvQ/YOLOFuse
■技术特性
异构数据融合:实现RGB与IR图像(可扩展至RGB-D等模态)的端到端联合处理
兼容YOLOv8 API:保留原生接口规范,确保用户迁移成本最小化
可扩展融合模块:提供多层次融合策略,支持:
✅ 数据级融合(Data-level Fusion)
✅ 决策级融合(Decision-level Fusion)
✅ 早期特征融合(Early-level Feature Fusion)
✅ 中期特征融合(Mid-level Feature Fusion)
✅ 极简融合(Easy-level Feature Fusion)
✅ DEYOLO(arxiv)
■LLVIP基准测试结果
模型架构
模态
精度 (P)
召回率 (R)
mAP@50
mAP@50:95
模型大小 (MB)
计算量 (GFLOPs)
YOLOv8n (baseline)
RGB
0.888
0.829
0.891
0.500
6.20
8.1
YOLO-Fuse-中期特征融合
RGB+IR
0.951
0.881
0.947
0.601
2.61
3.2
YOLO-Fuse-早期特征融合
RGB+IR
0.950
0.896
0.955
0.623
5.20
6.7
YOLO-Fuse-决策级融合
RGB+IR
0.956
0.905
0.955
0.612
8.80
10.7
YOLO-Fuse-极简融合
RGB+IR
0.899
0.865
0.939
0.620
7.83
8.5
DEYOLO
RGB+IR
0.943
0.895
0.952
0.615
11.85
16.6
■数据输入规范
系统通过文件名自动关联异构数据源,需确保文件命名一致性.
数据集目录/
├── images/ # RGB图像
│ └── 120270.jpg
└── imagesIR/ # 红外图像(同级目录)
└── 120270.jpg # 同名IR文件
标注文件仅需基于RGB图像生成,系统自动复用至IR模态.
■快速部署指南
①环境初始化
git clone https://github.com/WangQvQ/YOLOFuse.gitcd YOLOFusepip install -e . # 可编辑模式安装
②模型训练
融合配置文件:ultralytics/cfg/models/fuse/
python train_dual.py # 启动双流训练
③推理验证
python infer_dual.py # 执行融合推理
预训练权重下载
链接:https://pan.quark.cn/s/ec13c6e17b8d 提取码:HETx
④代码
- infer_dual.py
from ultralytics import YOLOif __name__ == \"__main__\": model = YOLO(\"runs/train/RGB-IR/weights/best.pt\") model.predict( source=\"ultralytics/assets/LLVIP/images\", save=True, # 保存预测结果 imgsz=640, # 输入图像的大小,可以是整数或w,h conf=0.25, # 用于检测的目标置信度阈值(默认为0.25,用于预测,0.001用于验证) iou=0.45, # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值 show=False, # 如果可能的话,显示结果 project=\"runs/predict\", # 项目名称(可选) name=\"exp\", # 实验名称,结果保存在\'project/name\'目录下(可选) save_txt=False, # 保存结果为 .txt 文件 save_conf=True, # 保存结果和置信度分数 save_crop=False, # 保存裁剪后的图像和结果 show_labels=True, # 在图中显示目标标签 show_conf=True, # 在图中显示目标置信度分数 vid_stride=1, # 视频帧率步长 line_width=3, # 边界框线条粗细(像素) visualize=False, # 可视化模型特征 augment=False, # 对预测源应用图像增强 agnostic_nms=False, # 类别无关的NMS retina_masks=False, # 使用高分辨率的分割掩码 )
- train_dual.py
from ultralytics import YOLOif __name__ == \"__main__\": model = YOLO(\"ultralytics/cfg/models/fuse/easy-fuse.yaml\") model.train( data=\"ultralytics/cfg/datasets/LLVIP.yaml\", ch=6, # 多模态时设置为 6 ,单模态时设置为 3 imgsz=640, epochs=100, batch=64, close_mosaic=0, workers=16, device=\"0\", optimizer=\"SGD\", patience=0, amp=False, cache=True, # disk 硬盘,速度稍快精度可复现;ram/True 内存,速度快但精度不可复现 project=\"runs/train\", name=\"easy-fuse\", resume=False, fraction=1, # 只用全部数据的 ?% 进行训练 (0.1-1) )
- val_dual.py
from ultralytics import YOLOmodel = YOLO(\"runs/train/easy-fuse/weights/best.pt\")model.val( data=\"ultralytics/cfg/datasets/LLVIP.yaml\", ch=6, # 多模态时设置为 6 ,单模态时设置为 3)
■数据集结构
采用标准YOLO格式,目录结构示例如下:
datasets/├── images/│ ├── train/ # RGB训练集│ └── val/ # RGB验证集├── imagesIR/ # IR图像集(与images目录同级)│ ├── train/│ └── val/└── labels/ # 统一标注文件 ├── train/ └── val/
■扩展
▲常见模态组合与应用场景
- 可见光图像:擅长捕捉颜色和细节,但在夜间、低光或复杂天气(如雾霾)环境下性能显著下降。
- 红外热成像:不受光照影响,能感知温度差异,适用于夜间监控、安防等场景,但缺乏颜色信息。
- 激光雷达(LiDAR):提供精准的三维位置和深度信息,解决遮挡和距离感知问题,广泛应用于自动驾驶和机器人领域。
- 毫米波雷达:在恶劣天气(如暴雨、大雾)中穿透性强,可与相机融合提升检测可靠性。
常见模态组合:
- RGB+红外热成像(IR):适用于夜间监控、安防等场景。例如,监控系统白天用RGB摄像头捕捉彩色图像,夜间通过红外热像仪检测人体热辐射,融合后检测精度较单模态有很大提升。
- RGB+深度(LiDAR):在自动驾驶和机器人领域应用广泛。摄像头识别物体类别,激光雷达提供三维位置和深度信息,解决遮挡和距离感知问题。
- 其他组合:如毫米波雷达+相机(恶劣天气检测)。
▲融合方式
- 数据级融合:直接拼接原始数据(如像素级叠加),保留全部细节,需严格空间对齐,适用于硬件配准良好的场景,为下图中的(a)前期融合。
- 特征级融合:提取各模态特征后整合(如级联、注意力机制),计算效率与精度平衡,是主流方法。早期融合(b)、中-后期融合(c)、后期融合(d)均属于此范畴。
- 决策级融合:独立检测后合并结果(如加权平均、投票),实时性强且容错性高,适合快速集成现有模型。
至此,本文的内容就结束了。