超大规模滑坡分割数据集,共34604张图像,全部处理为512×512尺度,涵盖航空,无人机,卫星多种传感器类型,涵盖0.1m-10m不同分辨率影像,数据量3.6GB,标注质量很高,且全部为原始数据

超大规模滑坡分割数据集,共34604张图像,全部处理为512×512尺度,涵盖航空,无人机,卫星多种传感器类型,涵盖0.1m-10m不同分辨率影像,数据量3.6GB,标注质量很高,且全部为原始数据,无增广。

超大规模滑坡分割数据集

数据集描述

该数据集是一个专门用于滑坡检测和分割任务的高质量数据集,旨在帮助研究人员和开发者训练和评估基于深度学习的图像分割模型。数据集中的图像涵盖了多种传感器类型(航空、无人机、卫星)以及不同分辨率(0.1m-10m),确保了模型在不同场景下的鲁棒性和泛化能力。所有图像均处理为512×512像素的标准尺寸,便于统一处理和分析。标注质量非常高,且全部为原始数据,未经过任何增广处理。

数据规模

  • 总样本数量:34,604张图像
  • 数据量:约3.6GB
  • 分辨率:涵盖0.1m-10m的不同分辨率影像
  • 图像尺寸:所有图像均处理为512×512像素
  • 标注目标:所有图像都带有详细的像素级标注信息,适用于训练和验证图像分割模型。
图像特性

  • 多源传感器:包括航空摄影、无人机拍摄和卫星遥感等多种传感器类型。
  • 多样化分辨率:从高分辨率(0.1m)到中低分辨率(10m),覆盖广泛的地面细节。
  • 标准化尺寸:所有图像均处理为512×512像素,便于模型训练和推理。
  • 高质量标注:提供详细的像素级标注,标注质量非常高,确保了模型训练的准确性。
  • 无增广数据:数据集中的图像是原始采集的数据,未经过任何增广处理,保证了数据的真实性和纯净性。
标注格式

数据集中的标注信息采用了标准的JSON或PNG格式文件。每个图像都有一个对应的标签文件,记录了每个像素的类别标签。这种格式可以直接用于多种图像分割框架,如U-Net、Mask R-CNN等。

数据集结构

数据集目录结构如下:

1large_scale_landslide_segmentation_dataset/
2├── images/
3│   ├── img_00001.jpg
4│   ├── img_00002.jpg
5│   └── ...
6├── masks/
7│   ├── img_00001.png
8│   ├── img_00002.png
9│   └── ...
10└── README.md  # 数据集说明文件
应用场景

该数据集可以用于以下应用场景:

  • 地质灾害监测:通过高分辨率影像进行滑坡的自动检测和分割,辅助地质灾害预警和管理。
  • 环境监测与保护:帮助相关部门及时发现和评估滑坡对环境的影响,制定相应的保护措施。
  • 城市规划与建设:在城市规划和建设过程中,利用滑坡分割结果进行风险评估和规避。
  • 科研分析:用于研究图像分割算法和技术的发展趋势,特别是在多源遥感影像中的应用。

示例代码

以下是一个使用Python和相关库(如OpenCV、PIL等)来加载和展示数据集的简单示例代码:

