Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 2.93 KB

README.md

File metadata and controls

39 lines (28 loc) · 2.93 KB

OpenSet_ReciprocalPoints

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.

Instructions on Installation

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.

Instructions on Training

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/

Citations

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} }