{"id":15107985,"url":"https://github.com/prbonn/depth_clustering","last_synced_at":"2025-05-16T13:02:15.290Z","repository":{"id":43612547,"uuid":"74360474","full_name":"PRBonn/depth_clustering","owner":"PRBonn","description":":taxi: Fast and robust clustering of point clouds generated with a Velodyne sensor. ","archived":false,"fork":false,"pushed_at":"2021-11-11T12:58:42.000Z","size":10148,"stargazers_count":1259,"open_issues_count":7,"forks_count":381,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-05-16T13:01:37.020Z","etag":null,"topics":["catkin","clustering","depth","depth-clustering","depth-image","fast","lidar","pcl","point-cloud","range","range-image","real-time","robotics","ros","segmentation","velodyne","velodyne-sensor"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PRBonn.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"niosus","open_collective":"niosus","issuehunt":"niosus","custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=2QLY7J4Q944HS"]}},"created_at":"2016-11-21T12:16:22.000Z","updated_at":"2025-05-08T03:32:53.000Z","dependencies_parsed_at":"2022-08-19T17:50:20.507Z","dependency_job_id":null,"html_url":"https://github.com/PRBonn/depth_clustering","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fdepth_clustering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fdepth_clustering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fdepth_clustering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PRBonn%2Fdepth_clustering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PRBonn","download_url":"https://codeload.github.com/PRBonn/depth_clustering/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254535792,"owners_count":22087397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catkin","clustering","depth","depth-clustering","depth-image","fast","lidar","pcl","point-cloud","range","range-image","real-time","robotics","ros","segmentation","velodyne","velodyne-sensor"],"created_at":"2024-09-25T21:43:35.038Z","updated_at":"2025-05-16T13:02:15.223Z","avatar_url":"https://github.com/PRBonn.png","language":"C++","funding_links":["https://github.com/sponsors/niosus","https://opencollective.com/niosus","https://issuehunt.io/r/niosus","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=2QLY7J4Q944HS"],"categories":[],"sub_categories":[],"readme":"# Depth Clustering #\n\n[![Build Status][travis-img]][travis-link]\n[![Coverage Status][coveralls-img]][coveralls-link]\n\nThis is a fast and robust algorithm to segment point clouds taken with\nVelodyne sensor into objects. It works with all available Velodyne sensors,\ni.e. 16, 32 and 64 beam ones.\n\nCheck out a video that shows all objects outlined in orange:\n[![Segmentation illustration](doc/pics/depth_clustering_new_short_1.gif)](https://www.youtube.com/watch?v=UXHX9kFGXfg \"Segmentation\")\n\n\n## Prerequisites ##\nI recommend using a virtual environment in your catkin workspace (`\u003ccatkin_ws\u003e`\nin this readme) and will assume that you have it set up throughout this readme.\nPlease update your commands accordingly if needed. I will be using `pipenv`\nthat you can install with `pip`.\n\n### Set up workspace and catkin ###\nRegardless of your system you will need to do the following steps:\n```bash\ncd \u003ccatkin_ws\u003e            # navigate to the workspace\npipenv shell --fancy      # start a virtual environment\npip install catkin-tools  # install catkin-tools for building\nmkdir src                 # create src dir if you don't have it already\n# Now you just need to clone the repo:\ngit clone https://github.com/PRBonn/depth_clustering src/depth_clustering\n```\n\n### System requirements ###\nYou will need OpenCV, QGLViewer, FreeGLUT, QT4 or QT5 and optionally PCL and/or\nROS. The following sections contain an installation command for various Ubuntu\nsystems (click folds to expand):\n\n\u003cdetails\u003e\n\u003csummary\u003eUbuntu 14.04\u003c/summary\u003e\n\n#### Install these packages:\n\n```bash\nsudo apt install libopencv-dev libqglviewer-dev freeglut3-dev libqt4-dev\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUbuntu 16.04\u003c/summary\u003e\n\n#### Install these packages:\n\n```bash\nsudo apt install libopencv-dev libqglviewer-dev freeglut3-dev libqt5-dev\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUbuntu 18.04\u003c/summary\u003e\n\n#### Install these packages:\n\n```bash\nsudo apt install libopencv-dev libqglviewer-dev-qt5 freeglut3-dev qtbase5-dev \n```\n\nYou might also need the latest GoogleTest binary installed on your systems. As Ubuntu is not shipped with these binaries by default, you would have to install them yourself or adapt the build script to build them from source.\n\n\u003c/details\u003e\n\n### Optional requirements ###\nIf you want to use PCL clouds and/or use ROS for data acquisition you can install the following: \n- (optional) PCL - needed for saving clouds to disk\n- (optional) ROS - needed for subscribing to topics\n\n## How to build? ##\nThis is a catkin package. So we assume that the code is in a catkin workspace\nand CMake knows about the existence of Catkin. It should be already taken care\nof if you followed the instructions [here](#set-up-workspace-and-catkin). Then\nyou can build it from the project folder:\n\n```bash\nmkdir build\ncd build\ncmake ..\nmake -j4\nctest -VV  # run unit tests, optional\n```\n\nIt can also be built with `catkin_tools` if the code is inside catkin\nworkspace:\n\n```bash\ncatkin build depth_clustering\n```\n\nP.S. in case you don't use `catkin build` you [should][catkin_tools_docs] reconsider your decision.\n\n## How to run? ##\nSee [examples](examples/). There are ROS nodes as well as standalone\nbinaries. Examples include showing axis oriented bounding boxes around found\nobjects (these start with `show_objects_` prefix) as well as a node to save all\nsegments to disk. The examples should be easy to tweak for your needs.\n\n## Run on real world data ##\nGo to folder with binaries:\n```\ncd \u003cpath_to_project\u003e/build/devel/lib/depth_clustering\n```\n\n#### Frank Moosmann's \"Velodyne SLAM\" Dataset ####\nGet the data:\n```\nmkdir data/; wget http://www.mrt.kit.edu/z/publ/download/velodyneslam/data/scenario1.zip -O data/moosmann.zip; unzip data/moosmann.zip -d data/; rm data/moosmann.zip\n```\n\nRun a binary to show detected objects:\n```\n./show_objects_moosmann --path data/scenario1/\n```\n\nAlternatively, you can run the data from Qt GUI (as in video):\n```\n./qt_gui_app\n```\nOnce the GUI is shown, click on \u003ckbd\u003eOpenFolder\u003c/kbd\u003e button and choose the\nfolder where you have unpacked the `png` files, e.g. `data/scenario1/`.\nNavigate the viewer with arrows and controls seen on screen.\n\n#### Other data ####\nThere are also examples on how to run the processing on KITTI data and on ROS\ninput. Follow the `--help` output of each of the examples for more details.\n\nAlso you can load the data from the GUI. Make sure you are loading files with\ncorrect extension (`*.txt` and `*.bin` for KITTI, `*.png` for Moosmann's data).\n\n## Documentation ##\nYou should be able to get Doxygen documentation by running:\n```\ncd doc/\ndoxygen Doxyfile.conf\n```\n\n## Related publications ##\nPlease cite related papers if you use this code:\n\n```\n@InProceedings{bogoslavskyi16iros,\ntitle     = {Fast Range Image-Based Segmentation of Sparse 3D Laser Scans for Online Operation},\nauthor    = {I. Bogoslavskyi and C. Stachniss},\nbooktitle = {Proc. of The International Conference on Intelligent Robots and Systems (IROS)},\nyear      = {2016},\nurl       = {http://www.ipb.uni-bonn.de/pdfs/bogoslavskyi16iros.pdf}\n}\n```\n\n```\n@Article{bogoslavskyi17pfg,\ntitle   = {Efficient Online Segmentation for Sparse 3D Laser Scans},\nauthor  = {I. Bogoslavskyi and C. Stachniss},\njournal = {PFG -- Journal of Photogrammetry, Remote Sensing and Geoinformation Science},\nyear    = {2017},\npages   = {1--12},\nurl     = {https://link.springer.com/article/10.1007%2Fs41064-016-0003-y},\n}\n```\n\n\n[travis-img]: https://img.shields.io/travis/PRBonn/depth_clustering/master.svg?style=for-the-badge\n[travis-link]: https://travis-ci.org/PRBonn/depth_clustering\n\n[coveralls-img]: https://img.shields.io/coveralls/github/PRBonn/depth_clustering/master.svg?style=for-the-badge\n[coveralls-link]: https://coveralls.io/github/PRBonn/depth_clustering\n\n[build-status-img]: https://gitlab.ipb.uni-bonn.de/igor/depth_clustering/badges/master/build.svg\n[coverage-img]: https://gitlab.ipb.uni-bonn.de/igor/depth_clustering/badges/master/coverage.svg\n[commits-link]: https://gitlab.ipb.uni-bonn.de/igor/depth_clustering/commits/master\n\n[catkin_tools_docs]: https://catkin-tools.readthedocs.io/en/latest/installing.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Fdepth_clustering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprbonn%2Fdepth_clustering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprbonn%2Fdepth_clustering/lists"}