Bootstrap

基于YOLOv8深度学习的智慧农业草莓成熟度目标检测系统

使用 YOLOv8 进行草莓成熟度计数与检测

注意:此模块是在以下资源的帮助下完成的:


在这里插入图片描述

Detection_image.png


1. 代码库中每个 Notebook 的说明

  1. Dataset split NB:
    此 Notebook 用于将原始的 3000 张图片按 0.8、0.1 和 0.1 的比例分为训练集、验证集和测试集。Notebook 内提供了执行相同操作的详细说明。

  2. Training_the_YOLO_model (Google Colab):
    该 Notebook 用于在 Google Colab 中利用 GPU 对我们的图片数据集进行训练。在该文件末尾提供了使用 YOLOv8 对自定义数据集进行训练的详细步骤。

  3. Tfevent to plots.ipynb:
    该 Notebook 使用 TensorBoard 的 tfevents 文件生成美观的图表。

  4. Inference Notebook on original test set.ipynb:
    该 Notebook 用于在测试图片上进行推理,并使用 mAP 模块生成最终的 mAP(平均精度均值)分数。

  5. Inference Notebook for Group 8 test images.ipynb:
    该 Notebook 用于对任意未见过的独立测试图片或图片集进行推理。


2. 代码库中文件夹的说明

  • cfg: 包含 YOLOv8 模型训练所需的配置文件。
  • data: 存放分割后的数据集。
  • mAP: 包含计算 mAP 的代码。具体使用方法请参考文件夹内的 README.md。
  • models: 包含 YOLOv8 的架构文件。
  • plots: 存放 YOLO 训练期间生成的图表,以及使用 3. Tfevent to plots.ipynb 创建的图表。
  • results: 存放所有输出结果,包括带检测边界框的图片,以及包含相同信息的 CSV 文件。
  • utils: YOLO 模型在训练和推理过程中使用的工具文件。

在这里插入图片描述

3. 重要文件说明

  • best.pt:
    我们在 Google Colab 上训练自定义数据集后获得的最佳模型。如果此文件损坏或丢失,可通过以下链接重新下载:
    下载链接

  • detect.py:
    用于利用 GPU 进行检测的 Python 脚本。

  • events.out.tfevents.1671505893.1883a359b2f3.20572.0:
    来自 TensorBoard 的事件文件。

  • requirements.txt:
    用于安装必要库的依赖文件。

  • requirements_gpu.txt:
    用于安装必要 GPU 库的依赖文件。

  • train.py:
    用于执行模型训练的脚本。

  • yolov8.pt:
    在 COCO 数据集上预训练的 YOLOv8 权重文件。


使用自定义 YOLOv7 模型进行训练

1. 克隆 YOLOv7 仓库

运行以下命令从 GitHub 克隆 yolov7 仓库:

git clone https://github.com/WongKinYiu/yolov7.git
2. 安装依赖

在克隆的 yolov7 文件夹中,找到 requirements.txt 文件。
打开该文件,删除第 11 和第 12 行(即 torch 和 torchvision)。

创建一个名为 requirements_gpu.txt 的新文件,并将以下内容粘贴到该文件中:

-i https://download.pytorch.org/whl/cu113
torch==1.11.0+cu113
torchvision==0.12.0+cu113
3. 准备数据

按照 Dataset split NB 中的步骤准备数据。

4. 编辑配置文件
  1. 打开 data 文件夹中的 coco.yaml 文件,删除前 4 行(直到 download 部分)。

  2. 设置以下内容:

    train: data/train
    val: data/val
    nc: 3  # 类别数
    names: ['unripe', 'partially_ripe', 'fully_ripe']
    
  3. 打开 yolov7/cfg/training 文件夹中的 yolov7.yaml 文件,将第 2 行修改为:

    nc: 3
    
5. 下载预训练的 YOLOv7 权重
  1. 访问 YOLOv7 GitHub 链接,点击 YOLOv7
  2. 将下载的 yolov7.pt 文件移动到 yolov7 文件夹中。
*6. 在自定义数据集上训练 YOLOv8
  1. 将文件夹上传至 Google Drive。
  2. 打开 Google Colab,并运行 2. Training_the_YOLO_model (Google Colab) Notebook。
  3. 设置运行时为 GPU(路径:Runtime > Change runtime type > GPU)。
  4. 运行所有单元格,并给予必要权限。
  5. 可根据需求更改训练的 epoch 数量。
  6. 如果出现内存错误,请尝试减小 batch size,最终将其设置为 4。

在这里插入图片描述

推理 (Inference)

  1. 下载训练后的最佳模型 best.pt 文件,并保存在 Colab 中相同的文件夹下。
  2. 执行以下任一方式进行推理:
    • 按照 Notebook 中提供的命令执行推理。
    • best.pt 文件复制到本地文件夹,使用 4. Inference Notebook on original test set.ipynb 文件对测试集进行推理。
    • 使用 5. Inference Notebook for Group 8 test images.ipynb 文件对任意图片进行推理。

注意:要基于 GPU 执行推理,可使用代码库中的 detect.py 文件。

;