昆虫种类识别数据集昆虫物种分类数据集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}")
  • 结果可视化

    • 可视化模型在测试集上的检测结果,可以将检测结果叠加在原始图像上显示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++,STL 044(24.10.24)

内容 1.set容器的构造函数。 2.set容器的赋值操作。 运行代码 #include <iostream> #include <set>using namespace std;void printSet(set<int> &s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it << &…

好书推荐|《Python最优化算法实战》

简介 本书以理论结合编程开发为原则&#xff0c;使用Python作为开发语言&#xff0c;讲解优化算法的原理和应用&#xff0c;详细介绍了Python基础、Gurobi 优化器、线性规划、整数规划、多目标优化、动态规划、图与网络分析、智能优化算法。对于算法部分的每一种算法都包含原理…

算法设计与分析——动态规划

1.动态规划基础 1.1动态规划的基本思想 动态规划建立在最优原则的基础上&#xff0c;在每一步决策上列出可能的局部解&#xff0c;按某些条件舍弃不能得到最优解的局部解&#xff0c;通过逐层筛选减少计算量。每一步都经过筛选&#xff0c;以每一步的最优性来保证全局的最优性…

NavMesh只制作可移动的导航网,清除多余不可走区域

只制作可移动的导航网。它使存储文件大小减小并提高性能。它消除了迁移到随机区域的问题。添加链接描述 1.如何使用 2.创建一个包含“NavMeshCleaner”组件的对象。Andadd指向可定制区域。 按住控制键并单击添加点。如果要移动它&#xff0c;请按 输入上的control键并单击。您…

flashback database 闪回数据库

1.修改闪回区大小&#xff0c;路径&#xff0c;保留时间 SQL> show parameter db_recovery_file_dest SQL> show parameter db_flashback_retention_targetSQL> alter system set db_recovery_file_dest_size20G scopeboth;System altered.SQL> alter system set …

ffmpeg视频滤镜: 裁剪-crop

滤镜简述 crop官网链接 > FFmpeg Filters Documentation crop滤镜可以对视频进行裁剪&#xff0c;并且这个滤镜可以接受一些变量比如时间和帧数&#xff0c;这样我们实现动态裁剪&#xff0c;从而实现一些特效。 滤镜使用 参数 out_w <string> ..…

云电脑使用教程标准版

云电脑&#xff0c;也称为云桌面&#xff0c;是一种通过互联网连接远程服务器&#xff0c;使用虚拟桌面环境来执行计算任务的技术。川翔云电脑通过创建软件镜像&#xff0c;让用户能够快速启动并使用预配置的软件和资料&#xff0c;提供高效且经济的云服务。相较于公有云服务&a…

83.【C语言】数据结构之顺序表的尾部插入和删除

目录 3.操作顺序表 2."伪"插入顺序表的元素 分析尾部插入函数SLPushBack 代码示例 SeqList.h main.c free(指针)出错的几种可能的原因 3."伪"删除顺序表元素 2.分析尾部删除函数SLPopBack 代码示例 错误检查 两种解决办法 1.判断size是否为负…

【Linux系统】页表的存在位 与 OS的按需加载策略

一、引入 加载程序会将程序代码全部从磁盘中加载进内存吗&#xff1f; 为什么你的电脑的运存只有16GB&#xff0c;但你可以运行上百GB的游戏&#xff0c;如黑神话马喽&#xff1f; 这就涉及到 操作系统的按需加载策略 二、页表的存在位 页表的一个标志位&#xff1a;存在位 …

webpack 老项目升级记录:从 node-sass 限制的的 node v8 提升至支持 ^node v22

老项目简介 技术框架 vue 2.5.17webpack 4.16.5"webpack-cli": "3.1.0""node-sass": "^4.7.2" 几个阶段 第一步&#xff1a;vue2 升级到最新 第一步&#xff1a;升级 vue2 至最新版本&#xff0c;截止到目前&#xff08;2024-10-…

【vim】手动安装 Leader-F

