Home

Awesome

Exploring Structured Semantic Prior for Multi Label Recognition with Incomplete Labels

Official PyTorch Implementation of SCPNet, from the following paper:

Exploring Structured Semantic Prior for Multi Label Recognition with Incomplete Labels. CVPR 2023.

Zixuan Ding*, Ao Wang*, Hui Chen†, Qiang Zhang, Pengzhang Liu, Yongjun Bao, Weipeng Yan, Jungong Han, <br/> Xidian University, Tsinghua University, JD.com

Abstract

Multi-label recognition (MLR) with incomplete labels is very challenging. Recent works strive to explore the imageto-label correspondence in the vision-language model, i.e., CLIP, to compensate for insufficient annotations. In spite of promising performance, they generally overlook the valuable prior about the label-to-label correspondence. In this paper, we advocate remedying the deficiency of label supervision for the MLR with incomplete labels by deriving a structured semantic prior about the label-to-label correspondence via a semantic prior prompter. We then present a novel Semantic Correspondence Prompt Network (SCPNet), which can thoroughly explore the structured semantic prior. A Prior-Enhanced Self-Supervised Learning method is further introduced to enhance the use of the prior. Comprehensive experiments and analyses on several widely used benchmark datasets show that our method significantly outperforms existing methods on all datasets, well demonstrating the effectiveness and the superiority of our method.

<p align="center"> <table class="tg"> <tr> <td class="tg-c3ow"><img src="./figures/overview.png" align="center" ></td> </tr> </table> </p>

Credit to previous work

This repository is built upon the code base of ASL and SPLC, thanks very much!

Performance

DatasetmAPCkptLog
COCO76.4scpnet+coco.ckptscpnet+coco.txt
VOC91.2scpnet+voc.ckptscpnet+voc.txt
NUSWIDE62.0scpnet+nuswide.ckptscpnet+nuswide.txt
CUB25.7scpnet+cub.ckptscpnet+cub.txt

Training

COCO

python train.py -c configs/scpnet+coco.yaml

VOC

python train.py -c configs/scpnet+voc.yaml

NUSWIDE

python train.py -c configs/scpnet+nuswide.yaml

CUB

python train.py -c configs/scpnet+cub.yaml

Inference

Note: Please place the pretrained checkpoint to checkpoints/scpnet+coco/round1/model-highest.ckpt

COCO

python train.py -c configs/scpnet+coco.yaml -t -r 1

VOC

python train.py -c configs/scpnet+voc.yaml -t -r 1

NUSWIDE

python train.py -c configs/scpnet+nuswide.yaml -t -r 1

CUB

python train.py -c configs/scpnet+cub.yaml -t -r 1

Citation

@inproceedings{ding2023exploring,
  title={Exploring Structured Semantic Prior for Multi Label Recognition with Incomplete Labels},
  author={Ding, Zixuan and Wang, Ao and Chen, Hui and Zhang, Qiang and Liu, Pengzhang and Bao, Yongjun and Yan, Weipeng and Han, Jungong},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={3398--3407},
  year={2023}
}