河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;

 

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;

河道垃圾与水污染检测数据集(无人机视角)

项目概述

本数据集是一个专门用于河道垃圾和水污染检测的数据集,包含3000张由无人机拍摄的图像。这些图像经过人工检查并标注,确保了标注的质量。数据集提供了YOLO格式和VOC格式的标注文件,可以直接用于训练深度学习模型,以实现对河道中的水污染、漂浮物、废弃船、捕鱼养殖设施以及废弃物的自动检测。

数据集特点

  • 高质量标注:所有标注数据至少经过一次人工检查,确保标注质量。
  • 多样化类别:涵盖五类常见的河道污染物和设施。
  • 多用途:适用于多种目标检测任务,特别是涉及河道管理和环境保护的应用。
  • 易于使用:提供了详细的说明文档和预处理好的标注文件,方便用户快速上手。
  • 无人机视角:所有图像均从无人机视角拍摄,具有较高的分辨率和广角视野。

数据集结构

River_Pollution_Dataset/
├── images/                               # 图像文件夹
│   ├── train/                            # 训练集图像
│   ├── val/                              # 验证集图像
│   └── test/                             # 测试集图像
├── labels/                               # 标注文件夹
│   ├── train/                            # 训练集标注 (YOLO 和 VOC 格式)
│   ├── val/                              # 验证集标注 (YOLO 和 VOC 格式)
│   └── test/                             # 测试集标注 (YOLO 和 VOC 格式)
├── README.md                             # 项目说明文档
└── data.yaml                             # 数据集配置文件

数据集内容

  • 总数据量:3000张图像。
  • 标注格式:YOLO格式和VOC格式。
  • 标注对象:各类河道污染物和设施的位置。
  • 类别及数量
类别名标注个数
水污染 (Water Pollution)488
漂浮物 (Floating Debris)5495
废弃船 (Abandoned Boats)1215
捕鱼养殖 (Fishing and Aquaculture)710
废弃物 (Waste)156
  • 总计
    • 图像总数:3000张
    • 标注总数:7064个
    • 总类别数 (nc):5类

使用说明

  1. 环境准备

    • 确保安装了Python及其相关库(如torchopencv-pythonmatplotlib等)。
    • 下载并解压数据集到本地目录。
    • 安装YOLOv5所需的依赖项:
       bash 

      深色版本

      git clone https://github.com/ultralytics/yolov5
      cd yolov5
      pip install -r requirements.txt
  2. 加载数据集

    • 可以使用常见的编程语言(如Python)来加载和处理数据集。
    • 示例代码如下:
import os
import json
import pandas as pd
from pathlib import Path
from yolov5.utils.datasets import LoadImages, LoadImagesAndLabels
from yolov5.models.experimental import attempt_load
from yolov5.utils.general import non_max_suppression, scale_coords
from yolov5.utils.torch_utils import select_device
import cv2
import numpy as np# 定义数据集路径
dataset_path = 'River_Pollution_Dataset'# 加载图像和标注
def load_dataset(folder):images_folder = os.path.join(dataset_path, 'images', folder)labels_folder = os.path.join(dataset_path, 'labels', folder)dataset = []for image_file in os.listdir(images_folder):if image_file.endswith('.jpg') or image_file.endswith('.png'):image_path = os.path.join(images_folder, image_file)label_path = os.path.join(labels_folder, image_file.replace('.jpg', '.txt').replace('.png', '.txt'))with open(label_path, 'r') as f:labels = [line.strip().split() for line in f.readlines()]dataset.append({'image_path': image_path,'labels': labels})return dataset# 示例:加载训练集
train_dataset = load_dataset('train')
print(f"Number of training images: {len(train_dataset)}")
  1. 模型训练
    • 使用预训练的YOLOv5模型进行微调,或者从头开始训练。
    • 示例代码如下:
# 设置设备
device = select_device('')# 加载预训练模型或从头开始训练
model = attempt_load('yolov5s.pt', map_location=device)  # 或者 'path/to/custom_model.pt'
model.train()# 数据集配置文件
data_yaml = 'River_Pollution_Dataset/data.yaml'# 训练参数
hyp = 'yolov5/data/hyps/hyp.scratch.yaml'  # 超参数配置文件
epochs = 100
batch_size = 16
img_size = 640# 开始训练
%cd yolov5
!python train.py --img {img_size} --batch {batch_size} --epochs {epochs} --data {data_yaml} --weights yolov5s.pt
  1. 模型推理
    • 使用训练好的模型进行推理,并在图像上绘制检测结果。
    • 示例代码如下:
 

python

深色版本

