butter

Butter is a novel 2D object detection framework designed to enhance hierarchical feature representations for improved detection robustness.

https://github.com/aveiro-lin/butter

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
Last synced: 7 months ago · JSON representation ·

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
Created 12 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

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

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

pyproject.toml pypi
  • 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