You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
object-ID alignment mismatch between the public caption JSON files and the instance IDs produced by the official ScanNet++ toolbox preprocessing #9
I am trying to reproduce the ScanNet++ captioning pipeline using the public code and the public ExCap3D caption release. I found what looks like an object-ID alignment mismatch between the public caption JSON files and the instance IDs produced by the official ScanNet++ toolbox preprocessing.
What I did:
Prepared full .pth files using the official ScanNet++ toolbox: python -m semantic.prep.prepare_training_data semantic/configs/prepare_training_data.yml
Sampled points with sample_pth.py
Converted sampled .pth to Mask3D .npy with datasets.preprocessing.scannetpp_pth_preprocessing.py
From the ScanNet++ toolbox code (semantic/transforms/mesh.py), vtx_instance_anno_id is assigned from:
Hi, the instance IDs should be the same as in the released data. Are you using the latest v2 version of the ScanNet++ data? And is the issue only in the validation set?
I generated the full .pth with: python -m semantic.prep.prepare_training_data semantic/configs/prepare_training_data.yml
Then I ran sample_pth.py and converted to Mask3D .npy.
From the toolbox code, vtx_instance_anno_id is assigned from segGroups[].objectId, and I verified:
full .pth and sampled .pth have the same instance IDs
sampled .pth and final .npy also have the same instance IDs
So the mismatch seems to be between the public ExCap3D caption JSON keys and segGroups[].objectId in the public v2 ScanNet++ data.
Concrete example: scene 286b55a2bf
in scans/segments_anno.json:
toilet -> objectId=51
sink -> objectId=50
soap dispenser -> objectId=49
door -> objectId=63
cabinet -> objectId=72
but in the public ExCap3D caption JSON for the same scene, the corresponding captions are keyed as:
13 -> toilet caption
14 -> sink caption
15 -> soap dispenser caption
32 -> door caption
33 -> cabinet caption
So at least for this scene, the caption keys do not match objectId.
I first noticed it on val, but it does not seem val-only. Across the public train+val caption release, I found mixed scene-level key patterns rather than a single consistent mapping.
Could you clarify whether the public caption JSON keys are expected to match segGroups[].objectId, or whether they correspond to another scene-local ID (e.g. segGroup index / instance_ndx)? If a remapping step is required for the public release, could you share the official procedure?Duplicate of #
From my checks, the caption JSON keys do not behave like a single global ID field from the raw public ScanNet++ v2 annotations. Across scenes, they look mixed: some match objectId, some match segGroup index, and some match segGroup index + 1.
So I suspect “the released data” in your comment may refer to the released processed ExCap3D/Mask3D data rather than raw ScanNet++ v2 + self-generated preprocessing.
Could you clarify which exact instance-id field in the released processed data is expected to match the public caption JSON keys?
segGroups[].objectId / vtx_instance_anno_id
segGroup index / vtx_instance_labels
or another released remapped scene-local instance id
Activity
cy94 commentedon Mar 31, 2026
Hi, the instance IDs should be the same as in the released data. Are you using the latest v2 version of the ScanNet++ data? And is the issue only in the validation set?
zhaoyibo0422-code commentedon Mar 31, 2026
Thanks for the quick reply.
Yes, I am using the latest public ScanNet++ v2 release and the official toolbox pipeline:
I generated the full
.pthwith:python -m semantic.prep.prepare_training_data semantic/configs/prepare_training_data.ymlThen I ran
sample_pth.pyand converted to Mask3D.npy.From the toolbox code,
vtx_instance_anno_idis assigned fromsegGroups[].objectId, and I verified:.pthand sampled.pthhave the same instance IDs.pthand final.npyalso have the same instance IDsSo the mismatch seems to be between the public ExCap3D caption JSON keys and
segGroups[].objectIdin the public v2 ScanNet++ data.Concrete example: scene
286b55a2bfscans/segments_anno.json:objectId=51objectId=50objectId=49objectId=63objectId=7213-> toilet caption14-> sink caption15-> soap dispenser caption32-> door caption33-> cabinet captionSo at least for this scene, the caption keys do not match
objectId.I first noticed it on val, but it does not seem val-only. Across the public train+val caption release, I found mixed scene-level key patterns rather than a single consistent mapping.
Could you clarify whether the public caption JSON keys are expected to match
segGroups[].objectId, or whether they correspond to another scene-local ID (e.g. segGroup index / instance_ndx)? If a remapping step is required for the public release, could you share the official procedure?Duplicate of #zhaoyibo0422-code commentedon Apr 1, 2026
From my checks, the caption JSON keys do not behave like a single global ID field from the raw public ScanNet++ v2 annotations. Across scenes, they look mixed: some match objectId, some match segGroup index, and some match segGroup index + 1.
So I suspect “the released data” in your comment may refer to the released processed ExCap3D/Mask3D data rather than raw ScanNet++ v2 + self-generated preprocessing.
Could you clarify which exact instance-id field in the released processed data is expected to match the public caption JSON keys?
SpeedyGonzales949 commentedon May 8, 2026
I have the same issue. e.g.: Ids also do not match for scene ef69d58016.