{"id":13443816,"url":"https://github.com/isl-org/Open3D-ML","last_synced_at":"2025-03-20T17:31:45.348Z","repository":{"id":37738756,"uuid":"276495512","full_name":"isl-org/Open3D-ML","owner":"isl-org","description":"An extension of Open3D to address 3D Machine Learning tasks","archived":false,"fork":false,"pushed_at":"2025-01-08T07:40:38.000Z","size":47939,"stargazers_count":1981,"open_issues_count":121,"forks_count":330,"subscribers_count":45,"default_branch":"main","last_synced_at":"2025-03-20T13:08:39.222Z","etag":null,"topics":["3d-object-detection","3d-perception","datasets","lidar","object-detection","pretrained-models","pytorch","rgbd","semantic-segmentation","tensorflow","visualization"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isl-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-01T22:33:57.000Z","updated_at":"2025-03-19T08:55:38.000Z","dependencies_parsed_at":"2023-02-18T17:46:04.525Z","dependency_job_id":"d0ce39d4-1e60-40be-a6fb-15e207a6f3f8","html_url":"https://github.com/isl-org/Open3D-ML","commit_stats":{"total_commits":498,"total_committers":52,"mean_commits":9.576923076923077,"dds":0.6445783132530121,"last_synced_commit":"c4cbf8510a7e615580b3e1bdef6690c01388ba31"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isl-org%2FOpen3D-ML","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isl-org%2FOpen3D-ML/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isl-org%2FOpen3D-ML/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isl-org%2FOpen3D-ML/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isl-org","download_url":"https://codeload.github.com/isl-org/Open3D-ML/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244660551,"owners_count":20489353,"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":["3d-object-detection","3d-perception","datasets","lidar","object-detection","pretrained-models","pytorch","rgbd","semantic-segmentation","tensorflow","visualization"],"created_at":"2024-07-31T03:02:11.018Z","updated_at":"2025-03-20T17:31:45.342Z","avatar_url":"https://github.com/isl-org.png","language":"Python","funding_links":[],"categories":["Python","Point Cloud"],"sub_categories":["Tools"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/isl-org/Open3D/main/docs/_static/open3d_logo_horizontal.png\" width=\"320\" /\u003e\n\u003cspan style=\"font-size: 220%\"\u003e\u003cb\u003eML\u003c/b\u003e\u003c/span\u003e\n\u003c/p\u003e\n\n![Ubuntu CI](https://github.com/isl-org/Open3D-ML/workflows/Ubuntu%20CI/badge.svg)\n![Style check](https://github.com/isl-org/Open3D-ML/workflows/Style%20check/badge.svg)\n![PyTorch badge](https://img.shields.io/badge/PyTorch-supported-brightgreen?style=flat\u0026logo=pytorch)\n![TensorFlow badge](https://img.shields.io/badge/TensorFlow-supported-brightgreen?style=flat\u0026logo=tensorflow)\n\n[**Installation**](#installation) \\| [**Get started**](#getting-started) \\| [**Structure**](#repository-structure) \\| [**Tasks \u0026 Algorithms**](#tasks-and-algorithms) \\| [**Model Zoo**](model_zoo.md) \\| [**Datasets**](#datasets) \\| [**How-tos**](#how-tos) \\| [**Contribute**](#contribute)\n\nOpen3D-ML is an extension of Open3D for 3D machine learning tasks.\nIt builds on top of the Open3D core library and extends it with machine learning\ntools for 3D data processing. This repo focuses on applications such as semantic\npoint cloud segmentation and provides pretrained models that can be applied to\ncommon tasks as well as pipelines for training.\n\nOpen3D-ML works with **TensorFlow** and **PyTorch** to integrate easily into\nexisting projects and also provides general functionality independent of\nML frameworks such as data visualization.\n\n## Installation\n\n### Users\n\nOpen3D-ML is integrated in the Open3D v0.11+ python distribution and is\ncompatible with the following versions of ML frameworks.\n\n-   PyTorch 2.0.\\*\n-   TensorFlow 2.13.\\* (macOS, see below for Linux)\n-   CUDA 10.1, 11.\\* (On `GNU/Linux x86_64`, optional)\n\nYou can install Open3D with\n\n```bash\n# make sure you have the latest pip version\npip install --upgrade pip\n# install open3d\npip install open3d\n```\n\nTo install a compatible version of PyTorch or TensorFlow you can use the\nrespective requirements files:\n\n```bash\n# To install a compatible version of TensorFlow\npip install -r requirements-tensorflow.txt\n# To install a compatible version of PyTorch\npip install -r requirements-torch.txt\n# To install a compatible version of PyTorch with CUDA on Linux\npip install -r requirements-torch-cuda.txt\n```\n\nTo test the installation use\n\n```bash\n# with PyTorch\n$ python -c \"import open3d.ml.torch as ml3d\"\n# or with TensorFlow\n$ python -c \"import open3d.ml.tf as ml3d\"\n```\n\nIf you need to use different versions of the ML frameworks or CUDA we recommend\nto\n[build Open3D from source](http://www.open3d.org/docs/release/compilation.html)\n or [build Open3D in docker](http://www.open3d.org/docs/release/docker.html#building-open3d-in-docker).\n\nFrom v0.18 onwards on Linux, the PyPI Open3D wheel does not have native support\nfor Tensorflow due to build incompatibilities between PyTorch and Tensorflow\n\\[See [Python 3.11 support PR](https://github.com/isl-org/Open3D/pull/6288)] for\ndetails. If you'd like to use Open3D with Tensorflow on Linux, you can\n[build Open3D wheel from source in docker](http://www.open3d.org/docs/release/docker.html#building-open3d-in-docker)\nwith support for Tensorflow (but not PyTorch) as:\n\n```bash\ncd docker\n# Build open3d and open3d-cpu wheels for Python 3.10 with Tensorflow support\nexport BUILD_PYTORCH_OPS=OFF BUILD_TENSORFLOW_OPS=ON\n./docker_build.sh cuda_wheel_py310\n```\n\n## Getting started\n\n### Reading a dataset\n\nThe dataset namespace contains classes for reading common datasets. Here we\nread the SemanticKITTI dataset and visualize it.\n\n```python\nimport open3d.ml.torch as ml3d  # or open3d.ml.tf as ml3d\n\n# construct a dataset by specifying dataset_path\ndataset = ml3d.datasets.SemanticKITTI(dataset_path='/path/to/SemanticKITTI/')\n\n# get the 'all' split that combines training, validation and test set\nall_split = dataset.get_split('all')\n\n# print the attributes of the first datum\nprint(all_split.get_attr(0))\n\n# print the shape of the first point cloud\nprint(all_split.get_data(0)['point'].shape)\n\n# show the first 100 frames using the visualizer\nvis = ml3d.vis.Visualizer()\nvis.visualize_dataset(dataset, 'all', indices=range(100))\n```\n\n![Visualizer GIF](docs/images/getting_started_ml_visualizer.gif)\n\n### Loading a config file\n\nConfigs of models, datasets, and pipelines are stored in `ml3d/configs`. Users can also construct their own yaml files to keep record of their customized configurations. Here is an example of reading a config file and constructing modules from it.\n\n```python\nimport open3d.ml as _ml3d\nimport open3d.ml.torch as ml3d # or open3d.ml.tf as ml3d\n\nframework = \"torch\" # or tf\ncfg_file = \"ml3d/configs/randlanet_semantickitti.yml\"\ncfg = _ml3d.utils.Config.load_from_file(cfg_file)\n\n# fetch the classes by the name\nPipeline = _ml3d.utils.get_module(\"pipeline\", cfg.pipeline.name, framework)\nModel = _ml3d.utils.get_module(\"model\", cfg.model.name, framework)\nDataset = _ml3d.utils.get_module(\"dataset\", cfg.dataset.name)\n\n# use the arguments in the config file to construct the instances\ncfg.dataset['dataset_path'] = \"/path/to/your/dataset\"\ndataset = Dataset(cfg.dataset.pop('dataset_path', None), **cfg.dataset)\nmodel = Model(**cfg.model)\npipeline = Pipeline(model, dataset, **cfg.pipeline)\n```\n\n### Semantic Segmentation\n\n#### Running a pretrained model for semantic segmentation\n\nBuilding on the previous example we can instantiate a pipeline with a\npretrained model for semantic segmentation and run it on a point cloud of our\ndataset. See the [model zoo](#model-zoo) for obtaining the weights of the\npretrained model.\n\n```python\nimport os\nimport open3d.ml as _ml3d\nimport open3d.ml.torch as ml3d\n\ncfg_file = \"ml3d/configs/randlanet_semantickitti.yml\"\ncfg = _ml3d.utils.Config.load_from_file(cfg_file)\n\nmodel = ml3d.models.RandLANet(**cfg.model)\ncfg.dataset['dataset_path'] = \"/path/to/your/dataset\"\ndataset = ml3d.datasets.SemanticKITTI(cfg.dataset.pop('dataset_path', None), **cfg.dataset)\npipeline = ml3d.pipelines.SemanticSegmentation(model, dataset=dataset, device=\"gpu\", **cfg.pipeline)\n\n# download the weights.\nckpt_folder = \"./logs/\"\nos.makedirs(ckpt_folder, exist_ok=True)\nckpt_path = ckpt_folder + \"randlanet_semantickitti_202201071330utc.pth\"\nrandlanet_url = \"https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202201071330utc.pth\"\nif not os.path.exists(ckpt_path):\n    cmd = \"wget {} -O {}\".format(randlanet_url, ckpt_path)\n    os.system(cmd)\n\n# load the parameters.\npipeline.load_ckpt(ckpt_path=ckpt_path)\n\ntest_split = dataset.get_split(\"test\")\ndata = test_split.get_data(0)\n\n# run inference on a single example.\n# returns dict with 'predict_labels' and 'predict_scores'.\nresult = pipeline.run_inference(data)\n\n# evaluate performance on the test set; this will write logs to './logs'.\npipeline.run_test()\n```\n\nUsers can also [use predefined scripts](README.md#using-predefined-scripts) to load pretrained weights and run testing.\n\n#### Training a model for semantic segmentation\n\nSimilar as for inference, pipelines provide an interface for training a model on\na dataset.\n\n```python\n# use a cache for storing the results of the preprocessing (default path is './logs/cache')\ndataset = ml3d.datasets.SemanticKITTI(dataset_path='/path/to/SemanticKITTI/', use_cache=True)\n\n# create the model with random initialization.\nmodel = RandLANet()\n\npipeline = SemanticSegmentation(model=model, dataset=dataset, max_epoch=100)\n\n# prints training progress in the console.\npipeline.run_train()\n\n```\n\nFor more examples see [`examples/`](https://github.com/isl-org/Open3D-ML/tree/main/examples)\nand the [`scripts/`](https://github.com/isl-org/Open3D-ML/tree/main/scripts) directories. You\ncan also enable saving training summaries in the config file and visualize ground truth and\nresults with tensorboard. See this [tutorial](docs/tensorboard.md#3dml-models-training-and-inference)\nfor details.\n\n\u003cimg width=\"640\" src=\"https://user-images.githubusercontent.com/41028320/146465032-30696948-54f7-48df-bc48-add8d2e38421.jpg\"\u003e\n\n### 3D Object Detection\n\n#### Running a pretrained model for 3D object detection\n\nThe 3D object detection model is similar to a semantic segmentation model. We can instantiate a pipeline with a pretrained model for Object Detection and run it on a point cloud of our dataset. See the [model zoo](#model-zoo) for obtaining the weights of the pretrained model.\n\n```python\nimport os\nimport open3d.ml as _ml3d\nimport open3d.ml.torch as ml3d\n\ncfg_file = \"ml3d/configs/pointpillars_kitti.yml\"\ncfg = _ml3d.utils.Config.load_from_file(cfg_file)\n\nmodel = ml3d.models.PointPillars(**cfg.model)\ncfg.dataset['dataset_path'] = \"/path/to/your/dataset\"\ndataset = ml3d.datasets.KITTI(cfg.dataset.pop('dataset_path', None), **cfg.dataset)\npipeline = ml3d.pipelines.ObjectDetection(model, dataset=dataset, device=\"gpu\", **cfg.pipeline)\n\n# download the weights.\nckpt_folder = \"./logs/\"\nos.makedirs(ckpt_folder, exist_ok=True)\nckpt_path = ckpt_folder + \"pointpillars_kitti_202012221652utc.pth\"\npointpillar_url = \"https://storage.googleapis.com/open3d-releases/model-zoo/pointpillars_kitti_202012221652utc.pth\"\nif not os.path.exists(ckpt_path):\n    cmd = \"wget {} -O {}\".format(pointpillar_url, ckpt_path)\n    os.system(cmd)\n\n# load the parameters.\npipeline.load_ckpt(ckpt_path=ckpt_path)\n\ntest_split = dataset.get_split(\"test\")\ndata = test_split.get_data(0)\n\n# run inference on a single example.\n# returns dict with 'predict_labels' and 'predict_scores'.\nresult = pipeline.run_inference(data)\n\n# evaluate performance on the test set; this will write logs to './logs'.\npipeline.run_test()\n```\n\nUsers can also [use predefined scripts](README.md#using-predefined-scripts) to load pretrained weights and run testing.\n\n#### Training a model for 3D object detection\n\nSimilar as for inference, pipelines provide an interface for training a model on\na dataset.\n\n```python\n# use a cache for storing the results of the preprocessing (default path is './logs/cache')\ndataset = ml3d.datasets.KITTI(dataset_path='/path/to/KITTI/', use_cache=True)\n\n# create the model with random initialization.\nmodel = PointPillars()\n\npipeline = ObjectDetection(model=model, dataset=dataset, max_epoch=100)\n\n# prints training progress in the console.\npipeline.run_train()\n\n```\n\nBelow is an example of visualization using KITTI. The example shows the use of bounding boxes for the KITTI dataset.\n\n\u003cimg width=\"640\" src=\"https://github.com/isl-org/Open3D-ML/blob/main/docs/images/visualizer_BoundingBoxes.png?raw=true\"\u003e\n\nFor more examples see [`examples/`](https://github.com/isl-org/Open3D-ML/tree/main/examples)\nand the [`scripts/`](https://github.com/isl-org/Open3D-ML/tree/main/scripts) directories. You\ncan also enable saving training summaries in the config file and visualize ground truth and\nresults with tensorboard. See this [tutorial](docs/tensorboard.md#3dml-models-training-and-inference)\nfor details.\n\n\u003cimg width=\"640\" src=\"https://user-images.githubusercontent.com/41028320/146465084-bc397e4c-494a-4464-a73d-525e82a9b6ce.jpg\"\u003e\n\n### Using predefined scripts\n\n[`scripts/run_pipeline.py`](https://github.com/isl-org/Open3D-ML/blob/main/scripts/run_pipeline.py)\nprovides an easy interface for training and evaluating a model on a dataset. It saves\nthe trouble of defining specific model and passing exact configuration.\n\n`python scripts/run_pipeline.py {tf/torch} -c \u003cpath-to-config\u003e --pipeline {SemanticSegmentation/ObjectDetection} --\u003cextra args\u003e`\n\nYou can use script for both semantic segmentation and object detection. You must specify\neither SemanticSegmentation or ObjectDetection in the `pipeline` parameter.\nNote that `extra args` will be prioritized over the same parameter present in the configuration file.\nSo instead of changing param in config file, you may pass the same as a command line argument while launching the script.\n\nFor eg.\n\n```\n# Launch training for RandLANet on SemanticKITTI with torch.\npython scripts/run_pipeline.py torch -c ml3d/configs/randlanet_semantickitti.yml --dataset.dataset_path \u003cpath-to-dataset\u003e --pipeline SemanticSegmentation --dataset.use_cache True\n\n# Launch testing for PointPillars on KITTI with torch.\npython scripts/run_pipeline.py torch -c ml3d/configs/pointpillars_kitti.yml --split test --dataset.dataset_path \u003cpath-to-dataset\u003e --pipeline ObjectDetection --dataset.use_cache True\n\n```\n\nFor further help, run `python scripts/run_pipeline.py --help`.\n\n## Repository structure\n\nThe core part of Open3D-ML lives in the `ml3d` subfolder, which is integrated\ninto Open3D in the `ml` namespace. In addition to the core part, the directories\n`examples` and `scripts` provide supporting scripts for getting started with\nsetting up a training pipeline or running a network on a dataset.\n\n    ├─ docs                   # Markdown and rst files for documentation\n    ├─ examples               # Place for example scripts and notebooks\n    ├─ ml3d                   # Package root dir that is integrated in open3d\n         ├─ configs           # Model configuration files\n         ├─ datasets          # Generic dataset code; will be integratede as open3d.ml.{tf,torch}.datasets\n         ├─ metrics           # Metrics available for evaluating ML models\n         ├─ utils             # Framework independent utilities; available as open3d.ml.{tf,torch}.utils\n         ├─ vis               # ML specific visualization functions\n         ├─ tf                # Directory for TensorFlow specific code. same structure as ml3d/torch.\n         │                    # This will be available as open3d.ml.tf\n         ├─ torch             # Directory for PyTorch specific code; available as open3d.ml.torch\n              ├─ dataloaders  # Framework specific dataset code, e.g. wrappers that can make use of the\n              │               # generic dataset code.\n              ├─ models       # Code for models\n              ├─ modules      # Smaller modules, e.g., metrics and losses\n              ├─ pipelines    # Pipelines for tasks like semantic segmentation\n              ├─ utils        # Utilities for \u003c\u003e\n    ├─ scripts                # Demo scripts for training and dataset download scripts\n\n## Tasks and Algorithms\n\n### Semantic Segmentation\n\nFor the task of semantic segmentation, we measure the performance of different methods using the mean intersection-over-union (mIoU) over all classes.\nThe table shows the available models and datasets for the segmentation task and the respective scores. Each score links to the respective weight file.\n\n| Model / Dataset          | SemanticKITTI                                                                                                | Toronto 3D                                                                                               | S3DIS                                                                                                       | Semantic3D                                                                                                | Paris-Lille3D                                                                                                 | ScanNet                                                                                                     |\n| ------------------------ | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| RandLA-Net (tf)          | [53.7](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202201071330utc.zip) | [73.7](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202201071330utc.zip) | [70.9](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202201071330utc.zip)        | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202201071330utc.zip) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202201071330utc.zip)\\* | -                                                                                                           |\n| RandLA-Net (torch)       | [52.8](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202201071330utc.pth) | [74.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202201071330utc.pth) | [70.9](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202201071330utc.pth)        | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202201071330utc.pth) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202201071330utc.pth)\\* | -                                                                                                           |\n| KPConv     (tf)          | [58.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_semantickitti_202010021102utc.zip)    | [65.6](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_toronto3d_202012221551utc.zip)    | [65.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_s3dis_202010091238.zip)              | -                                                                                                         | [76.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_parislille3d_202011241550utc.zip)      | -                                                                                                           |\n| KPConv     (torch)       | [58.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_semantickitti_202009090354utc.pth)    | [65.6](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_toronto3d_202012221551utc.pth)    | [60.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_s3dis_202010091238.pth)              | -                                                                                                         | [76.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_parislille3d_202011241550utc.pth)      | -                                                                                                           |\n| SparseConvUnet (torch)   | -                                                                                                            | -                                                                                                        | -                                                                                                           | -                                                                                                         | -                                                                                                             | [68](https://storage.googleapis.com/open3d-releases/model-zoo/sparseconvunet_scannet_202105031316utc.pth)   |\n| SparseConvUnet (tf)      | -                                                                                                            | -                                                                                                        | -                                                                                                           | -                                                                                                         | -                                                                                                             | [68.2](https://storage.googleapis.com/open3d-releases/model-zoo/sparseconvunet_scannet_202105031316utc.zip) |\n| PointTransformer (torch) | -                                                                                                            | -                                                                                                        | [69.2](https://storage.googleapis.com/open3d-releases/model-zoo/pointtransformer_s3dis_202109241350utc.pth) | -                                                                                                         | -                                                                                                             | -                                                                                                           |\n| PointTransformer (tf)    | -                                                                                                            | -                                                                                                        | [69.2](https://storage.googleapis.com/open3d-releases/model-zoo/pointtransformer_s3dis_202109241350utc.zip) | -                                                                                                         | -                                                                                                             | -                                                                                                           |\n\n(\\*) Using weights from original author.\n\n### Object Detection\n\nFor the task of object detection, we measure the performance of different methods using the mean average precision (mAP) for bird's eye view (BEV) and 3D.\nThe table shows the available models and datasets for the object detection task and the respective scores. Each score links to the respective weight file.\nFor the evaluation, the models were evaluated using the validation subset, according to KITTI's validation criteria. The models were trained for three classes (car, pedestrian and cyclist). The calculated values are the mean value over the mAP of all classes for all difficulty levels.\nFor the Waymo dataset, the models were trained on three classes (pedestrian, vehicle, cyclist).\n\n| Model / Dataset      | KITTI [BEV / 3D] @ 0.70                                                                                        | Waymo (BEV / 3D) @ 0.50                                                                                                                                               |\n| -------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| PointPillars (tf)    | [61.6 / 55.2](https://storage.googleapis.com/open3d-releases/model-zoo/pointpillars_kitti_202012221652utc.zip) | -                                                                                                                                                                     |\n| PointPillars (torch) | [61.2 / 52.8](https://storage.googleapis.com/open3d-releases/model-zoo/pointpillars_kitti_202012221652utc.pth) | avg: 61.01 / 48.30 \\| [best: 61.47\t/ 57.55](https://storage.googleapis.com/open3d-releases/model-zoo/pointpillars_waymo_202211200158utc_seed2_gpu16.pth) [^wpp-train] |\n| PointRCNN (tf)       | [78.2 / 65.9](https://storage.googleapis.com/open3d-releases/model-zoo/pointrcnn_kitti_202105071146utc.zip)    | -                                                                                                                                                                     |\n| PointRCNN (torch)    | [78.2 / 65.9](https://storage.googleapis.com/open3d-releases/model-zoo/pointrcnn_kitti_202105071146utc.pth)    | -                                                                                                                                                                     |\n\n[^wpp-train]\u0026#x3A; The avg. metrics are the average of three sets of training runs with 4, 8, 16 and 32 GPUs. Training was for halted after 30 epochs. Model checkpoint is available for the best training run.\n\n#### Training PointRCNN\n\nTo use ground truth sampling data augmentation for training, we can generate the ground truth database as follows:\n\n    python scripts/collect_bboxes.py --dataset_path \u003cpath_to_data_root\u003e\n\nThis will generate a database consisting of objects from the train split. It is recommended to use this augmentation for dataset like KITTI where objects are sparse.\n\nThe two stages of PointRCNN are trained separately. To train the proposal generation stage of PointRCNN with PyTorch, run the following command:\n\n    # Train RPN for 100 epochs.\n    python scripts/run_pipeline.py torch -c ml3d/configs/pointrcnn_kitti.yml --dataset.dataset_path \u003cpath-to-dataset\u003e --mode RPN --epochs 100\n\nAfter getting a well trained RPN network, we can train RCNN network with frozen RPN weights.\n\n    # Train RCNN for 70 epochs.\n    python scripts/run_pipeline.py torch -c ml3d/configs/pointrcnn_kitti.yml --dataset.dataset_path \u003cpath-to-dataset\u003e --mode RCNN --model.ckpt_path \u003cpath_to_checkpoint\u003e --epochs 100\n\n## Model Zoo\n\nFor a full list of all weight files see [model_weights.txt](https://storage.googleapis.com/open3d-releases/model-zoo/model_weights.txt)\nand the MD5 checksum file [model_weights.md5](https://storage.googleapis.com/open3d-releases/model-zoo/integrity.txt).\n\n## Datasets\n\nThe following is a list of datasets for which we provide dataset reader classes.\n\n-   SemanticKITTI ([project page](http://semantic-kitti.org/))\n-   Toronto 3D ([github](https://github.com/WeikaiTan/Toronto-3D))\n-   Semantic 3D ([project-page](http://www.semantic3d.net/))\n-   S3DIS ([project-page](http://buildingparser.stanford.edu/dataset.html))\n-   Paris-Lille 3D ([project-page](https://npm3d.fr/paris-lille-3d))\n-   Argoverse ([project-page](https://www.argoverse.org/))\n-   KITTI ([project-page](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d))\n-   Lyft ([project-page](https://level-5.global/data))\n-   nuScenes ([project-page](https://www.nuscenes.org/))\n-   Waymo ([project-page](https://waymo.com/open/))\n-   ScanNet([project-page](http://www.scan-net.org/))\n-   Pandaset ([project-page](https://pandaset.org/))\n-   TUM-FAÇADE ([project-page](https://github.com/OloOcki/tum-facade)) \n\nFor downloading these datasets visit the respective webpages and have a look at the scripts in [`scripts/download_datasets`](https://github.com/isl-org/Open3D-ML/tree/main/scripts/download_datasets).\n\n## How-tos\n\n-   [Visualize network predictions](docs/howtos.md#visualize-network-predictions)\n-   [Visualize custom data](docs/howtos.md#visualize-custom-data)\n-   [Adding a new model](docs/howtos.md#adding-a-new-model)\n-   [Adding a new dataset](docs/howtos.md#adding-a-new-dataset)\n-   [Distributed training](docs/howtos.md#distributed-training)\n-   [Visualize and compare input data, ground truth and results in TensorBoard](docs/tensorboard.md)\n-   [Inference with Intel OpenVINO](docs/openvino.md)\n\n## Contribute\n\nThere are many ways to contribute to this project. You can:\n\n-   Implement a new model\n-   Add code for reading a new dataset\n-   Share parameters and weights for an existing model\n-   Report problems and bugs\n\nPlease, **make your pull requests to the** [**dev**](https://github.com/isl-org/Open3D-ML/tree/dev) branch.\nOpen3D is a community effort. We welcome and celebrate contributions from the\ncommunity!\n\nIf you want to share weights for a model you trained please attach or link the\nweights file in the pull request.\nFor bugs and problems, [open an issue](https://github.com/isl-org/Open3D-ML/issues).\nPlease also check out our communication channels to get in contact with the community.\n\n## Communication channels\n\n\u003c!--* [GitHub Issue](https://github.com/isl-org/Open3D/issues): bug reports, feature requests, etc.--\u003e\n\n-   [Forum](https://github.com/isl-org/Open3D/discussions): discussion on the usage of Open3D.\n-   [Discord Chat](https://discord.com/invite/D35BGvn): online chats, discussions,\n    and collaboration with other users and developers.\n\n## Citation\n\nPlease cite our work ([pdf](https://arxiv.org/abs/1801.09847)) if you use Open3D.\n\n```bib\n@article{Zhou2018,\n    author    = {Qian-Yi Zhou and Jaesik Park and Vladlen Koltun},\n    title     = {{Open3D}: {A} Modern Library for {3D} Data Processing},\n    journal   = {arXiv:1801.09847},\n    year      = {2018},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisl-org%2FOpen3D-ML","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisl-org%2FOpen3D-ML","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisl-org%2FOpen3D-ML/lists"}