All Projects → Geoyi → pixel-decoder

Geoyi / pixel-decoder

Licence: MIT license
A tool for running deep learning algorithms for semantic segmentation with satellite imagery

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to pixel-decoder

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 (+188.24%)
Mutual labels:  segmentation, satellite-imagery, unet
Open Solution Data Science Bowl 2018
Open solution to the Data Science Bowl 2018
Stars: ✭ 159 (+133.82%)
Mutual labels:  segmentation, unet
Robosat
Semantic segmentation on aerial and satellite imagery. Extracts features such as: buildings, parking lots, roads, water, clouds
Stars: ✭ 1,789 (+2530.88%)
Mutual labels:  segmentation, satellite-imagery
Unet Tensorflow Keras
A concise code for training and evaluating Unet using tensorflow+keras
Stars: ✭ 172 (+152.94%)
Mutual labels:  segmentation, unet
Unet Family
Paper and implementation of UNet-related model.
Stars: ✭ 1,924 (+2729.41%)
Mutual labels:  segmentation, unet
Paddlex
PaddlePaddle End-to-End Development Toolkit(『飞桨』深度学习全流程开发工具)
Stars: ✭ 3,399 (+4898.53%)
Mutual labels:  segmentation, unet
Keras unet plus plus
keras implementation of unet plus plus
Stars: ✭ 166 (+144.12%)
Mutual labels:  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 (-1.47%)
Mutual labels:  segmentation, unet
Semantic Segmentation Suite
Semantic Segmentation Suite in TensorFlow. Implement, train, and test new Semantic Segmentation models easily!
Stars: ✭ 2,395 (+3422.06%)
Mutual labels:  segmentation, encoder-decoder
Zf unet 224 pretrained model
Modification of convolutional neural net "UNET" for image segmentation in Keras framework
Stars: ✭ 195 (+186.76%)
Mutual labels:  segmentation, unet
Segmentation
Tensorflow implementation : U-net and FCN with global convolution
Stars: ✭ 101 (+48.53%)
Mutual labels:  segmentation, unet
segmentation-enhanced-resunet
Urban building extraction in Daejeon region using Modified Residual U-Net (Modified ResUnet) and applying post-processing.
Stars: ✭ 34 (-50%)
Mutual labels:  segmentation, unet
Brats17
Patch-based 3D U-Net for brain tumor segmentation
Stars: ✭ 85 (+25%)
Mutual labels:  segmentation, unet
Lung Segmentation 2d
Lung fields segmentation on CXR images using convolutional neural networks.
Stars: ✭ 138 (+102.94%)
Mutual labels:  segmentation, unet
Dlcv for beginners
《深度学习与计算机视觉》配套代码
Stars: ✭ 1,244 (+1729.41%)
Mutual labels:  segmentation, unet
Kaggle dstl submission
Code for a winning model (3 out of 419) in a Dstl Satellite Imagery Feature Detection challenge
Stars: ✭ 159 (+133.82%)
Mutual labels:  segmentation, satellite-imagery
Data Science Bowl 2018
End-to-end one-class instance segmentation based on U-Net architecture for Data Science Bowl 2018 in Kaggle
Stars: ✭ 56 (-17.65%)
Mutual labels:  segmentation, unet
Unet 3d
3D Unet Equipped with Advanced Deep Learning Methods
Stars: ✭ 57 (-16.18%)
Mutual labels:  segmentation, unet
3dunet Tensorflow Brats18
3D Unet biomedical segmentation model powered by tensorpack with fast io speed
Stars: ✭ 173 (+154.41%)
Mutual labels:  segmentation, unet
Pytorch Unet
Tunable U-Net implementation in PyTorch
Stars: ✭ 224 (+229.41%)
Mutual labels:  segmentation, unet

Pixel Decoder

computervision In computer vision, there are three challenges: image classification, object detection and semantic segmentation. As you see above, semantic segmentation can segment an image into different parts and objects (e.g.grass, cat, tree, sky).

