分享一下使用深度学习对遥感影像分割后的结果转tiff格式,并赋予地理坐标的方法(适用于单一地物分割)

使用深度学习做分割,出的结果往往是tensor张量,要把tensor转化为tiff文件,并赋予地理参考,便于后续做地理分析

首先是获取存放原始遥感影像数据名(*.tif),代码如下:

# 获取原始遥感影像文件夹
origin_images_path = 'your path'
all_path = os.listdir(origin_images_path)   # 将文件夹下的文件列出来
all_len = len(all_path)     # 获取文件个数,便于后续获取文件序列
# 获取文件夹下的tiff格式文件
tiffs_path=[]   # 空列表存储tiff文件名
for idx in range(all_len):
    if all_path[idx].endswith('.tif'):
        tiffs_path.append(all_path[idx])
tiffs_len = len(tiffs_path)     # 获取tiff格式文件夹个数

使用已经训练好的模型测试:

model = torch.load('your model.pth')
model.eval()
with torch.no_grad():
    idx1 = 0
    for i, data in enumerate(img_loader):
        image = data
        image = image.to(device)
        image = image.float()
        output = model(image)
        output = output.unsqueeze(0)    # (256*256)转(1*256*256)
        output = torch.where(output >= 0.5, 255, 0)  # 设置为255,太小无法显示出来
        output = output.unsqueeze(0)    # 再转(1*1*256*256)
        # writer.add_images('result_{}'.format(i), output,1)  在tensorboard中显示
        # 生成分类结果png格式文件
        output_array = output.cpu().numpy()
        output_array = output_array[0, 0]
        # output_image =Image.fromarray(output_array.astype('uint8'))
        # output_path = 'your png path\\{}.png'.format(idx1)
        # output_image.save(output_path)
        # 加载完整tiff文件路径
        rsimg_path = os.path.join(origin_images_path, tiffs_path[idx1])
        # 使用gdal打开tiff文件
        rsimg = gdal.Open(rsimg_path)
        # 获取原始影像的地理坐标信息
        geotrans = rsimg.GetGeoTransform()
        project = rsimg.GetProjection()
        # 设置输出路径
        output_tiff_path = 'your tiff path\\output_{}.tif'.format(idx1)
        # 创建 GDAL 数据集,指定 TIFF 驱动
        driver = gdal.GetDriverByName('GTiff')
        dataset = driver.Create(output_tiff_path, 256, 256, 1, gdal.GDT_Byte)  #2568256大小,1个灰度波段
        # 设置地理坐标信息
        dataset.SetGeoTransform(geotrans)
        dataset.SetProjection(project)
        # 将数据写入 TIFF 文件
        dataset.GetRasterBand(1).WriteArray(output_array)
        dataset = None
        idx1 += 1
        print('-----完成第{}张-----'.format(idx1))

发现处理后的图像的边界部分无结果,差不多一个像素的宽度(因人而异),使用envi对处理后的tiff影像合并,选择羽化即可较好处理边界无值的问题

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
遥感影像分类是指通过对遥感影像进行分析和处理,将其分为不同的地物类别。随着深度学习的发展,基于深度学习的遥感影像分类方法也逐渐成为研究热点。本文将从国内外两个方面介绍基于深度学习的遥感影像分类方法的研究现状。 一、国内研究现状 1. 基于卷积神经网络的遥感影像分类方法 卷积神经网络(CNN)是深度学习中常用的神经网络结构,也是遥感影像分类中常用的方法。国内研究者针对遥感影像特点,对传统的CNN进行了改进和优化。例如,利用多尺度卷积核进行卷积处理,可以更好地提取遥感影像的特征,并且具有较高的分类精度。 2. 基于循环神经网络的遥感影像分类方法 循环神经网络(RNN)是一种常用的序列数据处理方法适用遥感影像时间序列数据的分类。国内研究者通过引入RNN,可以对遥感影像序列数据进行有效的分类和预测。例如,将LSTM-RNN应用于遥感影像的分类和分割,可以提高分类和分割的准确率。 3. 基于自编码器的遥感影像分类方法 自编码器是一种无监督学习方法,可以通过对输入数据进行重构,学习数据的特征表示。国内研究者将自编码器应用于遥感影像分类,可以有效提取遥感影像的特征,从而提高分类准确率。 二、国外研究现状 1. 基于深度卷积神经网络的遥感影像分类方法 深度卷积神经网络(DCNN)是近年来应用最广泛的深度学习方法之一,也是国外研究中常用的遥感影像分类方法。DCNN通过多层卷积和池化操作,可以有效地提取遥感影像的特征,并且具有较高的分类精度。例如,Google公司开发的Inception-v3模型在遥感影像分类中取得了很好的效果。 2. 基于深度卷积循环神经网络的遥感影像分类方法 深度卷积循环神经网络(DCRNN)是将CNN和RNN结合的一种网络结构。DCRNN可以对遥感影像进行序列化处理,从而更好地提取遥感影像的时空特征,并且具有较高的分类精度。例如,美国加州大学伯克利分校的研究人员利用DCRNN对遥感影像进行城市化变化检测,取得了很好的效果。 3. 基于生成对抗网络的遥感影像分类方法 生成对抗网络(GAN)是一种无监督学习方法,可以生成逼真的图像。国外研究者将GAN应用于遥感影像分类,可以生成更加逼真的遥感影像,从而提高分类准确率。例如,美国斯坦福大学的研究人员利用CGAN对遥感影像进行分类,取得了很好的效果。 总结:基于深度学习的遥感影像分类方法在国内外研究中都取得了很好的效果。国内研究者主要关注在针对遥感影像特点的CNN优化和改进,而国外研究者则更多地关注于网络结构的创新和发展。随着深度学习的不断发展,基于深度学习的遥感影像分类方法将会得到更广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值