All Projects → BichenWuUCB → Squeezeseg

BichenWuUCB / Squeezeseg

Licence: bsd-2-clause
Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Squeezeseg

Constrained attention filter
(ECCV 2020) Tensorflow implementation of A Generic Visualization Approach for Convolutional Neural Networks
Stars: ✭ 36 (-92.5%)
Mutual labels:  autonomous-vehicles, deep-neural-networks
Dynslam
Master's Thesis on Simultaneous Localization and Mapping in dynamic environments. Separately reconstructs both the static environment and the dynamic objects from it, such as cars.
Stars: ✭ 446 (-7.08%)
Mutual labels:  autonomous-vehicles
Taso
The Tensor Algebra SuperOptimizer for Deep Learning
Stars: ✭ 391 (-18.54%)
Mutual labels:  deep-neural-networks
Deepface
Deep Learning Models for Face Detection/Recognition/Alignments, implemented in Tensorflow
Stars: ✭ 409 (-14.79%)
Mutual labels:  deep-neural-networks
Hello tf c api
Neural Network TensorFlow C API
Stars: ✭ 388 (-19.17%)
Mutual labels:  deep-neural-networks
Nn playground
Experimental keras implementation of novel neural network structures
Stars: ✭ 414 (-13.75%)
Mutual labels:  deep-neural-networks
Flow Forecast
Deep learning PyTorch library for time series forecasting, classification, and anomaly detection (originally for flood forecasting).
Stars: ✭ 368 (-23.33%)
Mutual labels:  deep-neural-networks
Compression
Data compression in TensorFlow
Stars: ✭ 458 (-4.58%)
Mutual labels:  deep-neural-networks
Gradient Centralization
A New Optimization Technique for Deep Neural Networks
Stars: ✭ 439 (-8.54%)
Mutual labels:  deep-neural-networks
Pytorch Cpn
A PyTorch re-implementation of CPN (Cascaded Pyramid Network for Multi-Person Pose Estimation)
Stars: ✭ 403 (-16.04%)
Mutual labels:  deep-neural-networks
Detection 2016 Nipsws
Hierarchical Object Detection with Deep Reinforcement Learning
Stars: ✭ 401 (-16.46%)
Mutual labels:  deep-neural-networks
Awesome Autonomous Vehicle
无人驾驶的资源列表中文版
Stars: ✭ 389 (-18.96%)
Mutual labels:  autonomous-vehicles
Apm planner
APM Planner Ground Control Station (Qt)
Stars: ✭ 413 (-13.96%)
Mutual labels:  autonomous-vehicles
Deeprobust
A pytorch adversarial library for attack and defense methods on images and graphs
Stars: ✭ 388 (-19.17%)
Mutual labels:  deep-neural-networks
Androidtensorflowmnistexample
Android TensorFlow MachineLearning MNIST Example (Building Model with TensorFlow for Android)
Stars: ✭ 449 (-6.46%)
Mutual labels:  deep-neural-networks
Apollo
An open autonomous driving platform
Stars: ✭ 19,814 (+4027.92%)
Mutual labels:  autonomous-vehicles
Neuronlp2
Deep neural models for core NLP tasks (Pytorch version)
Stars: ✭ 397 (-17.29%)
Mutual labels:  deep-neural-networks
Gorgonia
Gorgonia is a library that helps facilitate machine learning in Go.
Stars: ✭ 4,295 (+794.79%)
Mutual labels:  deep-neural-networks
Docs
TensorFlow documentation
Stars: ✭ 4,999 (+941.46%)
Mutual labels:  deep-neural-networks
Aimet
AIMET is a library that provides advanced quantization and compression techniques for trained neural network models.
Stars: ✭ 453 (-5.62%)
Mutual labels:  deep-neural-networks

SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud

By Bichen Wu, Alvin Wan, Xiangyu Yue, Kurt Keutzer (UC Berkeley)

This repository contains a tensorflow implementation of SqueezeSeg, a convolutional neural network model for LiDAR segmentation. A demonstration of SqueezeSeg can be found below:

Please refer to our video for a high level introduction of this work: https://youtu.be/Xyn5Zd3lm6s. For more details, please refer to our paper: https://arxiv.org/abs/1710.07368. If you find this work useful for your research, please consider citing:

@article{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},
    journal={ICRA},
    year={2018}
}
@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{yue2018lidar,
    title={A lidar point cloud generator: from a virtual world to autonomous driving},
    author={Yue, Xiangyu and Wu, Bichen and Seshia, Sanjit A and Keutzer, Kurt and Sangiovanni-Vincentelli, Alberto L},
    booktitle={ICMR},
    pages={458--464},
    year={2018},
    organization={ACM}
}

We recently open-sourced the code for SqueezeSegV2, a follow-up work to SqueezeSeg with significantly improved performance. For details, please check out: https://github.com/xuanyuzhou98/SqueezeSegV2

License

SqueezeSeg is released under the BSD license (See LICENSE for details). The dataset used for training, evaluation, and demostration of SqueezeSeg is modified from KITTI raw dataset. For your convenience, we provide links to download the converted dataset, which is distrubited under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.

Installation:

The instructions are tested on Ubuntu 16.04 with python 2.7 and tensorflow 1.0 with GPU support.

  • Clone the SqueezeSeg repository:

    git clone https://github.com/BichenWuUCB/SqueezeSeg.git
    

    We name the root directory as $SQSG_ROOT.

  • Setup virtual environment:

    1. By default we use Python2.7. Create the virtual environment

      virtualenv env
      
    2. Activate the virtual environment

      source env/bin/activate
      
  • Use pip to install required Python packages:

    pip install -r requirements.txt
    

Demo:

  • To run the demo script:
    cd $SQSG_ROOT/
    python ./src/demo.py
    
    If the installation is correct, the detector should write the detection results as well as 2D label maps to $SQSG_ROOT/data/samples_out. Here are examples of the output label map overlaped with the projected LiDAR signal. Green masks indicate clusters corresponding to cars and blue masks indicate cyclists.

Training/Validation

  • First, download training and validation data (3.9 GB) from this link. This dataset contains LiDAR point-cloud projected to a 2D spherical surface. Refer to our paper for details of the data conversion procedure. This dataset is converted from KITTI raw dataset and is distrubited under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.

    cd $SQSG_ROOT/data/
    wget https://www.dropbox.com/s/pnzgcitvppmwfuf/lidar_2d.tgz
    tar -xzvf lidar_2d.tgz
    rm lidar_2d.tgz
    
  • Now we can start training by

    cd $SQSG_ROOT/
    ./scripts/train.sh -gpu 0 -image_set train -log_dir ./log/
    

    Training logs and model checkpoints will be saved in the log directory.

  • We can launch evaluation script simutaneously with training

    cd $SQSG_ROOT/
    ./scripts/eval.sh -gpu 1 -image_set val -log_dir ./log/
    
  • We can monitor the training process using tensorboard.

    tensorboard --logdir=$SQSG_ROOT/log/
    

    Tensorboard displays information such as training loss, evaluation accuracy, visualization of detection results in the training process, which are helpful for debugging and tunning models, as shown below: alt text alt text

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