Code Monkey home page Code Monkey logo

squeezesegv3's Introduction

SqueezeSegV3: Spatially-Adaptive Convolution for Efficient Point-Cloud Segmentation.

By Chenfeng Xu, Bichen Wu, Zining Wang, Wei Zhan, Peter Vajda, Kurt Keutzer, and Masayoshi Tomizuka.

This repository contains a Pytorch implementation of SqueezeSegV3, a state-of-the-art model for LiDAR segmentation. The framework of our SqueezeSegV3 can be found below:

Selected quantitative results of different approaches on the SemanticKITTI dataset (* means KNN post-processing):

Method mIoU car bicycle motorcycle truck person bicyclist motorcyclist road
SqueezeSeg 29.5 68.8 16.0 4.1 3.3 12.9 13.1 0.9 85.4
SqueezeSegV2 39.7 81.8 18.5 17.9 13.4 20.1 25.1 3.9 88.6
RangeNet21 47.4 85.4 26.2 26.5 18.6 31.8 33.6 4.0 91.4
RangeNet53 49.9 86.4 24.5 32.7 25.5 36.2 33.6 4.7 91.8
SqueezeSegV3-21 48.8 84.6 31.5 32.4 11.3 39.4 36.1 21.3 90.8
SqueezeSegV3-53 52.9 87.4 35.2 33.7 29.0 41.8 39.1 20.1 91.8
SqueezeSegV3-21* 51.6 89.4 33.7 34.9 11.3 42.6 44.9 21.2 90.8
SqueezeSegV3-53* 55.9 92.5 38.7 36.5 29.6 45.6 46.2 20.1 91.7

Visualization results of SqueezeSegV3:

For more details, please refer to our paper: SqueezeSegV3. The work is a follow-up work to SqueezeSeg, SqueezeSegV2 and LATTE. If you find this work useful for your research, please consider citing:

@article{xu2020squeezesegv3,
  title={SqueezeSegV3: Spatially-Adaptive Convolution for Efficient Point-Cloud Segmentation},
  author={Xu, Chenfeng and Wu, Bichen and Wang, Zining and Zhan, Wei and Vajda, Peter and Keutzer, Kurt and Tomizuka, Masayoshi},
  journal={arXiv preprint arXiv:2004.01803},
  year={2020}
}

Related works:

 @inproceedings{wu2018squeezesegv2,
   title={SqueezeSegV2: Improved Model Structure and Unsupervised Domain Adaptation
   for Road-Object Segmentation from a LiDAR Point Cloud},
   author={Wu, Bichen and Zhou, Xuanyu and Zhao, Sicheng and Yue, Xiangyu and Keutzer, Kurt},
   booktitle={ICRA},
   year={2019},
 }
 
@inproceedings{wu2017squeezeseg,
   title={Squeezeseg: Convolutional neural nets with recurrent crf for real-time road-object segmentation from 3d lidar point cloud},
   author={Wu, Bichen and Wan, Alvin and Yue, Xiangyu and Keutzer, Kurt},
   booktitle={ICRA}, 
   year={2018}
 }
 
@inproceedings{wang2019latte,
  title={LATTE: accelerating lidar point cloud annotation via sensor fusion, one-click annotation, and tracking},
  author={Wang, Bernie and Wu, Virginia and Wu, Bichen and Keutzer, Kurt},
  booktitle={2019 IEEE Intelligent Transportation Systems Conference (ITSC)},
  pages={265--272},
  year={2019},
  organization={IEEE}
}

License

SqueezeSegV3 is released under the BSD license (See LICENSE for details).

Installation

The instructions are tested on Ubuntu 16.04 with python 3.6 and Pytorch 1.1.0 with GPU support.

  • Clone the SqueezeSeg3 repository:
git clone https://github.com/chenfengxu714/SqueezeSegV3.git
  • Use pip to install required Python packages:
pip install -r requirements.txt
  • The SemanticKITTI dataset can be download here.

Pre-trained Models

The pre-trained SqueezezSegV3-21 and SqueezeSegV3-53 are avaliable at Google Drive, you can directly download the two files.

Demo

We provide a demo script:

cd ./src/tasks/semantic/
python demo.py -m /path/to/model

You can find the prediction .label files and projected map in ./src/sample_output file, an example is shown below:

Inference

To infer the predictions for the entire dataset:

cd ./src/tasks/semantic/
python infer.py -d /path/to/dataset/ -l /path/for/predictions -m /path/to/model

To visualize the prediction for the sequence point cloud:

python visualize.py -d /path/to/dataset/ -p /path/to/predictions/ -s SQ_Number

Training

cd ./src/tasks/semantic/

To train a network (from scratch):

python train.py -d /path/to/dataset -ac /config/arch/CHOICE.yaml -l /path/to/log

To train a network (from pretrained model):

python train.py -d /path/to/dataset -ac /config/arch/CHOICE.yaml -l /path/to/log -p /path/to/pretrained

We can monitor the training process using tensorboard.

tensorboard --logdir /file_path/

Evaluation

python evaluate_iou.py -d /path/to/dataset -p /path/to/predictions/ --split valid

Credits

We referred to RangeNet++ (Paper, Code) during our development. We thank the authors of RangeNet++ for open-sourcing their code.

squeezesegv3's People

Contributors

chenfengxu714 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.