基于YOLO11的多模态(可见光+红外光)实现 LLVIP数据集涨点可行性验证

简介: 本文介绍可见光与红外光多模态目标检测,分析前期、中期、后期融合策略,实验证明中期融合效果最优;基于YOLO11实现RGB-T中期特征融合,在LLVIP数据集上取得mAP50达0.879的优异性能,后续将优化模型提升多模态检测能力。

    💡💡💡本文主要内容:介绍了多模态的现状,以及复现至YOLO11,实现基于YOLO11的中期融合,下一步计划打算魔改提升多模态的性能。

image.png

1. 多模态(可见光+红外光)介绍

       红外光与可见光之间具有极佳的互补性。可见光不仅在夜间展现出的特征不明显,白天条件下逆光拍摄、树荫等图像部分较暗的环境也会大幅度影响图像特征。相反,红外光在光照条件不足的情况下可以展现出更加明显的图像特征,但是没有色彩信息相关的特征。所以如何设计好一种红外光与可见光的模态融合机制实现模态之间的互补,依旧具有挑战性。

image.gif

LLVIP是北京邮电大学采集的一个用于微光视觉的可见光-红外光数据集。该数据集包含16836对图像,其中大部分是在夜晚昏暗的场景中拍摄,所有图像均在时间和空间上严格对齐。作者将该数据集与其他可见光和红外数据集进行了比较,并评估了一些流行的视觉算法的性能,包括图像融合和行人检测。

1.1 多模态融合算法

在目标检测(object detection)领域,数据融合策 略至关重要,尤其是在整合多模态数据和提升检测性 能方面。根据数据整合的时间点和方式,融合策略可 分为前期融合(early fusion)、中期融合(mid fusion) 和后期融合(late fusion)。每种策略在目标检测任务 中都有其独特的应用和优势。多模态融合算法类型如 图 1 所示。

image.gif

如图 1 所示,根据检测网络中融合位置的不同, 多模态目标检测方法可以分为 3 类:前期融合、中期 融合(特征级融合)和后期融合。如图 1(a)为前期融 合,前期融合在特征提取之前进行图像融合。前期融 合方法首先将红外图像和可见光图像进行初步融合, 然后将融合后的图像输入到检测模型中。这种方法允 许模型在最初的特征提取阶段就同时处理所有输入 数据,从而捕捉到不同数据源之间的复杂关系。图 1(b) 为中期融合,中期融合方法通过分别提取红外图像和 可见光图像的特征,再将这些特征在检测网络中进行 融合。这种方法不仅允许不同数据源的独立特征提取, 还可以在特征级别上捕捉到更高层次的交互。图 1(c) 为后期融合,后期融合在目标检测中意味着各个数据 源经过独立的模型处理后,将输出结果在最终决策层 面进行整合。3 种融合方式各有其优缺点,为充分满 足本文研究的需要,本文在对 3 种融合方式进行实验 对比,并在较好的融合方式上进行算法改进。

实验对比:由表 3 可以看出,在三种融合方式中,在召回率, 精确率和平均精度三种指标中,中期融合的结构都要优于前期融合和后期融合,因此本文在中期融合的基础上对模型进行改进

image.gif

红外检测效果:

image.gif

参考文献:

崔家礼,王涵,郑瀚,胡征慧.基于 BPP-YOLO v8 的多模态目标检测算法 [J/OL].红外技术. https://link.cnki.net/urlid/53.1053.TN.20240830.1105.002

2.如何复现至YOLO11

2.1  数据集格式要求

|-datasets
    |-LLVIP
        |-images #  RGB
        |-image  # 红外图
        |-labels # RGB和红外图公用同一份标签

image.gif

数据集分布情况:

image.gif

2.2 基于YOLO11的中期融合可视化

yolo11n-RGBT-midfusion.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Ultralytics YOLO11 object detection model with P3/8 - P5/32 outputs
# Model docs: https://docs.ultralytics.com/models/yolo11
# Task docs: https://docs.ultralytics.com/tasks/detect
# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs
  s: [0.50, 0.50, 1024] # summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs
  m: [0.50, 1.00, 512] # summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPs
  l: [1.00, 1.00, 512] # summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPs
  x: [1.00, 1.50, 512] # summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs
