Skip to content
ModelListedExternal
Download

Bambi Orthographic Detectors

Single-class (reddeer) YOLO26x detectors for UAV imagery from the BAMBI dataset, trained at imgsz=1024 on orthographic projections in two render resolutions and two modalities.

KindOtherVersionRevision be65f34Bgrade

Model source

Kind
Other
File size
113 MB
Version
vRevision be65f34
Updated
Oct 21, 2026
Downloads
61
Source
Hugging Face

Source description

BAMBI Red Deer Detectors (YOLO26x, orthographic)

Single-class (red_deer) YOLO26x detectors for UAV imagery from the BAMBI dataset, trained at imgsz=1024 on orthographic projections in two render resolutions and two modalities.

filemodalityrendersmAP50mAP50-95train imgsepochs
detector_1k_rgb.ptRGB1k0.7100.459—27
detector_2k_rgb.ptRGB2k (content-cropped)0.7430.470772135
detector_1k_thermal.ptthermal1k0.8940.694—33
detector_2k_thermal.ptthermal2k (content-cropped)0.8870.693908329

Best validation mAP, single class red_deer.

  • RGB: 2k is modestly better (mAP50 0.710 -> 0.743, +3.3 pts) — the extra resolution helps the small, low-contrast RGB deer.
  • Thermal: unchanged (0.894 vs 0.887, within run-to-run noise) — thermal blobs are already easy, and thermal substantially outperforms RGB at both resolutions.

All four are trained on orthographic projections. There is no perspective-projection detector in this repo.

Usage

from huggingface_hub import hf_hub_download
from ultralytics import YOLO

path = YOLO(hf_hub_download("cpraschl/bambi-detectors", "detector_1k_thermal.pt"))
results = path.predict("frame.png", imgsz=1024)

The 2k detectors need a content-crop (important)

The 2k orthographic panel is ~76% black padding — the drone footprint is a small rotated patch inside a mostly empty frame. The 2k detectors were trained with that padding cropped away, which makes the deer roughly 2x larger in the training crops.

So at inference you must content-crop the panel the same way before the model, then map the boxes back to panel coordinates. Feeding the full padded 2k panel straight in makes the deer ~4x too small relative to training and materially degrades the boxes.

The 1k detectors have no such requirement — feed them the panel directly.

This is the single most common way to get bad results from this repo. If your 2k mAP looks far worse than the table above, this is almost certainly why.

A plain padded 2k variant was also trained (mAP50 0.720) and was worse than the content-cropped one, which is why the crop variant is the one that ships.

Training data

The BAMBI UAV dataset — 389 paired RGB and thermal aerial video sequences from dual-sensor nadir UAVs over Austrian forest habitats, ~5,100 annotated animal tracks across 12 species classes. These detectors are trained on the red_deer class only, so they are deer detectors, not general wildlife detectors: other BAMBI species (wild boar, chamois, ibex, birds, humans, dogs) are not detected, and out-of-distribution animals may be reported as deer.

Limitations

  • Single class. red_deer only. Anything else in frame is either missed or misreported.
  • Orthographic only. These expect ortho-projected panels, not raw perspective UAV frames.
  • Match resolution to model. The 1k and 2k detectors expect different input preparation (see the content-crop note); they are not interchangeable.
  • RGB is the weak modality (mAP50 ~0.71–0.74 vs ~0.89 thermal). For reliable detection, prefer thermal, or fuse.
  • Trained and validated on Austrian forest habitats in BAMBI; performance elsewhere, at other altitudes, or in other seasons is unverified.

Provenance

These are the original trained weights with optimizer/EMA state stripped and training-run paths removed from train_args. Inference outputs are bit-for-bit identical to the checkpoints as trained (verified: max|diff| = 0.0 on all four).

Citation

Please cite the underlying BAMBI dataset — the authors ask that work building on it cite their CV4Animals workshop paper (Praschl et al., 2026). See bambi-eco/Dataset for the current citation.

