vaihingen数据集介绍与使用
vaihingen数据集
ISPRS Vaihingen Dataset 是国际摄影测量与遥感学会(ISPRS)发布的一个用于评估遥感图像语义分割和目标识别算法的标准数据集。该数据集主要覆盖了德国瓦伊因根(Vaihingen)地区的高分辨率航空影像,广泛用于遥感、地理信息系统(GIS)、城市规划、环境监测等领域的研究和应用。
数据集将区域划分为了33个patch,如上图所示,编号不是连续的
图像类型: 高分辨率航空影像,提供了3个波段:红外(IR)、红(R)和绿(G),因此是一个近红外-红-绿(IRRG)组合图像。
分辨率: 影像的空间分辨率为 9cm/pixel,这意味着每个像素代表地面上 9 厘米见方的区域,数据的精细度非常高。
地区覆盖: 数据集覆盖了Vaihingen的部分城区,包含住宅区、工业区、绿地、道路和河流等多种地表类型。
地面真值(Ground Truth)标注:
数据集提供了经过人工标注的地面真值,这些标注被细分为不同的地物类别,包括:
建筑物 (Buildings)
树木 (Trees)
低植被 (Low Vegetation)
道路 (Roads ...
UnetFormer代码解析
网络结构
从代码层面理解UnetFormer的具体实现是过程中的图像维度变化。窗口机制的实现原理,跳远连接的操作。
1234567891011121314151617181920212223242526class UNetFormer(nn.Module): def __init__(self, decode_channels=64, dropout=0.1, backbone_name='swsl_resnet18', pretrained=True, window_size=8, num_classes=6 ): super().__init__() self.training = False self.backbone = timm.create_model(backbone_name, fe ...
无聊的随笔-01
随笔-01其实很久没有写博客了。。。
网站是2021年运营的,但是能看到文章都是今年写的。因为之前文章的图片放在新浪图床里,之后新浪图床应该是不对外访问了,导致原本文章的图片全部崩掉了。
其实也未尝不是一件好事吧。暴雷早了还能少点损失,现在用自己的图床了,只要github不崩,图床就不会炸。
感觉大四好像一直在摆,虽然考上研了,但只能说是学校收留我,遇到了很好的导师。摆了这么久,玩累了,想想还是学习吧。毕竟导师比我还努力,没理由玩了啊。
计划是每周写一篇随笔记录反思一下,没对象只能写博客发发牢骚了QAQ。
研究生入学了。
室友是本科朋友,完美,开学一两周也没啥事儿,实验室氛围也挺好。
峰爷说的对:创造美好实验室条件让大家自愿来实验室才是正确的。我是非常自愿的,若是能把师兄传承给我的破椅子换了,我想我应该会更自愿了,毕竟,当我躺在椅子上的时候,旁人看我大抵是潇洒惬意的,但其实是椅子靠不住啊。
得多多反思。
感觉在学校呆久了,有时候已经变得不像自己了。学生思维限制了自己,应该多读读书才好。
多看多听多观察,跟导师出门还是不够狗腿啊,感觉自己情商还是不高。。。。倒不是说拉不下了,而是习惯了我 ...
U-Net网络模型
U-Net网络网络结构
从网络结构上,整个结构以编码器-解码器结构呈现U形模式。
网络中输入部分由于卷积操作,导致图像尺寸发生变化,这点可以使用padding避免,卷积增加了原始图像的通道数,经过池化后图像尺寸进一步压缩达到下采样目的,不断经过卷积池化下采样后到达网络底部。
继续卷积加上采样进行解码恢复信息,采用转置矩阵的方法进行上采样。在这一部分会与编码处理部分的图像进行concat连接,由于原始图像和当前图像的尺寸不匹配,会采用crop剪切以匹配大小。之后上采样恢复图像,并使用卷积降低通道数,得到最后背景和样本的双通道输出。输出图像和输入图像的尺寸也不是相同的。
Overlap
在进行图像处理时,对图像处理进行划分处理减轻显存压力,由于划分区域的边界信息不充足,在划分时不尽准确。因此划分时图像边界使用重叠划分以提高准确率。对于图像边界缺失部分采用镜像操作提高准确度。
边界错误权重
在细胞划分时,细胞边界不易区分。采用提高细胞边界误差权重的方法增加损失函数来加强边界划分的能力。
语义分割学习-膨胀卷积
膨胀卷积膨胀卷积视频
最大池化会导致特征信息丢失且难以上采样还原,而池化本身是增大感受野的。
而膨胀卷积可以增大我们的感受野
Gridding Effect
从设置的膨胀卷积参数来看,若是参数设置的不对,虽然增大了感受野,但有很多的特征信息并没有得到利用
Hybrid Dilated Convolution(HDC)
膨胀卷积的参数上设置成锯齿形
公约数不能大于1
语义分割学习-FCN网络结构
FCN网络FCN网络讲解
整个网络架构以卷积为核心,整体下采样得到特征层,最后对每个像素的通道使用softmax预测像素分类。
使用卷积层替换全连接层可以放宽对输入图片大小尺寸的要求
FCN-32S
此处经过VGG16过后,将图像的宽和高缩小了32倍。将padding设置成100,以适应不同大小的图片输入。通过两个FC卷积操作后进入到我们的分类卷积,通道数为$num_{cls}$,将通道数降低为分类数。之后经过我们的转置卷积,将图片上采样恢复到原来的图像,对像素使用softmax得到分类结果并与原图对比。
FCN-16S
该网络利用了原本经过池化的特征图信息进行融合
FCN-8S
该网络融合了两次池化的特征图结果
损失计算(Cross Entropy Loss)交叉熵损失
对于每一个类别使用softmax给出预测概率,与真实标签进行交叉熵计算,最后对所有像素的交叉熵损失进行求平均操作得到损失结果。
语义分割学习-转置卷积
转置卷积视频链接:转置卷积
运算步骤
计算原理(卷积核翻转原理)传统卷积采用滑动窗口的机制,现在的计算框架采用等效矩阵提高计算效率。
将等效矩阵展平后拼接
使用原始的特征矩阵展平后与等效矩阵做矩阵乘法得到最后的卷积结果。
由于卷积操作中的矩阵$C^{16\times4}$不是方阵,不存在可逆矩阵,因此无法通过计算还原出我们的原始特征矩阵
想要恢复到原特征矩阵的大小,我们可以再等式两边乘上矩阵$C$的转置$C^T$
将矩阵$O$和转置矩阵$C^T$的每一列做成等效矩阵$2\times2$的形式
我们发现等效矩阵的运算结果恰与绿色卷积核对原始特征卷积后的结果进行卷积的结果相同。
进一步发现该卷积核与原始卷积上下、左右翻转得到的卷积核相同。
这也是我们转置卷积计算过程中翻转卷积核的原理。
UNetFormer-基于UNet架构的Transformer遥感语义分割网络
UNetFormer为了充分利用图像信息,平衡局部与全局信息在语义分割中的提取。在Unet网络的基础上设计了以CNN提取图像局部特征的编码器和以Transformer为基础的增强图像细节特征和全局信息的解码器作为网络的主体结构。
网络结构
编码器以四阶段ResBlock18为主干网络提取特征多尺度语义特征,四阶段过程中不断下采样,每个阶段都与解码器相连。
解码器传统语义分割中捕获全局信息通常是在网络的最后阶段加上单个注意力模块或是使用Transformer构建编码器提取全局特征。前者不能充分捕获多尺度全局特征,后者提高了模型的计算复杂度。而在本网络中,使用了三个GLTB块和FRH来构建轻量级的解码器。
GLTB(Global-local Transformer Block)
GLTB将标准Transformer块中的多头注意力变为了全局-局部注意力。该部分采用双分支结构来提取融合全局和局部特征。
Global branch全局分支采用基于窗口的多头注意力。
将输入采用1x1卷积增加三倍通道数,使用窗口划分,对于每个窗口reshape成一维后划分成Q,K,K输入到到分支中进行计算。
...
CMTFNet-卷积与多尺度Transformer融合网络在遥感图像语义分割的应用
CMTFNet卷积神经网络提取局部信息能力强大,但缺乏全局信息的利用。本网络采用encoder-decoder结构,使用多尺度注意力构建Transformer-decoder,增强全局特征的提取。
网络结构
编码器编码器部分采用ResNet50结构作为主体,经过4层主体不断降维,之后将语义特征送入解码器中,在解码器中将ResBlock的特征与经过MTF模块处理后的特征进行权重融合。
解码器 解码器由三级多尺度Transformer块和语义头组成。
M2SA模块
M2SA模块结合了通道注意力机制,多尺度特征机制,多尺度自注意力机制。
采用了双分支结构来提取全局特征和通道信息。
多注意力尺度分支经过1x1卷积降维后,分别进入三个空洞卷积中进行特征提取,之后将三分支的特征相加融合,最后使用1x1卷积结果和残差连接。之后进行多头注意力计算。
在另一分支中,首先进行平均池化操作降维,之后卷积降低通道数,经过Relu6和卷积升维后使用sigmoid函数得到每个通道的注意力得分,最后与原始输入特征相乘得到数据特征。
E-FFN模块
与传统的FFN相比,E-FFN采用了1x1卷积操作来替代了原本的两个 ...