Juno Kim*, Yesol Park*, Hye-Jung Yoon*, Byoung-Tak Zhang
Seoul National University • IROS 2026
*Equal contribution
Indoor mobile robots require open-vocabulary scene understanding that grounds natural-language queries in a consistent 3D map. Many existing systems ultimately rely on cosine-similarity retrieval with contrastive image–text encoders, which is efficient but brittle when labels are near-synonymous or multiple similar instances appear. We present Scene-Q, a confidence-aware coarse-to-fine querying framework that normalizes encoder scores with temperature scaling and selectively invokes a reasoning VLM only for low-confidence cases. High-confidence queries are answered by fast retrieval, while ambiguous ones are reranked over a small top-K candidate set using the original multi-view images and instance bounding boxes, enabling context-aware disambiguation at low cost. Scene-Q improves open-vocabulary 3D instance segmentation on ScanNet200 and natural-language 3D instance retrieval on real-world reconstructions, with the largest gains on spatial and relational queries while keeping a substantial fraction of queries on the fast path.
Scene-Q builds a queryable 3D instance map in three stages:
- 3D instance segmentation via 2D-guided refinement. Starting from class-agnostic 3D masks (Mask3D / OneFormer3D) and per-view 2D masks (SAM / CropFormer), a superpoint-based, 2D-guided refinement step detaches over-merged components and merges neighboring instances that are consistent across views, yielding a clean refined instance set.
- Multi-view instance descriptors. For each instance we select the top-k most-visible views, crop the object at multiple expansion levels, encode the crops with an image–text encoder (CLIP or SigLIP 2), and average them into a single ℓ2-normalized instance embedding.
- Confidence-aware selective VLM reasoning. Cosine scores against the label
set are passed through a temperature-scaled softmax; confidence
statistics (
p_max, top-1/top-2 margin, normalized entropy) route each query. High-confidence queries take the encoder's top-1 (fast path, ~50 ms), while low-confidence queries send the top-K labels plus the original multi-view images with bounding boxes to a reasoning VLM (Qwen2.5-VL) that picks the final label from full-image context.
Open-vocabulary 3D instance segmentation on ScanNet200 (validation, 200 categories):
| Method | mAP | AP@50 | AP@25 | head | common | tail |
|---|---|---|---|---|---|---|
| OVIR-3D | 13.0 | 24.9 | 32.3 | 14.4 | 12.7 | 11.7 |
| Open3DIS | 23.7 | 29.4 | 32.8 | 27.8 | 21.2 | 21.8 |
| OpenYOLO3D | 24.5 | 31.7 | 36.2 | 27.8 | 24.3 | 21.6 |
| Scene-Q (Ours) | 25.2 | 33.7 | 41.6 | 25.9 | 24.2 | 25.7 |
Scene-Q achieves the best open-vocabulary results, with its largest gain under relaxed IoU (+5.4 AP@25 over OpenYOLO3D) and a balanced head/tail profile.
Ablation — selective VLM reasoning on ScanNet200 with oracle masks (mAP):
| Encoder | None | Selective | Always |
|---|---|---|---|
| CLIP | 32.9 | 43.6 (+32.5%) | 42.8 |
| SigLIP 2 | 48.4 | 51.9 (+7.2%) | 50.8 |
Selective routing beats both never- and always-calling the VLM, confirming that reasoning is most valuable precisely on the ambiguous subset.
See the paper for full tables, including real-world natural-language retrieval (Table III).
Scene-Q uses two uv-managed virtual environments (no conda required) — a torch-2.4 stack for the semantic + VLM stage and a torch-1.11 stack for the mask/3D stages. One-command install for the main pipeline:
bash scripts/setup_env.shFull, step-by-step instructions (including the optional mask/3D-stage environment) are in INSTALL.md.
Datasets, model checkpoints, and outputs live outside the repo (they are
git-ignored and typically symlinked to a data volume). See
docs/DATA.md for the expected data/, weights/, and
output/ layout, and for how to build the oracle masks. The image–text encoders
(CLIP, SigLIP 2) and the reasoning VLM (Qwen2.5-VL) are downloaded from the
HuggingFace / OpenAI hubs at runtime.
All commands are run from the repository root.
# (optional) fit the temperature T on the held-out tuning split
bash scripts/fit_temperature.sh scannet200 oracle siglip2_so
# Run the full pipeline (instance descriptors + confidence-aware routing).
# Single GPU, single process:
bash scripts/SceneQ_sem.sh scannet200 oracle siglip2_so 0 0 1
# Or fan out across 4 GPUs (parts 0..3):
bash scripts/run_SceneQ_sem_multi_process.sh scannet200 oracle siglip2_so 4 spread
# Evaluate (AP / AP@50 / AP@25)
bash scripts/eval.sh scannet200 oracle siglip2_soSceneQ_sem.sh takes CONFIG_TYPE MODEL_3D SEM_MODEL GPU PART SUBPROCESS_NUM.
Choose MODEL_3D from {oracle, mask3d, oneformer3d} and SEM_MODEL from
{clip, siglip2_so, siglip2_giant}. Behaviour is configured in
configs/scannet200.yaml.
SceneQ/ Core package: run_sem_pred.py (main), run_inst_seg.py,
fit_temperature.py, semantic/ (encoders, Qwen2.5-VL router),
instance/ (2D-guided 3D refinement)
configs/ scannet200.yaml — the ScanNet200 experiment configuration
evaluation/ ScanNet200 evaluator (ScanNetEval) + dataset category defs
scripts/ Launchers: SceneQ_sem.sh, eval.sh, fit_temperature.sh, ...
utils/ Projection, geometry, and I/O utilities
libs/ Vendored deps: CropFormer, pointops, Qwen2_5_VL wrapper
docs/ Documentation & figures
Scene-Q builds on excellent prior work, including Segment Anything, CropFormer / EntitySeg, Qwen2.5-VL, OpenMask3D, and Open3DIS.
If you find Scene-Q useful, please cite:
@inproceedings{kim2026sceneq,
title = {Scene-Q: Confidence-Aware Coarse-to-Fine Querying of 3D Scenes
with Selective VLM Reasoning},
author = {Kim, Juno and Park, Yesol and Yoon, Hye-Jung and Zhang, Byoung-Tak},
booktitle = {2026 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS)},
year = {2026}
}Released under the MIT License.