{"id":28712909,"url":"https://github.com/col14m/td3d","last_synced_at":"2026-05-13T20:35:15.154Z","repository":{"id":297431124,"uuid":"996729395","full_name":"col14m/td3d","owner":"col14m","description":"[WACV'24] TD3D: Top-Down Beats Bottom-Up in 3D Instance Segmentation","archived":false,"fork":false,"pushed_at":"2025-06-07T07:40:00.000Z","size":4197,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-15T00:02:50.474Z","etag":null,"topics":["3d-instance-segmentation","pytorch","s3dis","scannet","td3d"],"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/col14m.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,"zenodo":null}},"created_at":"2025-06-05T11:27:25.000Z","updated_at":"2025-06-07T07:40:05.000Z","dependencies_parsed_at":"2025-06-05T12:44:55.278Z","dependency_job_id":null,"html_url":"https://github.com/col14m/td3d","commit_stats":null,"previous_names":["col14m/td3d"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/col14m/td3d","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/col14m%2Ftd3d","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/col14m%2Ftd3d/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/col14m%2Ftd3d/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/col14m%2Ftd3d/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/col14m","download_url":"https://codeload.github.com/col14m/td3d/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/col14m%2Ftd3d/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32999516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"ssl_error","status_checked_at":"2026-05-13T13:14:51.610Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-instance-segmentation","pytorch","s3dis","scannet","td3d"],"created_at":"2025-06-15T00:01:13.003Z","updated_at":"2026-05-13T20:35:15.148Z","avatar_url":"https://github.com/col14m.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/top-down-beats-bottom-up-in-3d-instance/3d-instance-segmentation-on-scannetv2)](https://paperswithcode.com/sota/3d-instance-segmentation-on-scannetv2?p=top-down-beats-bottom-up-in-3d-instance)\n[![PWC](https://img.shields.io/endpoint.svg?url=https://paperswithcode.com/badge/top-down-beats-bottom-up-in-3d-instance/3d-instance-segmentation-on-s3dis)](https://paperswithcode.com/sota/3d-instance-segmentation-on-s3dis?p=top-down-beats-bottom-up-in-3d-instance)\n\n## TD3D: Top-Down Beats Bottom-Up in 3D Instance Segmentation\n\n**News**:\n * :cry: June, 2025. Original repo with [130+](https://web.archive.org/web/20240906194458/https://github.com/SamsungLabs/td3d) :star: was deleted from `SamsungLabs/td3d`. Unfortunately, checkponits are currently unavailable.\n * :fire: February 6, 2023. We achieved SOTA results on the ScanNet test subset (mAP@25).\n * :fire: February 2023. The source code has been published.\n \n\nThis repository contains an implementation of TD3D, a 3D instance segmentation method introduced in our paper:\n\n\u003e **Top-Down Beats Bottom-Up in 3D Instance Segmentation**\u003cbr\u003e\n\u003e [Maksim Kolodiazhnyi](https://github.com/col14m),\n\u003e [Danila Rukhovich](https://github.com/filaPro),\n\u003e [Anna Vorontsova](https://github.com/highrut),\n\u003e [Anton Konushin](https://scholar.google.com/citations?user=ZT_k-wMAAAAJ)\n\u003e \u003cbr\u003e\n\u003e Samsung Research \u003cbr\u003e\n\u003e https://arxiv.org/abs/2302.02871\n\n\u003e \n\u003cp align=\"center\"\u003e\u003cimg src=\"resources/td3d.png\" alt=\"drawing\" width=\"90%\"/\u003e\u003c/p\u003e\n\n### Installation\nFor convenience, we provide a [Dockerfile](docker/Dockerfile).\n\nAlternatively, you can install all required packages manually. This implementation is based on [mmdetection3d](https://github.com/open-mmlab/mmdetection3d) framework.\n\nPlease refer to the original installation guide [getting_started.md](docs/en/getting_started.md), including MinkowskiEngine installation, replacing open-mmlab/mmdetection3d with samsunglabs/td3d.\n\nMost of the `TD3D`-related code locates in the following files: \n[detectors/td3d_instance_segmentor.py](mmdet3d/models/detectors/td3d_instance_segmentor.py),\n[necks/ngfc_neck.py](mmdet3d/models/necks/ngfc_neck.py),\n[decode_heads/td3d_instance_head.py](mmdet3d/models/decode_heads/td3d_instance_head.py).\n\n### Getting Started\n\nPlease see [getting_started.md](docs/en/getting_started.md) for basic usage examples.\nWe follow the `mmdetection3d` data preparation protocol described in [s3dis](data/s3dis) for S3DIS and in [scannet](data/scannet) for ScanNet and ScanNet200.\n\n\n**Training**\n\nTo start training, run [train](tools/train.py) with `TD3D` [configs](configs/td3d_is). To avoid gpu memory problems during validation callback, set `score_thr` to `0.15` and `nms_pre` to `100` in configs before training (then return them to their original values during testing):\n```shell\npython tools/train.py configs/td3d_is/td3d_is_scannet-3d-18class.py\n```\n\nFor training on S3DIS with pretrained on ScanNet weights, download [ScanNet model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_scannet.pth) and put it into your working directory. Then use `configs/td3d_is/td3d_is_s3dis-3d-5class_pretrain.py` according to the previous instructions.\n\n**Testing**\n\nTest pre-trained model using [test](tools/test.py) with `TD3D` [configs](configs/td3d_is):\n```shell\npython tools/test.py configs/td3d_is/td3d_is_scannet-3d-18class.py \\\n    work_dirs/td3d_is_scannet-3d-18class/latest.pth --eval mAP\n```\n\n**Visualization**\n\nVisualizations can be created with [test](tools/test.py) script. \nFor better visualizations, you may set `score_thr` to `0.20` and `nms_pre` to `200` in configs:\n```shell\npython tools/test.py configs/td3d_is/td3d_is_scannet-3d-18class.py \\\n    work_dirs/td3d_is_scannet-3d-18class/latest.pth --eval mAP --show \\\n    --show-dir work_dirs/td3d_is_scannet-3d-18class\n```\n\n### Models (quality on validation subset)\n\n| Dataset | mAP@0.25 | mAP@0.5 | mAP | Download |\n|:-------:|:--------:|:-------:|:--------:|:--------:|\n| ScanNet | 81.9 | 71.2 | 47.3 | [model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_scannet.pth) \u0026#124; [config](configs/td3d_is/td3d_is_scannet-3d-18class.py) |\n| S3DIS (5 area) | 73.8 | 65.1 | 48.6 | [model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_s3dis.pth) \u0026#124; [config](configs/td3d_is/td3d_is_s3dis-3d-13class.py) |\n| S3DIS (5 area) \u003cbr /\u003e (ScanNet pretrain) | 75.0 | 67.2 | 52.1 | [model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_s3dis_pretrain.pth) \u0026#124; [config](configs/td3d_is/td3d_is_s3dis-3d-13class_pretrain.py) |\n| ScanNet200 | 40.4 | 34.8 | 23.1 | [model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_scannet200.pth) \u0026#124; [config](configs/td3d_is/td3d_is_scannet200-3d-198class.py) |\n| STPLS3D | 74.0 | 69.6 | 54.5 | [model](https://github.com/SamsungLabs/td3d/releases/download/v1.0.0/td3d_stpls3d.pth) \u0026#124; [config](configs/td3d_is/td3d_is_stpls3d-3d-14class.py) |\n\n### Examples\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"resources/td3d_examples.jpg\" alt=\"drawing\" width=\"90%\"/\u003e\u003c/p\u003e\n\n### Citation\n\nIf you find this work useful for your research, please cite our paper:\n```\n@misc{kolodiazhnyi2023topdown,\n  doi = {10.48550/ARXIV.2302.02871},\n  url = {https://arxiv.org/abs/2302.02871},\n  author = {Kolodiazhnyi, Maksim and Rukhovich, Danila and Vorontsova, Anna and Konushin, Anton},\n  title = {Top-Down Beats Bottom-Up in 3D Instance Segmentation},\n  publisher = {arXiv},\n  year = {2023}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcol14m%2Ftd3d","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcol14m%2Ftd3d","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcol14m%2Ftd3d/lists"}