LeaderF 是一个功能强大的 Vim 插件&#xff0c;主要用于快速导航和搜索。它可以帮助用户在 Vim 中高效地查找文件、缓冲区、标签、函数等各种元素&#xff0c;极大地提高了编辑效率。 LeaderF 的安装如果按照仓库中的教程来的话可以很方便的实现安装&#xff0c;这里介绍一下…

面试官:常见的网络攻击手段有哪些?解决方案了解吗?零基础入门到精通,收藏这一篇就够了

引言&#xff1a;由于互联网和信息技术的高速发展&#xff0c;网络安全变得尤为重要&#xff0c;如果不熟悉常见的网络攻击手段&#xff0c;就会造成数据泄漏、信息安全问题、乃至国家安全问题&#xff0c;本文就来介绍下常见的网络攻击手段和一些防范措施。 题目 面试官&…

深入理解值类型和引用类型的存储

目录 内存 存储 1&#xff09;栈区 2&#xff09;堆区 C#的编译过程 1&#xff09;源代码 2&#xff09;公共语言规范(Common Language Specification&#xff0c;CLS) 编译 3&#xff09;通用中间语言(Microsoft Intermediate Language&#xff0c;CIL或MSIL) 4&…

从陌生到信赖,3款AI写作助手教会了我何为真诚的表达

现在信息多得不得了&#xff0c;写作已经不是只有人才能干的事了。人工智能技术发展得特别快&#xff0c;AI写作助手也开始帮我们写东西了。一开始&#xff0c;我对这些AI助手挺好奇的&#xff0c;后来用着用着就越来越信任它们&#xff0c;甚至有点离不开了。我用的那三款AI写…

ONLYOFFICE 文档8.2版本已发布:PDF 协作编辑、改进界面、性能优化等更新

ONLYOFFICE 在线编辑器最新版本已经发布&#xff0c;其中包含30多个新功能和500多个错误修复。阅读本文了解所有更新。 关于 ONLYOFFICE 文档 ONLYOFFICE 是一个开源项目&#xff0c;专注于高级和安全的文档处理。坐拥全球超过 1500 万用户&#xff0c;ONLYOFFICE 是在线办公领…

Python日志记录库——loguru

知识星球&#xff1a;知识星球 | 深度连接铁杆粉丝&#xff0c;运营高品质社群&#xff0c;知识变现的工具知识星球是创作者连接铁杆粉丝&#xff0c;实现知识变现的工具。任何从事创作或艺术的人&#xff0c;例如艺术家、工匠、教师、学术研究、科普等&#xff0c;只要能获得一…

数学建模与优化算法:从基础理论到实际应用

数学建模和优化算法&#xff0c;它们不仅帮助我们理解和描述复杂系统的行为&#xff0c;还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发&#xff0c;逐步深入到各种优化算法&#xff0c;并探讨它们在实际问题中的应用。 思维导图文件可获取&#xff1a;https:…

如何指定 Maven 的 JDK 版本?

maven 路径&#xff1a;/data/maven/ jdk 路径&#xff1a;/data/jdk_1.8 1、修改 mvn 可执行文件并指定 JDK 版本 vim /data/maven/bin/mvn # 在开头新增即可... # zhurs add JAVA_HOME PATH JAVA_HOME/data/jdk_1.8 ...保存退出即可&#xff01; 为什么在此处新增&#x…

C/C++(六)多态

本文将介绍C的另一个基于继承的重要且复杂的机制&#xff0c;多态。 一、多态的概念 多态&#xff0c;就是多种形态&#xff0c;通俗来说就是不同的对象去完成某个行为&#xff0c;会产生不同的状态。 多态严格意义上分为静态多态与动态多态&#xff0c;我们平常说的多态一般…

【博客节选】Unity角色异常抖动问题排查

本文截取自本人文章 &#xff1a;【Unity实战笔记】第二一 基于状态模式的角色控制——以UnityChan为例 发现出现角色抖动问题 尝试解决方法&#xff1a; 跳跃的loop time不要勾选&#xff1b; 相机aim添加垂直阻尼 还是不行&#xff0c;仔细查看是位移时震颤。 UnityCha…