All Projects → ethz-asl → modular_semantic_segmentation

ethz-asl / modular_semantic_segmentation

Licence: BSD-3-Clause license
Corresponding implementations for the IROS 2018 paper "Modular Sensor Fusion for Semantic Segmentation"

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to modular semantic segmentation

Fashion-Clothing-Parsing
FCN, U-Net models implementation in TensorFlow for fashion clothing parsing
Stars: ✭ 29 (+20.83%)
Mutual labels:  semantic-segmentation
Scale-Adaptive-Network
Semantic Image Segmentation by Scale-Adaptive Networks (TIP 2019)
Stars: ✭ 42 (+75%)
Mutual labels:  semantic-segmentation
pytorch-UNet
2D and 3D UNet implementation in PyTorch.
Stars: ✭ 107 (+345.83%)
Mutual labels:  semantic-segmentation
CSSR
Crack Segmentation for Low-Resolution Images using Joint Learning with Super-Resolution (CSSR) was accepted to international conference on MVA2021 (oral), and selected for the Best Practical Paper Award.
Stars: ✭ 50 (+108.33%)
Mutual labels:  semantic-segmentation
MFNet-pytorch
MFNet-pytorch, image semantic segmentation using RGB-Thermal images
Stars: ✭ 72 (+200%)
Mutual labels:  semantic-segmentation
UniFormer
[ICLR2022] official implementation of UniFormer
Stars: ✭ 574 (+2291.67%)
Mutual labels:  semantic-segmentation
awesome-rl
Awesome RL: Papers, Books, Codes, Benchmarks
Stars: ✭ 105 (+337.5%)
Mutual labels:  arxiv
Adversarial-Semisupervised-Semantic-Segmentation
Pytorch Implementation of "Adversarial Learning For Semi-Supervised Semantic Segmentation" for ICLR 2018 Reproducibility Challenge
Stars: ✭ 151 (+529.17%)
Mutual labels:  semantic-segmentation
alfred-arxiv-workflow
🔎 Alfred workflow to search arxiv.org items
Stars: ✭ 23 (-4.17%)
Mutual labels:  arxiv
Paper-Notes
Paper notes in deep learning/machine learning and computer vision
Stars: ✭ 37 (+54.17%)
Mutual labels:  semantic-segmentation
smartImgProcess
手工实现的智能图片处理系统 包含基础的图片处理功能 各类滤波 seam carving算法 以及结合精细语义分割信息 实现智能去除目标的功能
Stars: ✭ 22 (-8.33%)
Mutual labels:  semantic-segmentation
RandLA-Net-pytorch
🍀 Pytorch Implementation of RandLA-Net (https://arxiv.org/abs/1911.11236)
Stars: ✭ 69 (+187.5%)
Mutual labels:  semantic-segmentation
Remote-sensing-image-semantic-segmentation-tf2
The remote sensing image semantic segmentation repository based on tf.keras includes backbone networks such as resnet, densenet, mobilenet, and segmentation networks such as deeplabv3+, pspnet, panet, and refinenet.
Stars: ✭ 54 (+125%)
Mutual labels:  semantic-segmentation
3dgan-chainer
📦 A Chainer implementation of 3D Generative Adversarial Network.
Stars: ✭ 25 (+4.17%)
Mutual labels:  arxiv
FoggySynscapes
Semantic Understanding of Foggy Scenes with Purely Synthetic Data
Stars: ✭ 37 (+54.17%)
Mutual labels:  semantic-segmentation
SEC-tensorflow
a tensorflow version for SEC approach in the paper "seed, expand and constrain: three principles for weakly-supervised image segmentation".
Stars: ✭ 35 (+45.83%)
Mutual labels:  semantic-segmentation
PSPNet-Pytorch
Implemetation of Pyramid Scene Parsing Network in Pytorch
Stars: ✭ 26 (+8.33%)
Mutual labels:  semantic-segmentation
multichannel-semseg-with-uda
Multichannel Semantic Segmentation with Unsupervised Domain Adaptation
Stars: ✭ 19 (-20.83%)
Mutual labels:  semantic-segmentation
arXiv-title-fixer
📃 Set the correct (tab) titles for your arXiv papers containing tabs.
Stars: ✭ 41 (+70.83%)
Mutual labels:  arxiv
caffe
Caffe: a fast open framework for deep learning.
Stars: ✭ 4,618 (+19141.67%)
Mutual labels:  semantic-segmentation

Corresponding implementations for the IROS 2018 paper "Modular Sensor Fusion for Semantic Segmentation" by Hermann Blum, Abel Gawel, Roland Siegwart and Cesar Cadena.

Fusion with Synthia RAND Fusion with Cityscapes
Reproduce Results Reproduce Results

Installation

Requires python 3

  1. optional but recommended steps: set up a virtual environment as follows Set up a new virtual environment: virtualenv --python=python3 <virtualenv-name> and activate it source <virtualenv-name>/bin/activate.

  2. clone the software into a new directory git clone [email protected]:ethz-asl/modular_semantic_segmentation.git and change into it cd modular_semantic_segmentation.

  3. Install all requirements and the repository software. pip install -r requirements.txt and pip install .

  4. Dependent on your hardware install tensorflow for CPU (pip install tensorflow) or GPU (pip install tensorflow-gpu).

  5. All following setup steps are shown in the jupyter notebooks: Synthia RAND, Cityscapes, Inference Time, Experimental Details

Usage

Reproducing Results

Reported Experiments can be reproduced in the following way:

python -m experiments.rerun with experiment_id=<insert here> -u

For all tables and examples in the paper, there are corresponging jupyter notebooks that show on which experiments they are based upon. You will find all the details behind the experiment using the notebook Experimental Details.

Library

The package is devided into 3 parts:

  • xview/models: implementation of methods
  • xview/data: implementation of data interfaces
  • experiments: scripts that implement different functionalities for experiment, following the sacred framework.

Models

Models are implemented following the sklearn interface, while context handling is necessary due to tensorflow semantics:

from xview.models.simple_fcn import SimpleFCN as FCN
from xview.data import Synthia
dataset = Synthia
# custom configs for the model
config = {'num_classes': 10,
            'dropout_probability': 0.2}
with FCN(data_description=dataset.get_data_description(), **config) as net:
    # Add data-loading to the graph.
    data = dataset(<config>)
    # Train the network for 10 iterations on data.
    net.fit(data.get_trainset(), 10)
    # Alternatively, load existing weigths.
    net.load_weights(<path to weights checkpoint>)
    net.import_weights(<path to npz file with stored weights>)
    # Now you can use it to produce classifications.
    semantic_map = net.predict({'rgb': <rgb image blob>, 'depth': <depth image blob>})
    evaluation = net.score(data.get_testset())

Any implementation of a model should inherit from base_model.py, which implement basic sklean interfaces such as .fit(), .score(), .predict() etc. aswell as training procedures and graph building.

Model implementation should be split up into a method that defines a series of tensorflow-ops mapping input to output and a class inheriting from base_model.py that handles all the functionality around this such as data piping etc. In this way, models can make use of the simple network definitions without building the whole model-object. See xview/models/simple_fcn.py for an example.

Data

Data interfaces return tf.dataset objects, which are documented here. Optionally, also numpy blobs can be produced (be careful with memory usage). All data interfaces inherit from xview/datasets/data_baseclass.py, which should be consulted for the interface details.

Experiments

The experiments/utils.py contains basic functions to interact with the sacred storage service, i.e. to load data from previous experiments and to store data from the current experiment.

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