昆虫种类识别数据集昆虫物种分类数据集YOLO格式VOC格式 目标检测 机器视觉数据集

一、数据集概述

数据集名称:10类昆虫图像数据集

数据集包含了多种农作物中常见的昆虫种类,包括军虫、豆蓟象、红蜘蛛、水稻瘿蚊、水稻卷叶蛾、水稻叶蝉、水稻水蚤、小麦薄翅薄翅蔗蝇、白背飞虱和黄稻螟。

1.1可能应用的领域

  • 农业害虫监测与防控: 通过识别不同种类的害虫,农业专家和农民可以更好地监测和评估害虫对作物的威胁程度,有针对性地制定防控策略,减少农作物损失。

  • 智能农业技术发展: 利用昆虫种类识别技术,可以开发智能农业设备和系统,实现自动化的害虫监测和防控,提高农业生产效率和作物品质。

  • 生态学研究与保护: 通过分析昆虫种类的分布和多样性,可以深入了解农田生态系统的结构和功能,为生态平衡的维护和生物多样性的保护提供数据支持。

1.2数据采集

  • 确定昆虫分类数据集的范围和目标,包含多样的目标类别、尺寸和姿态变化,丰富的背景变化,标注精准度,数据平衡性,多样性的数据增强,数据质量控制。
  • 准备采集设备,包括相机、照明设备和标注工具。确保图像清晰度高,昆虫特征准确可见。

1.3数据集包含的分类

包含995张昆虫图片,数据集中包含以下几种类别

  • 军虫:常见的稻田害虫,主要危害水稻等作物。
  • 豆龟甲:豆类作物中的一种有害昆虫,会造成豆类植物叶片损伤。
  • 红蜘蛛:植物害虫之一,常见于温暖干燥的环境下,会危害各类植物。
  • 水稻象蚊:水稻上的一种害虫,会影响水稻的生长和产量。
  • 稻纵卷叶螟:水稻上的一种害虫,幼虫主要以水稻叶片为食。
  • 稻叶蝉:常见于稻田的一种害虫,会吸食水稻的汁液,导致水稻生长受阻。
  • 稻田蚁:水稻生长季节中常见的害虫,会危害水稻的根系。
  • 小麦蓟蛉:小麦上的一种害虫,会危害小麦的生长。
  • 白背飞虱:植物害虫之一,会危害多种作物,如水稻、小麦等。
  • 黄化稻螟:水稻上的一种害虫,主要以水稻的幼苗和叶片为食。

二、数据标注

2.1手动标注数据集

构建昆虫识别分类数据集涉及一系列复杂昆虫类别的标注,包括军虫、豆龟甲、红蜘蛛、水稻象蚊、稻纵卷叶螟、稻叶蝉、稻田蚁、小麦蓟蛉、白背飞虱和黄化稻螟。这些昆虫在不同环境中具有多样性外貌和微小差异,增加了标注工作的复杂度和工作量。标注人员需要投入大量时间和精力,准确标注每个昆虫的特征和类别,以捕捉它们的细微差别和准确特征。通过LabelImg逐一标注图像,确保每个昆虫类别都被准确标注,保障数据集的准确性和完整性,为昆虫分类算法的训练和改进打下坚实基础。

2.2 数据集结构

在使用深度学习进行训练任务时,通常需要将数据集划分为训练集、验证集和测试集。这种划分是为了评估模型的性能并确保模型的泛化能力。数据集划分为训练集、验证集和测试集的比例。常见的比例为 70% 训练集、20% 验证集和 10% 测试集,也就是7:2:1。数据集已经按照标准比例进行划分。

标注格式:

  • VOC格式 (XML)

  • YOLO格式 (TXT)

    yolo_dataset/

    ├── train/
    │ ├── images/
    │ │ ├── image1.jpg
    │ │ ├── image2.jpg
    │ │ ├── ...
    │ │
    │ └── labels/
    │ ├── image1.txt
    │ ├── image2.txt
    │ ├── ...

    └── test...
    └── valid...

    voc_dataset/

    ├── train/
    │ ├───├
    │ │ ├── image1.xml
    │ │ ├── image2.xml
    │ │ ├── ...
    │ │
    │ └───├
    │ ├── image1.jpg
    │ ├── image2.jpg
    │ ├── ...

    └── test...
    └── valid...

