OCFNet / README.md
Ryan-2026's picture
Upload folder using huggingface_hub
583065e verified
|
Raw History Blame Contribute Delete
3.09 kB
---
license: mit
tags:
- point-cloud-registration
- 3d-vision
- 3dmatch
- 3dlomatch
library_name: pytorch
---
# OCFNet -- Overlap-guided Coarse-to-fine Correspondence Prediction
Weights for the spconv port of OCFNet, trained on 3DMatch for 150 epochs.
Code: https://github.com/gfmei/OCFNet
## Model
Coarse-to-fine registration over stride-8 super-points and their disjoint Voronoi patches,
with log-domain Sinkhorn at both levels. This checkpoint adds, over the published model:
- three rounds of interleaved self/cross attention at the coarse level (the published port
used one), with a 3D rotary position embedding on the super-point voxel indices;
- an overlap-aware circle loss on the super-point features, alongside the transport loss.
Uniform transport marginals with the dustbin on at both levels; the overlap head is trained
with the coarse and fine overlap losses but does not drive the marginals.
10.11 M parameters.
## Results
3DMatch and 3DLoMatch, 1000 sampled correspondences, correspondence-based RANSAC. RR is
registration recall, IR the inlier ratio, FMR the feature match recall (percentages); RRE is
the mean median rotation error in degrees, RTE the mean median translation error in metres.
| benchmark | RR | IR | FMR | RRE | RTE |
| --- | --- | --- | --- | --- | --- |
| 3DMatch | 89.1 | 69.8 | 96.4 | 2.25 | 0.071 |
| 3DLoMatch | 58.6 | 35.1 | 78.0 | 3.31 | 0.098 |
For reference, the published numbers are 90.2 / 58.7 / 98.5 on 3DMatch and 66.7 / 29.5 /
84.0 on 3DLoMatch. Inlier ratio here is well above the published model on both benchmarks;
3DLoMatch registration recall is below it. Two reasons, neither hidden: the backbone is
spconv rather than MinkowskiEngine and the two engines build sparse-convolution kernel maps
and handle submanifold layers differently, so this is not the same function even at
identical weights; and 21% of 3DLoMatch pairs fail at coarse patch selection, producing
almost no correct correspondences (coarse inlier ratio 0.008 against 0.477 for the rest).
Substituting ground-truth patch pairs takes that fraction to 0 and registration recall to
78.9%, so the limit is coarse selection rather than the fine features. The repository
documents this and the interventions that did not move it.
## Usage
```python
import torch
state = torch.load('ocfnet_3dmatch.pth', map_location='cpu', weights_only=False)
model.load_state_dict(state['state_dict']) # 166 tensors, epoch 149
```
Or point a test config at it and run the repository's evaluation:
```shell
# configs/test/ocfnet_geo.yaml, field misc.pretrain
BENCH=3DLoMatch sbatch scripts/slurm_eval_sweep.sh configs/test/ocfnet_geo.yaml
```
`config.yaml` is the training configuration this checkpoint was produced with.
## Citation
```bibtex
@inproceedings{mei2022overlap,
title = {Overlap-guided Coarse-to-fine Correspondence Prediction for Point Cloud Registration},
author = {Mei, Guofeng and Huang, Xiaoshui and Zhang, Juan and Wu, Qiang},
booktitle = {IEEE International Conference on Multimedia and Expo (ICME)},
year = {2022}
}
```