深度学习框架目标检测算法Yolov5 训练柑橘病害缺陷数据集的训练与处理 建立基于深度学习yolov5的柑橘病害缺陷检测
文章目录
以下文字及代码仅供参考。
train: F:/cells/yolo/yoloDt_241226210900248/train/images val: F:/cells/yolo/yoloDt_241226210900248/valid/images nc: 12 names: - Brown_Spot - Citrus_Black_Spot - Citrus_Canker - Citrus_Greasy_Spot - Citrus_Scab - Greening - Healthy - Leprosis - Orange_Scab - Sooty_Mold - Thrips - Xyloporosis
1
1
,使用YOLOv5模型,如何根据路径和类别信息设置和训练YOLOv5模型。
1. 数据准备
被划分成训练集和验证集,并且每个集合的图像存储在指定目录中。
接下来,同学你需要确保每个图像都有相应的标注文件(通常是.txt
格式),这些文件应该位于与图像对应的目录下,且命名应与图像文件名相同(除了扩展名不同)。每行代表一个对象,格式为<class_index> <x_center> <y_center> <width> <height>
,其中坐标值归一化到0-1之间。
2. 配置数据集
创建一个名为data.yaml
的文件,用于定义数据集路径和类别信息:
train: F:/cells/yolo/yoloDt_241226210900248/train/images
val: F:/cells/yolo/yoloDt_241226210900248/valid/images
nc: 12 # 类别数量
names: ['Brown_Spot', 'Citrus_Black_Spot', 'Citrus_Canker', 'Citrus_Greasy_Spot', 'Citrus_Scab', 'Greening', 'Healthy', 'Leprosis', 'Orange_Scab', 'Sooty_Mold', 'Thrips', 'Xyloporosis']
3. 环境搭建
首先,确保安装了必要的库和工具:
pip install torch torchvision torchaudio
git clone https://github.com/ultralytics/yolov5 # 克隆YOLOv5仓库
cd yolov5
pip install -r requirements.txt
4. 模型训练
使用YOLOv5的训练脚本来训练模型。假设你已经在yolov5
目录下:
python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt
--img
:输入图像尺寸(例如640)。--batch
:批次大小(例如16)。--epochs
:训练周期数(例如100)。--data
:数据配置文件路径(即data.yaml
)。--weights
:预训练权重路径(可以使用YOLOv5的预训练模型作为起点,如yolov5s.pt
)。
5. 调整超参数
根据实验结果调整学习率、批次大小、训练轮次等超参数以优化模型性能。可以通过修改train.py
中的相关参数或者直接在命令行中添加参数来进行调整。
6. 模型推理
训练完成后,你可以使用如下命令进行推理:
python detect.py --source F:/cells/yolo/test_images --weights runs/train/exp/weights/best.pt --conf 0.25
--source
:测试图像或视频的路径。--weights
:训练得到的最佳模型权重路径。--conf
:置信度阈值,用来过滤低置信度预测框。
7. 性能评估
使用mAP(mean Average Precision)等指标评估模型性能。YOLOv5自带的val.py
脚本可以帮助完成这项工作:
python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640
这将输出模型在验证集上的表现,包括mAP和其他详细指标。
建立基于YOLOv5的柑橘缺陷病害识别系统涉及到使用训练好的模型权重进行推理,将该系统集成到应用中,并可能包括对系统的优化和部署。以下是详细的步骤:
1. 确认环境准备
确保你的环境中已经安装了必要的依赖库,并且YOLOv5仓库已克隆并配置好。
pip install torch torchvision torchaudio
git clone https://github.com/ultralytics/yolov5 # 克隆YOLOv5仓库
cd yolov5
pip install -r requirements.txt
2. 准备训练好的权重
确保你已经有了通过之前训练得到的最佳权重文件(例如best.pt
),这个文件通常位于runs/train/exp/weights/
目录下。
3. 使用训练好的权重进行推理
单张图片推理
可以使用以下命令对单张图片进行预测:
python detect.py --source path/to/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.25
--source
: 输入图像路径。--weights
: 训练好的模型权重路径。--conf
: 置信度阈值,用来过滤低置信度的检测框,默认是0.25。
批量推理
如果想要对一个目录中的所有图像进行批量推理,只需指定目录路径作为--source
参数的值:
python detect.py --source path/to/images_folder --weights runs/train/exp/weights/best.pt --conf 0.25
4. 集成到应用程序中
为了将这个系统集成到更大的应用程序中,你可以直接调用YOLOv5的Python API来执行推理。这里是一个简单的示例代码片段,演示如何加载模型并对图像进行推理:
from pathlib import Path
import torch
# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path='runs/train/exp/weights/best.pt') # 或者直接使用路径加载
# 图像路径
img_path = 'path/to/image.jpg'
# 推理
results = model(img_path)
# 显示结果
results.print() # 控制台输出
results.show() # 显示标注后的图像
results.save() # 保存标注后的图像到'runs/detect/exp'目录下
5. 系统优化与部署
- 性能优化:根据实际需要调整输入尺寸、批次大小、以及后处理参数(如NMS阈值)等以达到更好的性能或准确率。
- 部署:选择将模型转换为ONNX格式或其他轻量级格式以便于在不同的平台上部署。YOLOv5支持导出为多种格式,方便部署到移动端或服务器端。
# 导出为ONNX格式
python export.py --weights runs/train/exp/weights/best.pt --include onnx
6. 性能评估
在部署前,建议对模型进行全面的性能评估,包括但不限于mAP、召回率、精确率等指标。这可以通过运行val.py
脚本完成:
python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640