Giter Site home page Giter Site logo

kevinjohnsonl / patchwork-plusplus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from url-kaist/patchwork-plusplus

0.0 0.0 0.0 35.41 MB

Patchwork++: Fast and robust ground segmentation method for 3D point cloud. @ IROS'22

License: GNU General Public License v3.0

C++ 91.28% CMake 8.72%

patchwork-plusplus's Introduction

Patchwork++

๐Ÿ“‘ About Patchwork++ (IROS'22)

  • A fast and robust ground segmentation algorithm on 3D point cloud.

animated

๐Ÿ“‚ What's in this repo

  • C++ source code of Patchwork++ (patchworkpp)
  • Python binding of Patchwork++ using pybind11 (python_wrapper)
  • Examples codes, which visualizes a ground segmentation result by Patchwork++ (examples) ๐Ÿ‘

If you are familiar with ROS, you can also visit here and try executing ROS-based Patchwork++!

๐Ÿ“ฆ Prerequisite packages

You may need to install Eigen, numpy, and Open3D. Open3D is used for point cloud visualization.

# To install Eigen and numpy
$ sudo apt-get install libeigen3-dev
$ pip install numpy

# To install Open3D Python packages
$ pip install open3d

# To install Open3D C++ packages
$ git clone https://github.com/isl-org/Open3D
$ cd Open3D
$ util/install_deps_ubuntu.sh # Only needed for Ubuntu
$ mkdir build && cd build
$ cmake ..
$ make
$ sudo make install

โš™๏ธ How to build

Please follow below codes to build Patchwork++.

$ git clone https://github.com/url-kaist/patchwork-plusplus
$ cd patchwork-plusplus
$ mkdir build && cd build
$ cmake ..
$ make

๐Ÿƒ To run the demo codes

There are some example codes for your convenience! Please try using Patchwork++ to segment ground points in a 3D point cloud ๐Ÿ˜ƒ

Python

# Run patchwork++ and visualize ground points(green) and nonground points(red)
$ python examples/python/demo_visualize.py

# Run patchwork++ with sequential point cloud inputs 
$ python examples/python/demo_sequential.py

C++

# Run patchwork++ and visualize ground points(green) and nonground points(red)
$ ./build/examples/cpp/demo_visualize

# Run patchwork++ with sequential point cloud inputs 
$ ./build/examples/cpp/demo_sequential

# Run patchwork++ with your point cloud file, example here
$ ./build/examples/cpp/demo_visualize ./data/000000.bin # specify file path

Demo Result

If you execute Patchwork++ with given demo codes well, you can get the following result!

It is a ground segmentation result of data/000000.bin file using Open3D visualization. (Ground : Green, Nonground : Red)

Open3D Visualization of "data/000000.bin"

๐Ÿ“ Citation

If you use our codes, please cite our paper (arXiv, IEEE Xplore)

@inproceedings{lee2022patchworkpp,
    title={{Patchwork++: Fast and robust ground segmentation solving partial under-segmentation using 3D point cloud}},
    author={Lee, Seungjae and Lim, Hyungtae and Myung, Hyun},
    booktitle={Proc. IEEE/RSJ Int. Conf. Intell. Robots Syst.},
    year={2022},
    pages={13276-13283}
}

In addition, you can also check the paper of our baseline, Patchwork. (arXiv, IEEE Xplore)

@article{lim2021patchwork,
    title={Patchwork: Concentric Zone-based Region-wise Ground Segmentation with Ground Likelihood Estimation Using a 3D LiDAR Sensor},
    author={Lim, Hyungtae and Minho, Oh and Myung, Hyun},
    journal={IEEE Robotics and Automation Letters},
    year={2021}
}

๐Ÿšฉ Tested Environment

  • Ubuntu 18.04 and 20.04
  • CMake 3.25.1 (>=3.20, min. Required to install Open3D)
  • Open3D 0.15.2
  • pybind11 v2.2.3
  • Eigen 3.3.7

๐Ÿ“ซ Contact Information

If you have any questions, please do not hesitate to contact us

patchwork-plusplus's People

Contributors

seungjae24 avatar kin-zhang avatar kevinjohnsonl 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.