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.
A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
Overview
Comments
-
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-inUpSampling2D
.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 ofUpSampling2D
..Thanks in advance
-
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.
-
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.
-
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
what I tried to feed the network and this is the output I am getting.
Can you please help me what I am doing wrong.
Best, Muaz
-
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!
-
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.
-
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:
I change only Batch size and data size params. I work in PyCharm. It is incorrect prediction or visualisation? What i do wrong?
-
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.
-
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?
-
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!!
-
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))
Owner
Pradyumna Reddy Chinthala
DeepLabv3+:Encoder-Decoder with Atrous Separable Convolution语义分割模型在tensorflow2当中的实现
DeepLabv3+:Encoder-Decoder with Atrous Separable Convolution语义分割模型在tensorflow2当中的实现 目录 性能情况 Performance 所需环境 Environment 注意事项 Attention 文件下载 Download
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
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
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
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
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
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
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
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
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,
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
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
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
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
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
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
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
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
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