def detect(image_path, model, device, img_size=640):img0 = cv2.imread(image_path)img = letterbox(img0, new_shape=img_size)[0]img = img[:, :, ::-1].transpose(2, 0, 1)  # BGR to RGB, to 3x416x416img = np.ascontiguousarray(img)img = torch.from_numpy(img).to(device)img = img.half() if half else img.float()  # uint8 to fp16/32img /= 255.0  # 0 - 255 to 0.0 - 1.0if img.ndimension() == 3:img = img.unsqueeze(0)# 推理with torch.no_grad():pred = model(img, augment=False)[0]# NMSpred = non_max_suppression(pred, 0.4, 0.5, classes=None, agnostic=False)for i, det in enumerate(pred):  # 每个图像的检测结果if det is not None and len(det):det[:, :4] = scale_coords(img.shape[2:], det[:, :4], img0.shape).round()for *xyxy, conf, cls in reversed(det):label = f'{model.names[int(cls)]} {conf:.2f}'plot_one_box(xyxy, img0, label=label, color=(0, 255, 0), line_thickness=3)return img0# 示例:检测单张图像
result_img = detect('path/to/image.jpg', model, device)
cv2.imshow('Detection Result', result_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 性能评估
    • 使用测试集进行性能评估,计算mAP、召回率、精确率等指标。
    • 可以使用YOLOv5自带的评估脚本:
       bash 

      深色版本

      python val.py --data River_Pollution_Dataset/data.yaml --weights best.pt --img 640

注意事项

  • 数据格式:确保图像文件和标注文件的命名一致,以便正确匹配。
  • 硬件要求:建议使用GPU进行训练和推理,以加快处理速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
  • 超参数调整:根据实际情况调整网络架构、学习率、批次大小等超参数,以获得更好的性能。

应用场景

  • 河道管理:自动检测河道中的污染物和设施,帮助管理部门及时清理和维护。
  • 环境保护:监测河流水质和污染情况,支持环保部门制定治理措施。
  • 智能监控:结合无人机巡检系统,实现对河道的实时监控和预警。
  • 科研教育:用于水污染研究和教学,提高公众对环境保护的认识。

希望这个数据集能帮助你更好地理解和应用深度学习技术在河道垃圾和水污染检测中的应用。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短剧小程序短剧APP在线追剧APP网剧推广分销微短剧小剧场小程序集师知识付费集师短剧小程序集师小剧场小程序集师在线追剧小程序源码

一、产品简介功能介绍 集师专属搭建您的独有短剧/追剧/小剧场小程序或APP平台 二、短剧软件私域运营解决方案 针对短剧类小程序的运营,以下提出10条具体的方案: 明确定位与目标用户: 对短剧类小程序进行明确定位,了解目标用户群体…

Chatgpt 原理解构

一、背景知识 1. 自然语言处理的发展历程 自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期,艾伦・图灵在 1936 年提出 “图灵机” 概念,为计算机诞生奠定基础,1950 年他提出著名的 “图灵测试”,预见了计算机处理自然…

Oracle 闪回版本(闪回表到指定SCN)

1.创建目录 mkdir /u01/app/oracle/flash 2.配置FRA alter system set db_recovery_file_dest_size15G; alter system set db_recovery_file_dest/u01/app/oracle/flash; 3.设置闪回参数--确保可以闪回48h内的数据库 alter system set db_flashback_retention_target2880; 4…

望繁信科技成功签约国显科技 流程挖掘助力制造业智造未来

近日,上海望繁信科技有限公司(简称“望繁信科技”)成功与深圳市国显科技有限公司(简称“国显科技”)达成合作。国显科技作为全球领先的TFT-LCD液晶显示及Mini/Micro LED显示产品供应商,致力于为笔记本、手机…

经典蓝牙BLE版本区别:【图文讲解】

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙(BLE)。 1:蓝牙4.0 BLE 4.0版本是3.0版本的升级版本&a…

uniapp学习(004-1 组件 Part.2生命周期)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第31p-第p35的内容 文章目录 组件生命周期我们主要使用的三种生命周期setup(创建组件时执行)不可以操作dom节点…

Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)

本合约非常适合新手学习,其包含了基本的增删改查功能以及各个方式的不同之处的总结,本套合约我也编写了truffle测试,学习truffle测试的小伙伴也有福了~ 该合约的主要作用是通过区块链技术实现物流追踪系统的透明化、自动化与防篡改特性&#…

乐歌E5,E6系列升降桌质量如何?2024推荐必买的四款热销型号

在数字化时代,电脑桌成为了我们日常生活和工作中不可或缺的一部分。然而,长时间坐在固定高度的电脑桌前,不仅会影响我们的工作效率,还可能对身体健康造成不良影响。因此,一款能够电动升降的电脑桌显得尤为重要。 乐歌…