License

AGPL-3.0, inherited from Ultralytics, whose framework these YOLO26x models are trained with and whose terms extend to the resulting weights. If you need these under different terms, you need an Ultralytics Enterprise license — this repo cannot grant one.

The BAMBI dataset itself is MIT; the AGPL obligation here comes from the detector framework, not the data.

Sources

1 source
Hugging FacePrimaryVersion be65f3493126a027d7db3ba3a11b95d5482c3dc4
huggingface.co/cpraschl/bambi-orthographic-detectors/tree/be65f3493126a027d7db3ba3a11b95d5482c3dc4

Verified Oct 21

Model artifacts

4 artifacts

detector_1k_rgb.pt

pt · 113 MB · SHA-256 65f58716c3df…9580 · Hugging Face

Download

detector_1k_thermal.pt

pt · 113 MB · SHA-256 dd8d8108091e…7f23 · Hugging Face

Download

detector_2k_rgb.pt

pt · 113 MB · SHA-256 ab8c0674bdf6…a72e · Hugging Face

Download

detector_2k_thermal.pt

pt · 113 MB · SHA-256 625cf353d093…7edc · Hugging Face

Download

Source excerpts

3 excerpts

--- license: agpl-3.0 library_name: ultralytics tags: - object-detection - yolo - ultralytics - wildlife - uav - thermal - rgb - remote-sensing - orthographic-projection inference: false --- # BAMBI Red Deer Detectors (YOLO26x, orthographic) Single-class (`red_deer`) YOLO26x detectors for UAV imagery from the **[BAMBI dataset](https://github.com/bambi-eco/Dataset)**, trained at `imgsz=1024` on **orthographic projections** in two render resolutions and two modalities. | file | modality | renders | mAP50 | mAP50-95 | train imgs | epochs | |---|---|---|---|---|---|---| | `detector_1k_rgb.pt` | RGB | 1k | 0.710 | 0.459 | — | 27 | | `detector_2k_rgb.pt` | RGB | 2k (content-cropped) | **0.743** | **0.470** | 7721 | 35 | | `detector_1k_thermal.pt` | thermal | 1k | **0.894** | **0.694** | — | 33 | | `detector_2k_thermal.pt` | thermal | 2k (content-cropped) | 0.887 | 0.693 | 9083 | 29 | Best validation mAP, single class `red_deer`. - **RGB: 2k is modestly better** (mAP50 0.710 -> 0.743, +3.3 pts) — the extra resolution helps the small, low-contrast RGB deer. - **Thermal: unchanged** (0.894 vs 0.887, within run-to-run noise) — thermal blobs are already easy, and thermal substantially outperforms RGB at both resolutions. All four are trained on **orthographic** projections. There is no perspective-projection detector in this repo. ## Usage ```python from huggingface_hub import hf_hub_download from ultralytics import YOLO path = YOLO(hf_hub_download("cpraschl/bambi-detectors", "detector_1k_thermal.pt")) results = path.predict("frame.png", imgsz=1024) ``` ## The 2k detectors need a content-crop (important) The 2k orthographic panel is **~76% black padding** — the drone footprint is a small rotated patch inside a mostly empty frame. The 2k detectors were trained with that padding **cropped away**, which makes the deer roughly 2x larger in the training crops. So at inference you **must content-crop the panel the same way before the model, then map the boxes back** to panel coordinates. Feeding the full padded 2k panel straight in makes the deer ~4x too small relative to training and materially degrades the boxes. The 1k detectors have no such requirement — feed them the panel directly. This is the single most common way to get bad results from this repo. If your 2k mAP looks far worse than the table above, this...

Source context: 61 downloads · 0 likes · Pipeline object-detection · Library ultralytics · Repo cpraschl/bambi-orthographic-detectors

Source context: 69 downloads · 0 likes · Pipeline object-detection · Library ultralytics · Repo cpraschl/bambi-orthographic-detectors