butter
Butter is a novel 2D object detection framework designed to enhance hierarchical feature representations for improved detection robustness.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.5%) to scientific vocabulary
Repository
Butter is a novel 2D object detection framework designed to enhance hierarchical feature representations for improved detection robustness.
Basic Info
- Host: GitHub
- Owner: Aveiro-Lin
- License: agpl-3.0
- Language: Python
- Default Branch: master
- Size: 960 KB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
✨Butter✨
🏆 This paper "Butter: Frequency Consistency and Hierarchical Fusion for Autonomous Driving Object Detection" has been accepted to ACM Multimedia 2025.
Paper: https://www.arxiv.org/pdf/2507.13373
Checkpoint: https://huggingface.co/Christopher-Lim/Butter
Butter is a novel 2D object detection framework designed to enhance hierarchical feature representations for improved detection robustness.
Install
Install ultralytics. Note: Python >= 3.8, PyTorch >= 1.8。 ```bash pip install ultralytics ```Usage
### Single-GPU training `KITTI` Dataset ```bash python Butter-KITTI-train.py --model_path ultralytics/cfg/models/Butter/Butter[SCALE]-All-KITTI.yaml --device 0 --name [NAME] ``` The `--model_path` option specifies the specific model configuration, with predefined configurations stored in the `ultralytics/cfg/models/Butter/` directory. `[SCALE]` You may choose between `n`,`s`,`m`,`l`,`x`; if `[SCALE]` is not specified, it defaults to `n`. In the original paper, Butter is a model scaled with `m`. The `--device` option specifies the GPU ID for single-GPU training. The `--name` option sets the name of the training experiment as `[NAME]`, and the final results will be saved under `runs/detect/[NAME]`. After training is completed, the best model weights will be saved at `runs/detect/[NAME]/weights/best.pt`. ### Multi-GPU Training `Cityscapes` Dataset ```bash TORCH_DISTRIBUTED_DEBUG=DETAIL python -m torch.distributed.run --nproc_per_node=4 Butter-City-train.py --model_path ultralytics/cfg/models/Butter/Butterm-All-City.yaml --device 1,2,3,6 --name [NAME] ``` The `--nproc_per_node` option specifies the number of GPUs to use. The `--model_path` option specifies the specific model configuration, with predefined configurations stored in the `ultralytics/cfg/models/Butter/` directory. The `--device` option specifies the GPU IDs for multi-GPU training, separated by commas. The `--name` option sets the name of the training experiment as `[NAME]`, and the final results will be saved under `runs/detect/[NAME]`. `BDD100K` Dataset ```bash TORCH_DISTRIBUTED_DEBUG=DETAIL python -m torch.distributed.run --nproc_per_node=4 Butter-BDD100K-train.py --model_path ultralytics/cfg/models/Butter/Butterm-All-BDD100K.yaml --device 4,5,6,7 --name [NAME] ``` The `--nproc_per_node` option specifies the number of GPUs to use. The `--model_path` option specifies the specific model configuration, with predefined configurations stored in the `ultralytics/cfg/models/Butter/` directory. The `--device` option specifies the GPU IDs for multi-GPU training, separated by commas. The `--name` option sets the name of the training experiment as `[NAME]`, and the final results will be saved in `runs/detect/[NAME]`. `COCO` Dataset ```bash TORCH_DISTRIBUTED_DEBUG=DETAIL python -m torch.distributed.run --nproc_per_node=4 Butter-coco-train.py --model_path ultralytics/cfg/models/Butter/Butter-All-COCO.yaml --device 1,2,3,6 --name [NAME] ``` The `--nproc_per_node` option specifies the number of GPUs to use. The `--model_path` option specifies the specific model configuration, with predefined configurations stored in the `ultralytics/cfg/models/Butter/` directory. The `--device` option specifies the GPU IDs for multi-GPU training, separated by commas. The `--name` option sets the name of the training experiment as `[NAME]`, and the final results will be saved under `runs/detect/[NAME]`. ### Prediction `KITTI` Dataset ```bash python Butter-KITTI-predict.py --model_path runs/detect/[TRAIN_NAME]/weights/best.pt --name [NAME] ``` Here, the `--model_path` option specifies the best model weights obtained from training, located at `runs/detect/[TRAIN_NAME]/weights/best.pt`, where `[TRAIN_NAME]` should be replaced with the name of the training experiment. The `--name` option sets the name of the prediction experiment as `[NAME]`, and the final results will be saved in `runs/detect/[NAME]`. `Cityscapes` Dataset ```bash python Butter-City-predict.py --model_path runs/detect/[TRAIN_NAME]/weights/best.pt --name [NAME] ``` Here, the `--model_path` option specifies the best model weights obtained from training, located at `runs/detect/[TRAIN_NAME]/weights/best.pt`, where `[TRAIN_NAME]` should be replaced with the name of the training experiment. The `--name` option sets the name of the prediction experiment as `[NAME]`, and the final results will be saved in `runs/detect/[NAME]`. `BDD100K` Dataset ```bash python Butter-BDD100K-predict.py --model_path runs/detect/[TRAIN_NAME]/weights/best.pt --name [NAME] ``` Here, the `--model_path` option specifies the best model weights obtained from training, located at `runs/detect/[TRAIN_NAME]/weights/best.pt`, where `[TRAIN_NAME]` should be replaced with the name of the training experiment. The `--name` option sets the name of the prediction experiment as `[NAME]`, and the final results will be saved in `runs/detect/[NAME]`.COCO Dataset
bash
python Butter-COCO-predict.py --model_path runs/detect/[TRAIN_NAME]/weights/best.pt --name [NAME]
Here, the --model_path option specifies the best model weights obtained from training, located at runs/detect/[TRAIN_NAME]/weights/best.pt, where [TRAIN_NAME] should be replaced with the name of the training experiment. The --name option sets the name of the prediction experiment as [NAME], and the final results will be saved in runs/detect/[NAME].
Owner
- Login: Aveiro-Lin
- Kind: user
- Repositories: 1
- Profile: https://github.com/Aveiro-Lin
Citation (CITATION.cff)
# This CITATION.cff file was generated with https://bit.ly/cffinit
cff-version: 1.2.0
title: Ultralytics YOLO
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Glenn
family-names: Jocher
affiliation: Ultralytics
orcid: 'https://orcid.org/0000-0001-5950-6979'
- family-names: Qiu
given-names: Jing
affiliation: Ultralytics
orcid: 'https://orcid.org/0000-0003-3783-7069'
- given-names: Ayush
family-names: Chaurasia
affiliation: Ultralytics
orcid: 'https://orcid.org/0000-0002-7603-6750'
repository-code: 'https://github.com/ultralytics/ultralytics'
url: 'https://ultralytics.com'
license: AGPL-3.0
version: 8.0.0
date-released: '2023-01-10'
GitHub Events
Total
- Issues event: 1
- Watch event: 40
- Delete event: 1
- Public event: 1
- Push event: 5
- Fork event: 2
- Create event: 3
Last Year
- Issues event: 1
- Watch event: 40
- Delete event: 1
- Public event: 1
- Push event: 5
- Fork event: 2
- Create event: 3
Dependencies
- matplotlib >=3.3.0
- numpy <2.0.0; sys_platform == 'darwin'
- numpy >=1.23.0
- opencv-python >=4.6.0
- pandas >=1.1.4
- pillow >=7.1.2
- psutil *
- py-cpuinfo *
- pyyaml >=5.3.1
- requests >=2.23.0
- scipy >=1.4.1
- seaborn >=0.11.0
- torch >=1.8.0
- torch >=1.8.0,!=2.4.0; sys_platform == 'win32'
- torchvision >=0.9.0
- tqdm >=4.64.0
- ultralytics-thop >=2.0.0