|
# Submodule used in [hloc](https://github.com/Vincentqyw/Hierarchical-Localization) toolbox |
|
|
|
# ASpanFormer Implementation |
|
|
|
![Framework](assets/teaser.png) |
|
|
|
This is a PyTorch implementation of ASpanFormer for ECCV'22 [paper](https://arxiv.org/abs/2208.14201), “ASpanFormer: Detector-Free Image Matching with Adaptive Span Transformer”, and can be used to reproduce the results in the paper. |
|
|
|
This work focuses on detector-free image matching. We propose a hierarchical attention framework for cross-view feature update, which adaptively adjusts attention span based on region-wise matchability. |
|
|
|
This repo contains training, evaluation and basic demo scripts used in our paper. |
|
|
|
A large part of the code base is borrowed from the [LoFTR Repository](https://github.com/zju3dv/LoFTR) under its own separate license, terms and conditions. The authors of this software are not responsible for the contents of third-party websites. |
|
|
|
## Installation |
|
```bash |
|
conda env create -f environment.yaml |
|
conda activate ASpanFormer |
|
``` |
|
|
|
## Get started |
|
Download model weights from [here](https://drive.google.com/file/d/1eavM9dTkw9nbc-JqlVVfGPU5UvTTfc6k/view?usp=share_link) |
|
|
|
Extract weights by |
|
```bash |
|
tar -xvf weights_aspanformer.tar |
|
``` |
|
|
|
A demo to match one image pair is provided. To get a quick start, |
|
|
|
```bash |
|
cd demo |
|
python demo.py |
|
``` |
|
|
|
|
|
## Data Preparation |
|
Please follow the [training doc](docs/TRAINING.md) for data organization |
|
|
|
|
|
|
|
## Evaluation |
|
|
|
|
|
### 1. ScanNet Evaluation |
|
```bash |
|
cd scripts/reproduce_test |
|
bash indoor.sh |
|
``` |
|
Similar results as below should be obtained, |
|
```bash |
|
'auc@10': 0.46640095171012563, |
|
'auc@20': 0.6407042320049785, |
|
'auc@5': 0.26241231577189295, |
|
'prec@5e-04': 0.8827665604024288, |
|
'prec_flow@2e-03': 0.810938751342228 |
|
``` |
|
|
|
### 2. MegaDepth Evaluation |
|
```bash |
|
cd scripts/reproduce_test |
|
bash outdoor.sh |
|
``` |
|
Similar results as below should be obtained, |
|
```bash |
|
'auc@10': 0.7184113573584142, |
|
'auc@20': 0.8333835724453831, |
|
'auc@5': 0.5567622479156181, |
|
'prec@5e-04': 0.9901741341790503, |
|
'prec_flow@2e-03': 0.7188964321862907 |
|
``` |
|
|
|
|
|
## Training |
|
|
|
### 1. ScanNet Training |
|
```bash |
|
cd scripts/reproduce_train |
|
bash indoor.sh |
|
``` |
|
|
|
### 2. MegaDepth Training |
|
```bash |
|
cd scripts/reproduce_train |
|
bash outdoor.sh |
|
``` |
|
|
|
|
|
If you find this project useful, please cite: |
|
|
|
``` |
|
@article{chen2022aspanformer, |
|
title={ASpanFormer: Detector-Free Image Matching with Adaptive Span Transformer}, |
|
author={Chen, Hongkai and Luo, Zixin and Zhou, Lei and Tian, Yurun and Zhen, Mingmin and Fang, Tian and McKinnon, David and Tsin, Yanghai and Quan, Long}, |
|
journal={European Conference on Computer Vision (ECCV)}, |
|
year={2022} |
|
} |
|
``` |
|
|