使用YOLOv11实现水果类别检测:从数据到模型训练的全过程

项目背景

在日常生活中,水果的类别识别直接影响库存管理和质量控制。传统检测依赖人工,效率低下且主观。通过计算机视觉,我们可以自动化这个过程。YOLO系列模型以其速度和准确性闻名,这次我使用YOLOv11n进行训练,目标是检测31种水果类别,包括苹果、香蕉、橙子等。

数据集来源于公开来源,图像标注为YOLO格式,包含训练、验证和测试集。nc=31,names包括'fresh_apple'到'rotten_tomato'等。

方法步骤

  1. 数据准备:数据集已准备好,包含标注图像。
  1. 模型训练:使用训练脚本,配置YOLO数据。训练参数:epochs=50, batch=16, imgsz=640。

    以下是训练脚本的主要代码:

    python 复制代码
    from ultralytics import YOLO
    import os
    import glob
    import torch
    
    def main():
        model = YOLO('models/yolo11n.pt')
        yaml_path = 'data/data.yaml'
        results = model.train(data=yaml_path, epochs=50, batch=16, imgsz=640, name='yolo11n_fruit', project='fruit_results')
        print("Training completed. Results saved in:", results.save_dir)
    
    if __name__ == '__main__':
        main()

    训练命令:python train_fire_smoke_tassel.py

    结果保存在fruit_results/yolo11n_fruit_20250716_210401

  1. 模型验证 :使用test_saved_model.py验证,加载best.pt模型。

    以下是验证脚本的主要代码:

    python 复制代码
    from ultralytics import YOLO
    import os
    import glob
    
    def main():
        yaml_path = 'data/data.yaml'
        results_dir = 'fruit_results'
        latest_run = max(glob.glob(os.path.join(results_dir, 'yolo11n_fruit_*')), key=os.path.getmtime)
        model_path = os.path.join(latest_run, 'weights', 'best.pt')
        model = YOLO(model_path)
        metrics = model.val(data=yaml_path)
        print(f"Validation metrics: {metrics}")
    
    if __name__ == '__main__':
        main()

    关键指标:

    • mAP50: 0.709
    • mAP50-95: 0.421
    • Precision: 0.675
    • Recall: 0.715






结果分析

模型在验证集上表现不错,mAP50达0.709,表示中等难度下的检测准确。Recall较高,意味着漏检少,适合实际应用。但mAP50-95较低,说明小目标或复杂背景需优化。

预测示例:

未来改进

  • 增加数据增强,提升鲁棒性。
  • 尝试更大模型如YOLOv11m。
  • 部署到移动端,实现实时检测。
相关推荐
向哆哆5 天前
高精度织物缺陷检测数据集(适用YOLO系列/1000+标注)(已标注+划分/可直接训练)
yolo·目标检测
前网易架构师-高司机5 天前
带标注的驾驶员安全带识别数据集,识别率99.5%,可识别有无系安全带,支持yolo,coco json,pascal voc xml格式
xml·yolo·数据集·交通·安全带
向哆哆5 天前
粉尘环境分类检测千张图数据集(适用YOLO系列)(已标注+划分/可直接训练)
yolo·分类·数据挖掘
琅琊榜首20206 天前
移动端AI挂机新范式:YOLOv8+NCNN实现无Root视觉自动化
人工智能·yolo·自动化
智驱力人工智能6 天前
地铁隧道轨道障碍物实时检测方案 守护城市地下动脉的工程实践 轨道障碍物检测 高铁站区轨道障碍物AI预警 铁路轨道异物识别系统价格
人工智能·算法·yolo·目标检测·计算机视觉·边缘计算
智驱力人工智能6 天前
机场鸟类活动智能监测 守护航空安全的精准工程实践 飞鸟检测 机场鸟击预防AI预警系统方案 机场停机坪鸟类干扰实时监测机场航站楼鸟击预警
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
前端摸鱼匠6 天前
YOLOv8使用 Ultralytics 内置功能简化格式转换:介绍如何使用 yolo mode=data 等相关功能或辅助工具来加速和简化数据格式的准备工作
人工智能·yolo·目标检测·机器学习·目标跟踪·视觉检测
hans汉斯6 天前
《数据挖掘》期刊推介&征稿指南
图像处理·人工智能·算法·yolo·数据挖掘·超分辨率重建·汉斯出版社
卓越软件开发6 天前
毕设全栈开发一条龙:Java/SpringBoot/Vue/ 小程序 / Python / 安卓 / AI 图像识别 人脸检测 车牌识别 YOLO
开发语言·spring boot·python·yolo·小程序·毕业设计·课程设计
向哆哆7 天前
单车/共享单车目标检测数据集(适用YOLO系列)(已标注+划分/可直接训练)
人工智能·yolo·目标检测