All Projects → visinf → 1 Stage Wseg

visinf / 1 Stage Wseg

Licence: apache-2.0
Single-Stage Semantic Segmentation from Image Labels (CVPR 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to 1 Stage Wseg

pointnet2 semantic
A pointnet++ fork, with focus on semantic segmentation of differents datasets
Stars: ✭ 69 (-75.27%)
Mutual labels:  semantic-segmentation
Face Makeup.pytorch
Lip and hair color editor using face parsing maps.
Stars: ✭ 254 (-8.96%)
Mutual labels:  semantic-segmentation
Semantic Kitti Api
SemanticKITTI API for visualizing dataset, processing data, and evaluating results.
Stars: ✭ 272 (-2.51%)
Mutual labels:  semantic-segmentation
label-fusion
Volumetric Fusion of Multiple Semantic Labels and Masks
Stars: ✭ 18 (-93.55%)
Mutual labels:  semantic-segmentation
wsss-analysis
A Comprehensive Analysis of Weakly-Supervised Semantic Segmentation in Different Image Domains (IJCV submission)
Stars: ✭ 44 (-84.23%)
Mutual labels:  semantic-segmentation
Torchsat
🔥TorchSat 🌏 is an open-source deep learning framework for satellite imagery analysis based on PyTorch.
Stars: ✭ 261 (-6.45%)
Mutual labels:  semantic-segmentation
SAComputerVisionMachineLearning
Computer Vision and Machine Learning related projects of Udacity's Self-driving Car Nanodegree Program
Stars: ✭ 36 (-87.1%)
Mutual labels:  semantic-segmentation
Tensorflow Deeplab V3
DeepLabv3 built in TensorFlow
Stars: ✭ 278 (-0.36%)
Mutual labels:  semantic-segmentation
Indoor-segmentation
Indoor segmentation for robot navigating, which is based on deeplab model in TensorFlow.
Stars: ✭ 105 (-62.37%)
Mutual labels:  semantic-segmentation
Pytorch tiramisu
FC-DenseNet in PyTorch for Semantic Segmentation
Stars: ✭ 267 (-4.3%)
Mutual labels:  semantic-segmentation
PiCIE
PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in clustering (CVPR2021)
Stars: ✭ 102 (-63.44%)
Mutual labels:  semantic-segmentation
rail marking
proof-of-concept program that detects rail-track with semantic segmentation for autonomous train system
Stars: ✭ 21 (-92.47%)
Mutual labels:  semantic-segmentation
Lightweight Segmentation
Lightweight models for real-time semantic segmentation(include mobilenetv1-v3, shufflenetv1-v2, igcv3, efficientnet).
Stars: ✭ 261 (-6.45%)
Mutual labels:  semantic-segmentation
SlideSeg
A Python module that produces image patches and annotation masks from whole slide images for deep learning in digital pathology.
Stars: ✭ 71 (-74.55%)
Mutual labels:  semantic-segmentation
Bonnet
Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics.
Stars: ✭ 274 (-1.79%)
Mutual labels:  semantic-segmentation
DDUnet-Modified-Unet-for-WMH-with-Dense-Dilate
WMH segmentaion with unet, dilated_unet, and with ideas from denseNet
Stars: ✭ 23 (-91.76%)
Mutual labels:  semantic-segmentation
Pytorch Deeplab
DeepLab-ResNet rebuilt in Pytorch
Stars: ✭ 254 (-8.96%)
Mutual labels:  semantic-segmentation
Fcn Pytorch
🚘 Easiest Fully Convolutional Networks
Stars: ✭ 278 (-0.36%)
Mutual labels:  semantic-segmentation
Deeplabv3 Tensorflow
Reimplementation of DeepLabV3
Stars: ✭ 277 (-0.72%)
Mutual labels:  semantic-segmentation
Portrait matting
Implementation of "Automatic Portrait Segmentation" and "Deep Automatic Portrait Matting" with Chainer.
Stars: ✭ 267 (-4.3%)
Mutual labels:  semantic-segmentation

Single-Stage Semantic Segmentation from Image Labels

This repository contains the original implementation of our paper:

Single-stage Semantic Segmentation from Image Labels
Nikita Araslanov and Stefan Roth
To appear at CVPR 2020. [arXiv preprint]

Contact: Nikita Araslanov [email protected]

drawing
We attain competitive results by training a single network model
for segmentation in a self-supervised fashion using only
image-level annotations (one run of 20 epochs on Pascal VOC).

Setup

  1. Minimum requirements. This project was originally developed with Python 3.6, PyTorch 1.0 and CUDA 9.0. The training requires at least two Titan X GPUs (12Gb memory each).

  2. Setup your Python environment. Please, clone the repository and install the dependencies. We recommend using Anaconda 3 distribution:

    conda create -n <environment_name> --file requirements.txt
    
  3. Download and link to the dataset. We train our model on the original Pascal VOC 2012 augmented with the SBD data (10K images in total). Download the data from:

    Link to the data:

    ln -s <your_path_to_voc> <project>/data/voc
    ln -s <your_path_to_sbd> <project>/data/sbd
    

    Make sure that the first directory in data/voc is VOCdevkit; the first directory in data/sbd is benchmark_RELEASE.

  4. Download pre-trained models. Download the initial weights (pre-trained on ImageNet) for the backbones you are planning to use and place them into <project>/models/weights/.

    Backbone Initial Weights Comment
    WideResNet38 ilsvrc-cls_rna-a1_cls1000_ep-0001.pth (402M) Converted from mxnet
    VGG16 vgg16_20M.pth (79M) Converted from Caffe
    ResNet50 resnet50-19c8e357.pth PyTorch official
    ResNet101 resnet101-5d3b4d8f.pth PyTorch official

Training, Inference and Evaluation

The directory launch contains template bash scripts for training, inference and evaluation.

Training. For each run, you need to specify names of two variables, for example

EXP=baselines
RUN_ID=v01

Running bash ./launch/run_voc_resnet38.sh will create a directory ./logs/pascal_voc/baselines/v01 with tensorboard events and will save snapshots into ./snapshots/pascal_voc/baselines/v01.

Inference. To generate final masks, please, use the script ./launch/infer_val.sh. You will need to specify:

  • EXP and RUN_ID you used for training;
  • OUTPUT_DIR the path where to save the masks;
  • FILELIST specifies the file to the data split;
  • SNAPSHOT specifies the model suffix in the format e000Xs0.000. For example, e020Xs0.928;
  • (optionally) EXTRA_ARGS specify additional arguments to the inference script.

Evaluation. To compute IoU of the masks, please, run ./launch/eval_seg.sh. You will need to specify SAVE_DIR that contains the masks and FILELIST specifying the split for evaluation.

Pre-trained model

For testing, we provide our pre-trained WideResNet38 model:

Backbone Val Val (+ CRF) Link
WideResNet38 59.7 62.7 model_enc_e020Xs0.928.pth (527M)

The also release the masks predicted by this model:

Split IoU IoU (+ CRF) Link Comment
train-clean (VOC+SBD) 64.7 66.9 train_results_clean.tgz (2.9G) Reported IoU is for VOC
val-clean 63.4 65.3 val_results_clean.tgz (423M)
val 59.7 62.7 val_results.tgz (427M)
test 62.7 64.3 test_results.tgz (368M)

The suffix -clean means we used ground-truth image-level labels to remove masks of the categories not present in the image. These masks are commonly used as pseudo ground truth to train another segmentation model in fully supervised regime.

Acknowledgements

We thank PyTorch team, and Jiwoon Ahn for releasing his code that helped in the early stages of this project.

Citation

We hope that you find this work useful. If you would like to acknowledge us, please, use the following citation:

@inproceedings{Araslanov:2020:WSEG,
  title     = {Single-Stage Semantic Segmentation from Image Labels},
  author    = {Araslanov, Nikita and and Roth, Stefan},
  booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year = {2020}
}
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].