A PyTorch framework for an image retrieval task including implementation of N-pair Loss (NIPS 2016) and Angular Loss (ICCV 2017).
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
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.
We adopted data augmentation techniques used in Single Shot MultiBox Detector.
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