Giter VIP home page Giter VIP logo

cosplace's Introduction

Rethinking Visual Geo-localization for Large-Scale Applications

PWCPWC PWC PWC PWC PWC PWC

This is the official pyTorch implementation of the CVPR 2022 paper "Rethinking Visual Geo-localization for Large-Scale Applications". The paper presents a new dataset called San Francisco eXtra Large (SF-XL, go here to download it), and a highly scalable training method (called CosPlace), which allows to reach SOTA results with compact descriptors.

[CVPR OpenAccess] [ArXiv] [Video] [BibTex]

The images below represent respectively:

  1. the map of San Francisco eXtra Large
  2. a visualization of how CosPlace Groups (read datasets) are formed
  3. results with CosPlace vs other methods on Pitts250k (CosPlace trained on SF-XL, others on Pitts30k)

Train

After downloading the SF-XL dataset, simply run

$ python3 train.py --train_set_folder path/to/sf_xl/raw/train/database --val_set_folder path/to/sf_xl/processed/val --test_set_folder path/to/sf_xl/processed/test

the script automatically splits SF-XL in CosPlace Groups, and saves the resulting object in the folder cache. By default training is performed with a ResNet-18 with descriptors dimensionality 512, which fits in less than 4GB of VRAM.

To change the backbone or the output descriptors dimensionality simply run

$ python3 train.py --backbone ResNet50 --fc_output_dim 128

You can also speed up your training with Automatic Mixed Precision (note that all results/statistics from the paper did not use AMP)

$ python3 train.py --use_amp16

Run $ python3 train.py -h to have a look at all the hyperparameters that you can change. You will find all hyperparameters mentioned in the paper.

Dataset size and lightweight version

