新闻详情

新闻详情

首页 / 资讯中心 / 详情

YOLO西红柿成熟度检测数据集:1267张带标签图像训练与边缘部署实战

发布时间:2026/9/28 5:48:07来源:尧图网络
YOLO西红柿成熟度检测数据集:1267张带标签图像训练与边缘部署实战
简介这份资源是面向计算机视觉学习者与智能农业开发者的西红柿成熟度目标检测数据集可直接用于YOLO系列算法的训练与验证帮助解决果蔬成熟状态自动分类的实际问题。压缩包共2000个文件包含1267个xml标注文件与733个txt标签文件xml记录西红柿的类别与边界框信息txt适配YOLO训练格式整体约303.56MB覆盖半熟、绿色、完全成熟三个成熟阶段图像数量充足且标注细致。目前已有233人学习下载适合入门目标检测或开展农业视觉项目的研究者参考。数据集对半熟果实的绿红过渡、完全成熟果实的鲜红色泽等外观差异均有覆盖可用于训练模型识别细微色彩与形态变化提升泛化能力与检测精度为作物成熟度监测、收获决策等场景提供可靠的数据支撑。1. 西红柿成熟度检测数据集1267 张带标签图像能跑出什么结果大棚里摘西红柿的工人最怕两件事一是把半熟的青果当成熟果摘了二是漏掉已经红透该下架的果子。人工分拣靠肉眼一天下来眼睛发花标准还会漂移。这份 yolo 算法西红柿成熟程度数据集就是冲着这个场景来的——1267 张图像全部带 YOLO 格式标签覆盖绿色、半熟、完全成熟三个类别。它不是那种图片堆一起、标签靠猜的野数据集而是按目标检测训练流程整理好的成品包。适合谁用做农业视觉检测的算法工程师、想拿真实场景练手 YOLO 训练的学生、需要快速验证成熟度分类思路的产品团队。如果你手上正好有分拣线或巡检机器人的项目这套数据能直接进训练管线省掉最耗时的标注环节。下面从数据组织、标签格式、训练配置到踩坑排查一步步拆开讲。2. 数据集结构与 YOLO 标签格式先搞清楚文件怎么对应2.1 图像与标签的配对逻辑拿到压缩包解压后你会看到图像文件和同名 txt 标签文件混在一起或者分目录存放。从项目正文给出的文件名看像img_0411_650.txt、img_0411_978.txt这种命名说明每张图对应一个标签文件命名规则是图像名.txt。这是 YOLO 训练的标准做法图像放images/标签放labels/两边文件名一致训练脚本靠文件名匹配。常见做法是解压后先跑一遍配对检查确认没有孤儿文件。我一般会写个几行的脚本过一遍比训练到一半报错再回头找强得多。import os img_dir images lbl_dir labels imgs {os.path.splitext(f)[0] for f in os.listdir(img_dir) if f.lower().endswith((.jpg, .png, .jpeg))} lbls {os.path.splitext(f)[0] for f in os.listdir(lbl_dir) if f.endswith(.txt)} print(图像数:, len(imgs)) print(标签数:, len(lbls)) print(有图无标签:, imgs - lbls) print(有标签无图:, lbls - imgs)这段脚本做三件事统计图像和标签数量、找出有图没标签的、找出有标签没图的。参数上只需要改img_dir和lbl_dir两个路径。如果输出里有图无标签不为空说明标注漏了或者文件名对不上得先补齐再训练否则 YOLO 加载时会直接跳过这些图等于白标。2.2 YOLO 标签的五个字段含义每个 txt 文件里一行代表一个目标格式是class_id x_center y_center width height五个值都是归一化到 0~1 的浮点数。class_id是类别索引这份数据集三个类别通常映射为0: 绿色、1: 半熟、2: 完全成熟但具体顺序要以数据包里的classes.txt或data.yaml为准不能想当然。x_center、y_center是目标框中心点相对整图宽高的比例width、height是框的宽高比例。打开一个标签文件看看cat labels/img_0411_650.txt正常输出类似1 0.482 0.531 0.213 0.198 2 0.741 0.622 0.185 0.176第一行表示一个半熟西红柿中心在图像宽度 48.2%、高度 53.1% 的位置框占整图宽 21.3%、高 19.8%。第二行是完全成熟。如果看到数值大于 1 或者负数说明标注工具导出时没做归一化这种标签 YOLO 会直接报错或训出乱框必须重新转换。2.3 类别不平衡的检查三个成熟阶段在自然场景里分布不会均匀绿色果和半熟果往往比全红果多。训练前统计一下每个类别的框数量心里有数from collections import Counter import os counter Counter() for f in os.listdir(labels): if not f.endswith(.txt): continue with open(os.path.join(labels, f)) as fp: for line in fp: if line.strip(): counter[int(line.split()[0])] 1 print(counter)如果某个类别占比低于 10%训练时就得考虑加权重或者做数据增强。这份数据集主打三个成熟阶段理论上分布应该相对均衡但实际统计出来偏了也不奇怪先看数再决定策略。3. 用 YOLOv8 训练成熟度检测模型配置、命令与参数3.1 准备 data.yamlYOLOv8 靠一个 yaml 文件描述数据路径和类别。在数据集根目录建tomato.yamlpath: ./tomato_dataset train: images/train val: images/val nc: 3 names: 0: green 1: half_ripe 2: fully_ripepath是数据集根目录train和val是相对路径。nc是类别数这份数据是 3。names的顺序必须和标签里的class_id严格对应写反了模型会把绿色认成成熟精度看着还行但业务上全错。建议先切分训练集和验证集常见比例 8:2用脚本随机划分保证每个类别在验证集里都有样本。3.2 启动训练装好 ultralytics 后一条命令开跑yolo detect train \ datatomato.yaml \ modelyolov8n.pt \ epochs100 \ imgsz640 \ batch16 \ lr00.01 \ patience20 \ projectruns/tomato \ nameexp1参数逐个说modelyolov8n.pt用 nano 版预训练权重速度快适合先跑通流程数据量 1267 张不算大n 或 s 版本够用上 l 或 x 容易过拟合。epochs100配合patience20意思是 20 轮验证指标不涨就早停省时间。imgsz640是输入分辨率如果原图里西红柿占画面比例很小可以提到 960 或 1280但显存和速度会受影响。batch16按显存调8G 显存跑 640 分辨率一般能到 16爆显存就降到 8。训练过程中重点看mAP50和mAP50-95两个指标。成熟度检测属于颜色和形态差异明显的任务正常收敛后mAP50应该能到 0.85 以上。如果卡在 0.5 左右不动先查标签类别是否对错、图像和标签是否配对。3.3 推理验证训练完拿一张图试yolo detect predict \ modelruns/tomato/exp1/weights/best.pt \ sourcetest_images/ \ conf0.4 \ saveTrueconf0.4是置信度阈值低于这个值的框不输出。农业场景里漏检比误检代价高——漏掉一个成熟果可能烂在地里误检一个青果顶多多看一眼。所以实际部署时conf可以压到 0.25~0.3宁可多报也别漏。输出图会画好框和类别直接肉眼验证。4. 训练效果上不去的排查从标签到增强逐层过4.1 现象mAP 一直低于 0.5原因通常出在标签类别映射错位。比如data.yaml里写0: green但标签文件里0实际是fully_ripe模型学到的和验证时对不上指标自然崩。解决方法是抽 10 个标签文件对照图像肉眼看框的位置和类别是否一致确认classes.txt的顺序。4.2 现象验证集损失震荡不收敛多半是学习率太大或者 batch 太小。lr00.01是默认值小数据集上可以降到 0.005 甚至 0.001。另外检查有没有脏标签——框跑到图像外面、宽高为 0、同一目标重复标了多次。写个脚本扫一遍所有标签把x_center或y_center超出 [0,1] 的行揪出来删掉。4.3 现象绿色和半熟总是分不清这两个类别本身视觉差异小半熟果是绿底带红斑绿色果是纯绿。模型在 640 分辨率下可能看不清红斑细节。解决办法有两个一是提高输入分辨率到 960让红斑占更多像素二是加颜色增强在训练配置里开hsv_h、hsv_s、hsv_v让模型对色调变化更鲁棒。但增强别开太猛hsv_h0.015左右就够开大了绿色可能被增强成偏黄反而添乱。4.4 现象训练集指标高、验证集拉胯典型过拟合。1267 张图对 YOLO 来说偏少模型容易记住训练集。对策加dropout、开mosaic增强YOLOv8 默认开、用更小的模型、早停。另外确认训练集和验证集是不是随机划分的——如果验证集全是某一个大棚拍的图而训练集是另一个大棚域差异会让指标很难看。划分时按拍摄批次分层抽样更稳。5. 把模型推到边缘设备导出与量化的一条实用路径训练出best.pt只是第一步真正落地往往要跑到分拣线的工控机或 Jetson 这类边缘设备上。PyTorch 权重直接部署又大又慢常规做法是导出成 ONNX 或 TensorRT。导出 ONNX 一条命令yolo export modelruns/tomato/exp1/weights/best.pt formatonnx imgsz640 simplifyTruesimplifyTrue会做一层图优化去掉冗余算子。导出后在目标设备上用 ONNX Runtime 推理CPU 上单张 640 图大概几十毫秒够分拣线用。如果设备是 NVIDIA 的再转 TensorRT 能再快两三倍但转换时要注意算子兼容性YOLOv8 的某些后处理算子可能需要插件支持。量化是另一个提速手段。FP16 量化几乎不掉精度INT8 量化需要一批校准图精度可能掉 1~3 个点。成熟度检测对颜色敏感INT8 量化后红色和绿色的区分度可能下降建议量化后在验证集上重新跑一遍mAP掉超过 5 个点就别用 INT8退回 FP16。验证量化模型有个笨但有效的办法拿 50 张覆盖三个成熟阶段的图分别用原始 pt 和量化后的模型跑对比检测框数量和类别。如果量化后绿色果被大量误判成半熟说明量化把颜色特征压没了得换校准集或者放弃量化。从那以后我每次导出模型都强制走一遍原始 vs 量化的对比推理确认类别没漂再上线。这套流程跑下来从解压数据到边缘设备出结果一两天能走通。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

