Paper · Project Page · BibTeX
This repository contains the official implementation of Adaptive Instance Placement for Robust 3D Instance Segmentation (ACGP).
Overall framework of ACGP. Given a 3D scene and an instance database, ACGP selects instances via category-balanced sampling, queries their category-conditioned placement types, and places them at geometrically valid locations using occupancy- and support-aware validation to generate augmented scenes. The pseudo-code on the right summarizes the complete pipeline of instance-level augmented scene generation.
The core ACGP instance placement implementation can be found in
pointcept/datasets/instance_augmentor_occupancy.py.
Update: ACGP achieves the SOTA performance on ScanNet200 test set for 3D instance segmentation benchmark. Test scores accessed on 12 July, 2026. ScanNet200 test set (The results are provided by official based on this repo)
ACGP achieves the SOTA performance on ScanNet++ V2 test set for 3D instance segmentation. Test scores accessed on 10 July, 2026. ScanNet++ V2 test set
| Benchmark | Model | mAP | AP50 | AP25 | Tensorboard | Exp Record | Model |
|---|---|---|---|---|---|---|---|
| ScanNet++ Val | Volt-SPFormer | 37.2 | 56.3 | 64.6 | Link | Link | Link |
| SGIFormer | 35.4 | 52.4 | 61.4 | Link | Link | Link | |
| ScanNet200 Val | Volt-SPFormer | 39.6 | 50.2 | 55.2 | Link | Link | Link |
| SGIFormer-L | 32.9 | 43.3 | 49.3 | Link | Link | Link | |
| ISBNet | 26.2 | 34.4 | 39.2 | Link | Link | Link | |
| TD3D | 24.2 | 36.2 | 42.2 | - | - | Link | |
| ScanNet Val | SGIFormer-L | 61.6 | 81.6 | 89.2 | Link | Link | Link |
| ISBNet | 56.1 | 73.6 | 81.8 | Link | Link | Link | |
| SoftGroup | 44.0 | 65.3 | 77.9 | Link | Link | Link | |
| TD3D | 47.6 | 71.3 | 82.1 | - | - | Link | |
| S3DIS Area5 | ISBNet | 58.2 | 71.3 | 77.7 | Link | Link | Link |
| SoftGroup | 53.5 | 66.7 | 73.7 | Link | Link | Link | |
| TD3D | 53.1 | 68.2 | 75.9 | - | - | Link | |
| STPLS3D Val | ISBNet | 52.1 | 68.9 | 76.0 | Link | Link | Link |
This repository is built on top of Pointcept and incorporates components from SGIFormer and Volt for instance segmentation.
We recommend using uv, a fast Python package and environment manager, to install the environment.
To install uv on macOS and Linux, run:
curl -LsSf https://astral.sh/uv/install.sh | shThen set up the environment with:
# Make sure to load CUDA 12.6 beforehand
# This will automatically create a virtual environment (.venv) and install dependencies from pyproject.toml
uv sync
source .venv/bin/activateFollow the dataset setup instructions in the Pointcept README.
Preprocessing for indoor datasets is identical to Pointcept.
Preprocessing for outdoor datasets is identical to ISBNet.
First, run the preprocessing script to generate superpoints for ScanNet and ScanNet200.
python pointcept/datasets/preprocessing/scannet/preprocess_superpoints.py --dataset_root ${RAW_SCANNET_DIR} --output_root ${PROCESSED_SCANNET_DIR}Download the pretrained Volt-S backbone weights from HuggingFace
mkdir -p weights
curl -L -o weights/volt-small-scannet.pth https://huggingface.co/KadirYilmaz/Volt/resolve/main/Volt_experiments/joint_training_small/scannet/model/model_last.pth
curl -L -o weights/volt-small-scannet200.pth https://huggingface.co/KadirYilmaz/Volt/resolve/main/Volt_experiments/joint_training_small/scannet200/model/model_last.pthAlternatively you can train them yourself using the corresponding configs above.
Then, run the training script with the insseg-spformer-volt-S-0-base config for scannet/scannet200
### ScanNet
sh scripts/train.sh -g 4 -d scannet -c insseg-spformer-volt-S-0-base -n insseg-volt
### ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c insseg-spformer-volt-S-0-base -n insseg-voltIf you use our work in your research, please use the following BibTeX entry.
@misc{yang2026acgp,
title = {Beyond Context Bias: Adaptive Instance Placement for Robust 3D Instance Segmentation},
author = {Rongkun Yang, Ye Zhang, Longguang Wang, Zhiheng Fu, Lian Xu, Yulan Guo},
year = {2026},
url = {https://github.com/SYSU-SAIL/ACGP}
}
Code is built based on Volt, PointCept, and SGIFormer. We sincerely thank the authors for sharing their code.


