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

无人机视角垃圾检测数据集,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。

 无人机视角垃圾检测,26700余张无人机图像,超过4万标注信息,共3.6GB数据量,可用于环卫快速检查,垃圾快速定位等应用。

名称

无人机视角垃圾检测数据集

规模
  • 图像数量:26700余张
  • 标注信息:超过4万条
  • 数据量:约3.6GB
数据特点
  • 高分辨率:所有图像均为高分辨率,能够提供丰富的细节信息,有助于提高检测精度。
  • 多样化场景:图像采集自多种环境和场景,包括城市街道、公园、海滩等,涵盖了不同类型的垃圾。
  • 详细标注:每张图像都附有详细的边界框标注,标明了垃圾的位置和类别。
  • 多类垃圾:数据集涵盖了多种常见的垃圾类型,如塑料瓶、纸张、烟蒂、食品包装等。
应用场景
  • 环卫快速检查:通过无人机进行大面积的环境监测,快速发现并定位垃圾,提高环卫工作的效率。
  • 垃圾快速定位:帮助相关部门及时清理垃圾,减少对环境的影响。
  • 智能城市管理:集成到智能城市管理系统中,提升城市的整体清洁度和管理水平。
  • 环境保护:支持环保项目,监测和评估特定区域的垃圾污染情况,为环境保护措施提供依据。
  • 研究与教育:用于科研机构的研究以及相关院校的教学,帮助学生和研究人员更好地了解垃圾检测技术。

数据集结构

假设数据集的文件结构如下:

drone_waste_detection_dataset/
├── images/
│   ├── image_0001.jpg
│   ├── image_0002.jpg
│   └── ...
├── annotations/
│   ├── annotation_0001.xml
│   ├── annotation_0002.xml
│   └── ...
└── metadata.csv

metadata.csv 文件内容示例:

image_id, location, date, time
image_0001, City Park, 2023-01-01, 10:00:00
image_0002, Beach, 2023-01-01, 10:05:00
...

annotations/annotation_0001.xml 示例(使用Pascal VOC格式):

<annotation><folder>drone_waste_detection_dataset</folder><filename>image_0001.jpg</filename><size><width>1024</width><height>768</height><depth>3</depth></size><object><name>Plastic Bottle</name><bndbox><xmin>150</xmin><ymin>200</ymin><xmax>350</xmax><ymax>400</ymax></bndbox></object><object><name>Paper</name><bndbox><xmin>400</xmin><ymin>300</ymin><xmax>500</xmax><ymax>400</ymax></bndbox></object>...
</annotation>

代码示例

下面是一个简单的Python脚本示例,展示如何加载和可视化这些数据集的一部分。我们将使用OpenCV来读取图像,并使用xml.etree.ElementTree来解析VOC格式的标注文件。

import os
import cv2
from xml.etree import ElementTree as ET
import pandas as pddef parse_voc_annotation(xml_file):tree = ET.parse(xml_file)root = tree.getroot()boxes = []labels = []for obj in root.findall('object'):label = obj.find('name').textbndbox = obj.find('bndbox')xmin = int(bndbox.find('xmin').text)ymin = int(bndbox.find('ymin').text)xmax = int(bndbox.find('xmax').text)ymax = int(bndbox.find('ymax').text)boxes.append([xmin, ymin, xmax, ymax])labels.append(label)return boxes, labelsdef load_drone_data(image_dir, annotation_dir, metadata_file):images = []annotations = []metadata = pd.read_csv(metadata_file)for index, row in metadata.iterrows():image_id = row['image_id']location = row['location']date = row['date']time = row['time']# 加载图像img_path = os.path.join(image_dir, f"{image_id}.jpg")image = cv2.imread(img_path)# 加载对应的标注annotation_filename = f"annotation_{image_id.split('_')[1]}.xml"annotation_path = os.path.join(annotation_dir, annotation_filename)boxes, labels = parse_voc_annotation(annotation_path)if image is not None:images.append((image, location, date, time))annotations.append((boxes, labels))else:print(f"Failed to load image: {img_path}")return images, annotations, metadata# 假设图像存储在'image'目录下,标注文件存储在'annotations'目录下,元数据文件为'metadata.csv'
image_dir = 'path_to_your_image_directory'
annotation_dir = 'path_to_your_annotation_directory'
metadata_file = 'path_to_your_metadata_file'images, annotations, metadata = load_drone_data(image_dir, annotation_dir, metadata_file)# 显示第一张图像及其对应的标注框
img, location, date, time = images[0]
boxes, labels = annotations[0]for box, label in zip(boxes, labels):(xmin, ymin, xmax, ymax) = boxcv2.rectangle(img, (xmin, ymin), (xmax, ymax), (0, 255, 0), 2)cv2.putText(img, label, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (36, 255, 12), 2)cv2.imshow('Image with Annotations', img)
cv2.setWindowTitle('Image', f'Image: Location {location}, Date {date}, Time {time}')
cv2.waitKey(0)
cv2.destroyAllWindows()