1import os
2import cv2
3import numpy as np
4from PIL import Image
5
6# 数据集路径
7dataset_path = 'path/to/large_scale_landslide_segmentation_dataset/'
8
9# 加载图像和掩码
10def load_image_and_mask(image_path, mask_path):
11    # 读取图像
12    image = Image.open(image_path).convert('RGB')
13    
14    # 读取掩码
15    mask = Image.open(mask_path).convert('L')  # 掩码通常是灰度图像
16    
17    return image, mask
18
19# 展示图像和掩码
20def show_image_with_mask(image, mask):
21    img = np.array(image)
22    mask_array = np.array(mask)
23    
24    # 将掩码转换为彩色图层
25    colored_mask = np.zeros_like(img)
26    colored_mask[mask_array > 0] = [0, 255, 0]
27    
28    # 叠加掩码到原图
29    img = cv2.addWeighted(img, 1, colored_mask, 0.5, 0)
30    
31    cv2.imshow('Image with Mask', img)
32    cv2.waitKey(0)
33    cv2.destroyAllWindows()
34
35# 主函数
36if __name__ == "__main__":
37    images_dir = os.path.join(dataset_path, 'images')
38    masks_dir = os.path.join(dataset_path, 'masks')
39    
40    # 获取图像列表
41    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
42    
43    # 随机选择一张图像
44    selected_image = np.random.choice(image_files)
45    image_path = os.path.join(images_dir, selected_image)
46    mask_path = os.path.join(masks_dir, selected_image.replace('.jpg', '.png'))
47    
48    # 加载图像和掩码
49    image, mask = load_image_and_mask(image_path, mask_path)
50    
51    # 展示带有掩码的图像
52    show_image_with_mask(image, mask)

这段代码展示了如何加载图像和其对应的掩码文件,并在图像上绘制像素级掩码。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。

示例代码:使用预训练模型进行推理

以下是使用预训练模型进行推理的示例代码。这里我们假设您使用的是基于U-Net的模型,但您可以根据需要选择其他支持像素级分割的模型。

1import torch
2import torchvision
3import segmentation_models_pytorch as smp
4import cv2
5import numpy as np
6from PIL import Image
7
8# 数据集路径
9dataset_path = 'path/to/large_scale_landslide_segmentation_dataset/'
10
11# 加载预训练模型
12model = smp.Unet(
13    encoder_name='resnet34',
14    encoder_weights='imagenet',
15    in_channels=3,
16    classes=2  # 背景 + 滑坡
17)
18weights_path = 'path/to/pretrained/unet_weights.pth'  # 替换成实际的预训练模型路径
19model.load_state_dict(torch.load(weights_path))
20model.eval()
21
22# 主函数
23if __name__ == "__main__":
24    images_dir = os.path.join(dataset_path, 'images')
25    
26    # 获取图像列表
27    image_files = [f for f in os.listdir(images_dir) if f.endswith('.jpg')]
28    
29    # 随机选择一张图像
30    selected_image = np.random.choice(image_files)
31    image_path = os.path.join(images_dir, selected_image)
32    
33    # 读取并预处理图像
34    image = Image.open(image_path).convert('RGB')
35    transform = torchvision.transforms.Compose([
36        torchvision.transforms.Resize((512, 512)),
37        torchvision.transforms.ToTensor(),
38        torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
39    ])
40    image_tensor = transform(image).unsqueeze(0)
41    
42    # 使用预训练模型进行推理
43    with torch.no_grad():
44        predictions = model(image_tensor)
45    
46    # 处理预测结果
47    pred_mask = predictions.squeeze().cpu().numpy()
48    pred_mask = (pred_mask > 0.5).astype(np.uint8)  # 二值化掩码
49    
50    # 在图像上绘制掩码
51    img = np.array(image)
52    colored_mask = np.zeros_like(img)
53    colored_mask[pred_mask == 1] = [0, 255, 0]
54    img = cv2.addWeighted(img, 1, colored_mask, 0.5, 0)
55    
56    # 显示结果
57    cv2.imshow('Image with Mask', img)
58    cv2.waitKey(0)
59    cv2.destroyAllWindows()

这段代码展示了如何使用预训练的U-Net模型进行推理,并显示和保存推理结果。您可以根据实际需求进一步扩展和修改这段代码,以适应您的具体应用场景。如果您需要使用其他模型进行更高级的功能,如模型微调或增量训练,可以参考相应模型的官方文档来进行相应的配置和操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QQ_1309399183

一角两角不嫌少

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

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

打赏作者

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

抵扣说明:

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

余额充值