A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

Related tags

Deep Learning segnet
Overview

Segnet is deep fully convolutional neural network architecture for semantic pixel-wise segmentation. This is implementation of http://arxiv.org/pdf/1511.00561v2.pdf (Except for the Upsampling layer where paper uses indices based upsampling which is not implemented in keras yet( I am working on it), but that shouldnt make a lot of difference). You can directly download the code from https://github.com/preddy5/segnet. This post is a explaination of what is happening in the code.

http://preddy5.github.io/2016/03/08/segnet-post.html

Comments
  • UpSampling2D vs UnPooling2D

    UpSampling2D vs UnPooling2D

    Hey, thanks for the example!

    I found the code on your blog post first and there you're using the custom layer UnPooling2D but here you define it as well but then use the build-in UpSampling2D.

    Do they perform exactly the same operation? Why did you change? I understand the code for UnPooling2D but I'm a little bit confused by the code of UpSampling2D..

    Thanks in advance

    opened by mpariente 2
  • Regarding migrating this implementation to Tensorflow-based

    Regarding migrating this implementation to Tensorflow-based

    Hi Pradyumna,

    Thanks for sharing the code. Just curious, how difficult(or different) if migrating this implementation to Tensorflow-based? Or what are the major parts need to be modified? I am not familiar with Keras, and am learning Tensorflow.

    opened by huaiyanggongzi 2
  • Require requirements.txt for running this project

    Require requirements.txt for running this project

    I'm trying to run SegNet however, I'm seeing a lot of errors in the import statements. This is due to the fact that I'm using updated versions of most packages required.

    Can you please provide the requirements.txt file containing the versions of packages that you guys used at the time of implementation. Also, can you please tell me what version of python did you guys use to implement this?

    Thanks.

    opened by nosherwanijaz 1
  • Difference in output as shown in Segnet.ipynb

    Difference in output as shown in Segnet.ipynb

    Hello,

    I am just trying to run your code, I just tried to run the same example as it is mentioned is Segnet.ipynb but unfortunately I am not able to generate the same results as it is shown in it. So this is the image 0001tp_006750

    what I tried to feed the network and this is the output I am getting.

    output

    Can you please help me what I am doing wrong.

    Best, Muaz

    opened by muaz-git 1
  • where does 367 in segnet.py come from?

    where does 367 in segnet.py come from?

    On this line: https://github.com/pradyu1993/segnet/blob/master/segnet.py#L67

    there is the number 367, it isn't the number of classes, perhaps it is the number of images?

    Also what is the 7 in this line when going through the dataset? https://github.com/pradyu1993/segnet/blob/master/segnet.py#L61

    sorry for the basic questions and thanks for your help!

    opened by ahundt 1
  • Reshaping Last convolutional Layer

    Reshaping Last convolutional Layer

    Hi,

    You are reshaping the output of last convolutional layer to ( 12 , 360 * 480 ) and permuting it to ( 360 * 480 , 12 ) so output shape after permutation will be ( None , 360 * 480 , 12 ) where None is the batch size as mentioned in ipython notebook.

    On this ( None , 360 * 480 , 12 ) , a 3D tensor, you are applying softmax, which according to keras softmax defination will be consider as ( nb_samples , nb_timesteps , nb_channels ).

    My question is what is this nb_timesteps?? which is 360*480 for here. As per my understanding in semantic segmentation each pixel is sample so output should be ( None * 360 * 480 , 12 ) , but here we don't know value of None in prior, so can you give me explanation of how to make sense of your implementation, as I am unable to understand this nb_timesteps part.

    opened by RagMeh11 1
  • Incorrect prediction or visualisation

    Incorrect prediction or visualisation

    Hello.

    After run this code:

    output = autoencoder.predict_proba(train_data[8:9])
    out_labels = np.argmax(output[0], axis=1)
    
    pred = visualize(out_labels.reshape((height,width)), False)
    plt.imshow(pred)
    plt.figure(2)
    plt.imshow(gt[8])
    plt.show()
    

    i have next result: res

    I change only Batch size and data size params. I work in PyCharm. It is incorrect prediction or visualisation? What i do wrong?

    opened by CyberDreamer 0
  • About the decoder part

    About the decoder part

    Hi there,

    Thank you for your code.

    I'm just wondering if it's a proper way to implement the decoder part using UpSampling2D since the paper mentioned that it uses max-pooling indices for upsampling.

    opened by Jo-wang 1
  • AttributeError: 'Layer' object has no attribute 'is_placeholder'

    AttributeError: 'Layer' object has no attribute 'is_placeholder'

    Hi. I get the following error: AttributeError: 'Layer' object has no attribute 'is_placeholder' here: autoencoder.compile(loss="categorical_crossentropy", optimizer='adadelta') Does anyone know how to solve this?

    opened by LuminitaLB 0
  • adadelta over SGD

    adadelta over SGD

    Hi,

    I have a question regarding the optimisation algo: why have chosen adadelta instead of SGD?

    I trained my data on both and adadelta gave better results!

    Thanks for sharing!!

    opened by sam131 0
  • Error allocating memory

    Error allocating memory

    Hello,

    When I run this code, it gives me the following error:

    MemoryError: Error allocating 442368000 bytes of device memory (out of memory). Apply node that caused the error: GpuElemwise{sub,no_inplace}(GpuElemwise{add,no_inplace}.0, GpuElemwise{Composite{(((i0 / i1) / i2) / i3)},no_inplace}.0) Toposort index: 366 Inputs types: [CudaNdarrayType(float32, 4D), CudaNdarrayType(float32, (True, True, True, False))] Inputs shapes: [(10, 64, 360, 480), (1, 1, 1, 480)] Inputs strides: [(11059200, 172800, 480, 1), (0, 0, 0, 1)] Inputs values: ['not shown', 'not shown'] Outputs clients: [[GpuElemwise{sqr,no_inplace}(GpuElemwise{sub,no_inplace}.0), GpuElemwise{mul,no_inplace}(CudaNdarrayConstant{[[[[ 2.]]]]}, GpuElemwise{Composite{(((i0 / i1) / i2) / i3)},no_inplace}.0, GpuElemwise{sub,no_inplace}.0), GpuElemwise{mul,no_inplace}(GpuElemwise{Composite{(((i0 / i1) / i2) / i3)},no_inplace}.0, GpuElemwise{sub,no_inplace}.0)]]

    Tried using 660Ti - went upto 980 and 1080. Doesn't seem to go.

    Any solutions???

    Also, does this warning have anything to do with it ??

    UserWarning: Model inputs must come from a Keras Input layer, they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to "sequential_11_model" was not an Input tensor, it was generated by layer layer_10. Note that input tensors are instantiated via tensor = Input(shape). The tensor that caused the issue was: layer_input_10 str(x.name))

    opened by aneesh3108 2
