Official pytorch implementation of our paper: Novel Class Discovery for Ultra-Fine-Grained Visual Categorization (CVPR2024 Highlight)
Our implementation is based on uno, while logging is performed using wandb, we use conda to create the environment and install the dependencies.
Follow the commands below to setup environment.
# create environment
conda create -n rapl python=3.8
conda activate rapl
# choose the cudatoolkit version on your own
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=11.0 -c pytorch
# install other dependencies
pip install tqdm wandb scikit-learn pandas pytorch-lightning==1.1.3 lightning-bolts==0.3.0
# create checkpoints directory
mkdir checkpointsWe use Ultra-FGVC as our main experiment datasets, specifically the SoyAgeing-{R1, R3, R4, R5, R6}.
You can download the datasets here, also make sure you have changed the datasets root that defined in config.py.
python supervised_learning.py --dataset SoyAgeing-R1 --task ncdpython discovery_learning.py --dataset SoyAgeing-R1 --task ncd --pretrained ncd-supervised-SoyAgeing-R1-pc2.0-cra0.6-reg1.0.pthIf you find our work helpful, please consider citing our paper:
@InProceedings{Liu_2024_CVPR,
author = {Liu, Yu and Cai, Yaqi and Jia, Qi and Qiu, Binglin and Wang, Weimin and Pu, Nan},
title = {Novel Class Discovery for Ultra-Fine-Grained Visual Categorization},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2024},
pages = {17679-17688}
}