尾矿库检测数据集,包含1183张图像(全部处理为1024×1024尺寸),1728个尾矿实例,数据量2GB;数据集分别在2016年、2018年、2020年和2021年采集四年不同的样本数据,所有这些数

尾矿库检测数据集,包含1183张图像(全部处理为1024×1024尺寸),1728个尾矿实例,数据量2GB;数据集分别在2016年、2018年、2020年和2021年采集四年不同的样本数据,所有这些数据都基于国内光学卫星图像;使用有向检测框标记

尾矿库检测数据集介绍

名称

尾矿库检测数据集

规模
  • 图像数量:1183张
  • 实例数量:1728个尾矿实例
  • 数据量:约2GB
  • 图像尺寸:所有图像处理为1024×1024像素
采集时间
  • 2016年
  • 2018年
  • 2020年
  • 2021年
数据来源
  • 卫星图像:基于国内光学卫星图像,确保了数据的高分辨率和高质量。
标注方式
  • 有向检测框:每个尾矿实例使用有向检测框进行标注,提供了更精确的位置和方向信息。
数据特点
  • 多时相数据:数据集包含四年的不同样本数据,可以用于分析尾矿库随时间的变化情况。
  • 高分辨率:所有图像都处理为1024×1024像素,提供了丰富的细节信息,有助于提高检测精度。
  • 详细标注:每个尾矿实例都有详细的有向检测框标注,包括位置、大小和方向,便于训练高精度的检测模型。
  • 多样性:数据集涵盖了不同年份和季节的图像,能够应对不同的环境条件和变化。
应用场景
  • 安全监测:实时或定期监测尾矿库的安全状况,及时发现潜在的风险和问题。
  • 环境评估:评估尾矿库对周围环境的影响,支持环境保护措施的制定。
  • 灾害预警:通过分析尾矿库的变化趋势,提前预警可能发生的灾害事件。
  • 合规性检查:帮助企业确保尾矿库管理符合相关法规和标准。
  • 研究与教育:用于科研机构的研究以及相关院校的教学,帮助学生和研究人员更好地了解尾矿库管理和监测技术。

数据集结构

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

tailings_dam_dataset/
├── images/
│   ├── 2016_0001.jpg
│   ├── 2016_0002.jpg
│   ├── 2018_0001.jpg
│   ├── 2018_0002.jpg
│   └── ...
├── annotations/
│   ├── 2016_0001.xml
│   ├── 2016_0002.xml
│   ├── 2018_0001.xml
│   ├── 2018_0002.xml
│   └── ...
└── metadata.csv

metadata.csv 文件内容示例:

image_id, year, location
2016_0001, 2016, Location A
2016_0002, 2016, Location B
2018_0001, 2018, Location C
2018_0002, 2018, Location D
...

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

<annotation>
    <folder>tailings_dam_dataset</folder>
    <filename>2016_0001.jpg</filename>
    <size>
        <width>1024</width>
        <height>1024</height>
        <depth>3</depth>
    </size>
    <object>
        <name>TailingsDam</name>
        <bndbox>
            <xmin>150</xmin>
            <ymin>200</ymin>
            <xmax>350</xmax>
            <ymax>400</ymax>
        </bndbox>
        <angle>45.0</angle>  <!-- 有向检测框的角度 -->
    </object>
    ...
</annotation>

代码示例

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

import os
import cv2
from xml.etree import ElementTree as ET
import pandas as pd
import numpy as np

def parse_voc_annotation(xml_file):
    tree = ET.parse(xml_file)
    root = tree.getroot()
    
    boxes = []
    angles = []
    
    for obj in root.findall('object'):
        bndbox = 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)
        
        angle = float(obj.find('angle').text)
        
        boxes.append([xmin, ymin, xmax, ymax])
        angles.append(angle)
    
    return boxes, angles

def load_tailings_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']
        year = row['year']
        location = row['location']
        
        # 加载图像
        img_path = os.path.join(image_dir, f"{image_id}.jpg")
        image = cv2.imread(img_path)
        
        # 加载对应的标注
        annotation_filename = f"{image_id}.xml"
        annotation_path = os.path.join(annotation_dir, annotation_filename)
        boxes, angles = parse_voc_annotation(annotation_path)
        
        if image is not None:
            images.append((image, year, location))
            annotations.append((boxes, angles))
        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_tailings_data(image_dir, annotation_dir, metadata_file)

# 显示第一张图像及其对应的标注框
img, year, location = images[0]
boxes, angles = annotations[0]

for box, angle in zip(boxes, angles):
    (xmin, ymin, xmax, ymax) = box
    
    # 绘制有向检测框
    rect = ((xmin + (xmax - xmin) / 2, ymin + (ymax - ymin) / 2), (xmax - xmin, ymax - ymin), angle)
    box_points = cv2.boxPoints(rect)
    box_points = np.int0(box_points)
    cv2.drawContours(img, [box_points], 0, (0, 255, 0), 2)
    
    # 绘制角度文本
    text = f"{angle:.1f}°"
    cv2.putText(img, text, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (36, 255, 12), 2)

cv2.imshow('Image with Annotations', img)
cv2.setWindowTitle('Image', f'Image: Year {year}, Location {location}')
cv2.waitKey(0)
cv2.destroyAllWindows()

说明

  • 路径设置:请根据实际的数据集路径调整path_to_your_image_directorypath_to_your_annotation_directorypath_to_your_metadata_file
  • 文件命名:假设图像文件名分别为.jpg,标注文件为.xml。如果实际命名规则不同,请相应修改代码。
  • 可视化:通过绘制有向检测框和角度文本,可以直观地看到图像中的尾矿实例及其方向。

进一步的应用

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

这个数据集对于尾矿库的安全监测和管理具有重要的实用价值,可以帮助相关部门及时发现和处理潜在的风险,保障环境和人员安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

QQ_1309399183

一角两角不嫌少

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值