Skip to content

Commit

Permalink
Releasing code
Browse files Browse the repository at this point in the history
  • Loading branch information
Shathe committed Sep 20, 2020
1 parent e0fb8f0 commit a4fbbcc
Show file tree
Hide file tree
Showing 98 changed files with 30,460 additions and 11 deletions.
12 changes: 12 additions & 0 deletions .idea/3D-MiniNet.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 17 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

<div align="center">

# 3D-MiniNet: Learning a 2D Representation from Point Clouds for Fast and Efficient 3D LIDAR Semantic Segmentation


Expand All @@ -12,30 +12,36 @@

</div>

## Abstract
LIDAR semantic segmentation, which assigns a semantic label to each 3D point measured by the LIDAR, is becoming an essential task for many robotic applications such as autonomous driving. Fast and efficient semantic segmentation methods are needed to match the strong computational and temporal restrictions of many of these real-world applications.
This work presents 3D-MiniNet, a novel approach for LIDAR semantic segmentation that combines 3D and 2D learning layers. It first learns a 2D representation from the raw points through a novel projection which extracts local and global information from the 3D data. This representation is fed to an efficient 2D Fully Convolutional Neural Network (FCNN) that produces a 2D semantic segmentation. These 2D semantic labels are re-projected back to the 3D space and enhanced through a post-processing module. The main novelty in our strategy relies on the projection learning module. Our detailed ablation study shows how each component contributes to the final performance of 3D-MiniNet. We validate our approach on well known public benchmarks (SemanticKITTI and KITTI), where 3D-MiniNet gets state-of-the-art results while being faster and more parameter-efficient than previous methods.



## Introduction
This repository contains the implementation of **3D-MiniNet**, a fast and efficient method for semantic segmentation of LIDAR point clouds.

The following figure shows the basic building block of our **3D-MiniNet**:

<p align="center"> <img src="figs/3D-MiniNet.png" width="100%"> </p>


3D-MiniNet overview. It takes *P* groups of *N* points each and computes semantic segmentation of the *M* points of the point cloud where *PxN=M*.

It consists of two main modules: our proposed learning module (on the left) which learns a 2D tensor which is fed to the second module, an efficient FCNN backbone (on the right) which computes the 2D semantic segmentation. Each 3D point of the point cloud is given a semantic label based on the 2D segmentation.

## Code will be soon released (Pytorch and Tensorflow implementation)
The Pytorch implementation will use the [RangeNet++ (Milioto et al. IROS2019) repo](https://github.com/PRBonn/lidar-bonnetal) as its code base.
## Code (Pytorch and Tensorflow implementation)

Our [PyTorch code](pytorch_code/lidar-bonnetal/train/tasks/semantic/) is based on [Milioto et al. code](https://github.com/PRBonn/lidar-bonnetal) and the [Tensorflow code](tensorflow_code) is based on [Biasutti et al. code](https://github.com/pbias/lunet). For copyright license, please check both code base licenses.

We took their code base and integrate our approach. Therefore, please, consider also citing or checking their work.

The Tensorflow implementation will use the [LuNet (Biasutti et al. ICCVW2019) repo](https://github.com/pbias/lunet) as its code base.

The code will be released around April.
In the meantime, check those works out and give them love, they are really good works!

## Citation

If you find 3D-MiniNet useful, please consider citing:

```
@article{alonso2020MiniNet3D,
title={3D-MiniNet: Learning a 2D Representation from Point Clouds for Fast and Efficient 3D LIDAR Semantic Segmentation},
author={Alonso, I{\~n}igo and Riazuelo, Luis and Montesano, Luis and Murillo, Ana C},
journal={arXiv preprint arXiv:2002.10893},
year={2020}
}
```
21 changes: 21 additions & 0 deletions pytorch_code/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License

Copyright (c) 2019 Andres Milioto, Jens Behley, Cyrill Stachniss, Photogrammetry and Robotics Lab, University of Bonn.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
11 changes: 11 additions & 0 deletions pytorch_code/lidar-bonnetal/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
*.pyc
*.pyo
*.o
*.so
*.a
**build
.vscode
.catkin_tools/
devel/
logs/
external.hpp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions pytorch_code/lidar-bonnetal/train/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions pytorch_code/lidar-bonnetal/train/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions pytorch_code/lidar-bonnetal/train/.idea/train.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions pytorch_code/lidar-bonnetal/train/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

136 changes: 136 additions & 0 deletions pytorch_code/lidar-bonnetal/train/.idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
Loading

0 comments on commit a4fbbcc

Please sign in to comment.