Owner
Pradyumna Reddy Chinthala
PhD student @smartgeometry-ucl
Pradyumna Reddy Chinthala
DeepLabv3+:Encoder-Decoder with Atrous Separable Convolution语义分割模型在tensorflow2当中的实现

DeepLabv3+:Encoder-Decoder with Atrous Separable Convolution语义分割模型在tensorflow2当中的实现 目录 性能情况 Performance 所需环境 Environment 注意事项 Attention 文件下载 Download

Bubbliiiing 31 Nov 25, 2022
An implementation of a sequence to sequence neural network using an encoder-decoder

Keras implementation of a sequence to sequence model for time series prediction using an encoder-decoder architecture. I created this post to share a

Luke Tonin 195 Dec 17, 2022
This repository contains the data and code for the paper "Diverse Text Generation via Variational Encoder-Decoder Models with Gaussian Process Priors" (SPNLP@ACL2022)

GP-VAE This repository provides datasets and code for preprocessing, training and testing models for the paper: Diverse Text Generation via Variationa

Wanyu Du 18 Dec 29, 2022
U-Net Implementation: Convolutional Networks for Biomedical Image Segmentation" using the Carvana Image Masking Dataset in PyTorch

U-Net Implementation By Christopher Ley This is my interpretation and implementation of the famous paper "U-Net: Convolutional Networks for Biomedical

