Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BichenWuUCB/SqueezeSeg
Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation
https://github.com/BichenWuUCB/SqueezeSeg
autonomous-vehicles deep-neural-networks lidar-point-cloud
Last synced: about 2 months ago
JSON representation
Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation
- Host: GitHub
- URL: https://github.com/BichenWuUCB/SqueezeSeg
- Owner: BichenWuUCB
- License: bsd-2-clause
- Created: 2017-12-06T22:18:53.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-05-22T01:10:13.000Z (over 5 years ago)
- Last Synced: 2024-08-01T03:46:09.149Z (4 months ago)
- Topics: autonomous-vehicles, deep-neural-networks, lidar-point-cloud
- Language: Python
- Size: 26.1 MB
- Stars: 559
- Watchers: 27
- Forks: 239
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-robotic-tooling - SqueezeSeg - Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation (Sensor Processing / Point Cloud Processing)
- awesome-robotic-tooling - SqueezeSeg - Implementation of SqueezeSeg, convolutional neural networks for LiDAR point clout segmentation. (Sensor Processing / Lidar and Point Cloud Processing)
README
## _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](https://github.com/BichenWuUCB/SqueezeSeg/blob/master/LICENSE) for details). The **dataset** used for training, evaluation, and demostration of SqueezeSeg is modified from [KITTI](http://www.cvlibs.net/datasets/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](https://creativecommons.org/licenses/by-nc-sa/3.0/).## Installation:
The instructions are tested on Ubuntu 16.04 with python 2.7 and tensorflow 1.0 with GPU support.
- Clone the SqueezeSeg repository:
```Shell
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
```Shell
virtualenv env
```2. Activate the virtual environment
```Shell
source env/bin/activate
```- Use pip to install required Python packages:
```Shell
pip install -r requirements.txt
```## Demo:
- To run the demo script:
```Shell
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](https://www.dropbox.com/s/pnzgcitvppmwfuf/lidar_2d.tgz?dl=0). 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](http://www.cvlibs.net/datasets/kitti/) raw dataset and is distrubited under the [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License](https://creativecommons.org/licenses/by-nc-sa/3.0/).
```Shell
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
```Shell
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
```Shell
cd $SQSG_ROOT/
./scripts/eval.sh -gpu 1 -image_set val -log_dir ./log/
```
- We can monitor the training process using tensorboard.
```Shell
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](https://github.com/BichenWuUCB/SqueezeSeg/raw/master/readme/Screen%20Shot%202018-02-17%20at%206.13.44%20PM.png)
![alt text](https://github.com/BichenWuUCB/SqueezeSeg/raw/master/readme/Screen%20Shot%202018-02-17%20at%206.14.05%20PM.png)