GitXplorerGitXplorer
d

affnet

public
268 stars
46 forks
3 issues

Commits

List of commits on branch master.
Unverified
e21d8f54543ef81ecc5306d4cc0fc4735d1666e4

fixed bug in dmv

dducha-aiki committed 6 years ago
Verified
99272f897cc4efc5c9474ff00aee0b09c786009e

Fixed constructor call of demo

jjukindle committed 6 years ago
Unverified
dc48701559ba00283957f3d12909cf5cab684a18

python3 partial compatability

dducha-aiki committed 6 years ago
Verified
f46f0dcee547fb571c1c2d20adcd5e85cd6317b0

Remove geom dist from log

dducha-aiki committed 6 years ago
Unverified
142c0df63c2a04927dfff8c59655e192257e53ea

switch off geometric loss, as it causes 10x slowdown https://github.com/ducha-aiki/affnet/issues/10#issuecomment-415068123

dducha-aiki committed 6 years ago
Unverified
2eb4a4253d3cee21780e508acbb4d9224bf26d46

Code for video version of Figure 1. Might be useful as boilerplate code

dducha-aiki committed 6 years ago

README

The README file for this repository.

AffNet model implementation

CNN-based affine shape estimator.

AffNet model implementation in PyTorch for ECCV2018 paper "Repeatability Is Not Enough: Learning Discriminative Affine Regions via Discriminability"

Update: pytorch 1.4 version

The master branch is the one, which produced ECCV-paper results, python 2.7 and pytorch 0.4.0

Here is the one, which successfully runs on python 3.7, pytorch 1.4.0

AffNet generates up to twice more correspondeces compared to Baumberg iterations HesAff HesAffNet

Retrieval on Oxford5k, mAP

Detector + Descriptor BoW BoW + SV BoW + SV + QE HQE + MA
HesAff + RootSIFT 55.1 63.0 78.4 88.0
HesAff + HardNet++ 60.8 69.6 84.5 88.3
HesAffNet + HardNet++ 68.3 77.8 89.0 89.5

Datasets and Training

To download datasets and start learning affnet:

git clone https://github.com/ducha-aiki/affnet
./run_me.sh

Paper figures reproduction

To reproduce Figure 1 in paper, run notebook

To reproduce Figure 2-3 in paper, run notebooks here

git clone https://github.com/ducha-aiki/affnet
./run_me.sh

Pre-trained models

Pre-trained models can be found in folder pretrained: AffNet.pth

Usage example

We provide two examples, how to estimate affine shape with AffNet. First, on patch-column file, in HPatches format, i.e. grayscale image with w = patchSize and h = nPatches * patchSize

cd examples/just_shape
python detect_affine_shape.py imgs/face.png out.txt

Out file format is upright affine frame a11 0 a21 a22

Second, AffNet inside pytorch implementation of Hessian-Affine

2000 is number of regions to detect.

cd examples/hesaffnet
python hesaffnet.py img/cat.png ells-affnet.txt 2000
python hesaffBaum.py img/cat.png ells-Baumberg.txt 2000

output ells-affnet.txt is Oxford affine format

1.0
128
x y a b c 

WBS example

Example is in [notebook](examples/hesaffnet/WBS demo.ipynb)

Citation

Please cite us if you use this code:

@inproceedings{AffNet2017,
 author = {Dmytro Mishkin, Filip Radenovic, Jiri Matas},
    title = "{Repeatability Is Not Enough: Learning Discriminative Affine Regions via Discriminability}",
    year = 2018,
    month = sep,
    booktitle = {Proceedings of ECCV}
    }