Christopher Ley 1 Jan 6, 2022
code for paper "Does Unsupervised Architecture Representation Learning Help Neural Architecture Search?"

Does Unsupervised Architecture Representation Learning Help Neural Architecture Search? Code for paper: Does Unsupervised Architecture Representation

null 39 Dec 17, 2022
Rethinking the U-Net architecture for multimodal biomedical image segmentation

MultiResUNet Rethinking the U-Net architecture for multimodal biomedical image segmentation This repository contains the original implementation of "M

Nabil Ibtehaz 308 Jan 5, 2023
Implementation of UNET architecture for Image Segmentation.

Semantic Segmentation using UNET This is the implementation of UNET on Carvana Image Masking Kaggle Challenge About the Dataset This dataset contains

Anushka agarwal 4 Dec 21, 2021
Differentiable architecture search for convolutional and recurrent networks

Differentiable Architecture Search Code accompanying the paper DARTS: Differentiable Architecture Search Hanxiao Liu, Karen Simonyan, Yiming Yang. arX

Hanxiao Liu 3.7k Jan 9, 2023
A PyTorch implementation for V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation

A PyTorch implementation of V-Net Vnet is a PyTorch implementation of the paper V-Net: Fully Convolutional Neural Networks for Volumetric Medical Imag

Matthew Macy 606 Dec 21, 2022
A Joint Video and Image Encoder for End-to-End Retrieval

Frozen️ in Time ❄️ ️️️️ ⏳ A Joint Video and Image Encoder for End-to-End Retrieval project page | arXiv | webvid-data Repository containing the code,

null 225 Dec 25, 2022
This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of Coordinate Independent Convolutional Networks.

Orientation independent Möbius CNNs This repository implements and evaluates convolutional networks on the Möbius strip as toy model instantiations of

Maurice Weiler 59 Dec 9, 2022
CoSMA: Convolutional Semi-Regular Mesh Autoencoder. From Paper "Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes"

Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes Implementation of CoSMA: Convolutional Semi-Regular Mesh Autoencoder arXiv p

Fraunhofer SCAI 10 Oct 11, 2022
Code for ACM MM2021 paper "Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection"

CTDNet The PyTorch code for ACM MM2021 paper "Complementary Trilateral Decoder for Fast and Accurate Salient Object Detection" Requirements Python 3.6

CVTEAM 28 Oct 20, 2022
This project is a loose implementation of paper "Algorithmic Financial Trading with Deep Convolutional Neural Networks: Time Series to Image Conversion Approach"

Stock Market Buy/Sell/Hold prediction Using convolutional Neural Network This repo is an attempt to implement the research paper titled "Algorithmic F

Asutosh Nayak 136 Dec 28, 2022
Official implementation of Deep Convolutional Dictionary Learning for Image Denoising.

DCDicL for Image Denoising Hongyi Zheng*, Hongwei Yong*, Lei Zhang, "Deep Convolutional Dictionary Learning for Image Denoising," in CVPR 2021. (* Equ

Z80 91 Dec 21, 2022
paper: Hyperspectral Remote Sensing Image Classification Using Deep Convolutional Capsule Network

DC-CapsNet This is a tensorflow and keras based implementation of DC-CapsNet for HSI in the Remote Sensing Letters R. Lei et al., "Hyperspectral Remot

LEI 7 Nov 29, 2022
Deep Image Search is an AI-based image search engine that includes deep transfor learning features Extraction and tree-based vectorized search.

Deep Image Search - AI-Based Image Search Engine Deep Image Search is an AI-based image search engine that includes deep transfer learning features Ex

null 139 Jan 1, 2023
Deep Multimodal Neural Architecture Search

MMNas: Deep Multimodal Neural Architecture Search This repository corresponds to the PyTorch implementation of the MMnas for visual question answering

Vision and Language Group@ MIL 23 Dec 21, 2022
DeepHyper: Scalable Asynchronous Neural Architecture and Hyperparameter Search for Deep Neural Networks

What is DeepHyper? DeepHyper is a software package that uses learning, optimization, and parallel computing to automate the design and development of

DeepHyper Team 214 Jan 8, 2023