当前位置: 首页 > news >正文

YOLOv8 训练代码 集成 RGB、近红外 NIR、深度多模态【(直拍)番茄果实成熟度多模态检测数据集 half 半成熟 immature 未成熟 ripe成熟 YOLO多模态数据集的训练及应用

智慧农业-多模态**【(直拍)番茄果实成熟度多模态检测数据集(3类目标 | 红外和可见光及深度depth各4000张图像共12000副图片 )】**

主要由RGB-D 深度相机(集成 RGB、近红外 NIR、深度) 与独立红外相机配合采集,设备为Intel RealSense D435i


数据集详情

  • 数据量:共12000张图像(.jpg格式),txt标签文件
  • **目标类别(共3类 | nc=3)
    half 半成熟
    immature 未成熟
    ripe成熟


1

1

1

1

适配多模态/多源数据的YOLOv8 训练代码

由于该数据集包含RGB(可见光)NIR(近红外)Depth(深度)三种模态,且来源于 Intel RealSense D435i,通常有两种处理策略:

  1. 数据混合训练:将三种模态的图片视为独立样本混合训练,增强模型对不同光照和纹理的鲁棒性。
  2. 多流融合:如果图片是配准对齐的,可以使用多输入网络(代码较为复杂)。

以下代码采用最通用且高效的“数据混合训练”策略,即把所有模态的数据统一格式放入训练流中,让模型学习不同模态下的番茄特征。

📊 数据集规格描述表

属性详细参数
数据集名称直拍番茄果实成熟度多模态检测数据集
采集设备Intel RealSense D435i (RGB-D + NIR) + 独立红外相机
图像总数12,000 张(.jpg)
模态构成RGB (可见光): 4,000 张NIR (近红外): 4,000 张Depth (深度): 4,000 张
标注格式YOLO 格式 (.txt),包含归一化坐标
目标类别数3 类 (nc=3)
类别详情1.half(半成熟)2.immature(未成熟)3.ripe(成熟)
适用场景农业机器人采摘、温室作物成熟度监测、多光谱图像分析

🚀 训练代码与配置

1. 目录结构准备

为了让代码正确运行,请将你的数据集整理为以下标准 YOLO 结构(假设训练集/验证集已划分,例如 9:1):

Tomato_Multimodal/ ├── data.yaml <-- 配置文件 ├── images/ │ ├── train/ <-- 放入所有模态的训练图片 (RGB+NIR+Depth) │ └── val/ <-- 放入所有模态的验证图片 └── labels/ ├── train/ <-- 对应的 txt 标签 └── val/ <-- 对应的 txt 标签
2. 配置文件 (data.yaml)

在数据集根目录下创建此文件。

# Tomato_Multimodal/data.yaml# 数据集根路径path:.# 训练集和验证集路径train:images/trainval:images/val# 类别数量nc:3# 类别名称 (顺序必须与你的 txt 标签中的 ID 对应)names:0:half1:immature2:ripe
3. Python 训练脚本 (train.py)

这段代码使用了ultralytics库,支持自动加载预训练权重并进行迁移学习。

fromultralyticsimportYOLOimportosdeftrain_tomato_model():# 1. 加载模型# 建议使用 yolov8n.pt 或 yolov8s.pt,因为多模态数据量大,小模型也能训练得很好# 如果是深度图,建议增加训练轮数,因为深度图纹理较少model=YOLO('yolov8n.pt')print("🍅 开始训练番茄成熟度检测模型 (多模态)...")# 2. 开始训练results=model.train(data='data.yaml',# 指定配置文件epochs=300,# 训练轮数 (多模态建议 300+)imgsz=640,# 图像尺寸batch=16,# 批次大小 (根据显存调整,如 24G 显存可设 32)device=0,# 使用 GPU (0号卡),若无 GPU 设为 'cpu'workers=8,# 数据加载线程数project='runs/train',# 结果保存目录name='tomato_multimodal_v1',# 实验名称patience=50,# 早停机制 (50轮无提升则停止)verbose=True,# 显示详细日志# 针对深度图和红外图的特殊增强建议:# 深度图通常缺乏纹理,过多的马赛克增强可能会破坏几何信息# 如果效果不佳,可以尝试关闭 mosaic (mosaic=0.0)mosaic=1.0,# 马赛克增强比例 (0-1)pretrain=True# 加载预训练权重)print(f"✅ 训练完成!模型保存在: runs/train/tomato_multimodal_v1/weights/best.pt")if__name__=='__main__':# 检查配置文件是否存在ifnotos.path.exists('data.yaml'):print("❌ 错误:找不到 data.yaml,请检查路径。")else:train_tomato_model()