说明

  • 路径设置:请根据实际的数据集路径调整path_to_your_image_directorypath_to_your_annotation_directorypath_to_your_metadata_file
  • 文件命名:假设图像文件名分别为.jpg,标注文件为.xml。如果实际命名规则不同,请相应修改代码。
  • 可视化:通过绘制边界框和标签,可以直观地看到图像中的垃圾位置和类别。

进一步的应用

  • 训练深度学习模型:可以使用这个数据集来训练卷积神经网络(CNN)或其他机器学习模型,以实现自动化的垃圾检测。
  • 数据增强:为了增加数据集的多样性和鲁棒性,可以使用数据增强技术(如旋转、翻转、缩放等)生成更多的训练样本。
  • 评估与优化:通过交叉验证和测试集评估模型性能,并不断优化模型参数,以提高检测准确率。

这个数据集对于无人机视角下的垃圾检测具有重要的实用价值,可以帮助相关部门高效地进行环境监测和垃圾清理工作,提升城市环境卫生水平。

相关文章:

  • 自定义注解加 AOP 实现服务接口鉴权以及内部认证
  • EEditor中的redo/uodo机制
  • 亚洲市场|人工智能对固态硬盘SSD需求影响
  • 十二、磁盘的调度算法
  • 【SpringBoot详细教程】-08-MybatisPlus详细教程以及SpringBoot整合Mybatis-plus【持续更新】
  • 国内访问OpenAI API
  • vue页面保持在div的底部(适用于聊天界面等需要显示最新信息的场景)
  • C语言_字符函数和字符串函数
  • 关于HashMap中的二次Hash
  • rtsp 协议推流接收(tcp udp)
  • 详解调用钉钉AI助理消息API发送钉钉消息卡片给指定单聊用户
  • Layui表单查询导出
  • IDEA激活失败--脚本分析
  • 实习结帖(flask加上AIGC实现设计符合OpenAPI要求的OpenAPI Schema,让AIGC运行时可以调用api,协助公司门后迁移新后端等)
  • 以太网交换安全:MAC地址表安全
  • CEF与代理
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • k8s 面向应用开发者的基础命令
  • MySQL数据库运维之数据恢复
  • MySQL用户中的%到底包不包括localhost?
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Phpstorm怎样批量删除空行?
  • SegmentFault 2015 Top Rank
  • uva 10370 Above Average
  • ViewService——一种保证客户端与服务端同步的方法
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 对象管理器(defineProperty)学习笔记
  • 关于List、List?、ListObject的区别
  • 回顾2016
  • 三栏布局总结
  • 无服务器化是企业 IT 架构的未来吗?
  • 自制字幕遮挡器
  • raise 与 raise ... from 的区别
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • (02)vite环境变量配置
  • (2015)JS ES6 必知的十个 特性
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C++)八皇后问题
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (离散数学)逻辑连接词
  • (十)c52学习之旅-定时器实验
  • (四) 虚拟摄像头vivi体验
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .gitignore文件_Git:.gitignore