https://github.com/SSDUT-Caiyq/UFG-NCD
(CVPR2024 Highlight) Novel Class Discovery for Ultra-Fine-Grained Visual Categorization (UFG-NCD)
https://github.com/SSDUT-Caiyq/UFG-NCD
gcd ncd ultra-fine-grained
Last synced: about 1 year ago
JSON representation
(CVPR2024 Highlight) Novel Class Discovery for Ultra-Fine-Grained Visual Categorization (UFG-NCD)
- Host: GitHub
- URL: https://github.com/SSDUT-Caiyq/UFG-NCD
- Owner: SSDUT-Caiyq
- Created: 2024-03-24T12:42:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T07:13:42.000Z (almost 2 years ago)
- Last Synced: 2024-11-05T12:33:16.174Z (over 1 year ago)
- Topics: gcd, ncd, ultra-fine-grained
- Language: Python
- Homepage:
- Size: 720 KB
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# UFG-NCD
Official pytorch implementation of our paper: [*Novel Class Discovery for Ultra-Fine-Grained Visual Categorization*](https://openaccess.thecvf.com/content/CVPR2024/papers/Liu_Novel_Class_Discovery_for_Ultra-Fine-Grained_Visual_Categorization_CVPR_2024_paper.pdf) (CVPR2024 **Highlight**)

## Environment :snake:
Our implementation is based on [uno](https://github.com/DonkeyShot21/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.
```bash
# 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 checkpoints
```
## Datasets :floppy_disk:
We use Ultra-FGVC as our main experiment datasets, specifically the `SoyAgeing-{R1, R3, R4, R5, R6}`.
You can download the datasets [here](https://github.com/XiaohanYu-GU/Ultra-FGVC), also make sure you have changed the datasets root that defined in [`config.py`](./config.py).
## Supervised Learning :star2:
```bash
python supervised_learning.py --dataset SoyAgeing-R1 --task ncd
```
## Discovery Learning :sparkles:
```bash
python discovery_learning.py --dataset SoyAgeing-R1 --task ncd --pretrained ncd-supervised-SoyAgeing-R1-pc2.0-cra0.6-reg1.0.pth
```
## Citation :clipboard:
If you find our work helpful, please consider citing our paper:
```tex
@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}
}
```
## Acknowledgements :gift:
- [UNO](https://github.com/DonkeyShot21/UNO)
- [Ultra-FGVC](https://github.com/XiaohanYu-GU/Ultra-FGVC)