This repository contains code for our accepted ICCV 2023 paper:
"Learning in Imperfect Environment: Multi-Label Classification with Long-Tailed Distribution and Partial Labels".
Conventional multi-label classification (MLC) methods assume that all samples are fully labeled and identically distributed. Unfortunately, this assumption is unrealistic in large-scale MLC data that has long-tailed (LT) distribution and partial labels (PL).
To address the problem, we introduce a novel task, Partial labeling and Long-Tailed Multi-Label Classification (PLT-MLC), to jointly consider the above two imperfect learning environments. Not surprisingly, we find that most LT-MLC and PL-MLC approaches fail to solve the PLT-MLC, resulting in significant performance degradation on the two proposed PLT-MLC benchmarks. end-to-end learning framework: COrrection
The proposed dataset and framework implementations of our paper are as follows:
- Python==3.8
- Pytorch==1.9.1
- cuda=10.2
We release all the PLT-MLC datasets on link. The data distribution and statistics of the developed
We also released the pretrained models on link (PLT-VOC dataset) and link (PLT-COCO dataset) . You can change the model_path in the testing code to verify the results.
Performance of the proposed COMIC on two proposed PLT-MLC datasets.
Model | Many Shot | Medium Shot | Few Shot | Total Shot |
---|---|---|---|---|
COMIC on PLT-COCO | 49.21Β±0.22 | 60.08Β±0.13 | 55.36Β±0.21 | 55.08Β±0.14 |
COMIC on PLT-VOC | 73.10Β±0.35 | 89.18Β±0.45 | 84.53Β±0.48 | 81.53Β±0.35 |
All the training and testing codes of our model are written in the shell.txt. For example, if you want to train our model with backbone resnet50 on PLT-COCO dataset, you can run the following command line.
Training
python plt_mlc_main.py --cfg /home/project/COMIC/config/coco/resnet50_plt.yaml
You require to edit the configurations in the resnet50_plt.yaml file.
resnet50_plt.yaml
βββ PerformanceLoss
βββ num_components
βββ training_opt
β βββ batch_size
β βββ dataset
β βββ distribution_path
β βββ co_occurrence_matrix
β βββ train_annatation_path
β βββ val_annatation_path
β βββ train_data_path
β βββ val_data_path
β βββ feature_dim
β βββ gpu_ids
Testing
python test.py --cfg /home/project/COMIC/config/coco/resnet50_plt.yaml
If you find our work useful in your research and would like to cite our project, please use the following citation: