Skip to content

jhlmarques/GauCho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

[CVPR2025] GauCho: Gaussian Distributions with Cholesky Decomposition for Oriented Object Detection

Jeffri Murrugara-Llerena*1  José Henrique Lima Marques*2 Cláudio R. Jung2 

1 Computer Science Department, Stony Brook University 2 Institute of Informatics, Federal University of Rio Grande do Sul

* First authors

[Paper] [Project] [Code] [BibTeX]

About

Gaucho

GauCho detects oriented objects with typical representations or Oriented Ellipses. It relies on a novel regression head designed to directly predict the parameters of 2D Gaussian distributions through the Cholesky decomposition of their covariance matrices, which theoretically mitigates the boundary discontinuity problem.

Gaucho

Install

Note: Some older Pytorch versions have a significantly slower implementation of the eigendecomposition functions, and should thus be avoided

Conda

# Create environment
conda create --name gaucho python=3.8 -y
conda activate gaucho

# Install pytorch
conda install pytorch==1.11.0 torchvision==0.12.0 cudatoolkit=11.3.1 -c pytorch

# Install MMCV and MMDetection using MIM
pip install -U openmim
mim install mmcv-full
mim install mmdet\<3.0.0

# Install mmrotate-gaucho
cd mmrotate-gaucho
pip install -e .

Docker

# Build the provided image
docker build -t cvpr2025-gaucho .

# Run
docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/cvpr2025-gaucho/data cvpr2025-gaucho

Train/Test

Model config files are separated in a baseline and gaucho folder. Training and testing can be done using the default mmrotate scripts.

Example: Train GauCho FCOS with ProbIoU loss on DOTA 1.0

python tools/train.py \ 
    configs_gaucho/gaucho_anchorless_dotav1/gaussian_fcos_r50_fpn_gaucho_probiou_1x_dota_le90.py

Example: Evalute GauCho FCOS

python tools/test.py \
    configs_gaucho/gaucho_anchorless_dotav1/gaussian_fcos_r50_fpn_gaucho_probiou_1x_dota_le90.py \
    path_to_checkpoint \
    --eval mAP

We also provide simple shell scripts for mass-training / testing configuration files.

Example: Train all baseline anchor-based detectors on HRSC2016 with KLD

./train_configs configs_baseline/gaucho_one_stage_baseline_hrsc kld

Citation

If you use this model in your research, please consider citing:

@InProceedings{Marques_2025_CVPR,
    author    = {Marques, Jos\'e Henrique Lima and Murrugarra-Llerena, Jeffri and Jung, Claudio R.},
    title     = {GauCho: Gaussian Distributions with Cholesky Decomposition for Oriented Object Detection},
    booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR)},
    month     = {June},
    year      = {2025},
    pages     = {3593-3602}
}

Acknowledgements

Our codebase is built upon the MMRotate benchmark. Huge thanks to the OpenMMLab team and their contributors!

@inproceedings{zhou2022mmrotate,
  title   = {MMRotate: A Rotated Object Detection Benchmark using PyTorch},
  author  = {Zhou, Yue and Yang, Xue and Zhang, Gefan and Wang, Jiabao and Liu, Yanyi and
             Hou, Liping and Jiang, Xue and Liu, Xingzhao and Yan, Junchi and Lyu, Chengqi and
             Zhang, Wenwei and Chen, Kai},
  booktitle={Proceedings of the 30th ACM International Conference on Multimedia},
  year={2022}
}

To-do:

  • Reorganize code to better fit MMRotate organization standards

About

[CVPR'25] GauCho: Gaussian Distributions with Cholesky Decomposition for Oriented Object Detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages