数据集提取标签(LEVIR_CD)

文件目录如下
在这里插入图片描述
若无数据集可以先去下载,下载链接http://chenhao.in/LEVIR/
下面把python代码复制运行即可,记得改路径!!!

import os
import glob

def create_image_list_txt(folder_path, output_file):
    # 使用glob模块获取文件夹中的所有图片文件
    image_files = glob.glob(os.path.join(folder_path, 'train_*.png'))  # .png可自行修改为其他格式
    image_files += glob.glob(os.path.join(folder_path, 'test_*.png'))
    image_files += glob.glob(os.path.join(folder_path, 'val_*.png'))

    # 对图片文件进行自定义排序,按照文件名中的数字部分进行排序
    image_files.sort(key=lambda x: int(os.path.splitext(os.path.basename(x))[0].split('_')[1]))

    # 打开文本文件以写入模式,使用utf-8编码
    with open(output_file, 'w', encoding='utf-8') as file:
        # 将图片文件名称写入文本文件
        for image_file in image_files:
            file.write(os.path.basename(image_file) + '\n')

    print(output_file)

# 路径的环境
train_folder_path = r'/home/aistudio/master/LEVIR_CD/A/train'
train_output_file = r'/home/aistudio/master/LEVIR_CD/list/train.txt'

test_folder_path = r'/home/aistudio/master/LEVIR_CD/A/test'
test_output_file = r'/home/aistudio/master/LEVIR_CD/list/test.txt'

val_folder_path = r'/home/aistudio/master/LEVIR_CD/A/val'
val_output_file = r'/home/aistudio/master/LEVIR_CD/list/val.txt'

# 执行代码
create_image_list_txt(train_folder_path, train_output_file)
create_image_list_txt(test_folder_path, test_output_file)
create_image_list_txt(val_folder_path, val_output_file)
### LEVIR-CD 数据集概述 LEVIR-CD 是一个专门用于建筑变化检测的大规模数据集[^1]。该数据集旨在帮助研究人员和开发者评估不同时间点建筑物的变化情况,从而推动遥感图像处理技术的发展。 #### 主要特点 - **大规模**:包含大量高分辨率卫星影像对及其标注信息。 - **多样性**:涵盖了多种地理区域和城市环境下的建筑场景。 - **高质量标签**:提供了精确的人工标注边界框来指示发生变化的位置。 ### 使用方法 为了有效利用此数据集开展研究工作,在开始之前需完成以下几个方面的工作: #### 准备运行环境 建议采用 Python 编程语言并安装必要的库文件,如 NumPy, OpenCV 和 PyTorch 或 TensorFlow 等机器学习框架。具体操作可以参照官方文档中的指导说明进行配置。 ```bash pip install numpy opencv-python torch torchvision ``` #### 获取数据集 访问官方网站下载最新版本的数据集压缩包,并解压到指定目录下以便后续读取使用。通常情况下,数据会被分为训练集、验证集以及测试集三个部分以供不同的实验需求所用。 #### 预处理阶段 对于原始获取来的图片可能还需要做一些预处理工作,比如裁剪大小不一的输入样本至统一尺寸;或者通过增强手段增加模型泛化能力等措施都是常见做法之一。 #### 开始建模与训练 基于上述准备工作完成后就可以着手构建自己的算法模型来进行预测分析了。这里推荐尝试一些经典的卷积神经网络架构作为基础结构,例如 U-Net 及其变体形式往往能在此类任务上取得不错的效果。 ```python import torch from unet import UNet # 假设已经定义好了UNet类 model = UNet(in_channels=3, out_channels=1).cuda() criterion = torch.nn.BCEWithLogitsLoss().cuda() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) for epoch in range(num_epochs): model.train() for images, masks in dataloader: optimizer.zero_grad() outputs = model(images.cuda()) loss = criterion(outputs, masks.unsqueeze(1).float().cuda()) loss.backward() optimizer.step() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值