使用 YOLOv8 进行草莓成熟度计数与检测
注意:此模块是在以下资源的帮助下完成的:
Detection_image.png
1. 代码库中每个 Notebook 的说明
-
Dataset split NB:
此 Notebook 用于将原始的 3000 张图片按 0.8、0.1 和 0.1 的比例分为训练集、验证集和测试集。Notebook 内提供了执行相同操作的详细说明。 -
Training_the_YOLO_model (Google Colab):
该 Notebook 用于在 Google Colab 中利用 GPU 对我们的图片数据集进行训练。在该文件末尾提供了使用 YOLOv8 对自定义数据集进行训练的详细步骤。 -
Tfevent to plots.ipynb:
该 Notebook 使用 TensorBoard 的 tfevents 文件生成美观的图表。 -
Inference Notebook on original test set.ipynb:
该 Notebook 用于在测试图片上进行推理,并使用 mAP 模块生成最终的 mAP(平均精度均值)分数。 -
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. 编辑配置文件
-
打开
data
文件夹中的coco.yaml
文件,删除前 4 行(直到 download 部分)。 -
设置以下内容:
train: data/train val: data/val nc: 3 # 类别数 names: ['unripe', 'partially_ripe', 'fully_ripe']
-
打开
yolov7/cfg/training
文件夹中的yolov7.yaml
文件,将第 2 行修改为:nc: 3
5. 下载预训练的 YOLOv7 权重
- 访问 YOLOv7 GitHub 链接,点击 YOLOv7。
- 将下载的
yolov7.pt
文件移动到 yolov7 文件夹中。
*6. 在自定义数据集上训练 YOLOv8
- 将文件夹上传至 Google Drive。
- 打开 Google Colab,并运行 2. Training_the_YOLO_model (Google Colab) Notebook。
- 设置运行时为 GPU(路径:
Runtime > Change runtime type > GPU
)。 - 运行所有单元格,并给予必要权限。
- 可根据需求更改训练的 epoch 数量。
- 如果出现内存错误,请尝试减小 batch size,最终将其设置为 4。
推理 (Inference)
- 下载训练后的最佳模型
best.pt
文件,并保存在 Colab 中相同的文件夹下。 - 执行以下任一方式进行推理:
- 按照 Notebook 中提供的命令执行推理。
- 将
best.pt
文件复制到本地文件夹,使用 4. Inference Notebook on original test set.ipynb 文件对测试集进行推理。 - 使用 5. Inference Notebook for Group 8 test images.ipynb 文件对任意图片进行推理。
注意:要基于 GPU 执行推理,可使用代码库中的 detect.py
文件。