自 Ultralytics 8.3.112 (PR #20223) 起,框架原生支持 多光谱 (multispectral) 数据训练,且一次性覆盖 检测、分割、姿态、分类 四大任务。
无需手动改代码——只要在配置文件里声明多通道输入即可畅享多光谱加成。
目录
什么是多光谱数据集
RGB 图像 vs. 多光谱图像
RGB 图像 | 多光谱图像 | |
---|---|---|
波段数量 | 3(R/G/B,可见光 400–700 nm) | 4 ~ 10+(可见光 + NIR/SWIR/TIR…) |
每像素数据 | 3×8bit(或 float) | N×float |
常见设备 | 手机 / 数码相机 | 专用多光谱/热成像相机、遥感卫星、工业相机 |
- RGB 图像:模拟人眼感知的三通道可见光。
- 多光谱图像:同时记录多个波段(近红外、短波红外、热红外等),能捕获更多物理特征,信息维度更丰富。
成像原理与数据组成差异
-
成像方式
- RGB 相机:三色滤光片直接对应 R/G/B 通道。
- 多光谱相机:额外滤镜 / 光栅把不同波段拆分到独立通道,可通过并行拍摄或滤镜轮换实现。
-
数据通道
- RGB:固定 3 通道。
- 多光谱:常见 4 通道(R/G/B/NIR),也可扩展到 6、8 甚至上百通道(高光谱)。
多光谱与目标检测的关系
为什么要引入多光谱?
- 光谱互补:不同材质在非可见波段反射/辐射差异大,NIR 下的植被与土壤对比更明显。
- 弱光与逆光鲁棒性:热红外不依赖可见光,夜间也能稳定检测行人/热源。
- 提高精度:结合形状 + 光谱曲线,模型可分辨外观类似但光谱特性不同的类别(如农作物品种)。
与常规 RGB 流程的差异
流程 | RGB | 多光谱 |
---|---|---|
输入维度 | (H, W, 3) | (H, W, 4+) |
归一化 | 使用 ImageNet 均值/方差 | 需针对每个波段计算均值/方差 |
数据增强 | 颜色扰动、HSV、裁剪等 | 最好仅做几何增强,避免破坏光谱;多通道同步裁剪/翻转 |
优势与典型应用场景
-
低光照 / 夜视
- TIR:夜间人体、车辆高对比度。
- NIR:晨昏弱光下仍保留目标轮廓。
-
复杂背景下的精细分割
- 植被类型区分、病害检测。
-
多模态融合
- 结合 RGB 反射信息 + TIR 辐射信息,极端光照条件下保持高召回率。
-
典型场景
- 农业遥感: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",
)
- 第一层输入显示
C=10
→ 说明是 10 通道多光谱数据。 - 训练完毕后结果保存在
runs/train/
目录。
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 已原生支持多光谱,零代码改动,只需配置文件即可上手。