Long-tail recognition that admits when it meets a stranger
OLTR is a PyTorch reimplementation of a CVPR 2019 Oral paper that jointly tackles class imbalance and open-set recognition, so models can handle rare categories without forcing labels on entirely unseen ones.

What it does
Open Long-Tailed Recognition (OLTR) is the authors’ PyTorch reimplementation of their CVPR 2019 Oral paper. It trains vision models on heavily imbalanced datasets—where a few classes dominate and most are starved for examples—while also preparing them for open-world test sets that contain categories never encountered during training. The goal is to correctly classify the familiar many-shot and few-shot classes, and honestly flag the rest as unknown rather than forcing a wrong label.
The interesting bit
Most projects treat long-tail classification and open-set detection as separate afflictions; this one treats them as the same headache. The README is essentially a reproduction guide, so the actual machinery—modulatedatt, meta-embedding, and the two-stage training pipeline—remains inside the paper, but the provided configs and weights let you run the full ImageNet-LT and Places-LT benchmarks out of the box.
Key highlights
- Reimplementation of a CVPR 2019 Oral presentation with published model weights and benchmark tables.
- Two-stage training: stage 1 learns representations, stage 2 learns a meta-embedding module.
- Evaluated on standard long-tail benchmarks
ImageNet-LTandPlaces-LT, reporting many-shot, medium-shot, few-shot, and F-measure metrics. - Stage 1 for
Places-LTfine-tunes a ResNet-152 from Caffe pre-trained weights; stage 2 drops back to single-GPU training. - Reproduced results are updated post-release after bug fixes in attention modules and F-measure calculation.
Caveats
- Multi-GPU training is fragile outside of
Places-LTstage 1, and stage 2 explicitly requires a single GPU. - The README is heavy on directory structure and command flags but light on model intuition; expect to read the paper to understand the architecture.
- PyTorch >= 0.4.1 and Caffe pre-trained weights place the codebase in an earlier era of the framework.
Verdict
Worth a look if you are reproducing long-tail or open-set vision baselines from 2019. Skip it if you need a modern, self-contained library with clean multi-GPU support and extensive documentation.
Frequently asked
- What is zhmiao/OpenLongTailRecognition-OLTR?
- OLTR is a PyTorch reimplementation of a CVPR 2019 Oral paper that jointly tackles class imbalance and open-set recognition, so models can handle rare categories without forcing labels on entirely unseen ones.
- Is OpenLongTailRecognition-OLTR open source?
- Yes — zhmiao/OpenLongTailRecognition-OLTR is open source, released under the BSD-3-Clause license.
- What language is OpenLongTailRecognition-OLTR written in?
- zhmiao/OpenLongTailRecognition-OLTR is primarily written in Python.
- How popular is OpenLongTailRecognition-OLTR?
- zhmiao/OpenLongTailRecognition-OLTR has 874 stars on GitHub.
- Where can I find OpenLongTailRecognition-OLTR?
- zhmiao/OpenLongTailRecognition-OLTR is on GitHub at https://github.com/zhmiao/OpenLongTailRecognition-OLTR.