💡 针对多模态数据的训练建议

  1. 数据预处理

    • 直方图均衡化:深度图和近红外图往往对比度较低。建议在训练前对 Depth 和 NIR 图片进行 CLAHE (限制对比度自适应直方图均衡化) 处理,以增强果实边缘特征。
    • 伪彩色映射:YOLO 默认处理 3 通道 RGB 图像。如果你的 Depth 或 NIR 是单通道灰度图,训练脚本会自动将其复制 3 份作为输入,或者你可以将其转换为伪彩色(如 Jet 颜色映射)以利用预训练模型的 RGB 特征提取能力。
  2. 超参数调整

    • 由于包含深度信息,目标通常具有较好的几何轮廓。如果发现模型对小目标(远处番茄)检测效果不好,可以在model.train()中添加close_mosaic=10参数,即在最后 10 轮关闭马赛克增强,专注于原始图像的边缘对齐。
  3. 推理应用

    • 训练完成后,你可以将 RGB、NIR 和 Depth 三张图片分别送入模型进行检测,然后使用加权框融合算法将三个结果合并,从而获得比单一模态更精准的定位结果。
http://www.jsqmd.com/news/664068/

相关文章:

  • 动态规划经典题解:最长递增子序列 乘积最大子数组
  • Translumo:三分钟掌握免费实时屏幕翻译,游戏外语学习效率提升300%
  • 代码出错不再重启,不再查日志,不再等PR——智能生成+实时自愈如何将MTTR从小时级压缩至2.7秒,一线大厂SRE团队已全面部署
  • 从‘炼丹’到‘调参’:手把手教你复现HAN超分网络(附PyTorch代码与消融实验分析)
  • CloudWatch 告警 AI 智能分析系统 — 从 0 到 1 全实战
  • 2026年3月口碑好的烤全羊品牌推荐,烤全羊服务推荐精选国内优质品牌分析 - 品牌推荐师
  • mysql如何配置插件以提升查询性能_安装启用memcached插件
  • Windows音频转换终极指南:7种格式一键转换的免费神器FlicFlac
  • AI智能体科普:从概念到实践,一文读懂数字员工的工作原理
  • 给自动化与控制方向研究生的投稿指南:从IEEE到国内核心,这些期刊你得知道
  • 【代码质量守门员升级计划】:为什么91%的团队在第3周就弃用Copilot审查插件?这4个未公开的规则引擎配置才是关键
  • 2026年质量好的通过式抛丸机/网带式抛丸机精选推荐公司 - 品牌宣传支持者
  • 手把手教你用Python脚本实现Keil编译后自动AES加密(附工程目录陷阱解析)
  • 京东抢购自动化终极指南:如何用JDspyder轻松抢到热门商品
  • 手把手教你用TensorFlow Lite在安卓端部署一个简单的关键词唤醒(KWS)模型
  • AI算力全解析:定义、数据与产业现状
  • Go语言的testing-quick随机测试与属性测试在函数契约验证中的使用
  • React 与 WebGPU:探索下一代图形接口在 React 数据可视化组件中的高性能集成
  • Golang reflect反射怎么用_Golang反射教程【通俗】
  • 终极指南:在Windows 10/11上直接安装Android应用的三种简单方法
  • ECharts图形标记全攻略:从内置形状到自定义SVG(最新版)
  • 智慧巡检-基于 YOLOv8 的轴承缺陷检测系统,实现从数据训练到多源检测、结果可视化的完整流程 YOLOV8预训练模型如何训练轴承缺陷检测数据集
  • 告别CPU搬运工:手把手教你用PL330 DMA指令集优化Exynos 4412数据传输
  • K8s Operator 的开发入门
  • 006、挑战:Transformer的算力之殇——注意力机制的二次方复杂度问题
  • 保姆级教程:用Thonny IDE给ESP32-CAM烧录MicroPython固件(含CH340驱动安装)
  • React Forget 编译器:深度分析自动化 Memoization 对 React 手动性能调优的革命性影响
  • 当Copilot遇上Git Rebase:智能生成代码冲突的8种反直觉模式(附可落地的Pre-Commit Hook检测清单)
  • PyTorch训练时遇到CUDA device-side assert错误?别慌,先检查你的标签和模型输出维度
  • 别再手动算堆栈了!STM32上这个自动检测方法,帮你省下80%调试时间