SCCM: Spherically Consistent Coarse Matching for ERP Dense Feature Correspondence

ACCV 2026 · Gyeonggwan Lee, Eunsoo Im, Seunghwan Hong, Junghun Suh (Kakao Mobility Corp., Korea University)

Project page · Code · Paper · Supplementary · arXiv

Pretrained SCCM weights for the main results of the paper (Tab. 1 and the SCCM row of Tab. 2). SCCM makes the coarse stage of a dense matcher sphere-aware for 360° equirectangular (ERP) images, and is instantiated in the RoMa V1 framework.

Files

Each file is a torch.save dict holding the model weights under the model key (optimizer state removed).

File Setting Config in the code repository Paper row PCK@1°
mp3d/sccm.pth indoor configs/mp3d/sccm.yaml Tab. 1a/1b SCCM, Tab. 2 R3 0.275 (MP3D)
holo360d/sccm.pth outdoor configs/holo360d/sccm_ft.yaml Tab. 1c SCCM 0.357 (Holo360D)

mp3d/sccm.pth is trained on Matterport3D (indoor) and is also the model evaluated zero-shot on Stanford2D3D (indoor, Tab. 1b). holo360d/sccm.pth starts from it and is trained on Holo360D (outdoor, in-the-wild). The baseline rows of the paper (chart-naïve scaffold, ERP-retrained RoMa V1) are reproduced from their configs in the code repository. MD5 sums are in checkpoints.md5.

Scope and limitations

SCCM targets gravity-aligned (upright) ERP images and is not tilt-equivariant; accuracy drops under camera pitch/roll. The outdoor result above is after training on Holo360D. Zero-shot transfer from Holo360D to Mapillary Metropolis leads only at tight angular thresholds (up to 1°), not on every metric.

The main controlled comparison is SCCM versus the chart-naïve scaffold under a shared training protocol. EDM is evaluated using its released checkpoint and its own training recipe. Three Matterport3D runs per model support the overall SCCM gain; small module-level gains remain single-run estimates. See the paper and supplementary material for the protocols.

Usage

git clone https://github.com/gandanlee/sccm.git && cd sccm && pip install -e .
pip install huggingface_hub
from huggingface_hub import hf_hub_download
from sccm.build import get_model, load_config, load_checkpoint

ckpt = hf_hub_download("gandan-lee/sccm", "mp3d/sccm.pth")
model = get_model(load_config("configs/mp3d/sccm.yaml"))
load_checkpoint(model, ckpt)          # strict=True
model.cuda().eval()

The frozen DINOv2-Large encoder is downloaded from its official release on first use and is not redistributed here.

Citation

@inproceedings{lee2026sccm,
  title     = {{SCCM}: Spherically Consistent Coarse Matching for {ERP} Dense Feature Correspondence},
  author    = {Lee, Gyeonggwan and Im, Eunsoo and Hong, Seunghwan and Suh, Junghun},
  booktitle = {Asian Conference on Computer Vision (ACCV)},
  year      = {2026},
  eprint    = {2609.36545},
  archivePrefix = {arXiv},
  primaryClass = {cs.CV},
  url       = {https://arxiv.org/abs/2609.36545}
}

License

MIT. The models were trained on Matterport3D and Holo360D; use of those datasets remains subject to their own terms.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for gandan-lee/sccm