The SF-XL dataset is about 1 TB. For training only a subset of the images is used, and you can use this subset for training, which is only 360 GB. If this is still too heavy for you (e.g. if you're using Colab), but you would like to run CosPlace, we also created a small version of SF-XL, which is only 5 GB. Obviously, using the small version will lead to lower results, and it should be used only for debugging / exploration purposes. More information on the dataset and lightweight version are on the README that you can find on the dataset download page (go here to find it).

Reproducibility

Results from the paper are fully reproducible, and we followed deep learning's best practices (average over multiple runs for the main results, validation/early stopping and hyperparameter search on the val set). If you are a researcher comparing your work against ours, please make sure to follow these best practices and avoid picking the best model on the test set.

Test

You can test a trained model as such

$ python3 eval.py --backbone ResNet50 --fc_output_dim 128 --resume_model path/to/best_model.pth

You can download plenty of trained models below.

Visualize predictions

Predictions can be easily visualized through the num_preds_to_save parameter. For example running this

python3 eval.py --backbone ResNet50 --fc_output_dim 512 --resume_model path/to/best_model.pth \
    --num_preds_to_save=3 --exp_name=cosplace_on_stlucia

will generate under the path ./logs/cosplace_on_stlucia/*/preds images such as

Given that saving predictions for each query might take long, you can also pass the parameter --save_only_wrong_preds which will save only predictions for wrongly predicted queries (i.e. where the first prediction is wrong), which should be the most interesting failure cases.

Trained Models

We now have all our trained models on PyTorch Hub, so that you can use them in any codebase without cloning this repository simply like this

import torch
model = torch.hub.load("gmberton/cosplace", "get_trained_model", backbone="ResNet50", fc_output_dim=2048)

As an alternative, you can download the trained models from the table below, which provides links to models with different backbones and dimensionality of descriptors, trained on SF-XL.

Model Dimension of Descriptors
32 64 128 256 512 1024 2048
ResNet-18 link link link link link - -
ResNet-50 link link link link link link link
ResNet-101 link link link link link link link
ResNet-152 link link link link link link link
VGG-16 - link link link link - -

Or you can download all models at once at this link

Issues

If you have any questions regarding our code or dataset, feel free to open an issue or send an email to [email protected]

Acknowledgements

Parts of this repo are inspired by the following repositories:

Cite

Here is the bibtex to cite our paper

@InProceedings{Berton_CVPR_2022_CosPlace,
    author    = {Berton, Gabriele and Masone, Carlo and Caputo, Barbara},
    title     = {Rethinking Visual Geo-Localization for Large-Scale Applications},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {4878-4888}
}

cosplace's People

Contributors

gmberton avatar lasuomela avatar timpushkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cosplace's Issues

License of trained weights?

Hi! I can see that the code is licensed under the MIT license.
Does this also apply to the weights of the trained model?

Error when trying to use own dataset

Hello,
We are trying to use your project with our own dataset, but we get an error when launching the training phase.
You can see a sample of our data below:

image

And the error message is the following:

2023-02-20 15:33:13   train.py --dataset_folder datasets/processed --backbone ResNet50 --fc_output_dim 128 --min_images_per_class 0 --groups_num 1
2023-02-20 15:33:13   Arguments: Namespace(L=2, M=10, N=5, alpha=30, augmentation_device='cuda', backbone='ResNet50', batch_size=32, brightness=0.7, classifiers_lr=0.01, contrast=0.7, dataset_folder='datasets/processed', device='cuda', epochs_num=50, fc_output_dim=128, groups_num=1, hue=0.5, infer_batch_size=16, iterations_per_epoch=10000, lr=1e-05, min_images_per_class=0, num_workers=8, positive_dist_threshold=25, random_resized_crop=0.5, resume_model=None, resume_train=None, saturation=0.7, save_dir='default', seed=0, test_set_folder='datasets/processed/test', train_set_folder='datasets/processed/train', use_amp16=False, val_set_folder='datasets/processed/val')
2023-02-20 15:33:13   The outputs are being saved in logs/default/2023-02-20_15-33-13
2023-02-20 15:33:13   Train only layer3 and layer4 of the ResNet50, freeze the previous ones
2023-02-20 15:33:14   There are 1 GPUs and 2 CPUs.
2023-02-20 15:33:15   Using cached dataset cache/processed_M10_N5_mipc0.torch
2023-02-20 15:33:15   Using 1 groups
2023-02-20 15:33:15   The 1 groups have respectively the following number of classes [28]
2023-02-20 15:33:15   The 1 groups have respectively the following number of images [179]
2023-02-20 15:33:17   Validation set: < val - #q: 466; #db: 1742 >
2023-02-20 15:33:17   Test set: < test - #q: 9990; #db: 2566 >
2023-02-20 15:33:17   Start training ...
2023-02-20 15:33:17   There are 28 classes for the first group, each epoch has 10000 iterations with batch_size 32, therefore the model sees each class (on average) 11428.6 times per epoch
/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py:554: UserWarning: This DataLoader will create 8 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.
  warnings.warn(_create_warning_msg(
  0%|                                                                     | 0/10000 [00:00<?, ?it/s]
2023-02-20 15:33:19   
Traceback (most recent call last):
  File "/content/gdrive/.shortcut-targets-by-id/1wvpt1FfBODh8ezpNJABgMlxsVSt4h7DU/processed/LIC/CosPlace/commons.py", line 21, in __next__
    batch = next(self.dataset_iterator)
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 628, in __next__
    data = self._next_data()
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1306, in _next_data
    raise StopIteration
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "train.py", line 115, in <module>
    images, targets, _ = next(dataloader_iterator)
  File "/content/gdrive/.shortcut-targets-by-id/1wvpt1FfBODh8ezpNJABgMlxsVSt4h7DU/processed/LIC/CosPlace/commons.py", line 24, in __next__
    batch = next(self.dataset_iterator)
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 628, in __next__
    data = self._next_data()
  File "/usr/local/lib/python3.8/dist-packages/torch/utils/data/dataloader.py", line 1306, in _next_data
    raise StopIteration
StopIteration

2023-02-20 15:33:19   Experiment finished (with some errors)

We have tried to use the small dataset and the training is starting fine. Do you know where the error could be coming from?

About the training time

Hello,

Thanks for your work.
Since it's a really big dataset, Could you please tell us your training time on what kind of GPU?

Thanks

Question about the 'groups_num' for training.

Hello, thanks for sharing the dataset.
I read in the paper that ablation experiments showed the best results were achieved using 8 groups.
I'm confused as to why just the first 8 groups are used instead of using some of the most training-friendly groups out of the 50.

Question about the number of 'group'

Hi @gmberton :
Thanks for your impressive work and sharing code. I am wondering what is the meaning of hyperparameter 'groups'. Can I set the value of 'group' to 1 for the SF-XL dataset? What is the difference between one group and eight groups for training?
Hope for your reply!

SF-XL

Hi, Thank you for your contribution.
I submitted the application for the SF-XL dataset, but many days passed without receiving any response from the task.
Do you know why?
Thank you!

About using the model in other datasets

Do I understand correctly that I can parse the panoramas to some other city and use your pre-trained models? That is, for each image, extract the embedding and save them. Then submit a new image (query) to the model, get an embedding for it and find the nearest to it in the previously saved ones (using faiss for example). Or should I train a new model on my data?

do image retrieval on my own dataset

Can I just use pretrained model to do image_retrieval on my dataset.
For example, I have a image folder A containing about 500 images. and now given a list of query images, I want to find k-nearest images in A for a query image. How can I do that without retraining the model?

Thank you in advance!

Questions about performance during training

Thank you for your excellent work! I am very impressed with your SF-XL dataset!
However, the dataset is too large and bad network makes it difficult for me to download the full dataset. (This problem may only be encountered by Chinese scholars.)
Therefore, I used the SMALL set for training and validation and my configuration is as follows:
M: 10 alpha: 30 N: 5 L: 2 groups_num: 4
I encountered some confusion:

  1. When the batch size is equal to 32, I find that the model's performance on the validation set is trending up until the epcoh is less than or equal to 25, and then the performance on the validation set is trending down as training proceeds. Do you have any idea what is the reason for this and how to fix the problem?
  2. I also tried setting the batch size to 64 and 128 (with the iterations_per_epoch set to 10,000), and found that the downward trend in model performance appeared earlier for epoch 20 (bs=64) and epcoh8 (bs=128). Have you explored the effect of different batch sizes on performance?

I would greatly appreciate it if you could help me with the above issues.

Why is iter used here during training iterations instead of directly using the dataloader?

for iteration in tqdm(range(args.iterations_per_epoch), ncols=100):


 dataloader = commons.InfiniteDataLoader(groups[current_group_num], num_workers=args.num_workers,
                                            batch_size=args.batch_size, shuffle=True,
                                            pin_memory=(args.device == "cuda"), drop_last=True)
    
    dataloader_iterator = iter(dataloader)
    model = model.train()
    
    epoch_losses = np.zeros((0, 1), dtype=np.float32)
    for iteration in tqdm(range(args.iterations_per_epoch), ncols=100):
           images, targets, _ = next(dataloader_iterator) 

Why not do it directly like this?


dataloader = commons.InfiniteDataLoader(groups[current_group_num], num_workers=args.num_workers,
                                            batch_size=args.batch_size, shuffle=True,
                                            pin_memory=(args.device == "cuda"), drop_last=True)
    
       model = model.train()
    
    epoch_losses = np.zeros((0, 1), dtype=np.float32)
    for images, targets, _ in tqdm(dataloader, ncols=100):

Method for Downloading Historical Google Street View Images

Hi@gmberton,
I've been closely following your work on visual geo-localization, and I am particularly intrigued by your methodology for acquiring historical Google Street View images.
Given that the Google Street View API doesn't offer a date option, I'd like to know how you downloaded these images.

Your insights would be greatly appreciated. Thank you very much!

Question about SARE and SFRS results (tested on tokyo247 dataset) used in the paper

First I shall say really nice work. I have some questions about Table 3 in your paper.
image

For the SARE and SFRS model training, did you use the author's repo or your own re-implemented version (which I did not find in the codebase)? The model in the SFRS author's paper is also trained on pit30K and tested on tokyo247 dataset but the results are better.
image
I am wondering whether this is re-implemented side issue or due to "we followed deep learning's best practices (average over multiple runs for the main results, validation/early stopping and hyperparameter search on the val set)".
It seems the SFRS author did pick the best model, as shown yxgeee/OpenIBL#2 (comment)

Thanks.

Performance Comparison with NetVLAD

Hi, thanks for your work and sharing the code!
I have been comparing the performance of CosPlace (vgg16_512.pth) and NetVLAD (pre-trained on Pittsburgh, 4096-descriptor) on a custom aerial image dataset (2500 query images and 2500 gallery images; using image index in place of UTM coordinates since the traverses are exactly aligned, and 25 frames as the tolerance). I have been getting R@1 and R@5 as 38.02 and 53.6 using NetVLAD. However, it is only 33.2 and 40 in case of CosPlace. As mentioned in the paper, should it perform better? Am I missing something?

Cannot open SF-XL datasat

I received the SF-XL dataset from e-mail but I cannot open the dataset.
there's the only text in below and any of download button or link.
So, How can I get the Dataset? Can you explain it?

'''
Hello,

thank you for your interest in our San Francisco eXtra Large dataset. If you like our work, don't forget to star our GitHub repository!
Check out what Berton Gabriele Moreno shared with you.
Open sf_xl
'''

When the model makes predictions, what is the relationship between the number of images in the query dataset and the number of database images?

When the model makes predictions, what is the relationship between the number of images in the query dataset and the number of database images?For example, when I use this model to predict, there is only one image in the query dataset, so the image in the database dataset should be the image of the region where the query dataset image is located,to ensure the correctness, how many database images should be at least?

About evaluation on the other datasets

Hello gmberton, if you can give me an example of testing Cosplace on pittsburgh to get the recall? To be honest, if you can give the recall@10 on Pitts250k, Pitts30k, Tokyo 24/7, MSLS, it will be the best.
Thank you very much!

Make custom dataset of other city alternative to SF-XL

Thanks for your great job, gmberton.
I'm wondering how to make my custom dataset that collected street view images of other city as well as the 6 DOFs, since the street images is 40962048 which is 2:1 ratio, and I seen the SF-XL is 3328512 which is likely clipped from the origin 33281164 street images, should I clip the street images first, how much pixel should cut out from upper and bottom?
But it will cut off the top of the buildings as well since there are many high buildings in my images, which same as SF-XL as well, how to do with that?
how about affixing the 2:1 panoramic image to a sphere , and then clip 512
512 tiles as datasets, which can avoid image distortion too?

About the training dataset

Hi, authors. Thanks for sharing the dataset. I am wondering whether the current version in SharePoint is the whole dataset. I have downloaded all the images but there are only 5.6M training images, not as stated in your paper which is 41.2M. In addition, the group ids cannot cover all the options from (0,0,0) to (N, N, L). Do you save the train folders according to group id? Otherwise, if the images in Sharepoint are randomly picked, I think the group IDs should contain all the NNL options. I am looking forward to your early reply.

Can the evaluation of this model be used in other city images?

SF-XL is a dataset on the city of San Francisco.When the model was trained in the city image of San Francisco,Can the evaluation of this model be used in other city images?

The image features of each city are different. If this model is trained on the image of city A, then this model can extract the features of city A very well, but it can not extract the features of city B very well, so     I think the image in training and evaluation of this model should be in the same area.But in the article  you used the city image of San Francisco to train the model, but used the city image of Tokyo to test     the model, how to understand this? 

Can't download small version of dataset...

Hello. Thanks for your work. I have applied for the dataset through online form and got a readme file to download the dataset. But i can't figure out how to download the small version (5gb) of the dataset.

Looking forward for the response. Thank you!

Why do I only perform Data Augmentation in CPU mode?

if self.augmentation_device == "cpu":

if self.augmentation_device == "cpu":
            self.transform = T.Compose([
                    T.ColorJitter(brightness=args.brightness,
                                  contrast=args.contrast,
                                  saturation=args.saturation,
                                  hue=args.hue),
                    T.RandomResizedCrop([512, 512], scale=[1-args.random_resized_crop, 1]),
                    T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
                ])

This means that there will be no Data Augmentation under the cuda model。
why?
Could we perform Data Augmentation in CPU mode and then transfer to GPU for deep neural network operations?

Issues about dataset download speed

Hi, thank you for creating such a great dataset!
I ran into an issue while following your method to download the dataset. The download speed is too slow, only tens of kB/s, which takes hundreds or thousands of hours to complete. I have confirmed that there is no problem with my network, I would like to know if this is normal? Is there any way to speed up my download?
Thank you in advance.

Validation Logs

Could you please provide validation logs for the training using ResNet101/152 or any other ResNet?
Thanks!

Why only freeze layers before conv_3 of ResNet?

backbone = get_pretrained_torchvision_model(backbone_name) if backbone_name.startswith("ResNet"): for name, child in backbone.named_children(): if name == "layer3": # Freeze layers before conv_3 break for params in child.parameters(): params.requires_grad = False logging.debug(f"Train only layer3 and layer4 of the {backbone_name}, freeze the previous ones") layers = list(backbone.children())[:-2] # Remove avg pooling and FC layer

Why only freeze layers before conv_3 of ResNet?Train only layer3 and layer4 of the ResNet?If all layers participate in training, shouldn't the learning ability of this model be stronger?

Question about coordinate system

Hello.
Thank you for your efforts.
I saw in the code 'test_dataset.py' that the coordinate system should be 'utm'.
If my own dataset is geo-tagged with 'gps(lat, lng)' do I need to convert the value to the utm coordinate system?

HDD may cause training to be too slow.

Hello!

  1. I downloaded SF-XL-small and SF-XL-processed. However, I can't download the test set(116 GB) of the SF-XL-processed completely. The first few times the download was interrupted, the last download was successful, but a few images were lost. (This problem may only be encountered by Chinese researchers. Our network has some limitations.)
    So I have a suggestion, you can split the test set into multiple unpacks. This makes it easier for researchers to follow your work and increase your citations.
% test\database\@[email protected]@10@[email protected]@-122.43590@[email protected] - CRC 校验错误。
% test\database\@[email protected]@10@[email protected]@-122.43110@[email protected] - CRC 校验错误。
% test\database\@[email protected]@10@[email protected]@-122.41102@[email protected] - 数据错误 - 该文件已损坏。
% test\database\@[email protected]@10@[email protected]@-122.39088@[email protected] - CRC 校验错误。
% test\database\@[email protected]@10@[email protected]@-122.39051@[email protected] - 该文件已损坏。
  1. I used a 3090 Ti to train on the SF-XL-processed, which was very slow and not consistent with what you said in #4 .
    Can you give me some suggestions? (I put data on a mechanical hard drive, could this be the reason?)
2022-12-06 09:42:25   train.py --dataset_folder=/mnt/sda2/Datasets/vpr_datasets/sf_xl/processed --backbone resnet18 --use_amp16 --resume_train logs/default/res18/last_checkpoint.pth
2022-12-06 09:42:25   Arguments: Namespace(L=2, M=10, N=5, alpha=30, augmentation_device='cuda', backbone='resnet18', batch_size=32, brightness=0.7, classifiers_lr=0.01, contrast=0.7, dataset_folder='/mnt/sda2/Datasets/vpr_datasets/sf_xl/processed', device='cuda', epochs_num=50, fc_output_dim=512, groups_num=8, hue=0.5, infer_batch_size=16, iterations_per_epoch=10000, lr=1e-05, min_images_per_class=10, num_workers=8, positive_dist_threshold=25, random_resized_crop=0.5, resume_model=None, resume_train='logs/default/res18/last_checkpoint.pth', saturation=0.7, save_dir='default', seed=0, test_set_folder='/mnt/sda2/Datasets/vpr_datasets/sf_xl/processed/test', train_set_folder='/mnt/sda2/Datasets/vpr_datasets/sf_xl/processed/train', use_amp16=True, val_set_folder='/mnt/sda2/Datasets/vpr_datasets/sf_xl/processed/val')
2022-12-06 09:42:25   The outputs are being saved in logs/default/2022-12-06_09-42-25
2022-12-06 09:42:25   There are 1 GPUs and 24 CPUs.
2022-12-06 09:42:39   Using cached dataset cache/processed_M10_N5_mipc10.torch
2022-12-06 09:42:59   Using 8 groups
2022-12-06 09:42:59   The 8 groups have respectively the following number of classes [35790, 35922, 35214, 35526, 35958, 35046, 35520, 35610]
2022-12-06 09:42:59   The 8 groups have respectively the following number of images [706128, 709044, 688956, 702792, 712152, 695616, 689177, 703554]
2022-12-06 09:47:05   Validation set: < val - #q: 7983; #db: 8015 >
2022-12-06 09:47:05   Test set: < test - #q: 1000; #db: 2805839 >
2022-12-06 09:47:05   Loading checkpoint: logs/default/res18/last_checkpoint.pth
2022-12-06 09:47:07   Resuming from epoch 8 with best R@1 86.5 from checkpoint logs/default/res18/last_checkpoint.pth
2022-12-06 09:47:07   Start training ...
2022-12-06 09:47:07   There are 35790 classes for the first group, each epoch has 10000 iterations with batch_size 32, therefore the model sees each class (on average) 8.9 times per epoch
2022-12-06 12:28:13   Epoch 08 in 2:41:06, < val - #q: 7983; #db: 8015 >: R@1: 86.2, R@5: 92.8
2022-12-06 15:00:23   Epoch 09 in 2:32:07, < val - #q: 7983; #db: 8015 >: R@1: 86.6, R@5: 93.2
2022-12-06 17:35:24   Epoch 10 in 2:34:58, < val - #q: 7983; #db: 8015 >: R@1: 87.1, R@5: 93.6
2022-12-06 20:13:33   Epoch 11 in 2:38:07, < val - #q: 7983; #db: 8015 >: R@1: 87.3, R@5: 93.7
  1. I noticed that you use early stopping strategy in VG Benchmark, but you fix 50 epochs in CosPlace. These settings confuse me.

Looking forward to your reply!
Thank you!

Peformance of Resnet18_512.pth

Hi, @gmberton

Thanks for your great work!

Now I'm testing the code with resnet18_512.pth. I use small/test/database and small/test/queries_v1 dataset you provided. I use the following command to run the code:

python3 eval.py --backbone ResNet18 --fc_output_dim 512 --resume_model ckpts/resnet18_512.pth --test_set_folder /mnt/H/Dataset/CosPlace

And I got the result like this:

2023-10-24 10:26:56   < CosPlace - #q: 1000; #db: 27191 >: R@1: 67.7, R@5: 77.8, R@10: 81.8, R@20: 85.0

But in the README.md of this repo, the result figure show that R@1 should be more than 90. So what's the problem?

image

About evaluation in SF-XL

Thanks for your great work! I am very impressed by your awesome SF-XL datasets, and I want to reproduce the results reported at Table. 4. If I understand correctly, the evaluation is conducted with the VGG16 backbone and with a descriptor dimensions of 128. So I download your VGG16_128.pth, and run the eval.py by python3 eval.py --dataset_folder ../SFXL --backbone vgg16 --fc_output_dim 128 --resume_model ../vgg16_128.pth. It runs in 4hrs to finish evaluation, but I only got

< test - #q: 1000; #db: 2805815 >: R@1: 55.9, R@5: 67.2, R@10: 71.2, R@20: 75.4

It is different from the numbers in your paper. I wonder whether it is because of the ~10 files truncated, but I don't think it would cause such a big difference.

I also want to get some clues to find out the root cause from my side. I would appreciate it if you can give me your evaluation results of VGG16_128.pth in the "small" version test dataset of SF-XL.

Can you help me with this issue? Thank you!

What else do you think CosPlace can improve?

CosPlace is a great work.In the article, you mentioned that it has two limitations. One is that the data must have an angle, and the other is that it does not perform well in small data sets。Does it have any other shortcomings? Or what can be improved in combination with the latest development of CV?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.