当前位置: 首页 > news >正文

河道垃圾数据集 水污染数据集——无人机视角数据集 共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.lryc.cn/news/459396.html

相关文章:

  • [棋牌源码] 2023情怀棋牌全套源代码含多套大厅UI及600+子游源码下载
  • 深度学习:预训练模型(基础模型)详解
  • 欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值
  • 国外电商系统开发-运维系统登录阈值
  • 设备台账管理是什么
  • 操作教程|基于DataEase用RFM分析法分析零售交易数据
  • 使用Go语言的gorm框架查询数据库并分页导出到Excel实例
  • Run the FPGA VI 选项的作用
  • 新手入门怎么炒股,新手炒股入门需要做哪些准备?
  • Fetch 与 Axios:JavaScript HTTP 请求库的详细比较
  • 记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?
  • 【智能算法应用】长鼻浣熊优化算法求解二维路径规划问题
  • 微服务中的负载均衡算法与策略深度解析
  • 初知C++:AVL树
  • [LeetCode] 67. 二进制求和
  • 工业物联网关-ModbusTCP
  • 子组件向父组件传值$emit
  • 校车购票微信小程序的设计与实现(lw+演示+源码+运行)
  • 【Golang】关于Go语言中的定时器原理与实战应用
  • matlab不小心删除怎么撤回
  • 云原生、云计算、虚拟化概念概述
  • 【Trulens框架】用TruLens 自动化 RAG 应用项目评估测试
  • 互联网线上融合上门洗衣洗鞋小程序,让洗衣洗鞋像点外卖一样简单
  • R语言绘制三维散点图
  • 2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序
  • QD1-P25 CSS 背景
  • 《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版分片集群》
  • Java利用ChromeDriver插件网页截图(Wondows版+Linux版)
  • 无人机之交互系统篇
  • MarsCode--找出数字比例超过n/2的【简单】