The 1st Place Solution of the Google Landmark 2019 Retrieval Challenge and the 3rd Place Solution of the Recognition Challenge.

We have published two papers regarding our solution. You can check from:


You can reproduce our environments using Dockerfile provided here


Dataset statistics:

Dataset (train split) # Samples # Labels
GLD-v1 1,225,029 14,951
GLD-v2 4,132,914 203,094
GLD-v2 (clean) 1,580,470 81,313

Prepare cleaned subset

(You can skip this procedure to generate a cleaned subset. Pre-computed files are available on kaggle dataset.)

Run scripts/ for cleaning the GLD-v2 dataset. The cleaning code requires DELF library (install instructions).


Model training and inference are done in exp/ directory.

# train models by various parameter settings with 4 gpus (each training is done with 2 gpus).
python tuning -d 0,1,2,3 --n-gpu 2

# predict
python predict -m vX/epX.pth -d 0
# predict with multiple gpus
python multigpu-predict -m vX/epX.pth --scale L2 --ms -b 32 -d 0,1

Results (retrieval challenge)

Place Team Private Public
1st smlyaka (ours) 37.23 35.69
2nd imagesearch 34.75 32.25
3rd Layer 6 AI 32.18 29.85