{"id":13442442,"url":"https://github.com/zhulf0804/PointPillars","last_synced_at":"2025-03-20T14:30:33.732Z","repository":{"id":43944372,"uuid":"497244131","full_name":"zhulf0804/PointPillars","owner":"zhulf0804","description":"A Simple PointPillars PyTorch Implementation for 3D LiDAR(KITTI) Detection.","archived":false,"fork":false,"pushed_at":"2025-02-15T23:55:34.000Z","size":4855,"stargazers_count":562,"open_issues_count":45,"forks_count":131,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-16T00:23:34.107Z","etag":null,"topics":["kitty","lidar-detection","pointpillars"],"latest_commit_sha":null,"homepage":"","language":"Python","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/zhulf0804.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-28T07:18:40.000Z","updated_at":"2025-02-15T23:55:38.000Z","dependencies_parsed_at":"2024-10-28T03:42:43.975Z","dependency_job_id":null,"html_url":"https://github.com/zhulf0804/PointPillars","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/zhulf0804%2FPointPillars","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhulf0804%2FPointPillars/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhulf0804%2FPointPillars/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhulf0804%2FPointPillars/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhulf0804","download_url":"https://codeload.github.com/zhulf0804/PointPillars/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244629967,"owners_count":20484285,"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":["kitty","lidar-detection","pointpillars"],"created_at":"2024-07-31T03:01:45.752Z","updated_at":"2025-03-20T14:30:33.721Z","avatar_url":"https://github.com/zhulf0804.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# [PointPillars: Fast Encoders for Object Detection from Point Clouds](https://arxiv.org/abs/1812.05784) \n\nA Simple PointPillars PyTorch Implenmentation for 3D Lidar(KITTI) Detection. [[Zhihu](https://zhuanlan.zhihu.com/p/521277176)]\n\n- It can be run without installing [Spconv](https://github.com/traveller59/spconv), [mmdet](https://github.com/open-mmlab/mmdetection) or [mmdet3d](https://github.com/open-mmlab/mmdetection3d). \n- Only one detection network (PointPillars) was implemented in this repo, so the code may be more easy to read. \n- Sincere thanks for the great open-source architectures [mmcv](https://github.com/open-mmlab/mmcv), [mmdet](https://github.com/open-mmlab/mmdetection) and [mmdet3d](https://github.com/open-mmlab/mmdetection3d), which helps me to learn 3D detetion and implement this repo.\n\n## News\n\n- **2025-02** Making PointPillars a python package out of the code is supported.\n- **2024-04** Exporting PointPillars to ONNX \u0026 TensorRT is supported on branch [feature/deployment](https://github.com/zhulf0804/PointPillars/tree/feature/deployment).\n\n    ![](./figures/pytorch_trt.png)\n\n## mAP on KITTI validation set (Easy, Moderate, Hard)\n\n| Repo | Metric | Overall | Pedestrian | Cyclist | Car |\n| :---: | :---: | :---: | :---: | :---: | :---: |\n| this repo | 3D-BBox | 73.3259 62.7834 59.6278 | 51.4642 47.9446 43.8040 | 81.8677 63.6617 60.9126 | 86.6456 76.7439 74.1668 | \n| [mmdet3d v0.18.1](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1) | 3D-BBox  | 72.0537, 60.1114, 55.8320 | 52.0263, 46.4037, 42.4841 | 78.7231, 59.9526, 57.2489 | 85.4118, 73.9780, 67.7630 |\n| this repo | BEV | 77.8540 69.8003 66.6699 | 59.1687 54.3456 50.5023 | 84.4268 67.1409 63.7409 | 89.9664 87.9145 85.7664 | \n| [mmdet3d v0.18.1](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1) | BEV | 76.6485, 67.7609, 64.5605 | 59.0778, 53.3638, 48.4230 | 80.9328, 63.3447, 60.0618 | 89.9348, 86.5743, 85.1967 |\n| this repo | 2D-BBox | 80.5097 74.6120 71.4758 | 64.6249 61.4201 57.5965 | 86.2569 73.0828 70.1726 | 90.6471 89.3330 86.6583 |\n| [mmdet3d v0.18.1](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1) | 2D-BBox | 78.4938, 73.4781, 70.3613 | 62.2413, 58.9157, 55.3660 | 82.6460, 72.3547, 68.4669 | 90.5939, 89.1638, 87.2511 |\n| this repo | AOS | 74.9647 68.1712 65.2817 | 49.3777 46.7284 43.8352 | 85.0412 69.1024 66.2801 | 90.4752 88.6828 85.7298 |\n| [mmdet3d v0.18.1](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1) | AOS | 72.41, 66.23, 63.55 | 46.00, 43.22, 40.94 | 80.85, 67.20, 63.63 | 90.37, 88.27, 86.07 |\n\n- **Note: Here, we report [mmdet3d v0.18.1](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1) (2022/02/09-2022/03/01) performance based on the officially provided [checkpoint](https://github.com/open-mmlab/mmdetection3d/tree/v0.18.1/configs/pointpillars#kitti). Much improvements were made in the [mmdet3d v1.0.0rc1](https://github.com/open-mmlab/mmdetection3d/tree/v1.0.0rc1)**. \n\n## Detection Visualization\n\n![](./figures/pc_pred_000134.png)\n![](./figures/img_3dbbox_000134.png)\n\n## [Install] \n\nInstall PointPillars as a python package and all its dependencies as follows:\n\n```\ncd PointPillars/\npip install -r requirements.txt\npython setup.py build_ext --inplace\npip install .\n```\n\n## [Datasets]\n\n1. Download\n\n    Download [point cloud](https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_velodyne.zip)(29GB), [images](https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2.zip)(12 GB), [calibration files](https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_calib.zip)(16 MB)和[labels](https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_label_2.zip)(5 MB)。Format the datasets as follows:\n    ```\n    kitti\n        |- training\n            |- calib (#7481 .txt)\n            |- image_2 (#7481 .png)\n            |- label_2 (#7481 .txt)\n            |- velodyne (#7481 .bin)\n        |- testing\n            |- calib (#7518 .txt)\n            |- image_2 (#7518 .png)\n            |- velodyne (#7518 .bin)\n    ```\n\n2. Pre-process KITTI datasets First\n\n    ```\n    cd PointPillars/\n    python pre_process_kitti.py --data_root your_path_to_kitti\n    ```\n\n    Now, we have datasets as follows:\n    ```\n    kitti\n        |- training\n            |- calib (#7481 .txt)\n            |- image_2 (#7481 .png)\n            |- label_2 (#7481 .txt)\n            |- velodyne (#7481 .bin)\n            |- velodyne_reduced (#7481 .bin)\n        |- testing\n            |- calib (#7518 .txt)\n            |- image_2 (#7518 .png)\n            |- velodyne (#7518 .bin)\n            |- velodyne_reduced (#7518 .bin)\n        |- kitti_gt_database (# 19700 .bin)\n        |- kitti_infos_train.pkl\n        |- kitti_infos_val.pkl\n        |- kitti_infos_trainval.pkl\n        |- kitti_infos_test.pkl\n        |- kitti_dbinfos_train.pkl\n    ```\n\n## [Training]\n\n```\ncd PointPillars/\npython train.py --data_root your_path_to_kitti\n```\n\n## [Evaluation]\n\n```\ncd PointPillars/\npython evaluate.py --ckpt pretrained/epoch_160.pth --data_root your_path_to_kitti \n```\n\n## [Test]\n\n```\ncd PointPillars/\n\n# 1. infer and visualize point cloud detection\npython test.py --ckpt pretrained/epoch_160.pth --pc_path your_pc_path \n\n# 2. infer and visualize point cloud detection and gound truth.\npython test.py --ckpt pretrained/epoch_160.pth --pc_path your_pc_path --calib_path your_calib_path  --gt_path your_gt_path\n\n# 3. infer and visualize point cloud \u0026 image detection\npython test.py --ckpt pretrained/epoch_160.pth --pc_path your_pc_path --calib_path your_calib_path --img_path your_img_path\n\n\ne.g. \na. [infer on val set 000134]\n\npython test.py --ckpt pretrained/epoch_160.pth --pc_path pointpillars/dataset/demo_data/val/000134.bin\n\nor\n\npython test.py --ckpt pretrained/epoch_160.pth --pc_path pointpillars/dataset/demo_data/val/000134.bin \\\n               --calib_path pointpillars/dataset/demo_data/val/000134.txt \\\n               --img_path pointpillars/dataset/demo_data/val/000134.png \\\n               --gt_path pointpillars/dataset/demo_data/val/000134_gt.txt\n\nb. [infer on test set 000002]\n\npython test.py --ckpt pretrained/epoch_160.pth --pc_path pointpillars/dataset/demo_data/test/000002.bin\n\nor \n\npython test.py --ckpt pretrained/epoch_160.pth --pc_path pointpillars/dataset/demo_data/test/000002.bin \\\n               --calib_path pointpillars/dataset/demo_data/test/000002.txt \\\n               --img_path pointpillars/dataset/demo_data/test/000002.png\n```\n\n## Acknowledements\n\nThanks for the open source code [mmcv](https://github.com/open-mmlab/mmcv), [mmdet](https://github.com/open-mmlab/mmdetection) and [mmdet3d](https://github.com/open-mmlab/mmdetection3d).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhulf0804%2FPointPillars","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhulf0804%2FPointPillars","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhulf0804%2FPointPillars/lists"}