{"id":21269140,"url":"https://github.com/yanx27/js3c-net","last_synced_at":"2025-07-11T05:30:53.665Z","repository":{"id":43031941,"uuid":"319369856","full_name":"yanx27/JS3C-Net","owner":"yanx27","description":"Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion (AAAI 2021)","archived":false,"fork":false,"pushed_at":"2021-08-15T06:00:13.000Z","size":66392,"stargazers_count":209,"open_issues_count":2,"forks_count":34,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-10-27T20:20:12.711Z","etag":null,"topics":["auto-drive","completion","lidar-point-cloud","lidar-segmentation","point-cloud","segmentation","semantic-scene-completion","semantickitti","semanticposs"],"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/yanx27.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-07T15:56:51.000Z","updated_at":"2024-09-20T08:16:07.000Z","dependencies_parsed_at":"2022-08-12T10:11:08.559Z","dependency_job_id":null,"html_url":"https://github.com/yanx27/JS3C-Net","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanx27%2FJS3C-Net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanx27%2FJS3C-Net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanx27%2FJS3C-Net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yanx27%2FJS3C-Net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yanx27","download_url":"https://codeload.github.com/yanx27/JS3C-Net/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225693808,"owners_count":17509227,"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":["auto-drive","completion","lidar-point-cloud","lidar-segmentation","point-cloud","segmentation","semantic-scene-completion","semantickitti","semanticposs"],"created_at":"2024-11-21T08:07:28.609Z","updated_at":"2024-11-21T08:07:29.192Z","avatar_url":"https://github.com/yanx27.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JS3C-Net\n### Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion (AAAI2021)\n \nThis repository is for **JS3C-Net** introduced in the following **AAAI-2021** paper [[arxiv paper]](https://arxiv.org/abs/2012.03762)\n\nXu Yan, Jiantao Gao, Jie Li, Ruimao Zhang, [Zhen Li*](https://mypage.cuhk.edu.cn/academics/lizhen/), Rui Huang and Shuguang Cui, \"Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion\".\n\n* Semantic Segmentation and Semantic Scene Completion:\n![](figure/results.gif)\n\nIf you find our work useful in your research, please consider citing:\n```\n@inproceedings{yan2021sparse,\n  title={Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion},\n  author={Yan, Xu and Gao, Jiantao and Li, Jie and Zhang, Ruimao and Li, Zhen and Huang, Rui and Cui, Shuguang},\n  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},\n  volume={35},\n  number={4},\n  pages={3101--3109},\n  year={2021}\n}\n```\n\n## Getting Started\n\n### Set up\nClone the repository:\n```\ngit clone https://github.com/yanx27/JS3C-Net.git\n```\n\nInstallation instructions for Ubuntu 16.04:\n     \n* Make sure \u003ca href=\"https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html\"\u003eCUDA\u003c/a\u003e  and \u003ca href=\"https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html\"\u003ecuDNN\u003c/a\u003e are installed. Only this configurations has been tested: \n     - Python 3.6.9, Pytorch 1.3.1, CUDA 10.1;\n* Compile the customized operators by `sh complile.sh` in `/lib`. \n* Install [spconv1.0](https://github.com/traveller59/spconv)  in `/lib/spconv`. We use the same version with [PointGroup](https://github.com/Jia-Research-Lab/PointGroup), you can install it according to the instruction. Higher version spconv may cause issues.\n\n\n### Data Preparation\n* SemanticKITTI and SemanticPOSS datasets can be found in [semantickitti-page](http://semantic-kitti.org/dataset.html#download) and [semanticposs-page](http://www.poss.pku.edu.cn/semanticposs.html). \n* Download the files related to **semantic segmentation** and extract everything into the same folder. \n* Use [voxelizer](https://github.com/jbehley/voxelizer) generate ground truths of **semantic scene completion**, where following parameters are used. We provide pre-processed SemanticPOSS SSC labels [here](https://drive.google.com/file/d/1AGagbRwQe3aR8liaC4YnkMW1iwSCLvvN/view?usp=sharing).\n```angular2\nmin range: 2.5\nmax range: 70\nfuture scans: 70\nmin extent: [0, -25.6, -2]\nmax extent: [51.2, 25.6,  4.4]\nvoxel size: 0.2\n```\n\n* Finally, the dataset folder should be organized as follows.\n```angular2\nSemanticKITTI(POSS)\n├── dataset\n│   ├── sequences\n│   │  ├── 00\n│   │  │  ├── labels\n│   │  │  ├── velodyne\n│   │  │  ├── voxels\n│   │  │  ├── [OTHER FILES OR FOLDERS]\n│   │  ├── 01\n│   │  ├── ... ...\n\n```\n* Note that the data for official SemanticKITTI SSC benchmark only contains 1/5 of the whole sequence and they provide all extracted SSC data for the training set [here](http://semantic-kitti.org/assets/data_odometry_voxels_all.zip).\n* (**New**) In this repo, we use old version of SemanticKITTI, and there is a bug of generating SSC data contains a wrong shift on upwards direction (see [issue](https://github.com/PRBonn/semantic-kitti-api/issues/49)). Therefore, we add an additional shifting to align their old version dataset [here](https://github.com/yanx27/JS3C-Net/blob/3433634c9cda7e8ed5c623e0ae9a9f2f2c5cee09/test_kitti_ssc.py#L94), and if you use the newest version of data, you can delete it. Also, you can check the alignment ratio by using `--debug`. \n\n### SemanticKITTI\n#### Training\nRun the following command to start the training. Output (logs) will be redirected to `./logs/JS3C-Net-kitti/`.  You can ignore this step if you want to use our pretrained model in `./logs/JS3C-Net-kitti/`.\n```angular2\n$ python train.py --gpu 0 --log_dir JS3C-Net-kitti --config opt/JS3C_default_kitti.yaml\n```\n#### Evaluation Semantic Segmentation\nRun the following command to evaluate model on evaluation or test dataset\n```\n$ python test_kitti_segment.py --log_dir JS3C-Net-kitti --gpu 0 --dataset [val/test]\n```\n\n#### Evaluation Semantic Scene Completion\nRun the following command to evaluate model on evaluation or test dataset\n```\n$ python test_kitti_ssc.py --log_dir JS3C-Net-kitti --gpu 0 --dataset [val/test]\n```\n\n### SemanticPOSS\nResults on SemanticPOSS can be easily obtained by\n```angular2\n$ python train.py --gpu 0 --log_dir JS3C-Net-POSS --config opt/JS3C_default_POSS.yaml\n$ python test_poss_segment.py --gpu 0 --log_dir JS3C-Net-POSS\n```\n\n## Pretrained Model\nWe trained our model on a single Nvidia Tesla V100 GPU with batch size 6. If you want to train on the TITAN GPU, you can choose batch size as 2. Please modify `dataset_dir` in `args.txt` to your path.\n\n| Model | #Param | Segmentation | Completion | Checkpoint |\n|--|--|--|--|--|\n|JS3C-Net| 2.69M | 66.0 | 56.6 | [18.5MB](log/JS3C-Net-kitti) |\n\n## Results on SemanticKITTI Benchmark\nQuantitative results on **SemanticKITTI Benchmark** at the submisison time.\n![](figure/benchmark.png)\n\n## Acknowledgement\nThis project is not possible without multiple great opensourced codebases. \n* [SparseConv](https://github.com/facebookresearch/SparseConvNet)\n* [spconv](https://github.com/traveller59/spconv)\n* [PointGroup](https://github.com/Jia-Research-Lab/PointGroup)\n* [nanoflann](https://github.com/jlblancoc/nanoflann)\n* [semantic-kitti-api](https://github.com/PRBonn/semantic-kitti-api)\n## License\nThis repository is released under MIT License (see LICENSE file for details).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanx27%2Fjs3c-net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyanx27%2Fjs3c-net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyanx27%2Fjs3c-net/lists"}