ch: 4
# YOLOv8.0n backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Silence, []]  # 0-P1/2
    # visible
  - [0, 1, SilenceChannel, [0,3]]  # 1-P1/2
  - [-1, 1, Conv, [64, 3, 2]] # 2-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 3-P2/4
  - [-1, 2, C3k2, [256, False, 0.25]]
  - [-1, 1, Conv, [256, 3, 2]] # 5-P3/8
  - [-1, 2, C3k2, [512, False, 0.25]]
  - [-1, 1, Conv, [512, 3, 2]] # 7-P4/16
  - [-1, 2, C3k2, [512, True]]
  - [-1, 1, Conv, [1024, 3, 2]] # 9-P5/32
  - [-1, 2, C3k2, [1024, True]] # 10
  # infrared
  - [ 0, 1, SilenceChannel, [ 3,4 ] ]  # 11-P1/2
  - [ -1, 1, Conv, [ 64, 3, 2 ] ] # 12-P1/2
  - [ -1, 1, Conv, [ 128, 3, 2 ] ] # 13-P2/4
  - [ -1, 2, C3k2, [ 256, False, 0.25 ] ]
  - [ -1, 1, Conv, [ 256, 3, 2 ] ] # 15-P3/8
  - [ -1, 2, C3k2, [ 512, False, 0.25 ] ]
  - [ -1, 1, Conv, [ 512, 3, 2 ] ] # 17-P4/16
  - [ -1, 2, C3k2, [ 512, True ] ]
  - [ -1, 1, Conv, [ 1024, 3, 2 ] ] # 19-P5/32
  - [ -1, 2, C3k2, [ 1024, True ] ]  #20
  - [[6, 16], 1, Concat, [1]]  # cat backbone P3   21
  - [[8, 18], 1, Concat, [1]]  # cat backbone P4   22
  - [[10, 20], 1, Concat, [1]]  # cat backbone P5   23
  - [ -1, 1, SPPF, [ 1024, 5 ] ] # 24
  - [ -1, 2, C2PSA, [ 1024 ] ] # 25
# YOLO11n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 22], 1, Concat, [1]] # cat backbone P4
  - [-1, 2, C3k2, [512, False]] # 28
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 21], 1, Concat, [1]] # cat backbone P3
  - [-1, 2, C3k2, [256, False]] # 31 (P3/8-small)
  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 28], 1, Concat, [1]] # cat head P4
  - [-1, 2, C3k2, [512, False]] # 34 (P4/16-medium)
  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 25], 1, Concat, [1]] # cat head P5
  - [-1, 2, C3k2, [1024, True]] # 37 (P5/32-large)
  - [[31, 34, 37], 1, Detect, [nc]] # Detect(P3, P4, P5)

image.gif

2.3 训练可视化结果

YOLO11n-RGBT-midfusion summary (fused): 324 layers, 3,784,883 parameters, 0 gradients, 9.30 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 109/109 [00:52<00:00,  2.07it/s]
                   all       3463       8302      0.895      0.816      0.879      0.482
Speed: 0.3ms preprocess, 2.6ms inference, 0.0ms loss, 1.4ms postprocess per image

image.gif

F1_curve.png:F1分数与置信度(x轴)之间的关系。F1分数是分类的一个衡量标准,是精确率和召回率的调和平均函数,介于0,1之间。越大越好。

TP:真实为真,预测为真;

FN:真实为真,预测为假;

FP:真实为假,预测为真;

TN:真实为假,预测为假;

精确率(precision)=TP/(TP+FP)

召回率(Recall)=TP/(TP+FN)

F1=2*(精确率*召回率)/(精确率+召回率)

image.gif

PR_curve.png :PR曲线中的P代表的是precision(精准率)R代表的是recall(召回率),其代表的是精准率与召回率的关系。

image.gif

预测结果:

image.gif


目录
相关文章
|
6天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1916 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
650 111
|
14天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2542 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
14天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1410 2
|
13天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1478 2
|
16天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1470 55
|
13天前
|
自然语言处理 测试技术 API
通义千问Qwen3.8-Max-Preview全功能解析:2.4万亿参数旗舰模型深度使用指南
在大模型技术持续迭代的当下,通义千问推出的Qwen3.8-Max-Preview作为新一代旗舰预览版模型,凭借2.4万亿参数的超大规模、多模态融合能力与全场景适配特性,成为开发者与企业用户探索AI应用的核心工具。该模型采用稀疏混合专家(MoE)架构,是通义千问首个突破万亿参数的多模态模型,可同时处理文本、图像、视频与文档等多种数据形态,在全栈代码开发、复杂逻辑推理、长文档分析与多智能体协作等场景实现跨越式升级。本文将全面拆解Qwen3.8-Max-Preview的核心功能,详解API调用流程与配置方法,覆盖多场景实战技巧,帮助用户快速掌握这款旗舰模型的使用方法,充分释放其性能潜力。
695 2