This is the PyTorch implementation of accepted AAAI 2021 paper: Deep Unsupervised Image Hashing by Maximizing Bit Entropy
Our paper presentation is on YouTube
A simple, parameter-free, bi-half coding layer to maximize hash channel capacity |
Experimental results on 5 image datasets Flickr25k, Nus-wide, Cifar-10, Mscoco, Mnist and 2 video datasets Ucf-101 and Hmdb-51. We divided them into three groups according to different settings: (i) Train an AutoEncoder on Mnist; (ii) Image Hashing on Flickr25k, Nus-wide, Cifar-10, Mscoco using Pre-trained Vgg; (iii) Video Hashing on Ucf-101 and Hmdb-51 using Pre-trained 3D ResNet-34 and ResNet-101.
Bi-half Net in Pytorch
── settings
├── AutoEncoder
│ ├── Sign_Layer.py
│ ├── SignReg.py
│ └── Bihalf_Layer.py
├── ImageHashing
│ ├── Cifar(I)_bihalf.py
│ ├── Cifar(II)_bihalf.py
│ ├── Nus(I)_bihalf.py
│ ├── Nus(II)_bihalf.py
│ ├── Flickr_bihalf.py
│ └── Mscoco_bihalf.py
└── VideoHashing
├── Ucf_bihalf.py
└── Hmdb_bihalf.py
This figure visualizes the continuous feature distributions before binarization over different methods by training the network on MNIST with 3 hash bits. We observe that the features learned by sign layer are seriously tangled with each other. By adding an entropy regularization term, the feature tanglement can be mitigated, but it is suboptimal solution which requires careful hyper-parameter tuning. The proposed bihalf layer can learn evenly distributed features.
Sign Layer | Sign + Reg | Bi-half Layer |
If you find the code in this repository useful for your research consider citing it.
@article{liAAAI2021,
title={Deep Unsupervised Image Hashing by Maximizing Bit Entropy},
author={Li, Yunqiang and van Gemert, Jan},
journal={AAAI},
year={2021}
}
If you have any problem about our code, feel free to contact