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: