Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.

Refactor instance retrieval optional normalization #381

Closed
wants to merge 4 commits into from

Commits on Aug 9, 2021

  1. Instance Retrieval Improvements (facebookresearch#380)

    Summary:
    Pull Request resolved: facebookresearch#380
    
    Various Instance Retrieval improvements:
    1. Add support for Manifold
    
    2. Cleanup noisy logs and add helpful logging.
    
    3. Add DEBUG_MODE support for the Revisited Datasets.
    
    4. Add ability to save results/logs/features.
    
    5. Fix ROI crop bug.
    
    6. Fix typo in benchmark_workflow.py causing benchmarks to fail.
    7. Add a bunch of json configs to track and group multiple experiments.
    
    Differential Revision: D29995282
    
    fbshipit-source-id: 88f243632544f110235371dc410bcb5aef691fd1
    iseessel authored and facebook-github-bot committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    a2f8db6 View commit details
    Browse the repository at this point in the history
  2. Fix gem logic, reverse cropping/transformation order. (facebookresear…

    …ch#379)
    
    Summary:
    Pull Request resolved: facebookresearch#379
    
    1. Fix the gem post processing logic.
    
    Before this change, the code assumes that each non-preprocessed feature tensor has the same tensor shape:
    
    ```
        if cfg.IMG_RETRIEVAL.FEATS_PROCESSING_TYPE == "gem":
            gem_out_fname = f"{out_dir}/{train_dataset_name}_GeM.npy"
            train_features = torch.tensor(np.concatenate(train_features))
    ```
    
    This is not the case, since ROxford/RParis images do not have a standard size, hence the resx layers have different height and widths (but same number of channels). GeM pooling will transform an image of any shape to a shape of `(num_channels)`
    
    The change performs gem_pooling on each individual images, as opposed to all the images at once. This should be fine because both gem and l2 normalization are to be performed per-image.
    
    2. Transform before cropping to the bounding box (as opposed to after cropping).
    
    The experiments show that this yields much better results. This is also what the deepcluster implentation uses: https://github.com/facebookresearch/deepcluster/blob/master/eval_retrieval.py#L44
    
    ```
    Oxford: 61.57 / 41.74 / 14.33 vs. 69.65 / 48.51 / 16.41
    Paris: 83.7 / 66.87 / 44.81 vs. 87.9 / 70.57 / 47.39
    ```
    f288434289
    f288438150
    
    Differential Revision: D29993204
    
    fbshipit-source-id: d6d02b6b96d59b43a00a1d1e99f34c03ee8a85b2
    iseessel authored and facebook-github-bot committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    4634950 View commit details
    Browse the repository at this point in the history
  3. Optional crop bbx (facebookresearch#378)

    Summary:
    Pull Request resolved: facebookresearch#378
    
    Revisited oxford and paris provide bounding boxes for the queries of the landmarks, that they suggest to use in the evaluation. Weirdly enough, the bounding boxes actually degrade performance for my experiments. Hence, putitng an option to make the bounding boxes optional.
    
    Differential Revision: D29993208
    
    fbshipit-source-id: 3a7a0d91b0521035d71bdd057d7c54a80582cbec
    iseessel authored and facebook-github-bot committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    360218e View commit details
    Browse the repository at this point in the history
  4. Refactor instance retrieval optional normalization (facebookresearch#381

    )
    
    Summary:
    Pull Request resolved: facebookresearch#381
    
    1. Rename SHOULD_TRAIN_PCA_OR_WHITENING to TRAIN_PCA_WHITENING
    
    2. Make l2 normalization optional.
    
    3. Fix cfg access bugs
    
    4. Add some more experiments.
    
    Reviewed By: prigoyal
    
    Differential Revision: D30002757
    
    fbshipit-source-id: a0aaf8ac17fc9044ec427ee14a4b39ee4ca92a7b
    iseessel authored and facebook-github-bot committed Aug 9, 2021
    Configuration menu
    Copy the full SHA
    9ec6d8b View commit details
    Browse the repository at this point in the history