Open-source, re-implementation of the published ECCV '20 paper on reciprocal points for open-set recognition. This paper is state-of-the-art in open-set recognition as of October 2020.
Code cleanup in progress; results on test set will be updated soon.
Confirmed with paper authors that this implementation is correct. Using dataloaders of the authors, the implementation actually exceeds the published performance on tiny-imagenet. Using my own dataloaders, the results are slightly below the published performance (data splits are different, so this is probably why).
I also ran a standard deep learning baseline on both of these datasets. I actually find that the baseline has been underestimated by the current open-set literature; the current literature reports a much lower number for the baseline than the one I obtained with my own code. This may signal that the progress in open-set recognition is much more modest than it would seem.
Method | CIFAR+10 | Tiny Imagenet |
---|---|---|
Published baseline | 81.6% | 57.7% |
My implementation of baseline | 89.24% (val) | 66.35% (val) |
My implementation of RPL | 89.79% (val) | 67.11% (val) |
Published RPL | 84.2% | 68.8% |
Exact data splits that were used for experiments can be found here for tiny imagenet and here for cifar+10.
The images for Tiny Imagenet can be obtained by running wget http://cs231n.stanford.edu/tiny-imagenet-200.zip
.
The requirements.txt file describes the core requirements. A recent version of Python (i.e. Python 3.7) should work. I suggest creating a Conda virtual environment with Python 3.7 and then running conda install -c conda-forge --file requirements.txt
to get the right packages. One additional note: this repo using wordnet from nltk for some data processing; using wordnet requires an additional step: run nltk.download()
which opens a download window...select wordnet.
Many of the training args are optional with default values. Essentially all of the required args are directory paths. Here is an example training command on Tiny ImageNet:
python train.py /Users/kevinluo/Data/ /Users/kevinluo/Downloads/tiny_info/ 20closed_split0_closedval10_size32 /Users/kevinluo/Data/rpl/ /Users/kevinluo/Data/logfiles/rpl/
All credit for the paper goes to the authors. Paper can be found here: https://arxiv.org/abs/2011.00178.
Citation: @misc{chen2020learning, title={Learning Open Set Network with Discriminative Reciprocal Points}, author={Guangyao Chen and Limeng Qiao and Yemin Shi and Peixi Peng and Jia Li and Tiejun Huang and Shiliang Pu and Yonghong Tian}, year={2020}, eprint={2011.00178}, archivePrefix={arXiv}, primaryClass={cs.CV} }