Pixel Decoder is a tool that contains several current available semantic segmentation algorithms. Pixel Decoder includes Standard Unet and its modified versions, Tiramisu and SegNet. SegNet is the algorithm that Skynet was built on. All the algorithms that live inside Pixel Decoder are convolutional neural networks are all in a structure that called encoder-decoder. encoder-decoder The encoder reads in the image pixels and compresses the information in vector, downsample to save computing memory; and the decoder works on reconstructing the pixels spatial information and output the desired outcome. Some UNet-like algorithms were adopted from SpaceNet challenge solutions.

All these algorithms are built with Tensorflow and Keras. These are some results for road segmentation from Pixel Decoder we got.

### Installation
git clone https://github.com/Geoyi/pixel-decoder
cd pixel-decoder
pip install -e .

Train

pixel_decoder train --batch_size=4 \
                    --imgs_folder=tiles \
                    --masks_folder=labels \
                    --models_folder=trained_models_out \
                    --model_id=resnet_unet \
                    --origin_shape_no=256 \
                    --border_no=32

It takes in the training dataset that created from Label Maker.

  • batch_size: batch size for the training;
  • imgs_folder: is the directory for RGB images to train;
  • masks_folder: is the directory for labeled mask to train;
  • model_id: is the neural net architecture to train with. We have - resnet_unet, inception_unet, linknet_unet, SegNet, Tiramisu as model_id live in Pixel Decoder.
  • origin_shape_no: 256 is the default image tile shape from Label Maker;
  • border_no: it's set to 32. It's a additional 32 pixel to add on 256 by 256 image tile to become 320 by 320 to get rid of U-Net's edge distortion.

Predict

After the model is trained and you see a trained model weight in your model directory, run:

pixel_decoder predict --imgs_folder=tiles \
                    --test_folder=test_images \
                    --models_folder=trained_models_out \
                    --pred_folder=predictions \
                    --model_id=resnet_unet \
                    --origin_shape_no=256 \  
                    --border_no=32
  • imgs_folder: is the directory for RGB images to train;
  • masks_folder: is the directory for labeled mask to train. It uses to get the stats, e.g. mean and standard deviation, from training images.
  • test_folder: is the directory for test images.
  • pred_folder: a directory that saved all the predicted test image from test_folder;
  • model_id: is the neural net architecture to train with. We have - resnet_unet, inception_unet, linknet_unet, SegNet, Tiramisu as model_id live in Pixel Decoder.
  • origin_shape_no: 256 is the default image tile shape from Label Maker;
  • border_no: it's set to 32. It's a additional 32 pixel to add on 256 by 256 image tile to become 320 by 320 to get rid of U-Net's edge distortion.

Run Pixel Decoder on AWS Deep Learning AMI instance with GUPs

Install Nvidia-Docker on your instance

  • Docker installation on AWS EC2. Instruction for Nvidia Docker installation here.

  • Build provide docker image from the Dockerfile

git clone https://github.com/Geoyi/pixel-decoder
cd pixel-decoder
nvidia-docker build -t pixel_decoder .
  • Run nvidia-docker and Pixel Decoder
nvidia-docker run -v $PWD:/work -it pixel_decoder bash
  • Install Pixel Decoder and train the model

Train

pixel_decoder train --batch_size=4 \
                    --imgs_folder=tiles \
                    --masks_folder=labels \
                    --models_folder=trained_models_out \
                    --model_id=resnet_unet \
                    --origin_shape_no=256 \
                    --border_no=32

Predict

pixel_decoder predict --imgs_folder=tiles \
                    --test_folder=test_images \
                    --models_folder=trained_models_out \
                    --pred_folder=predictions \
                    --model_id=resnet_unet \
                    --origin_shape_no=256 \  
                    --border_no=32

About

To run a neural net, e.g resnet_unet, you can create ready-to-train dataset from Label Maker. A detail walkthrough notebook will come soon. pixel_decoder was built on top of python-seed that created by Development Seed.

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].