All Projects → 1044197988 → Semantic Segmentation Of Remote Sensing Images

1044197988 / Semantic Segmentation Of Remote Sensing Images

Licence: apache-2.0
遥感图像的语义分割,基于深度学习,在Tensorflow框架下,利用TF.Keras,运行环境TF2.0+

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Semantic Segmentation Of Remote Sensing Images

Keras Unet
Helper package with multiple U-Net implementations in Keras as well as useful utility tools helpful when working with image semantic segmentation tasks. This library and underlying tools come from multiple projects I performed working on semantic segmentation tasks
Stars: ✭ 196 (+56.8%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
Multiclass Semantic Segmentation Camvid
Tensorflow 2 implementation of complete pipeline for multiclass image semantic segmentation using UNet, SegNet and FCN32 architectures on Cambridge-driving Labeled Video Database (CamVid) dataset.
Stars: ✭ 67 (-46.4%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
Segmentationcpp
A c++ trainable semantic segmentation library based on libtorch (pytorch c++). Backbone: ResNet, ResNext. Architecture: FPN, U-Net, PAN, LinkNet, PSPNet, DeepLab-V3, DeepLab-V3+ by now.
Stars: ✭ 49 (-60.8%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
ResUNetPlusPlus-with-CRF-and-TTA
ResUNet++, CRF, and TTA for segmentation of medical images (IEEE JBIHI)
Stars: ✭ 98 (-21.6%)
Mutual labels:  image-segmentation, unet, semantic-segmentation
Paddleseg
End-to-end image segmentation kit based on PaddlePaddle.
Stars: ✭ 1,244 (+895.2%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
Segmentation models.pytorch
Segmentation models with pretrained backbones. PyTorch.
Stars: ✭ 4,584 (+3567.2%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
TensorFlow-Advanced-Segmentation-Models
A Python Library for High-Level Semantic Segmentation Models based on TensorFlow and Keras with pretrained backbones.
Stars: ✭ 64 (-48.8%)
Mutual labels:  image-segmentation, unet, semantic-segmentation
Pytorch Unet
Simple PyTorch implementations of U-Net/FullyConvNet (FCN) for image segmentation
Stars: ✭ 470 (+276%)
Mutual labels:  semantic-segmentation, image-segmentation, unet
Midv 500 Models
Model for document segmentation trained on the midv-500-models dataset.
Stars: ✭ 31 (-75.2%)
Mutual labels:  semantic-segmentation, image-segmentation
Lung Segmentation
Segmentation of Lungs from Chest X-Rays using Fully Connected Networks
Stars: ✭ 47 (-62.4%)
Mutual labels:  semantic-segmentation, unet
Open Solution Salt Identification
Open solution to the TGS Salt Identification Challenge
Stars: ✭ 124 (-0.8%)
Mutual labels:  image-segmentation, unet
Tf.keras Commonly Used Models
基于Tensorflow的常用模型,包括分类分割、新型激活、卷积模块,可在Tensorflow2.X下运行。
Stars: ✭ 115 (-8%)
Mutual labels:  image-segmentation, unet
Tf Unet
tensorflow version of unet
Stars: ✭ 29 (-76.8%)
Mutual labels:  semantic-segmentation, unet
Mmsegmentation
OpenMMLab Semantic Segmentation Toolbox and Benchmark.
Stars: ✭ 2,875 (+2200%)
Mutual labels:  semantic-segmentation, image-segmentation
Pytorch 3dunet
3D U-Net model for volumetric semantic segmentation written in pytorch
Stars: ✭ 765 (+512%)
Mutual labels:  semantic-segmentation, unet
Semseg
常用的语义分割架构结构综述以及代码复现
Stars: ✭ 624 (+399.2%)
Mutual labels:  semantic-segmentation, image-segmentation
Unet Tensorflow
Tensorflow implement of U-Net
Stars: ✭ 50 (-60%)
Mutual labels:  image-segmentation, unet
Unet Crf Rnn
Edge-aware U-Net with CRF-RNN layer for Medical Image Segmentation
Stars: ✭ 63 (-49.6%)
Mutual labels:  unet, crf
Awesome Referring Image Segmentation
📚 A collection of papers about Referring Image Segmentation.
Stars: ✭ 91 (-27.2%)
Mutual labels:  semantic-segmentation, image-segmentation
Geo Deep Learning
Deep learning applied to georeferenced datasets
Stars: ✭ 91 (-27.2%)
Mutual labels:  semantic-segmentation, unet

Semantic-segmentation-of-remote-sensing-image
基于深度学习关于遥感影像的语义分割

首先看一下数据集,包含原始影像与标签,实际的分辨率很大,这个只是缩略图。
影像数据是Landsat8卫星的,用五四三波段进行合成,并利用GS方法进行全色第八波段的融合。(Envi软件处理)
标签是通过矢量图层以ArcGIS软件来处理生成的。

此代码库可在Tensorflow下keras环境运行,在Tensorflow1.12及Tensorflow2.0测试运行,代码更改后,更适合于Tensorflow2.0

train label

Unet、FPN模型及嵌入相关模块后的结果:

通过fit_generator运行,所以生成器需要自己编写,FCN8S与Segnet均为序列式模型与Keras的Model类有些不同,可以调用更多的方法。
展示一下Unet模型及FPN模型在此数据集上的结果,结果比Segnet与FCN好太多,所以就在这里不对比Segnet与FCN了。

其中Unet未经过预训练,其他集成的模块都经过了Imagenet预训练,并且测试都是通过划分数据来进行测试的,train75%,val25%。

准确率对比:

ACC

Iou对比:

IOU

Loss对比:

Loss

参数对比:

在相同的硬件条件下运行: 参数

不同全色波段融合方法的结果:

在目录里可以看到,这个影响不大。

Unet++模型结果:

混淆矩阵百分比:

混淆矩阵

混淆矩阵像素数:

混淆矩阵

相关统计:

当中1,2,3,4,5,15分别代表预测后的像素值,每个像素值代表一类 1 2 3

结果图的拼接痕迹问题:

我认为这个很大概率上跟模型的拟合能力、泛化能力有关,所以这个问题不用考虑,只要能够训练到所有的像素就可以了。 Unet等相关模型预测的图,“拼接痕迹”很小。

代码运行:

弄好数据集后,需要切割,切割的话这个可以参考一下生成数据并增强.py,更改相关参数即可。
然后通过里面的Segnet的训练程序启动即可,需要修改参数。
这个Segnet、FCN8S是用序列式类来实现的模型,所以预测的话是跟Model类有一点不相同,就是可以调用predict_classes的方法。
Model类文件里提供了使用Model类的模型的预测方法。
以上所有代码只是提供参考,训练其他数据的话很多参数需要自己修改,甚至生成器也需要更改,如果想对数据类别进行加权或使用样本权重,主要记得在生成器中做修改就可以了。

CRF后处理:

模型预测完毕后,可以使用CRF进行后处理,CRF.py文件提供了相关代码参考,但未必保证结果可靠。

GDAL

如果自己做的图包含多个波段(往往大于4个),Opencv或PIL就不太顶用了,这时候GDAL就派上用场了
例如我有一个十波段图像,用此函数读取后为numpy数组类,shape为[h,w,10]

from osgeo import gdal
import numpy as np

def load_img(path):
    dataset = gdal.Open(path)
    im_width = dataset.RasterXSize
    im_height = dataset.RasterYSize
    im_data = dataset.ReadAsArray(0,0,im_width,im_height)
    im_data = im_data.transpose((1,2,0)) #此步保证矩阵为channel_last模式
    return im_data

提示

我的该贡献库中,提供了一些分割的模型及相关指标与损失的代码
1044197988-TF.Keras-Commonly-used-models

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].