/CNDesc

Primary LanguagePython

CNDesc

The official implementation of "CNDesc: Cross Normalization for Local Descriptors Learning" (TMM).

To do:

  • Evaluation code for CNDesc
  • Trained model
  • Training code

Requirement

pip install -r requirement.txt

Quick start

HPatches Image Matching Benchmark

1.Download the trained model: https://drive.google.com/file/d/16mVPNgYgmAgJ-DlmA7zC8lRffH4l0l5x/view?usp=sharing and place it in the "ckpt/cndesc".

2.Download the HPatches dataset:

cd evaluation_hpatch/hpatches_sequences
bash download.sh

3.Extract local descriptors:

cd evaluation_hpatch
CUDA_VISIBLE_DEVICES=0 python export.py  --tag [Descriptor_suffix_name]  --output_root [output_dir] --config ../configs/CNDesc_extract.yaml

4.Evaluation

cd evaluation_benchmark
python hpatch_benchmark.py --config ../configs/hpatches_benchmark.yaml

The evaluation results will be displayed as:

MMA at 3,6,9 thr:
cndesc [0.7397221459282769]
cndesc [0.8354972556785301]
cndesc [0.8578464366771557]
Precision at 3,6,9 thr:
cndesc [0.7586607756438078]
cndesc [0.8576736450195312]
cndesc [0.880967034233941]
HA at 3,6,9 thr:
cndesc [0.7648148006863065]
cndesc [0.8981480068630643]
cndesc [0.9407406559696904]

Citation

@article{wang2022cndesc,
  title={CNDesc: Cross Normalization for Local Descriptors Learning},
  author={Wang, Changwei and Xu, Rongtao and Xu, Shibiao and Meng, Weiliang and Zhang, Xiaopeng},
  journal={IEEE Transactions on Multimedia},
  year={2022},
  publisher={IEEE}
}

Acknowledgements

We refer to the public implementation of D2Net and ASLFeat for organizing the code and implementing the evaluation metrics