PyTorch-Image-Retrieval
PyTorch-Image-Retrieval copied to clipboard
A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).
PyTorch Image Retrieval
A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).
Loss functions
We implemented loss functions to train the network for image retrieval.
Batch sampler for the loss function borrowed from here.
- N-pair Loss (NIPS 2016): Sohn, Kihyuk. "Improved Deep Metric Learning with Multi-class N-pair Loss Objective," Advances in Neural Information Processing Systems. 2016.
- Angular Loss (ICCV 2017): Wang, Jian. "Deep Metric Learning with Angular Loss," ICCV, 2017
Self-attention module
We attached the self-attention module of the Self-Attention GAN to conventional classification networks (e.g. DenseNet, ResNet, or SENet).
Implementation of the module borrowed from here.
Data augmentation
We adopted data augmentation techniques used in Single Shot MultiBox Detector.
Post processing
We utilized the following post-processing techniques in the inference phase.
- Moving the origin of the feature space to the center of the feature vectors
- L2-normalization
- Average query expansion
- Database-side feature augmentation