RabbbitMQ篇(环境搭建 - 下载 安装)(持续更新迭代)

目录 一、Windows 1. 下载安装程序 2. 安装配置erlang 3. 安装rabbitMQ 4. 验证 二、Linux 1. 下载rpm包 1.1. 下载Erlang的rpm包 1.2. 下载socat的rpm包 1.3. 下载RabbitMQ的rpm包 2. 安装 2.1. 安装Erlang 2.2. 安装socat 2.3. 安装RabbitMQ 3. 启动RabbitMQ服…

【含开题报告+文档+PPT+源码】基于SpringBoot的社区家政服务预约系统设计与实现【包运行成功】

开题报告 社区家政服务是满足居民日常生活需求的重要组成部分,在现代社会中发挥着越来越重要的作用。随着城市化进程的不断加速,社区家政服务需求量呈现持续增长的趋势。然而,传统的家政服务模式存在一些问题,如预约流程繁琐、信…

【Python自动化测试】如何才能让用例自动运行完之后,生成一张直观可看易懂的测试报告呢?

小编使用的是unittest的一个扩展HTMLTestRunner 环境准备 使用之前,我们需要下载HTMLTestRunner.py文件 点击HTMLTestRunner后进入的是一个写满代码的网页,小编推荐操作:右键 --> 另存为,文件名称千万不要改 python3使用上述…

手撕AVL树

🔥个人主页🔥:鱼骨不是鱼翅-CSDN博客 🌈收录专栏🌈:高阶数据结构_鱼骨不是鱼翅的博客-CSDN博客 🔖 学如逆水行舟,不进则退 目录 一.AVL树的概念 二.平衡因子 三.平衡二叉树怎么调…

自动驾驶系列—从IMU到惯性定位算法:自动驾驶精准定位的幕后科技

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

哪些因素会影响移动电源自动测试的结果?-纳米软件

一、USB 连接线对移动电源测试结果的影响 在移动电源输出电压的测试中,辅助用的 USB 连接线对测试的影响常常被测试工程师所忽视。不同的 USB 线缆连接可能会导致移动电源输出电压的测试结果不同。这是因为不同的 USB 线缆在材质、长度、线径等方面存在差异&#xf…

C语言 | Leetcode C语言题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;int val;UT_hash_handle hh; };int fourSumCount(int* A, int ASize, int* B, int BSize, int* C, int CSize, int* D, int DSize) {struct hashTable* hashtable NULL;for (int i 0; i < ASize; i) {for (…

分辨率提高4到8倍!AI高清修复工具-upscayl使用方法!

你还在为手中的模糊照片苦恼吗&#xff1f; 是不是想把老照片或低分辨率的图片用于大尺寸印刷&#xff0c;却因为画质糟糕而无从下手&#xff1f; 现在你不再需要高深的Photoshop技能&#xff0c;也不用花费巨资找人修图。借助AI高清修复工具Upscayl&#xff0c;只需几秒钟&am…

C语言预处理详解(上)(30)

文章目录 前言一、预定义符号二、#define定义标识符三、#define定义宏四、#define的替换规则五、带有副作用的宏六、宏和函数的对比七、#undef的作用八、# 和#的作用##的作用 总结 前言 C语言的入门学习差不多要到尾声了&#xff0c;感觉如何呢~   前文说编译的第一步就是预编…

计算机网络:计算机网络概述 —— 描述计算机网络的参数

文章目录 数据量性能指标速率带宽数据传输速率 吞吐量时延分析时延问题 时延带宽积往返时间利用率丢包率丢包的情况 抖动可用性可靠性安全性 计算机网络是现代信息社会的基础设施&#xff0c;其性能和可靠性对各类应用至关重要。为了理解和优化计算机网络&#xff0c;我们需要深…

python习题2

1、输出一个年份&#xff0c;判断其是不是闰年 #输入一个年份&#xff0c;判断其是否是闰年 y eval(input()) if y%4 0 and y%100 ! 0:print("是") elif y%4000:print("是") else:print("不是") 2、模拟智能客服&#xff1a; 按1查询账户余额…

【linux】麒麟v10安装prometheus监控(ARM架构)

Prometheus介绍 Prometheus 是一个开源的系统监控和警报工具包&#xff0c;最初由 SoundCloud 开发&#xff0c;现在是一个独立的开源项目&#xff0c;并且是云原生计算基金会&#xff08;CNCF&#xff09;的一部分。Prometheus 以其强大的数据模型和灵活的查询语言&#xff0…