手把手教你用 YOLO 跑多光谱数据集(零代码改动)

Ultralytics 8.3.112 (PR #20223) 起,框架原生支持 多光谱 (multispectral) 数据训练,且一次性覆盖 检测、分割、姿态、分类 四大任务。
无需手动改代码——只要在配置文件里声明多通道输入即可畅享多光谱加成。


目录

  1. 什么是多光谱数据集
  2. 成像原理与数据组成差异
  3. 多光谱与目标检测的关系
  4. 与常规 RGB 流程的差异
  5. 优势与典型应用场景
  6. 快速上手:训练多光谱数据集
  7. 总结

什么是多光谱数据集

RGB 图像 vs. 多光谱图像

RGB 图像多光谱图像
波段数量3(R/G/B,可见光 400–700 nm)4 ~ 10+(可见光 + NIR/SWIR/TIR…)
每像素数据3×8bit(或 float)N×float
常见设备手机 / 数码相机专用多光谱/热成像相机、遥感卫星、工业相机
  • RGB 图像:模拟人眼感知的三通道可见光。
  • 多光谱图像:同时记录多个波段(近红外、短波红外、热红外等),能捕获更多物理特征,信息维度更丰富。

成像原理与数据组成差异

RGB 与多光谱成像示意

  1. 成像方式

    • RGB 相机:三色滤光片直接对应 R/G/B 通道。
    • 多光谱相机:额外滤镜 / 光栅把不同波段拆分到独立通道,可通过并行拍摄或滤镜轮换实现。

    多光谱相机示意

  2. 数据通道

    • RGB:固定 3 通道。
    • 多光谱:常见 4 通道(R/G/B/NIR),也可扩展到 6、8 甚至上百通道(高光谱)。

多光谱与目标检测的关系

为什么要引入多光谱?

  • 光谱互补:不同材质在非可见波段反射/辐射差异大,NIR 下的植被与土壤对比更明显。
  • 弱光与逆光鲁棒性:热红外不依赖可见光,夜间也能稳定检测行人/热源。
  • 提高精度:结合形状 + 光谱曲线,模型可分辨外观类似但光谱特性不同的类别(如农作物品种)。

与常规 RGB 流程的差异

流程RGB多光谱
输入维度(H, W, 3)(H, W, 4+)
归一化使用 ImageNet 均值/方差需针对每个波段计算均值/方差
数据增强颜色扰动、HSV、裁剪等最好仅做几何增强,避免破坏光谱;多通道同步裁剪/翻转

优势与典型应用场景

  1. 低光照 / 夜视

    • TIR:夜间人体、车辆高对比度。
    • NIR:晨昏弱光下仍保留目标轮廓。
  2. 复杂背景下的精细分割

    • 植被类型区分、病害检测。
  3. 多模态融合

    • 结合 RGB 反射信息 + TIR 辐射信息,极端光照条件下保持高召回率。
  4. 典型场景

    • 农业遥感:NDVI/作物健康监测。
    • 安防监控:全天候行人检测(RGB-T)。
    • 环境保护:水体污染、森林火灾热源追踪。
    • 智慧城市:建筑材料分析、路面热岛效应。

快速上手:训练多光谱数据集

核心结论: 训练流程与 RGB 完全一致,只需切换数据集 yaml 与模型配置即可。

1. 环境安装

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .

2. 数据集准备

  • 以官方 coco8-multispectral demo 为例(共 8 张 .tiff,多通道)。
  • 下载后放在与 ultralytics 同级目录,结构如下,在我博客上方可以直接下载:
├─ datasets
│	 ├─ coco8-multispectral
│       ├─ images
│       └─ labels
└─ ultralytics

在这里插入图片描述

数据集目录示意

3. 训练脚本 (train.py)

训练哪个版本YOLO大家可以自行选择,我这里用11举例 。

from ultralytics import YOLO

model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')  # 可替换任意 YOLOv8/11 等模型

results = model.train(
    data='ultralytics/cfg/datasets/coco8-multispectral.yaml',
    epochs=10,
    batch=2,
    imgsz=640,
    device="0",
)

训练中,通道维度 = 10

  • 第一层输入显示 C=10 → 说明是 10 通道多光谱数据。
  • 训练完毕后结果保存在 runs/train/ 目录。

runs 目录结果

4. 推理

from ultralytics import YOLO

model = YOLO('/root/ultralytics/runs/detect/train/weights/best.pt')

# Train the model
results = model.predict(
  source='/root/datasets/coco8-multispectral/images/train/000000000009.tiff',
  save=True
)

推理脚本与 RGB 完全一致;同样能在日志中看到 C=10

推理阶段通道维度


镜像分享

如果大家不想自己配置环境,可以使用我的环境镜像,里面有配置好环境的代码和数据集,可以开箱即用。

在这里插入图片描述


总结

  • 通道维度:RGB 仅 3 通道,多光谱 ≥ 4 通道,信息更丰富。
  • 性能优势:在弱光、夜晚、复杂背景等条件下显著提升检测精度与鲁棒性。
  • 应用广泛:农业监测、安防夜视、环境保护、智慧城市……
  • 训练无门槛:Ultralytics 已原生支持多光谱,零代码改动,只需配置文件即可上手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值