精华内容
下载资源
问答
  • 二调土地利用分类和编码
  • 二调地类编码

    2019-05-01 19:02:24
    二调的地类编码,和对每种类的判定要求规则
  • 二调土地地类代码表

    2017-04-03 19:37:36
    二调土地地类代码表
  • 最新二调土地地类代码表............
  • 包含第三次全国土地调查地类分类表与第二次分类的对比
  • 01 耕地 指种植农作物的土地,包括熟地,新开发、复垦、整理,休闲(含轮歇、轮作);以种植农作物(含蔬菜)为主,间有零星果树、桑树或其他树木的土地;平均每年能保证收获一季的已垦滩地和海涂。耕地中...
  • 土地分类

    2017-09-20 17:03:00
    一极类型 二级类型 含义 代码 名称 代码 名称 1 耕地 —— —— 指种植农作物的土地,包括熟耕地、新开荒地、休闲、轮歇、草田轮作;以种植农作物为主的农果、...
    一极类型二级类型含义
    代码名称代码名称
    1耕地————指种植农作物的土地,包括熟耕地、新开荒地、休闲地、轮歇地、草田轮作地;以种植农作物为主的农果、农桑、农林用地;耕种三年以上的滩地和滩涂
    11水田指有水源保证和灌溉设施,在一般年景能正常灌溉,用以种植水稻,莲藕等水生农作物的耕地,包括实行水稻和旱地作物轮种的耕地
    111山区水田
    112丘陵水田
    113平原水田
    114大于25度坡地水田
    12旱地指无灌溉水源及设施,靠天然降水生长作物的耕地;有水源和浇灌设施,在一般年景下能正常灌溉的旱作物耕地;以种菜为主的耕地,正常轮作的休闲地和轮歇地
    121山区旱地
    122丘陵旱地
    123平原旱地
    124大于25度坡地旱地
    2林地————指生长乔木、灌木、竹类、以及沿海红树林等林业用地
    21有林地指郁闭度>30%的天然木和人工林。包括用材林、经济林、防护林等成片林地
    22灌木地指郁闭度>40%、高度在2米以下的矮林地和灌丛林地
    23疏林地指郁闭度为10%~30%稀疏林地
    24其它林地未成林造林地、迹地、苗圃及各类园地(果园、桑园、茶园、热作林园等)
    3草地————指以生长草本植物为主,覆盖度在5%以上的各类草地,包括以牧为主的灌丛草地和郁闭度在10%以下的疏林草地
    31高覆盖度草地指覆盖度在>50%的天然草地、改良草地和割草地。此类草地一般水分条件较好,草被生长茂密
    32中覆盖度草地指覆盖度在20%~50%的天然草地和改良草地,此类草地一般水分不足,草被较稀疏
    33低覆盖度草地指覆盖度在5%~20%的天然草地。此类草地水分缺乏,草被稀疏,牧业利用条件差
    4水域————指天然陆地水域和水利设施用地
    41河渠指天然形成或人工开挖的河流及主干渠常年水位以下的土地,人工渠包括堤岸
    42湖泊指天然形成的积水区常年水位以下的土地
    43水库坑塘指人工修建的蓄水区常年水位以下的土地
    44永久性冰川雪地指常年被冰川和积雪所覆盖的土地
    45滩涂指沿海大潮高潮位与低潮位之间的潮侵地带
    46滩地指河、湖水域平水期水位与洪水期水位之间的土地
    5城乡、工矿、居民用地————指城乡居民占及县镇以外的工矿、交通等用地
    51城镇用地指大、中、小城市及县镇以上建成区用地
    52农村居民点指镇以下的居民用地
    53其它建设用地指独立于城镇以外的工矿、大型工业区、油田、盐场、采石场等用地、交通道路、机场及特殊用地
    6未利用土地————目前还未利用、包括难利用的土地
    61沙地植被覆盖度在5%以下的土地,包括沙漠,不包括水系中的沙滩
    62戈壁指地表以碎砾石为主,植被覆盖度在5%以下的土地
    63盐碱地指地表盐碱聚集,植被稀少,只能生长耐盐碱植物的土地
    64沼泽地指地势平坦低洼,排水不畅,长期潮湿,季节性积水或常积水,表层生长湿生植物的土地
    65祼土地指地表土质覆盖,植被覆盖度在5%以下的土地
    66祼岩石砾地指地表为岩石或石砾,其覆盖面积>50%的土地
    67其它指其他未利用土地,包括高寒荒漠,苔原等
    耕地的三极编码为:1 山地; 2 丘陵; 3 平原; 4 大于25度的坡地(如“113”为平原水田)

    转载于:https://www.cnblogs.com/xtfge/p/9949071.html

    展开全文
  • 第三次国土调查后,执行新的土地分类编码标准,各成果资料均应按此执行。
  • 三调地类_参考.xlsx

    2019-07-03 11:41:50
    全国第三次土地调查土地分类:一级类、二级类名称及相关地类编码,Excel版本。仅供参考。
  • 对元胞自动机的规则进行分类是研究布尔函数整体...矩阵图像,采用几变值逻辑编码展现经典分类的结果。在这样的模式下,经典分类在变值编码模式中展现出各具特.点的对称性。最后列举了不同编码序列及其编码排列图示。
  • 本文帮助读者更好理解使用3D-CNN对卫星数据进行土地覆盖分类的不同深度学习方法。 遥感概论 土地覆盖分类的深度学习 Sundarbans 国家公园卫星图像 CNN在土地覆盖分类中的实现 结论 参考文献 遥感概论 遥感是探测...

    本文帮助读者更好地理解使用3D-CNN对卫星数据进行土地覆盖分类的不同深度学习方法。

    1. 遥感概论
    2. 土地覆盖分类的深度学习
    3. Sundarbans 国家公园卫星图像
    4. CNN在土地覆盖分类中的实现
    5. 结论
    6. 参考文献

    遥感概论

    遥感是探测和监测一个地区的物理特征的过程,方法是测量该地区在一定距离(通常是从卫星或飞机)反射和发射的辐射。特殊摄像机收集远程遥感图像,这有助于研究人员“感知”地球上的事物。

    由带电粒子振动产生的电磁能量,以波的形式在大气和真空空间中传播。这些波有不同的波长和频率,波长越短,频率就越高。有些电波、微波和红外线的波长较长。而紫外线、x射线和伽马射线的波长要短得多。可见光位于长到短波辐射范围的中间。这一小部分能量是人类肉眼所能探测到的。需要仪器来探测所有其他形式的电磁能。在不同卫星的帮助下,我们利用全范围的光谱来探索和理解发生在地球和其他行星上的过程。

    一些例子是:

    • 卫星和飞机上的相机拍摄了地球表面大面积的图像,使我们看到的东西比我们站在地面上看到的多得多。
    • 船上的声纳系统可以在不需要潜入海底的情况下生成海底图像。
    • 卫星上的照相机可以用来拍摄海洋温度变化的图像。

    地球遥感图像的一些具体用途包括:

    • 大型森林火灾可以从太空中绘制地图,使得护林员可以看到比地面大得多的区域。
    • 追踪云层来帮助预测天气或观察喷发的火山,并帮助观察沙尘暴。
    • 在数年或数十年的时间里跟踪城市的发展和农田或森林的变化。
    • 发现并绘制海底崎岖的地形(例如巨大的山脉、深谷和海底的“磁条”)。

    在本文中,我们将使用Sentinel-2卫星收集的数据。以下是简要信息:

    Sentinel-2任务由两颗卫星组成,用于支持植被、土地覆盖和环境监测。2015年6月23日,欧洲航天局(ESA)发射了Sentinel-2A卫星,在太阳同步轨道上运行,周期为10天。第二颗相同的卫星Sentinel-2B于2017年3月7日发射,并可在EarthExplorer上获取数据。它们每隔五天就会覆盖地球所有的陆地表面、大型岛屿以及内陆和沿海水域。

    Sentinel-2多光谱仪器(MSI)沿着290公里的轨道带获得了从可见和近红外(VNIR)到短波红外(SWIR)波长的13个光谱波段。MSI测量了在13个光谱波段内通过大气的反射辐射。空间分辨率取决于特定的光谱波段:

    10米波段:蓝色(490 nm),绿色(560 nm),红色(665 nm),近红外(842 nm)。
    在20米处有6个波段:4个窄波段用于植被表征(705 nm、740 nm、783 nm和865 nm)和2个较大的SWIR波段(1610 nm和2190 nm)用于雪/冰/云探测或植被水分胁迫评估。
    60米波段:主要用于云层遮挡和大气校正(气溶胶为443 nm,水蒸气为945 nm,卷云探测为1375 nm)。

    土地覆盖分类的深度学习

    深度学习。神经网络。反向传播。在过去的一两年里,我经常听到这些流行词,最近它也确实抓住了我的好奇心。深度学习是当今一个活跃的研究领域,如果你一直关注计算机科学领域,我相信你至少一次遇到过其中的一些术语。

    深度学习可能是一个令人生畏的概念,但如今它变得越来越重要。谷歌已经通过谷歌Brain项目和最近收购伦敦的深度学习初创公司DeepMind在这一领域取得了巨大进展。此外,深度学习方法几乎在每一个指标上都击败了传统的机器学习方法。

    深度神经网络(Deep Neural network, DNNs)和卷积神经网络(Convolutional Neural network, CNNs)是目前广泛应用于土地覆盖分类的方法。

    深度神经网络(DNN)

    一般来说,神经网络是一种用来模拟人类大脑活动的技术——具体来说,就是模式识别和输入通过模拟神经连接的各个层次。

    许多专家将深度神经网络定义为具有输入层、输出层和中间至少有一层隐藏层的网络。每一层在一个被称为“特性层次结构”的过程中执行特定类型的排序和排序。“这些复杂的神经网络的关键用途之一是处理未标记或非结构化数据。“深度学习”一词也被用来描述这些深度神经网络,因为深度学习代表了一种特定形式的机器学习,在机器学习中,技术使用人工智能方面寻求以超越简单输入/输出协议的方式对信息进行分类和排序。

    本文对实现高光谱图像的土地覆盖分类进行了验证。

    卷积神经网络(CNN)

    根据《CS231n:用于视觉识别的卷积神经网络》,卷积神经网络与普通神经网络非常相似:它们由具有可学习权值和偏差的神经元组成。每个神经元接收一些输入,执行点积并有选择地进行非线性操作(激活)。整个网络仍然表示一个单一的可微分数函数:从一端的原始图像像素到另一端的分类分数。它们在最后一层(完全连接)上仍然有一个损失函数(例如SVM/Softmax),我们为学习规则神经网络开发的所有技巧/技巧仍然适用。

    改变什么呢?ConvNet架构明确假设输入是图像,这允许我们将某些属性编码到架构中。这样可以使转发功能更有效地实现,并极大地减少网络中的参数数量。

    池化或下采样层负责减少激活映射的空间大小。通常,在其他层(即卷积层和非线性层)的多个阶段之后使用它们,通过网络逐步减少计算需求,并最大限度地减少过拟合的可能性。

    卷积网络中完全连接的层实际上是一个多层感知器(通常是两层或三层MLP),其目标是将先前不同层的组合激活量映射到一个类概率分布中。

    用于卫星影像土地覆盖分类的架构有AlexNet、ResNet、Inception、U-Net等。

    Sundarbans国家公园卫星图像

    孙德尔本斯(Sundarbans)是孟加拉湾恒河、雅鲁藏布江和梅克纳河汇流形成的三角洲中最大的红树林地区之一。孙德尔本斯森林横跨印度和孟加拉国,面积约为1万平方公里,其中40%位于印度境内,是许多珍稀和全球濒危野生物种的家园。在本文中,我们将使用2020年1月27日Sentinel-2卫星获取的孙德本斯卫星数据的一部分。

    让我们开始编码。

    读取数据

    让我们使用rasterio读取12个波段,并使用numpy.stack()方法将它们堆叠成一个n维数组。叠加后得到的数据形状为(12,954,298)。使用loadmat方法从scipy.io包中读取卫星图像的地面真值。 真值包含6类,包括水,植物,树木,土地等。

    from glob import glob
    import numpy as np
    from scipy.io import loadmat
    import rasterio as rio
    
    S_sentinel_bands = glob("/content/drive/MyDrive/Satellite_data/sundarbans_data/*B?*.tiff")
    S_sentinel_bands.sort()
    
    l = []
    for i in S_sentinel_bands:
      with rio.open(i, 'r') as f:
        l.append(f.read(1))
    
    # Data
    arr_st = np.stack(l)
    
    # Ground Truth
    y_data = loadmat('Sundarbands_gt.mat')['gt']
    

    数据可视化

    这些数据具有多个波段,其中包含从可见光到红外光的数据。因此,很难对人类的数据进行可视化。通过创建RGB复合图像,可以更轻松地有效理解数据。要绘制RGB复合图像,您将绘制红色,绿色和蓝色波段,分别是波段4、3和2。由于Python使用从零开始的索引系统,因此您需要从每个索引中减去1的值。因此,红色带的索引为3,绿色为2,蓝色为1。

    如果像素亮度值偏向零值,则我们创建的合成图像有时可能会很暗。可以通过使用参数Stretch = True拉伸图像中的像素亮度值以将这些值扩展到电位值的整个0-255范围以增加图像的视觉对比度来解决此类问题。另外,str_clip参数允许您指定要裁剪的数据尾部的数量。数字越大,数据将被拉伸或变亮的越多。

    我们来看一下绘制RGB复合图像以及所应用的拉伸的代码。

    ep.plot_rgb(
        arr_st,
        rgb=(3, 2, 1),
        stretch=True,
        str_clip=0.02,
        figsize=(12, 16),
        # title="RGB Composite Image with Stretch Applied",
    )
    
    plt.show()
    

    让我们使用eathpy.plot包中的plot_bands方法可视化。

    ep.plot_bands(y_data, 
                  cmap=ListedColormap(['darkgreen', 'green', 'black', 
                                       '#CA6F1E', 'navy', 'forestgreen']))
    plt.show()
    

    下图显示了Sundarbans卫星数据的合成图像和地面真实情况。

    正如我们所讨论的,数据包含12个波段。 让我们使用EarhPy套件可视化每个波段。 plot_bands()方法获取带和图的堆栈以及自定义标题,这可以通过使用title =参数 将每个图像的唯一标题作为标题列表传递来完成。

    ep.plot_bands(arr_st, 
                  cmap = 'gist_earth', 
                  figsize = (20, 12), 
                  cols = 6, 
                  cbar = False)
    plt.show()
    

    CNN进行土地覆盖分类

    让我们通过对数据应用主成分分析(PCA)来创建Sundarbans卫星图像的三维补丁。 以下代码用于创建实现PCA的功能,创建3D补丁以及将数据按70:30的比例拆分为训练数据和测试数据。 分割数据后,使用tensorflow.keras包中的to_categorical()方法对训练标签和测试标签进行编码。

    def applyPCA(X, numComponents=75):
        newX = np.reshape(X, (-1, X.shape[2]))
        pca = PCA(n_components=numComponents, whiten=True)
        newX = pca.fit_transform(newX)
        newX = np.reshape(newX, (X.shape[0],X.shape[1], numComponents))
        return newX, pca
    
    def padWithZeros(X, margin=2):
        newX = np.zeros((X.shape[0] + 2 * margin, X.shape[1] + 2* margin, X.shape[2]))
        x_offset = margin
        y_offset = margin
        newX[x_offset:X.shape[0] + x_offset, y_offset:X.shape[1] + y_offset, :] = X
        return newX
    
    def createImageCubes(X, y, windowSize=5, removeZeroLabels = False):
        margin = int((windowSize - 1) / 2)
        zeroPaddedX = padWithZeros(X, margin=margin)
        # split patches
        patchesData = np.zeros((X.shape[0] * X.shape[1], windowSize, windowSize, X.shape[2]))
        patchesLabels = np.zeros((X.shape[0] * X.shape[1]))
        patchIndex = 0
        for r in range(margin, zeroPaddedX.shape[0] - margin):
            for c in range(margin, zeroPaddedX.shape[1] - margin):
                patch = zeroPaddedX[r - margin:r + margin + 1, c - margin:c + margin + 1]   
                patchesData[patchIndex, :, :, :] = patch
                patchesLabels[patchIndex] = y[r-margin, c-margin]
                patchIndex = patchIndex + 1
        if removeZeroLabels:
            patchesData = patchesData[patchesLabels>0,:,:,:]
            patchesLabels = patchesLabels[patchesLabels>0]
            patchesLabels -= 1
        return patchesData, patchesLabels
    
    def splitTrainTestSet(X, y, testRatio, randomState=42):
        X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=testRatio, random_state=randomState, stratify=y)
        return X_train, X_test, y_train, y_test
      
    ## GLOBAL VARIABLES
    dataset = 'SB'
    test_size = 0.30
    windowSize = 15
    MODEL_NAME = 'Sundarbans'
    path = '/content/drive/MyDrive/Sundarbans/'
    
    X_data = np.moveaxis(arr_st, 0, -1)
    y_data = loadmat('Sundarbands_gt.mat')['gt']
    
    # Apply PCA
    K = 5
    X,pca = applyPCA(X_data,numComponents=K)
    
    print(f'Data After PCA: {X.shape}')
    
    # Create 3D Patches
    X, y = createImageCubes(X, y_data, windowSize=windowSize)
    print(f'Patch size: {X.shape}')
    
    # Split train and test
    X_train, X_test, y_train, y_test = splitTrainTestSet(X, y, testRatio = test_size)
    
    X_train = X_train.reshape(-1, windowSize, windowSize, K, 1)
    X_test = X_test.reshape(-1, windowSize, windowSize, K, 1)
    
    # One Hot Encoding
    y_train = to_categorical(y_train)
    y_test = to_categorical(y_test)
    
    print(f'Train: {X_train.shape}\nTest: {X_test.shape}\nTrain Labels: {y_train.shape}\nTest Labels: {y_test.shape}')
    

    CNN模型

    让我们构建一个具有不同图层(例如卷积,dropout和密集图层)的三维CNN。 以下代码用于使用TensorFlow创建用于土地覆盖分类的3D-CNN。

    S = windowSize
    L = K
    output_units = y_train.shape[1]
    
    ## input layer
    input_layer = Input((S, S, L, 1))
    
    ## convolutional layers
    conv_layer1 = Conv3D(filters=16, kernel_size=(2, 2, 3), activation='relu')(input_layer)
    conv_layer2 = Conv3D(filters=32, kernel_size=(2, 2, 3), activation='relu')(conv_layer1)
    conv2d_shape = conv_layer2.shape
    conv_layer3 = Reshape((conv2d_shape[1], conv2d_shape[2], conv2d_shape[3]*conv2d_shape[4]))(conv_layer2)
    conv_layer4 = Conv2D(filters=64, kernel_size=(2,2), activation='relu')(conv_layer3)
    
    flatten_layer = Flatten()(conv_layer4)
    
    ## fully connected layers
    dense_layer1 = Dense(128, activation='relu')(flatten_layer)
    dense_layer1 = Dropout(0.4)(dense_layer1)
    dense_layer2 = Dense(64, activation='relu')(dense_layer1)
    dense_layer2 = Dropout(0.4)(dense_layer2)
    dense_layer3 = Dense(20, activation='relu')(dense_layer2)
    dense_layer3 = Dropout(0.4)(dense_layer3)
    output_layer = Dense(units=output_units, activation='softmax')(dense_layer3)
    # define the model with input layer and output layer
    model = Model(name = dataset+'_Model' , inputs=input_layer, outputs=output_layer)
    
    model.summary()
    

    3D-CNN模型总共具有1,204,098个可训练参数。 下图显示了已开发的3D-CNN模型的摘要。

    训练

    为了训练定义的DNN,我使用了Adam优化器,分类交叉熵,准确性作为度量以及回调。 对用于训练3D-CNN的优化器,丢失和回调的简要说明。

    Adam优化器

    Adam是一种优化算法,可以代替经典的随机梯度下降过程来基于训练数据来更新网络权重。 使用adam优化器的优点是:

    1. 计算效率高。
    2. 很少的内存需求。
    3. 梯度的对角线重标不变。
    4. 非常适合于数据和/或参数较大的问题。
    5. 适用于非固定目标。
    6. 适用于非常嘈杂/或稀疏梯度的问题。
    7. 超参数具有直观的解释,通常需要很少的调整。

    分类交叉熵

    交叉熵是用于多类分类问题的默认损失函数。 在这种情况下,它适用于目标值位于{0,1,3,…,n}集中的多类分类,其中为每个类分配一个唯一的整数值。 从数学上讲,它是最大似然推理框架下的首选损失函数。 损失函数是第一个评估的函数,只有在有充分理由的情况下才可以更改。

    交叉熵将计算得分,该得分总结问题中所有类别的实际概率分布与预测概率分布之间的平均差。 分数被最小化,理想的交叉熵值为0。可以在编译模型时通过指定“ categoical_crossentropy”将交叉熵指定为Keras中的损失函数。

    回调

    EarlyStopping:减少神经网络过度拟合的一种技术是使用早期停止。 尽早停止会在模型没有真正学习到任何东西的情况下终止训练过程,从而防止模型过度训练。 这是非常灵活的-您可以控制要监视的指标,需要更改多少才能被视为“仍在学习”,以及在模型停止训练之前它可能连续震荡多少个时期。

    ModelCheckpoint:此回调将在每个成功的时期之后将模型作为检查点文件(hdf5或h5格式)保存到磁盘。 您实际上可以将输出文件设置为根据轮次动态命名。 您也可以将损失值或准确性值写入日志文件名的一部分。

    TensorBoard:此回调在每批训练后记录,以监控您的指标,图形,直方图,图像等

    以下代码用于编译和训练模型。

    # Compile
    model.compile(optimizer = 'adam', loss = 'categorical_crossentropy',
                  metrics = ['accuracy'])
    
    # Callbacks
    logdir = path+"logs/" +model.name+'_'+datetime.now().strftime("%d:%m:%Y-%H:%M:%S")
    
    tensorboard_callback = TensorBoard(log_dir=logdir)
    
    es = EarlyStopping(monitor = 'val_loss',
                       min_delta = 0,
                       patience = 1,
                       verbose = 1,
                       restore_best_weights = True)
    
    checkpoint = ModelCheckpoint(filepath = 'Pavia_University_Model.h5', 
                                 monitor = 'val_loss', 
                                 mode ='min', 
                                 save_best_only = True,
                                 verbose = 1)
    # Fit
    history = model.fit(x=X_train, y=y_train, 
                        batch_size=1024*6, epochs=6, 
                        validation_data=(X_test, y_test), callbacks = [tensorboard_callback, es, checkpoint])
    

    训练期间的准确性和损失图的代码以及输出如下所示,X轴表示时期,Y轴表示百分比。

    import pandas as pd
    history = pd.DataFrame(history.history)
    
    plt.figure(figsize = (12, 6))
    plt.plot(range(len(history['accuracy'].values.tolist())), history['accuracy'].values.tolist(), label = 'Train_Accuracy')
    plt.plot(range(len(history['loss'].values.tolist())), history['loss'].values.tolist(), label = 'Train_Loss')
    plt.plot(range(len(history['val_accuracy'].values.tolist())), history['val_accuracy'].values.tolist(), label = 'Test_Accuracy')
    plt.plot(range(len(history['val_loss'].values.tolist())), history['val_loss'].values.tolist(), label = 'Test_Loss')
    plt.xlabel('Epochs')
    plt.ylabel('Value')
    plt.legend()
    plt.show()
    

    结果

    训练后的CNN模型具有96.00%的准确度,让我们看一看混淆矩阵-通常用表格表示来描述分类模型(或“分类器”)对一组已知真实值的测试数据的性能。

    pred = model.predict(X_test, batch_size=1204*6, verbose=1)
    
    plt.figure(figsize = (10,7))
    
    classes = [f'Class-{i}' for i in range(1, 7)]
    
    mat = confusion_matrix(np.argmax(y_test, 1),
                                np.argmax(pred, 1))
    
    df_cm = pd.DataFrame(mat, index = classes, columns = classes)
    
    sns.heatmap(df_cm, annot=True, fmt='d')
    
    plt.show()
    

    分类报告显示准确性以及分类精度,召回率,f1得分和支持。 输出如下所示:

    # Classification Report
    print(classification_report(np.argmax(y_test, 1),
                                np.argmax(pred, 1),
          target_names = [f'Class-{i}' for i in range(1, 7)]))
          
                  precision    recall  f1-score   support
    
         Class-1       0.95      0.93      0.94     16222
         Class-2       0.99      0.99      0.99     23570
         Class-3       1.00      1.00      1.00      6095
         Class-4       0.95      0.97      0.96     16790
         Class-5       0.95      0.98      0.96     13545
         Class-6       0.86      0.85      0.86      9066
    
        accuracy                           0.96     85288
       macro avg       0.95      0.95      0.95     85288
    weighted avg       0.96      0.96      0.96     85288
    

    最后,让我们可视化Sundarbans卫星的分类图。 以下代码用于创建分类图。

    pred_t = model.predict(X.reshape(-1, windowSize, windowSize, K, 1),
                           batch_size=1204*6, verbose=1)
    # Visualize Groundtruth
    
    ep.plot_bands(np.argmax(pred_t, axis=1).reshape(954, 298), 
                  cmap=ListedColormap(['darkgreen', 'green', 'black', 
                                       '#CA6F1E', 'navy', 'forestgreen']))
    plt.show()
    

    下图显示了Sundarbans卫星数据的RGB复合图像,真实情况和分类图。

    结论

    本文介绍了用于卫星图像的土地覆盖分类的各种深度学习方法,并且还展示了3D-CNN在Sundarbans卫星图像的土地覆盖分类中的实现和训练。

    可以从下面的GitHub存储库访问本文中使用的代码。

    https://github.com/syamkakarla98/Satellite_Imagery_Analysis

    作者:Syam Kakarla

    deephub翻译组

    展开全文
  • 关于土地分类格式互转、土地利用转移矩阵计算详解 一、ENVI、ArcGIS格式互转 1.1 ENVI分类格式转TIF ENVI分类格式使用File下面的Save as另存为TIF格式: 对于部分5.3版本可能会出现报错: 那我们可以使用Classic...

    关于土地分类格式互转、土地利用转移矩阵计算详解

    一、ENVI、ArcGIS格式互转

    1.1 ENVI分类格式转TIF

    ENVI分类格式使用File下面的Save as另存为TIF格式:
    在这里插入图片描述
    在这里插入图片描述
    对于部分5.3版本可能会出现报错:
    在这里插入图片描述
    那我们可以使用Classic模式:
    在这里插入图片描述
    然后使用ArcGIS打开:但是可能会发现分类图像的值域范围可能和ENVI不一样:在这里插入图片描述
    然后我们符号系统里选唯一值:在这里插入图片描述
    这样值域范围就对应了:
    在这里插入图片描述
    还可以设置标签名称:
    在这里插入图片描述
    在这里插入图片描述

    1.2 ArcGIS Coverage格式转TIF

    对于Coverage这种格式,ArcMAP打开:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    右键导出:
    在这里插入图片描述
    在这里插入图片描述
    ENVI打开后:右键新建色带
    在这里插入图片描述
    注意需要将默认色带删除,自己重新建立色带并设置为唯一值对应:
    在这里插入图片描述
    导出为ENVI标准分类格式:
    在这里插入图片描述

    1.3 其他分类读取

    对应清华大学GCL10或者30,我们加载数据后同样的操作即可:
    在这里插入图片描述

    二、关于拼接、重分类

    下面我们以从中国科学院地理科学与资源研究所下载各省土地利用数据为例进行操作演示:

    下图是下载的1970年代末期(1980年)中国土地利用现状遥感监测数据:
    在这里插入图片描述
    全部加载后:
    在这里插入图片描述
    因为各省数据的名称都是一样的,直接拼接容易报错或者不出结果,我们先把数据图层进行重命名:
    在这里插入图片描述
    镶嵌至新栅格:
    在这里插入图片描述
    拼接完成后选唯一值:
    在这里插入图片描述
    拼接后的结果:
    在这里插入图片描述
    这是这套数据的空间参数:
    在这里插入图片描述
    这是这套数据的分类编码:
    在这里插入图片描述
    我们下面按照一级编码对这个数据进行重分类,注意新旧值的对应关系:在这里插入图片描述
    重分类后的结果:
    在这里插入图片描述

    三、转移矩阵制作

    3.1 ArcGIS里操作:

    上面我们把1980年的数据进行了重分类,接下来我们按照同样的方法来处理2018年的数据:
    在这里插入图片描述
    两期数据都处理好了,然后进行栅格转矢量,建议不勾选简化面:
    在这里插入图片描述
    两期数据的矢量进行相交分析:
    在这里插入图片描述
    相交分析的结果添加面积字段:
    在这里插入图片描述
    计算几何面积:
    在这里插入图片描述

    在这里插入图片描述
    然后使用EXCEL打开相交分析数据的.dbf文件,创建数据透视表:
    在这里插入图片描述
    拖动code1到列标签,拖动code2到行标签,area到数值求和:
    在这里插入图片描述
    数据稍加整饰即可得到转移矩阵,但是EXCEL读取数据的行数有限,写入最大行数是 1048576,本次数据已经远超这个数值,因此这样算出来是不准的,但是这个方法适用于数据量比较小的分类结果。

    对于面特别多的数据,可以先进行融合操作,根据分类字段将面合并,然后进行相交分析,:
    在这里插入图片描述
    但是此方法步骤繁琐,下面我们介绍在ENVI下的处理方法。

    3.2 ENVI里操作:

    ENVI里操作需要满足三个条件:1.ENVI标准分类格式 2.数据坐标投影一致 3.数据行列数一致。

    首先我们打开数据后查看元数据后的行列数,发现两者的行列数并不一致:
    在这里插入图片描述
    接下来我们使用layerstack工具,将这个两个数据组合在一起,但是因为这个数据的坐标系统ENVI并不识别:
    在这里插入图片描述
    为了方便后续操作我们将这个坐标系统新建入库:
    在这里插入图片描述
    在这里插入图片描述
    接着使用layerstack工具,导入这两个数据,坐标系选择我们刚才新建的,注意重采样方法,选最邻近,因为这是土地里分类数据,
    最邻近可以不改变原有分类数据的像元值,假如选双线性,那么,数据中某两个像元的值一个是3一个是5,可能会插值出一个4,这样每个类别的个数就改变了。
    在这里插入图片描述
    注意layerstack的时候,选第二个可以只保留两个数据的公共相交区域:
    在这里插入图片描述
    通过layerstack工具,两个数据的行列数一致,现在将每个数据导出,可以仍然layerstack,选择spectral subset,选中其中一个数据先导出,同样的方法导出另一个数据:
    在这里插入图片描述
    导出的数据背景值可能不是0,这种情况需要做一下掩膜,首先构建掩膜文件,我们先构建1980的MASK:

    在这里插入图片描述
    在这里插入图片描述
    我们的数据有效值域是1-7:
    在这里插入图片描述
    然后对1980年的数据(layerstack导出的数据)进行应用掩膜:
    在这里插入图片描述
    右键新建色带后导出Class格式:
    在这里插入图片描述
    在这里插入图片描述
    可以编辑头文件对导出的Class格式编辑分类名称:
    在这里插入图片描述
    对于某些5.3版本可能会报错,我们可以用classic模式进行编辑:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    设置忽略背景值为0:
    在这里插入图片描述
    同样的操作对2018年的数据进行编辑,然后两者数据的都统一了:
    在这里插入图片描述
    接下来我们进行变化检测,计算转移矩阵,由于ENVI计算出的转移矩阵是反向的,因此我们前时相选2018,后时相选1980,这样计算出来的转移矩阵才符合平常的习惯:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    导出TXT:
    在这里插入图片描述
    EXCEL导入TXT:
    在这里插入图片描述
    在这里插入图片描述
    稍加整饰即可:
    在这里插入图片描述

    四、变化图谱

    我们以刚才两期数据为例,来计算一下建设用地的变化图谱,比如计算下1980-2018年间,其他地类转为建设用地的分布:
    使用地图代数工具,输入下列公式,该公式是将1980所有像元乘以10,这样比如耕地从1变成10,再加上2018,那么耕地保持不变的像元会变成11,耕地转成林地的像元变成12,…
    在这里插入图片描述
    计算完成后在符号系统里只显示与转入建设用地相关的值,并附上属性标签:
    在这里插入图片描述
    在这里插入图片描述
    可以切换到布局视图插入多个数据框:
    在这里插入图片描述
    调整数据框位置;
    在这里插入图片描述
    复制数据到每个数据框:
    在这里插入图片描述
    在这里插入图片描述
    接下来插入图例,指北针、比例尺这些要素就可以出图了:
    在这里插入图片描述
    好了今天的介绍就到这里了,更多文字点击博客首页:

    https://blog.csdn.net/qq_46071146
    在这里插入图片描述

    展开全文
  • 卫星图像开放式土地覆盖分类的典型判别学习 简述: 卫星图像的土地覆盖...本文研究了在测试过程中,在保持已知类别性能的同时,识别未知样本的开放式土地覆盖分类问题。尽管数据本身就是一个分类问题,但数据...

                      卫星图像开放式土地覆盖分类的典型判别学习

    简述:

           卫星图像的土地覆盖分类是分析地球表面的重要步骤。现有模型假设一个封闭的集合设置,其中训练类和测试类都属于同一标签集。然而,由于卫星图像具有独特的特点,覆盖材料的覆盖面积极其广阔,因此训练数据必然是不具有代表性的。本文研究了在测试过程中,在保持已知类别性能的同时,识别未知类样本的开放式土地覆盖分类问题。尽管数据本身就是一个分类问题,但数据的代表性和辨别性方面都需要加以利用,以便更好地区分未知类和已知类。提出了一种具有代表性的判别开放集识别(RDOSR)框架,该框架1)将原始图像空间中的数据投影到嵌入特征空间,从而方便相似类的区分;2)通过转换为所谓的丰度空间,提高了代表性和鉴别能力。在多个卫星基准上的实验表明了该方法的有效性。通过在使用RGB图像实现开放集分类任务方面的良好结果,我们也展示了该方法的通用性。

     

    1简介

     

           计算机视觉的最新进展,特别是卷积神经网络(CNN)的出现,极大地提高了图像分类[1–3]、检测[4,5]和分割[6,7]任务的性能,使其能够在许多不同的领域部署。其中一个应用领域是卫星图像分析,包括资源管理、城市发展规划和气候控制。土地覆盖分类或材料分类为卫星图像分析的组成部分之一,为一系列后续任务提供必要的输入,包括对象分割、三维重建和建模以及纹理映射。监督土地覆盖分类涉及到将多光谱或高光谱图像像素分类为预定的材料类别,例如沥青、树木、混凝土、水、金属、土壤等。请注意,多光谱和高光谱图像(MSI和HSI)都试图提供可见光谱之外的其他光谱信息,以显示额外的细节并补偿这些图像的粗糙空间分辨率。

     

    图1:开放集土地覆盖分类:与地面真相类别相对应的数据样本来自已知类别集(K)。有些类别可能在培训期间不知道,在测试时会遇到,即来自未知类别集(U)的样本。目标是识别来自(U)的像素,同时正确地分类属于(K)的任何像素。从左到右,Pavia大学数据集[8]的卫星图像显示未知材料表面,带有黄色边界框、地面真实标签,以及使用tSNE对已知和未知类的特征空间进行可视化[9]。

     

           尽管卫星图像的材料分类本身就是一个分类问题,但它面临着一个独特的挑战:卫星图像覆盖的广阔区域使得生成具有代表性的训练样本的任务几乎不可能,因为地球表面存在着大量的材料,尤其是那些开发不好的地区。因此,土地覆盖分类最基本的能力之一是能够自动识别图像的哪个测试图像以及图像的哪个区域或像素位置,具有更高的承载新类别材料的概率。这将为人类操作员收集新课程的培训样本提供基本指导。

           绝大多数土地覆盖分类的现有工作都是在“静态封闭世界”假设下完成的,这意味着培训和测试集都是从同一个标签集中提取的。结果,观察到任何未知类的系统都会被迫将其误分类为已知类之一,从而削弱了识别性能。一个更现实的场景是在一个非静态和开放的环境中工作,而不是所有类别都是先验已知的而且,来自不可见类的测试样本可能会意外出现。在给定图像中识别已知和未知像素并正确分类已知像素被定义为“开放式土地覆盖分类”。图1使用真实的卫星图像解释了这个过程

           在本文中,我们提出了一个多任务有代表性的区分性开放集识别(RDOSR)框架,以解决具有挑战性的土地覆盖分类问题,即利用数据的代表性和区分性,以便最好地描述已知和未知类之间的差异。我们提出了三个空间之间的代表性和区分性学习,如图2所示,包括1)从原始图像空间到嵌入特征空间的转换,以及2)从嵌入特征空间到所谓的丰度空间的转换。不同空间的效果说明见附录A

    图2:通过原始图像空间、嵌入空间和丰度空间三个空间之间的变换进行典型的判别学习。

     

           本文的主要贡献如下:第一,与其他直接应用于原始图像空间的开集识别方法不同,我们建议首先学习一个分类网络,该网络将从原始图像空间转换为嵌入特征空间,以便将更清晰的输入特征输入到后续的开放集学习网络中。第二,我们提出使用所谓的Dirichlet网将数据从嵌入特征空间转换到丰富空间。由于分辨率问题,卫星图像中的每一个像素都覆盖了一个以上的组成材料的大面积区域,造成了“混合像元”。通常假设混合物是几个光谱基的线性组合,以及相应的混合系数(或丰度)。这样,我们就不用看混合像素,而是研究组成混合物时每个光谱基的混合系数。因此,丰度空间提供了一个更好的尺度表示。第三,据我们所知,这项工作是首次尝试解决对分析地球表面至关重要的开放式土地覆盖分类问题。第四,该方法以卫星图像分析为动力,可推广到RGB图像,取得了良好的效果。

    2相关工作

           传统土地覆盖分类。这些方法主要采用传统的光谱信息分类器,通过特征工程算法,如最小噪声分数(MNF)[10]、独立成分分析(ICA)[11]、形态学特征[12]和光谱分解[13-15],进一步增强了其识别能力。深度学习技术的出现使得层次特征的自动提取成为可能,并取得了前所未有的性能。[16,17]在光谱域中应用了1D-CNN框架,以考虑相邻光谱带之间的相关性。一些作品通过采用2D-CNN结构[18,19]来使用围绕所需像素的补丁来合并空间相关性。最近,使用3D-CNN结构对光谱和空间域进行了整合,以进一步提高分类精度[20,21]。

           尽管每种方法都有其自身的优点,但所有现有的土地覆盖分类方法都是在封闭集假设下工作的,即训练集和测试集共享同一个标签集。

           开放集识别。在对未知样本的处理过程中,由于对未知样本集的不完全识别得到了相当大的关注。早期的研究基于传统的分类模型,包括最近邻、支持向量机(SVM)、稀疏表示等。最近邻的开放集版本是基于测试样本与已知样本的距离[22]。基于支持向量机的方法使用不同的正则化项或核来检测未知样本[23,24]。在[25]中,基于稀疏表示的分类(SRC)算法的残差被用作未知类检测的分数。

           另一种方法是在SoftMax的背景下,使用一种叫做OpenMax的统计模型来校准网络。[27]通过最大化类间距离和最小化倒数第二层的类内距离,改进了OpenMax层方法。[28]的工作提出了一种基于k-sigmoid激活的损失函数,用于训练神经网络,使其能够在最终激活层上找到一个工作阈值。[29]结合了从分类模型中获得的鉴别特征和用于重建的潜在表示,以增强用于开放集检测的特征向量。与以前的方法不同,[30]利用从多任务学习框架中获得的重建误差作为检测分数。最近,[31]提出了利用自监督和增强输入图像来学习更丰富的特征来改善类之间的分离。

           最近的研究试图模拟开放集类,以便对未知类提供显式的概率估计。Ge等人。[32]通过使用基于生成性对抗网络(GAN)的框架合成未知样本,扩展了OpenMax[26]。按照同样的思路,[33]提出了反事实图像生成(OSRCI)框架,该框架使用GAN来生成放置在决策边界之间的样本,这些样本可以被视为未知示例。[34]提出了类条件自动编码器(C2AE)算法,其中条件重建有助于学习已知和未知的分数分布。

           值得注意的是,文献中有一些相关问题,包括离群点检测[35,36]和异常检测[37,38],这些问题与开放集识别有一些重叠,可以看作是开放集识别的放松版本。这些问题假设在培训期间有一个不正常的班。然而,一般的开放集识别问题通常不会事先提供未知类的类型或数量的信息。

    图3:提出的框架的概述:i)闭集嵌入学习:分类器F在谱域X上训练,产生潜在的区分嵌入zF。ii)代表性判别特征学习:编码器E取嵌入特征zF,利用Dirichlet网络导出代表性特征S。应用于S的分类器C增强了S的区分性,解码器输出(ˆzF)和输入到编码器(zF)之间的重建误差增强了S的代表性。

    3提议的方法

           我们提出了一种典型的区分开集识别(RDOSR)结构,如图3所示。该网络主要由两个部分组成:1)一个闭集嵌入组件,将原始图像域中的数据投影到嵌入域中,使得具有相似光谱特性的不同类别更容易区分,以及2)多任务表征性描述学习组件,在丰富的空间中以适当的比例学习更好的表示方案,从而使未知类更好地区别于已知类。

    3.1网络架构

           开放式卫星土地覆盖分类问题的一个挑战性问题是不同类别可能具有相似的光谱特征。因此,它是一个未知的类,其光谱特性接近已知类,很可能被误分类为已知类。为了解决这个问题,我们不再在图像域上检测未知类,而是在闭集嵌入层投影的嵌入域上检测它们,如图3.i所示。闭集嵌入层在很大程度上提高了网络的识别能力,这样,即使未知类的光谱与已知类的光谱相似,也能更好地被识别。闭集嵌入层的权值用一个分类器F来训练,这在第二节中进一步阐述。3.2条。

           为了识别嵌入域中的未知类,我们提出了一个多任务代表性判别特征学习框架,以提高提取的特征向量的代表性和鉴别能力,使未知样本的识别更具信息性和有效性。如图3.ii所示。该网络由一个编解码器结构和一个由已知类之间共享的基组成的解码器,该结构使用稀疏Dirichlet编码器E提取代表性特征。为了进一步提高其鉴别能力,还包括了应用于S的分类器C。这样,输入到网络中的未知类的数据将产生更高的重构误差,从而可以进行相应的检测。第二节对网络设计的细节作了进一步的阐述。3.3条。

    3.2闭集嵌入学习

           给定已知的每个像素席的类Xk={x1,x2,…,xnk}的集合,即高维向量记录高光谱图像中的二次光谱带的重新读出读数,对应的标记用Yk= {y1,y2,…,ynk}表示,其中Nk是已知像素的数目,并且y1 {1,2,…五十} ,其中L是已知类的数目。为了区分光谱分布相似的类,我们将输入数据Xk从图像域投影到嵌入域ZF。投影是通过一个分类器F学习的,带有参数ΘF和嵌入特征,zF通过交叉熵损失强制区分,

           其中Yi是一个热编码标签,F(席)表示携带第i已知样本的预测概率得分的向量。该向量通过在嵌入域中对特征zF应用softmax函数来生成。

           对于已知遇到的类的常见分类问题,这种一般结构是不够的。然而,我们的目标是提高特征对具有相似光谱特征的类的区分能力。因此,我们进一步提高了嵌入特征的识别能力,其中l1范数稀疏约束由

           其中,zFi是由分类器F学习的嵌入特征向量。在这样的约束下,来自不同类别样本的嵌入特征更具辨别力,即使它们在图像域中的光谱相似。

    3.3多任务代表性判别特征学习

           利用所提出的闭集嵌入层,将样本从图像域投影到具有更多可分辨特征的嵌入域。为了更好地识别未知样本,需要充分利用样本的鉴别性和代表性。以前的方法[30,34]通常训练一个通用的自动编码器从已知的类中重构样本。由于在训练过程中利用已知样本对网络权值进行了优化,当未知类的样本输入到网络中时,在理想情况下重构误差将大于已知类的重构误差。然而,挑战在于未知类尤其是接近已知类的类也可能导致较小的重建错误,从而导致检测失败。

           在这项工作中,我们提出一个多任务代表性鉴别特征学习架构,以提高侦测的准确性。该网络的目的是减小已知类的重构误差,同时加大未知类的重构误差。

           由于分辨率问题,卫星图像中的每个像素通常覆盖较大的地理区域或足迹(例如,Landsat-8为30×30米),从而产生所谓的“混合像素”(即每个像素往往覆盖一种以上的组成材料)。这些混合物通常被假定为几个光谱基与相应的混合系数(或丰度)的线性组合。所提出的方法是基于这个假设而设计的,如等式3所示。假设已知类样本的特征向量zF是几个基B的线性组合,这些基在已知类的特征之间共享。因此,每个已知类的样本可以用

           其中s表示共享基的比例系数,作为嵌入特征的“表示”形式,我们称之为丰度。丰度向量或表示应满足两个物理约束,即非负和和为一。来自未知类的样本也可以使用已知类B的共享基被等式3分解。然而,由于B不包括未知类的基,其表示的分布应该偏离已知类的分布。因此,我们按照等式3的模型设计了一个网络,它从已知的类中强制遵循一定的分布。如果网络能够从分布相似的未知类中提取s,那么我们期望它们具有很高的重构误差。

    图4:多任务代表区分特征学习框架的流程图。

           所提出的多任务代表性判别特征学习的流程图如图4所示。网络同时执行重建任务和分类任务。重建分支由一个基于稀疏Dirichlet的编码器E和权重为ΘD的解码器D组成。编码器和解码器可以分别由函数E:ZF→S和D:S→ZF定义,其中ZF是闭集分类器F获得的嵌入空间,其中S是编码器E投影的潜在表示的丰度空间,S中的表示强制服从Dirichlet分布。并引入稀疏约束来增强s的代表性。下面将提供更多细节和证明。此外,S还被分类符C强制区分,它可以由函数C:S→Y和权重ΘC定义,其中Y是已知标签的空间。

    基于重构的代表性特征学习重构分支根据式3构造,其中共享基嵌入到网络    的解码器D中,相应的表示用编码器E提取。由于s表示基的比例系数,我们强制它遵循一个Dirichlet满足非负和一个物理约束的分布。在文献[39–41]的基础上,我们在编码器中采用了断棒结构来加强表示,使其符合Dirichlet分布。

           在断棒结构中,单个元素sj In s可表示为

    式中,vj来自Kumaraswamy分布,即vj∼Kuma(u,1,β),如公式(5)所示,

           然后,使用两个参数来提取表示s,即u和β,这两个参数都是网络编码器中的隐藏层。由于β层的非负特性,在β层上采用了softplus激活函数,并使用sigmoid将u映射到u层的(0,1)范围内。关于断棒结构的更多细节,请参见[40]和[41]。

           此外,采用熵函数[42]来增强表示层的稀疏性。设ˆsj=|sj | ksk,对于每个像素,熵函数定义为,

    其中c是表示s的维数,采用重建损失Lr来减小已知类的重建误差。定义如下:,

    其中,zFi是馈入编码器E的嵌入特征向量,而ˆzF是从解码器D获得的重构zFi。

    区分特征学习与分类分支。为了进一步提高表示的识别能力,对表示s采用了一个分类器,分类损失Lc定义为:,

    其中,yi为基本真值标签,E(zFi)表示第i个已知样本的代表性特征向量。注意,重构分支和分类器C的权重一起更新,使得学习到的表示既具有代表性又具有区分性。

    3.4培训程序和网络设置

    我们首先通过使用损失函数优化分类器F的权重ΘF来学习嵌入投影,

    其中,λf和λz是平衡交叉熵损失和稀疏度损失之间权衡的两个参数。

     

    然后,利用所学习的嵌入层,训练多任务代表性描述特征学习网络,以最小化具有损失函数的已知类的重构损失和分类误差,

    其中,λr、λs和λc是平衡重建损失、稀疏性损失和分类损失之间权衡的参数。

           表1列出了F、E、D和C四个网络的结构。

    4实验和结果

    在本节中,我们将在几个广泛使用的基准高光谱图像数据集上评估所提出的RDOSR方法的有效性。此外,我们还证明了该方法在RGB图像数据集上的泛化能力。此外,通过烧蚀研究,分析了该框架各组成部分的贡献。

     

    4.1实施细则

           我们训练网络,如第节所述。3.1,使用Adam优化器[43],学习率为10-3。分类器F和编解码器assister(E-D-C)的联合结构分别针对15K个周期进行训练。然而,其他不含两个独立分量的方法则是针对6K个时代进行训练的。

           对于训练,分类器F、λF和λz分别设置为1和0.1。训练E-D-c结构时重建λr、稀疏度λs和分类λc损失的权重分别设置为0.5、10-3和0.5。稀疏度权重λs衰减为0.9977。对分类器F进行训练,直到其精度达到0.9988。需要注意的是,数据集的所有输入数据都标准化为其均值和单位方差。此外,从分类器F获得的特征向量除以10以避免散度。

           影响开放集识别算法性能的一个因素是问题的开放性[44],定义为,

    其中Ntrain、Ntest和Ntarget分别是培训期间已知的类数、测试期间给定的类数以及测试阶段需要正确识别的类数。在实验中,每个数据集的类根据开放性划分为已知集和未知集。

     

    代码是用TensorFlow编写的,所有的实验都是在一台拥有10gb内存的GeForce GPU的台式计算机上进行的。代码可在https://github.com/raziehkaviani/rdosr

     

    4.2指标

           为了比较不同方法的性能,有几个指标,包括已知和未知类别组合的总体准确度或F分数,以及接收器工作特性(ROC)。前两个指标不能很好地描述模型的性能,因为它们不仅对模型在分类已知类时的性能敏感,而且对检测未知样本的操作阈值也很敏感。

           另一方面,ROC曲线将说明二元分类系统(这里,已知检测与未知检测)的能力,因为判别阈值从给定检测度量的最小值到最大值变化(这里是重建误差)。因此,它提供了一种无需校准的测量方法。为了进行定量比较,在实验中计算了ROC下的面积(AUC)。

     

    4.3高光谱数据的开集识别

    实验在三个高光谱图像数据集上进行:

           帕维亚大学(PU)和帕维亚中心(PC)。2011年,反射光学系统成像光谱仪在意大利北部采集了钚和聚碳酸酯数据集,分辨率为1.3米。钚数据集的尺寸为1096×715像素,103个光谱带,范围从430至860纳米。PC数据集有610×340像素,102个光谱带。PU和PC数据集都包括9个土地覆盖类型。

           印度松(IN)。1912年,在印第安纳州西北部,通过机载可见/红外成像光谱仪(AVIRIS)采集了IN数据集。它的尺寸为145×145,像素分辨率为20米,光谱带为200个。其基本事实包括16个土地覆盖类别。

           我们将提议的方法与以下三种方法的性能进行比较:

           SoftMax:在神经网络分类器中,检测开放集示例的一种常见的基于可信度的方法是对SoftMax分数进行阈值化。我们在不考虑稀疏性约束的情况下使用了分类器F的网络结构。

           OpenMax[26]:此方法校准Classifier中的SoftMax分数,并使用Nk+1类对未知类别进行增强。使用OpenMax层替换的SoftMax层用于开放集识别。我们收养在SoftMax方法中前面提到的分类器,并使用Weibull fitting方法和参数Weibulltailsize=10来生成OpenMax层值。

           AE+CLS:MLOSR的全连接版本[30],它利用多任务学习框架,由分类器和解码器组成,具有共享的特征提取部分,用于检测开放集示例。为了与我们的方法进行公平的比较,编码器、解码器和分类器被设计为我们的E(不带Dirichlet网)、D、C,并经过lr和lc损耗训练,权重为0.5。

           首先,假设每个L类都是未知的,这等于PU、PC、IN的开放度分别为2.99%、2.99%和1.63%。对于表2中的每种方法,平均并报告对应于将每个L标签选择为未知的AUC值。结果表明,该方法在三个数据集上都优于其他方法。关于PU数据集的详细比较,见附录B。PC数据集的微小改进可以通过其不同类别的不同光谱来确定,这降低了分类F的影响。

           第二,当开放度等于6.46%时,PU和IN数据集中不同方法的ROC曲线如图5所示。从两个数据集的结果来看,AE+CLS+Dirichlet方法是在AE+CLS框架中采用Dirichlet网的方法,并且该方法优于其它方法。值得注意的是,我们所提出的方法对于PU和PC数据集,能够分别以60%和90%以上的准确率检测未知类,并且几乎没有错误检测。

           第三,图6示出了开放度为2.99%的已知集和未知集的重建误差直方图。可以观察到,与已知集合相对应的重建误差值较小。然而,未知集由于在从已知类示例中学习到的代表性和区分性特征方面的不匹配而产生较大的误差。

     

           4.4 RGB图像的开集识别

           为了证明该方法的泛化能力,我们在两个RGB数据集上对该方法进行了性能评估,并与传统的方法进行了比较几种最先进的方法。为此,使用以2D图像为输入的DenseNet结构替代执行像素级分类的分类F。

           表2:开放集检测的ROC曲线下面积。将所选数据集划分为L-1个已知类和1个未知类,计算结果的平均值。

    图5:PU和PC数据集的开放集识别接收器工作曲线曲线,L=7(开放度=6.46%)。

     

    图6:L=8时,使用提出的方法对PU和PC数据集重建已知和未知类的误差分布。

     

           按照[33]中的方案,我们从CIFAR10[45]中抽取了4个已知类,开放度为13.39%,TinyImageNet[46]的200个类别中抽取了20个已知类,开放度为57.35%。表3总结了除建议的RDOSR外的值取自[31]的结果。可以观察到,除了GDOSR[31]在CIFAR10上的性能,所提出的方法比所比较的方法具有更好的性能。然而,它在TinyImageNet上取得了显著的改进。这可能是由于TinyImageNet中的类之间的相似性阻碍了在图像空间中检测未知样本,而RDOSR通过在嵌入空间中操作来解决这个问题。

    表3:开放集识别的ROC曲线下面积。

     

    4.5烧蚀研究

                                图7:PU数据集上建议方法的烧蚀研究

           从基线AE+CLS开始,逐步将每个组件添加到框架中,以显示其有效性。烧蚀研究的结果如图7所示。可见,在光谱域采用基线结构的性能最差。然而,由于对编码器E学习的潜在空间应用了物理约束,因此添加基于Dirichlet的网络有了很大的改进。直接在嵌入空间上执行openset识别会导致不稳定性问题,与AE+CLS+Dirichlet方法相比,该问题由性能下降引起。我们提出的方法通过在嵌入特征向量zF上引入稀疏约束来解决不稳定性问题。如图7所示,与其他三种基线方法相比,我们提出的方法实现了最高的AUC值。

     

    5结论

           研究了卫星图像中开放集土地覆盖识别的挑战性问题。虽然本质上是一个分类问题,但为了最好地描述已知类和未知类之间的差异,需要学习代表性和区分性特征。我们提出了原始图像空间、嵌入特征空间和丰度空间之间的转换,在这些空间中可以学习具有代表性和区分性的特征,从而使成功率最大化。在三个高光谱图像和两个RGB图像数据集上对所提出的多任务代表性判别学习结构进行了评估,与最新的开放集识别算法相比有显著的改进。

    6 参考文献

     

     

    展开全文
  • 一种递归神经网络方法,用于对多时相数据进行编码以进行土地覆盖分类。 Rußwurm&Körner的源代码(2018) 如果您使用此存储库,请考虑引用 Rußwurm M., Körner M. (2018). Multi-Temporal Land Cover ...
  • 土地利用现状分类 Current land use classification 2017T1-01 发布 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BcHONaFK-1616416711210)(media/138844cd5c9fdcaea5729e5cb
  • 为了更精确获取土地利用类型信息,在分别采用监督分类与非监督分类的基础上,提出了叠加分类的遥感解译方法。此方法的关键在于,叠加分类时对叠加图像进行部分重新编码,即只对监督分类与非监督分类中的典型地物...
  • 发一个三大跟八大之间的转换关系,一调地类与二调地类代码对比表。
  • 导读:该文是遥感影像和监督分类有关毕业论文怎么写和遥感参考文献格式范文.张森 马迪 王滔 邱海英 董彬摘 要:随着卫星遥感技术的成熟.遥感影像的应用越来越多,监督分类解释土地利用信息使用广泛.以湖北武汉市2006...
  • 地表覆盖分类代码

    2014-08-05 20:03:40
    国情普查中地表覆盖分类编码,用于国情普查地表覆盖代码查询
  • 地类代码对比表

    2008-03-14 10:33:25
    国土资源土地分类旧八大与新三之间的转换
  • 土地利用程度综合指数通过对土地利用程度的分级,量化人类活动对于土地系统的影响程度,定量描述该地区土地利用的综合水平和变化趋势,是衡量指定区域内土地利用情况的一个重要指标。 那在实际中我们如何应用土地...
  • 摘要:随着我国科学技术不断的发展,人民生活水平的提高,城市土地资源越来越紧缺,为了有效对这些土地资源进行管理,减轻工作人员的压力,地理信息系统的应用逐渐开始推广。地理信息系统汇集了遥感技术、地图学以及...
  • 土地开发整理规划数据库标准 目次 前言 1围1 2规性引用文件1 3术语和定义1 4数据库容和要素分类编码2 5数据库结构定义4 6数据文件命名规则14 7数据交换格式16 8元数据17 附录A规性附录土地分类代码18 附录B资料性...
  • 三调最新地类代码表

    2019-02-22 17:04:05
    第三次全国国土调查最新地类代码表,
  • 土地变更技术

    千次阅读 2020-05-22 14:20:35
    土地变更调查技术规程 (试用) 国土资源部2017 年 10 月 目 录 前 言 本规程的附录A、附录B、附录 C……附录 I 均为规范性附录。本规程由国土资源部提出并归口。 本规程起草单位:中国土地勘测规划院、国土...
  • 中国2020年30米globalland30土地利用数据(纯手工制作) 数据源:GlobeLand30数据研制所使用的分类影像主要是...冰川和永久积雪100.(苔原的四个亚类型灌木苔原、禾本苔原、湿苔原与裸苔原对应编码为71、72、73、74)
  • 中国2010年30米globalland30土地利用数据(纯手工制作) 数据源:GlobeLand30数据研制所使用的分类影像主要是...冰川和永久积雪100.(苔原的四个亚类型灌木苔原、禾本苔原、湿苔原与裸苔原对应编码为71、72、73、74)
  • 本标准规定了土地利用数据库的内容、要素分类代码、数据分层、数据文件命名规则、图形数据与属性数据的结构、数据交换格式和元数据等。 本标准适用于土地利用数据库建设与数据交换。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,360
精华内容 944
关键字:

土地地类编码