feymanpriv/DELG

Question about preparing a training data

Closed this issue · 5 comments

Hello, @feymanpriv.
First of all, thank you very much for sharing your code.
I'm trying to run your code, but I ran into some problems since I'm new to the GLDv2dataset.

I downloaded the gldv2 dataset from the official DELG GitHub link below.
link
With this, I got image files and CSV files.
After that, what do I need to do to run this code?

The build_image_dataset.py in the link above is the process of running to get the TFRecord file, but it doesn't seem to match this code.
I would be very grateful if you could tell me how to handle the raw GLDv2 dataset to run your code.

@won4113 I made the dataset file list (txt file) as "id label"

@feymanpriv

Thanks. I prepare the dataset file list as you guided and it works well 👍

I have a few more questions about your implementation.

  1. In the FC layer after the GeM pooling layer you reduced the feature dimension to 512. The original paper seems to have retained the 2048 feature dimension. Is there a reason for doing this?
  2. There seems to be no process of extracting global descriptors in the extractor.py file. However, in the example_evaluate_with_local.py file, a global descriptor is used. How do you extract this global descriptor?

@won4113

  1. Yes, i add the fc layer to reduce the dimension. In the eval process, we need to extract all db features and save, 2048 is so large. And in the previous Google Landmark Retrieval Competition, we find 512 dim got the result similar to 2048 even better.
  2. Global rank used 3 scales, i will update later.

@feymanpriv
Since you didn't provide the method of extracting global descriptors in the extractor.py file. I found this link
https://www.kaggle.com/qiubit/baseline-model-evaluation#Baseline-model-evaluation

Is this correct method for extracting global descriptor? If not, please provide code for it.
Thanks.

@shrikant-temburwar Hi, you just need to return "global features" in extractor.py here in line 55 "_, delg_features, delg_scores = model(input_data, targets=None)"