河道垃圾数据集 水污染数据集——无人机视角数据集 共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类
使用说明
-
环境准备:
- 确保安装了Python及其相关库(如
torch
、opencv-python
、matplotlib
等)。 - 下载并解压数据集到本地目录。
- 安装YOLOv5所需的依赖项: bash
深色版本
git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt
- 确保安装了Python及其相关库(如
-
加载数据集:
- 可以使用常见的编程语言(如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)}")
- 模型训练:
- 使用预训练的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
- 模型推理:
- 使用训练好的模型进行推理,并在图像上绘制检测结果。
- 示例代码如下:
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()
- 性能评估:
- 使用测试集进行性能评估,计算mAP、召回率、精确率等指标。
- 可以使用YOLOv5自带的评估脚本: bash
深色版本
python val.py --data River_Pollution_Dataset/data.yaml --weights best.pt --img 640
注意事项
- 数据格式:确保图像文件和标注文件的命名一致,以便正确匹配。
- 硬件要求:建议使用GPU进行训练和推理,以加快处理速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 超参数调整:根据实际情况调整网络架构、学习率、批次大小等超参数,以获得更好的性能。
应用场景
- 河道管理:自动检测河道中的污染物和设施,帮助管理部门及时清理和维护。
- 环境保护:监测河流水质和污染情况,支持环保部门制定治理措施。
- 智能监控:结合无人机巡检系统,实现对河道的实时监控和预警。
- 科研教育:用于水污染研究和教学,提高公众对环境保护的认识。
希望这个数据集能帮助你更好地理解和应用深度学习技术在河道垃圾和水污染检测中的应用。
相关文章:

河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练;
河道垃圾数据集 水污染数据集——无人机视角数据集 共3000张图片,可直接用于河道垃圾、水污染功能检测 已标注yolo格式、voc格式,可直接训练; 河道垃圾与水污染检测数据集(无人机视角) 项目概述 本数据集是一个专门用…...

[棋牌源码] 2023情怀棋牌全套源代码含多套大厅UI及600+子游源码下载
降维打击带来的优势 这种架构不仅极大提升了运营效率,还降低了多端维护的复杂性和成本。运营商无需投入大量资源维护多套代码,即可实现产品的全终端覆盖和快速更新,这就是产品层面的降维打击。 丰富的游戏内容与多样化大厅风格 类型&#…...
深度学习:预训练模型(基础模型)详解
预训练模型(基础模型)详解 预训练模型(有时也称为基础模型或基准模型)是机器学习和深度学习领域中一个非常重要的概念,特别是在自然语言处理(NLP)、计算机视觉等领域。这些模型通过在大规模数据…...

欧科云链研究院深掘链上数据:洞察未来Web3的隐秘价值
目前链上数据正处于迈向下一个爆发的重要时刻。 随着Web3行业发展,公链数量呈现爆发式的增长,链上积聚的财富效应,特别是由行业热点话题引领的链上交互行为爆发式增长带来了巨量的链上数据,这些数据构筑了一个行为透明但与物理世…...

国外电商系统开发-运维系统登录阈值
为了登录安全,在登录验证的时候,如果一个IP连续登录的次数超过5次,那么系统则会拒绝这个IP的所有登录,而不管密码是否正确,就像是银行卡一样。 设置登录阈值: 注意:如果您的IP不幸被系统锁定&am…...

设备台账管理是什么
设备管理对企业至关重要。比如在电子加工企业,高效的设备管理能减少设备故障,提升生产效率,为企业赢得市场竞争优势。设备台账管理作为设备管理的一个核心部分,起着重要的作用。 让我们一起从本篇文章中探索设备台账管理是什么&a…...

操作教程|基于DataEase用RFM分析法分析零售交易数据
DataEase开源BI工具可以在店铺运营的数据分析及可视化方面提供非常大的帮助。同样,在用于客户评估的RFM(即Recency、Frequency和Monetary的简称)分析中,DataEase也可以发挥出积极的价值,通过数据可视化大屏的方式实时展…...

使用Go语言的gorm框架查询数据库并分页导出到Excel实例
文章目录 基本配置配置文件管理命令行工具: Cobra快速入门基本用法 生成mock数据SQL准备gorm自动生成结构体代码生成mock数据 查询数据导出Excel使用 excelize实现思路完整代码参考 入口文件效果演示分页导出多个Excel文件合并为一个完整的Excel文件 完整代码 基本配置 配置文…...

Run the FPGA VI 选项的作用
Run the FPGA VI 选项的作用是决定当主机 VI 运行时,FPGA VI 是否会自动运行。 具体作用: 勾选 “Run the FPGA VI”: 当主机 VI 执行时,如果 FPGA VI 没有正在运行,系统将自动启动并运行该 FPGA VI。 这可以确保 FPG…...
新手入门怎么炒股,新手炒股入门需要做哪些准备?
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...

Fetch 与 Axios:JavaScript HTTP 请求库的详细比较
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...

记录一个Ajax发送JSON数据的坑,后端RequestBody接收参数小细节?JSON对象和JSON字符串的区别?
上半部分主要介绍我实际出现的问题,最终下面会有总结。 起因:我想发送post请求的data,但是在浏览器中竟然被搞成了地址栏编码 如图前端发送的ajax请求数据 如图发送的请求体: 很明显是keyvalue这种形式,根本就不是…...

【智能算法应用】长鼻浣熊优化算法求解二维路径规划问题
摘要 本文采用长鼻浣熊优化算法 (Coati Optimization Algorithm, COA) 求解二维路径规划问题。COA 是一种基于长鼻浣熊的觅食和社群行为的智能优化算法,具有快速收敛性和较强的全局搜索能力。通过仿真实验,本文验证了 COA 在复杂环境下的路径规划性能&a…...
微服务中的负载均衡算法与策略深度解析
在微服务架构中,负载均衡是保证系统高可用性和高性能的关键技术。通过合理地将请求分配给多个服务实例,负载均衡策略可以优化资源利用,实现请求的均衡处理。本文将深入探讨微服务中的负载均衡算法及其配置策略,帮助读者更好地理解…...

初知C++:AVL树
文章目录 初知C:AVL树1.AVL树的概念2.AVL树的是实现2.1.AVL树的结构2.2.AVL树的插入2.3.旋转2.4.AVL树的查找2.5.AVL树平衡检测 初知C:AVL树 1.AVL树的概念 • AVL树是最先发明的自平衡⼆叉查找树,AVL是⼀颗空树,或者具备下列性…...
[LeetCode] 67. 二进制求和
题目描述: 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1: 输入:a "11", b "1" 输出:"100" 示例 2: 输入:a "1010", b "…...

工业物联网关-ModbusTCP
Modbus-TCP模式把网关视作Modbus从端设备,主端设备可以通过Modbus-TCP协议访问网关上所有终端设备。用户可以自定义多条通道,每条通道可以配置为TCP Server或者TCP Slave。注意,该模式需要指定采集通道,采集通道可以是串口和网口通…...

子组件向父组件传值$emit
点击子组件的按钮,将子组件的值传递给父组件,并进行提示。 子组件 <template><div><button click"emitIndex">clickme</button></div> </template> <script> export default {methods: {emitInde…...

校车购票微信小程序的设计与实现(lw+演示+源码+运行)
摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…...

【Golang】关于Go语言中的定时器原理与实战应用
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...