PyTorch implementation of Memory-based semantic segmentation for off-road unstructured natural environments.

Related tags

Deep Learning MemSeg
Overview

MemSeg: Memory-based semantic segmentation for off-road unstructured natural environments

Introduction

This repository is a PyTorch implementation of Memory-based semantic segmentation for off-road unstructured natural environments. This work is based on semseg.

The codebase mainly uses ResNet18, ResNet50 and MobileNet-V2 as backbone with ASPP module and can be easily adapted to other basic semantic segmentation structures.

Sample experimented dataset is RUGD.

Requirement

Hardware: >= 11G GPU memory

Software: PyTorch>=1.0.0, python3

Usage

For installation, follow installation steps below or recommend you to refer to the instructions described here.

For its pretrained ResNet50 backbone model, you can download from URL.

Getting Started

Installation

  1. Clone this repository.
git clone https://github.com/youngsjjn/MemSeg.git
  1. Install Python dependencies.
pip install -r requirements.txt

Implementation

  1. Download datasets (i.e. RUGD) and change the root of data path in config.

Download data list of RUGD here.

  1. Inference If you want to inference on pretrained models, download pretrained network in my drive and save them in ./exp/rugd/.

Inference "ResNet50 + Deeplabv3" without the memory module

sh tool/test.sh rugd deeplab50

Inference "ResNet50 + Deeplabv3" with the memory module

sh tool/test_mem.sh rugd deeplab50mem
Network mIoU
ResNet18 + PSPNet 33.42
ResNet18 + PSPNet (Memory) 34.13
ResNet18 + Deeplabv3 33.48
ResNet18 + Deeplabv3 (Memory) 35.07
ResNet50 + Deeplabv3 36.77
ResNet50 + Deeplabv3 (Memory) 37.71
  1. Train (Evaluation is included at the end of the training) Train "ResNet50 + Deeplabv3" without the memory module
sh tool/train.sh rugd deeplab50

Train "ResNet50 + Deeplabv3" without the memory module

sh tool/train_mem.sh rugd deeplab50mem

Here, the example is for training or testing on "ResNet50 + Deeplabv3". If you want to train other networks, please change "deeplab50" or "deeplab50mem" as a postfix of a config file name.

For example, train "ResNet18 + PSPNet" with the memory module:

sh tool/train_mem.sh rugd pspnet18mem

Citation

If you like our work and use the code or models for your research, please cite our work as follows.

