使用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。
  • 部署到移动端,实现实时检测。
相关推荐
微尘hjx6 小时前
【AI视觉软件 03】基于 Ultralytics + DeepSORT 的多目标跟踪与改进(支持YOLO全系列,重点车跟踪)
人工智能·yolo·目标跟踪·视觉检测·deepsort·ultralytics·车跟踪
迪菲赫尔曼7 小时前
【基础篇 04】第一次使用终端:命令在哪里输入,电脑现在又“站”在哪里?
python·yolo·目标检测
qq_252941316816 小时前
混凝土损伤分割与检测数据集 | 混凝土损伤 实例分割 裂缝检测 裸露钢筋 结构健康监测9261期
人工智能·yolo·目标检测·计算机视觉·混泥土
a puppy slide 葱17 小时前
ICML | 2026 | MFH‑NAS:面向多模态融合目标检测的混合神经架构搜索框架
人工智能·yolo·目标检测·计算机视觉·架构·nas·神经网络架构搜索
2601_967987371 天前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
迪菲赫尔曼1 天前
【基础篇 02】文件、文件夹和路径:先把学习资料放对地方
yolo·计算机视觉·论文·教程·ultralyt
小豆庄1 天前
AI换脸能骗过检测,视频脱敏为什么该回到本地
人工智能·yolo·阿里云·ai·ocr·视频
小毕超2 天前
从推理到训练:Intel Ultra 核显 GPU 加速 YOLO 模型训练
pytorch·yolo·gpu·intel
小豆庄2 天前
视频脱敏:云端识别与本地推理的边界实测
数据库·yolo·自然语言处理·视觉检测·视频·设计规范·纹理贴图
程序猿编码2 天前
YOLOv5/v7/YOLOX 全支持:基于 TensorRT 的工业视觉推理底座详解
c++·yolo·机器学习·推理·模型推理