三、使用指南

步骤介绍

  • 数据预处理

    • 加载数据集,并根据 YOLO 模型的要求进行预处理,如将图像缩放至模型输入大小,生成标注文件等。

      数据预处理及训练代码示例

      import os
      import numpy as np
      from tensorflow.keras.preprocessing.image import ImageDataGenerator
      from tensorflow.keras.applications import MobileNetV2
      from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
      from tensorflow.keras.models import Model
      from tensorflow.keras.optimizers import Adam

      定义数据集路径

      train_data_dir = 'train'
      test_data_dir = 'test'

      数据增强

      train_datagen = ImageDataGenerator(
      rescale=1./255,
      shear_range=0.2,
      zoom_range=0.2,
      horizontal_flip=True
      )

      test_datagen = ImageDataGenerator(rescale=1./255)

      加载数据集

      train_generator = train_datagen.flow_from_directory(
      train_data_dir,
      target_size=(224, 224),
      batch_size=32,
      class_mode='categorical'
      )

      test_generator = test_datagen.flow_from_directory(
      test_data_dir,
      target_size=(224, 224),
      batch_size=32,
      class_mode='categorical'
      )

  • 模型训练

    • 选择适合昆虫识别的 YOLO 版本。
    • 使用标注好的训练集数据进行模型训练。
    • 调整模型超参数、学习率等以优化模型性能。
  • 模型评估

    • 使用测试数据集对训练好的模型进行评估,计算精度、召回率等指标。
  • 模型部署

    • 将训练好的模型部署到生产环境中,用于昆虫识别任务。

      加载YOLOv5模型

      model = torch.hub.load('ultralytics/yolov5', 'yolov5s')

      加载输入图像

      image_path = 'image.jpg'
      image = Image.open(image_path)

      预处理输入图像

      transform = transforms.Compose([
      transforms.Resize(size=(640, 640)),
      transforms.ToTensor(),
      ])
      image = transform(image).unsqueeze(0)

      进行模型推理

      results = model(image)

      处理模型输出

      for result in results.pandas().xyxy[0].iterrows():
      _, data = result
      class_id = data['class']
      confidence = data['confidence']
      box = data[['xmin', 'ymin', 'xmax', 'ymax']].tolist()
      print(f"Class ID: {class_id}, Confidence: {confidence}, Bounding Box: {box}")

  • 结果可视化

    • 可视化模型在测试集上的检测结果,可以将检测结果叠加在原始图像上显示。
相关推荐
CountingStars61917 小时前
目标检测常用评估指标(metrics)
人工智能·目标检测·目标跟踪
数据分析能量站19 小时前
目标检测-R-CNN
目标检测·r语言·cnn
神秘的土鸡21 小时前
LGMRec:结合局部与全局图学习的多模态推荐系统
目标检测·计算机视觉·云计算
机器懒得学习1 天前
基于YOLOv5的智能水域监测系统:从目标检测到自动报告生成
人工智能·yolo·目标检测
KeepThinking!2 天前
YOLO-World:Real-Time Open-Vocabulary Object Detection
人工智能·yolo·目标检测·多模态
发呆小天才O.oᯅ2 天前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
深度学习lover2 天前
<项目代码>YOLO Visdrone航拍目标识别<目标检测>
python·yolo·目标检测·计算机视觉·visdrone航拍目标识别
深度学习lover2 天前
[项目代码] YOLOv8 遥感航拍飞机和船舶识别 [目标检测]
python·yolo·目标检测·计算机视觉·遥感航拍飞机和船舶识别
love you joyfully3 天前
目标检测与R-CNN——pytorch与paddle实现目标检测与R-CNN
人工智能·pytorch·目标检测·cnn·paddle
weixin_468466853 天前
医学影像数据集汇总分享
深度学习·目标检测·数据集·图像分割·机器视觉·医学影像·ct影像