@article{DBLP:journals/corr/abs-2108-05635,
  author    = {Youngsaeng Jin and
               David K. Han and
               Hanseok Ko},
  title     = {Memory-based Semantic Segmentation for Off-road Unstructured Natural
               Environments},
  journal   = {CoRR},
  volume    = {abs/2108.05635},
  year      = {2021},
  url       = {https://arxiv.org/abs/2108.05635},
  eprinttype = {arXiv},
  eprint    = {2108.05635},
  timestamp = {Wed, 18 Aug 2021 19:45:42 +0200},
  biburl    = {https://dblp.org/rec/journals/corr/abs-2108-05635.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}
You might also like...
Siamese-nn-semantic-text-similarity - A repository containing comprehensive Neural Networks based PyTorch implementations for the semantic text similarity task A public available dataset for road boundary detection in aerial images
A public available dataset for road boundary detection in aerial images

Topo-boundary This is the official github repo of paper Topo-boundary: A Benchmark Dataset on Topological Road-boundary Detection Using Aerial Images

[CVPR'21] Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation
[CVPR'21] Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation

Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation Weixiang Yang, Qi Li, Wenxi Liu, Yuanlong Yu, Y

Trajectory Extraction of road users via Traffic Camera
Trajectory Extraction of road users via Traffic Camera

Traffic Monitoring Citation The associated paper for this project will be published here as soon as possible. When using this software, please cite th

Road Crack Detection Using Deep Learning Methods

Road-Crack-Detection-Using-Deep-Learning-Methods This is my Diploma Thesis ¨Road Crack Detection Using Deep Learning Methods¨ under the supervision of

Find-Lane-Line - Use openCV library and Python to detect the road-lane-line

Find-Lane-Line This project is to use openCV library and Python to detect the road-lane-line. Data Pipeline Step one : Color Selection Step two : Cann

Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONNX.
Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONNX.

ONNX-HybridNets-Multitask-Road-Detection Python scripts for performing road segemtnation and car detection using the HybridNets multitask model in ONN

Implementation of
Implementation of "Efficient Regional Memory Network for Video Object Segmentation" (Xie et al., CVPR 2021).

RMNet This repository contains the source code for the paper Efficient Regional Memory Network for Video Object Segmentation. Cite this work @inprocee

 Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP
Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP

Segmentation in Style: Unsupervised Semantic Image Segmentation with Stylegan and CLIP Abstract: We introduce a method that allows to automatically se

Comments
  • ModuleNotFoundError: No module named 'cv2'

    ModuleNotFoundError: No module named 'cv2'

    报错 Traceback (most recent call last): File "exp/rugd/deeplab50/test.py", line 6, in import cv2 ModuleNotFoundError: No module named 'cv2'

    确认环境已安装opencv-contrib-python,但仍然报错

    opened by supremebobohu 1
  • Relable RUGD?

    Relable RUGD?

    Hi, thanks for your open source. I want to use your code to train RUGD Dataset. However, I noticed that the annotation images of RUGD are RGB_images and there is the color_map like this: 0 void 0 0 0 1 dirt 108 64 20 2 sand 255 229 204 3 grass 0 102 0 4 tree 0 255 0 5 pole 0 153 153 6 water 0 128 255 7 sky 0 0 255 8 vehicle 255 255 0

    Because I didn't find any transform about the labels of RUGD to ID in order. So, should I need to relabel them into such format: 0 void 0 0 0 1 dirt 1 1 1 2 sand 2 2 2 3 grass 3 3 3 4 tree 4 4 4 5 pole 5 5 5 6 water 6 6 6 7 sky 7 7 7 8 vehicle 8 8 8

    opened by linchangyi1 1
Owner
null
Code repository for Semantic Terrain Classification for Off-Road Autonomous Driving

BEVNet Datasets Datasets should be put inside data/. For example, data/semantic_kitti_4class_100x100. Training BEVNet-S Example: cd experiments bash t

(Brian) JoonHo Lee 24 Dec 12, 2022
The Dual Memory is build from a simple CNN for the deep memory and Linear Regression fro the fast Memory

Simple-DMA a simple Dual Memory Architecture for classifications. based on the paper Dual-Memory Deep Learning Architectures for Lifelong Learning of

null 1 Jan 27, 2022
Official and maintained implementation of the paper "OSS-Net: Memory Efficient High Resolution Semantic Segmentation of 3D Medical Data" [BMVC 2021].

OSS-Net: Memory Efficient High Resolution Semantic Segmentation of 3D Medical Data Christoph Reich, Tim Prangemeier, Özdemir Cetin & Heinz Koeppl | Pr

Christoph Reich 23 Sep 21, 2022
Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation)

Recall Loss for Semantic Segmentation (This repo implements the paper: Recall Loss for Semantic Segmentation) Download Synthia dataset The model uses

null 32 Sep 21, 2022
PyTorch Code of "Memory In Memory: A Predictive Neural Network for Learning Higher-Order Non-Stationarity from Spatiotemporal Dynamics"

Memory In Memory Networks It is based on the paper Memory In Memory: A Predictive Neural Network for Learning Higher-Order Non-Stationarity from Spati

Yang Li 12 May 30, 2022
Implementation of a memory efficient multi-head attention as proposed in the paper, "Self-attention Does Not Need O(n²) Memory"

Memory Efficient Attention Pytorch Implementation of a memory efficient multi-head attention as proposed in the paper, Self-attention Does Not Need O(

Phil Wang 180 Jan 5, 2023
Segcache: a memory-efficient and scalable in-memory key-value cache for small objects

Segcache: a memory-efficient and scalable in-memory key-value cache for small objects This repo contains the code of Segcache described in the followi

TheSys Group @ CMU CS 78 Jan 7, 2023
Episodic-memory - Ego4D Episodic Memory Benchmark

Ego4D Episodic Memory Benchmark EGO4D is the world's largest egocentric (first p

null 3 Feb 18, 2022
TorchDistiller - a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

This project is a collection of the open source pytorch code for knowledge distillation, especially for the perception tasks, including semantic segmentation, depth estimation, object detection and instance segmentation.

yifan liu 147 Dec 3, 2022
Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation, CVPR 2018

Learning Pixel-level Semantic Affinity with Image-level Supervision This code is deprecated. Please see https://github.com/jiwoon-ahn/irn instead. Int

Jiwoon Ahn 337 Dec 15, 2022