首页 分享 使用YOLOv8训练该数据集农业害虫检测数据集 农业虫害数据集.该数据集的害虫类别共为三类,该数据集共4010张JPG图片,标签文件为xml格式,4010个。

使用YOLOv8训练该数据集农业害虫检测数据集 农业虫害数据集.该数据集的害虫类别共为三类,该数据集共4010张JPG图片,标签文件为xml格式,4010个。

来源:花匠小妙招 时间:2024-11-09 06:10

在这里插入图片描述
该数据集的害虫类别共为三类,分别包含:蝗虫(locust),毛毛虫(caterpillar),甲虫(beetle)。
2.该数据集共4010张JPG图片,标签文件为xml格式,4010个。三类缺陷在标签文件中分别命名为:locust,caterpillar,beetle。
3.其中蝗虫和毛毛虫占比最多。在这里插入图片描述
在这里插入图片描述
数据集介绍

数据集概述
数据集名称:农业害虫检测数据集
害虫类别:共三类,分别为蝗虫(locust)、毛毛虫(caterpillar)、甲虫(beetle)
图片数量:共4010张JPG图片
标签格式:XML格式,每张图片对应一个XML标签文件
类别分布:蝗虫和毛毛虫占比最多数据集结构
假设你的数据集已经按照以下结构组织:

深色版本
pest_dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── labels/
├── train/
├── val/
└── test/
每个文件夹中包含对应的图像文件和标签文件。确保所有图像文件都是.jpg格式,而标签文件是.xml格式,并且它们的名字与对应的图像文件相同。

数据集转换
由于YOLOv8需要标签文件为YOLO格式(即.txt文件),我们需要将XML格式的标签文件转换为YOLO格式。

安装依赖
确保你已经安装了必要的库:

bash
深色版本
pip install xml.etree.ElementTree
2. 编写转换脚本
创建一个Python脚本来转换标签文件:

python
深色版本
import os
import xml.etree.ElementTree as ET

def convert(size, box):
dw = 1./size[0]
dh = 1./size[1]
x = (box[0] + box[1]) / 2.0
y = (box[2] + box[3]) / 2.0
w = box[1] - box[0]
h = box[3] - box[2]
x = x * dw
w = w * dw
y = y * dh
h = h * dh
return (x, y, w, h)

def convert_annotation(image_id, input_dir, output_dir, class_dict):
in_file = open(os.path.join(input_dir, f’{image_id}.xml’), ‘r’)
out_file = open(os.path.join(output_dir, f’{image_id}.txt’), ‘w’)
tree = ET.parse(in_file)
root = tree.getroot()
size = root.find(‘size’)
w = int(size.find(‘width’).text)
h = int(size.find(‘height’).text)

for obj in root.iter('object'): difficult = obj.find('difficult').text cls = obj.find('name').text if cls not in class_dict or int(difficult) == 1: continue cls_id = class_dict[cls] xmlbox = obj.find('bndbox') b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text)) bb = convert((w, h), b) out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + 'n') 12345678910

def main():
classes = [‘locust’, ‘caterpillar’, ‘beetle’]
class_dict = {cls: i for i, cls in enumerate(classes)}

sets = [('train', 'images/train', 'labels/train'), ('val', 'images/val', 'labels/val'), ('test', 'images/test', 'labels/test')] for set_name, image_dir, label_dir in sets: image_ids = [os.path.splitext(f)[0] for f in os.listdir(os.path.join('pest_dataset', image_dir)) if f.endswith('.jpg')] for image_id in image_ids: convert_annotation(image_id, os.path.join('pest_dataset', f'labels/{set_name}'), os.path.join('pest_dataset', f'labels/{set_name}'), class_dict) 12345678

if name == ‘main’:
main()
训练模型

创建数据集配置文件
创建一个数据集配置文件(如pest_dataset.yaml),该文件定义了数据集的基本信息,包括路径、类别等。示例配置如下:

yaml
深色版本

训练和验证的数据集路径

train: pest_dataset/images/train
val: pest_dataset/images/val

测试集路径(可选)

test: pest_dataset/images/test

类别名称

names:
0: locust
1: caterpillar
2: beetle

类别数量

nc: 3
2. 训练模型
在完成上述准备工作后,你可以开始训练模型了。打开终端,进入YOLOv8项目的根目录,运行训练命令:

bash
深色版本
python ultralytics/yolo/v8/detect/train.py --data pest_dataset.yaml --cfg yolov8.yaml --weights yolov8x.pt --batch-size 16 --epochs 100
这里:

–data 参数指定了数据集配置文件的路径。
–cfg 参数指定了模型配置文件。
–weights 参数用于指定预训练权重的路径,这有助于加速训练过程并提高最终模型的性能。
–batch-size 和 --epochs 分别设置了批量大小和训练轮数。
模型评估
训练完成后,可以通过验证集来评估模型的性能。YOLOv8提供了方便的命令来进行模型评估:

bash
深色版本
python ultralytics/yolo/v8/detect/val.py --data pest_dataset.yaml --weights runs/train/exp/weights/best.pt
这里,best.pt 是训练过程中保存的最佳模型权重文件。

模型推理
你可以使用训练好的模型进行推理,检测新的图像中的害虫。示例命令如下:

bash
深色版本
python ultralytics/yolo/v8/detect/predict.py --source path/to/your/image.jpg --weights runs/train/exp/weights/best.pt --conf 0.25
这里:

–source 参数指定了要检测的图像路径。
–conf 参数设置了置信度阈值,低于该阈值的检测结果将被忽略。
注意事项
数据增强:为了提高模型的泛化能力,可以考虑使用数据增强技术,如随机裁剪、翻转、颜色抖动等。
超参数调整:根据训练过程中观察到的损失值和验证集上的性能,适当调整学习率、批量大小等超参数。
硬件资源:如果显存不足,可以减少批量大小或使用更小的模型变体。

相关知识

基于深度学习的农作物害虫检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
基于深度学习的稻田虫害检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
YOLO识别病虫害数据集
棉花叶片病害虫害检测数据集
【叶片病虫害数据集】果树叶片病变识别 机器视觉 Python (含数据集)
助力农业智能化:YOLO病虫害识别数据集推荐
基于YOLOv8深度学习的智能小麦害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
【果树林木病虫害数据集】 果树病虫害检测 林木叶片病虫害识别 计算机视觉(含数据集)
基于YOLOv8深度学习的水稻害虫检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的智能玉米害虫检测识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

网址: 使用YOLOv8训练该数据集农业害虫检测数据集 农业虫害数据集.该数据集的害虫类别共为三类,该数据集共4010张JPG图片,标签文件为xml格式,4010个。 https://www.huajiangbk.com/newsview438362.html

所属分类:花卉
上一篇: 近几天猛烈升温,小虫虫开始陆续出
下一篇: 8花卉主要害虫的综合防治解题.p

推荐分享