obsidian插件OpenCode接入TaoToken:个人AI助手配置与验证指南 2026/9/28 6:41:02

obsidian插件OpenCode接入TaoToken:个人AI助手配置与验证指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GetQzonehistory:扫码一次,把历史QQ空间说说全搬进Excel 2026/9/28 6:41:02

GetQzonehistory:扫码一次,把历史QQ空间说说全搬进Excel

GetQzonehistory:扫码一次,把历史QQ空间说说全搬进Excel 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory QQ空间的消息列表翻到最后一条就断了,更早的…

阅读更多 →
The Missing Semester 中文版 · 数据整理(Data Wrangling):用命令行管道把日志变成答案 2026/9/28 6:41:02

The Missing Semester 中文版 · 数据整理(Data Wrangling):用命令行管道把日志变成答案

文档教程教育 【免费下载链接】missing-semester-cn.github.io the CS missing semester Chinese version 项目地址: https://gitcode.com/gh_mirrors/mi/missing-semester-cn.github.io 点击查看 免费下载 数据整理(Data Wrangling)是 The …

阅读更多 →
好站站网站建设对比评测:告别模板丑站,3步搞定高转化官网 2026/9/28 6:41:02

好站站网站建设对比评测:告别模板丑站,3步搞定高转化官网

好站站网站建设对比评测:告别模板丑站,3步搞定高转化官网 模板网站太丑且功能僵化,这是大多数企业建站初期的噩梦。你精心挑选的模板,往往在落地页加载速度、SEO结构优化以及移动端适配上存在硬伤,导致流量进来就流失,转化率低得令人发指。好站站网…

阅读更多 →
炸裂!Anthropic 开源 MCP 后,我用 TaoToken 统一 Key 跑通 LLM 工具链配置 2026/9/28 6:41:02

炸裂!Anthropic 开源 MCP 后,我用 TaoToken 统一 Key 跑通 LLM 工具链配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI工程化实战:从零构建可交付、可演进的AI系统 2026/9/28 6:40:55

AI工程化实战:从零构建可交付、可演进的AI系统

1. 这不是“搭积木”,而是亲手锻造AI系统的完整工程链“AI Engineering from Scratch”——看到这个标题,很多人第一反应是:“又要学Python?又要调参?又要部署模型?”其实完全想偏了。它根本不是教你怎么用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