#### NOTE
This is a **Hugging Face dataset**. For large datasets, ensure `huggingface_hub>=1.1.3` to avoid rate limits. Learn more in the <a href="https://docs.voxel51.com/integrations/huggingface.html#loading-datasets-from-the-hub" target="_blank">Hugging Face integration docs</a>.

<a href="https://huggingface.co/datasets/Voxel51/weeds-galore" target="_blank">![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Dataset-yellow)</a>

# Dataset Card for weeds-galore

![image/png](https://huggingface.co/datasets/Voxel51/weeds-galore/resolve/main/weeds_galore.gif)

This is a [FiftyOne](https://github.com/voxel51/fiftyone) dataset with 156 samples.

## Installation

If you haven’t already, install FiftyOne:

```bash
pip install -U fiftyone
```

## Usage

```python
import fiftyone as fo
from fiftyone.utils.huggingface import load_from_hub

# Load the dataset
# Note: other available arguments include 'max_samples', etc
dataset = load_from_hub("Voxel51/weeds-galore")

# Launch the App
session = fo.launch_app(dataset)
```

## Dataset Details

### Dataset Description

WeedsGalore is a UAV-based, multispectral, multitemporal dataset for crop and weed
segmentation in maize (*Zea mays*) fields, introduced in Celikkan et al.,  *“WeedsGalore:
A Multispectral and Multitemporal UAV-Based Dataset for Crop and Weed Segmentation in
Agricultural Maize Fields”* (WACV 2025). All imagery comes from a single real (non-
experimental) maize field in Marquardt, Potsdam, Germany, imaged with a DJI Phantom P4
Multispectral drone (R, G, B, red-edge, and near-infrared bands) at a ground sampling
distance of 2.5 mm/px. Four flight campaigns were flown across the 2023 growing season
(May 25, May 30, June 6, June 15), capturing progressively later growth stages and
weed infestation levels. From these flights, 156 raw (non-orthorectified) 600x600 px
tiles were sampled from 48 spatial locations and densely annotated with both semantic
(6-class) and instance segmentation masks, averaging ~78 plant instances per tile —
by far the highest instance density of any public weed-segmentation dataset at the
time of publication.

This FiftyOne dataset parses the 156 annotated tiles (raw multiband images + semantic

+ instance masks + official train/val/test splits) released by the authors. The four
  large, unlabeled orthomosaics mentioned in the source paper (one per acquisition date,
  useful for unsupervised/active-learning research) are **not** included in this parsed
  release, since only the 156 annotated per-tile samples were distributed with pixel-level
  labels.

- **Curated by:** Ekin Celikkan, Timo Kunzmann, Yertay Yeskaliyev, Sibylle Itzerott,
  Nadja Klein, Martin Herold (GFZ German Research Centre for Geosciences; Humboldt-
  Universität zu Berlin; Karlsruhe Institute of Technology)
- **Funded by:** Helmholtz Einstein International Berlin Research School in Data
  Science (HEIBRiDS) and GFZ Potsdam; HPC resources funded by the Ministry of Science,
  Research and Culture of the State of Brandenburg (MWFK)
- **Shared by:** GFZ Data Services (original release); this FiftyOne-formatted version
  parsed and shared by Harpreet Sahota
- **Language(s):** N/A (image dataset; no natural language content)
- **License:** CC BY 4.0 (Attribution 4.0 International)

### Dataset Sources

- **Repository:** [github.com/GFZ/weedsgalore](https://github.com/GFZ/weedsgalore)
- **Paper:** [arxiv.org/abs/2502.13103](https://arxiv.org/abs/2502.13103)
- **Original data release:** [doidata.gfz.de/weedsgalore_e_celikkan_2024](https://doidata.gfz.de/weedsgalore_e_celikkan_2024/)

## Uses

### Direct Use

- Training/evaluating semantic segmentation models for crop-vs-weed or fine-grained
  multi-species weed classification (background, maize, amaranth, barnyard grass,
  quickweed, weed_other) in maize fields.
- Training/evaluating instance segmentation models on dense, real-world plant scenes
  with heavy overlap and occlusion (~78 instances/tile on average).
- Studying the value of additional multispectral bands (NIR, red-edge) over RGB-only
  input for weed/crop segmentation.
- Studying model robustness/generalization across growth stages, since the same
  spatial locations were repeatedly imaged at different phenological stages.
- Research on uncertainty quantification and model calibration for agricultural
  segmentation, as demonstrated by the original authors with MC-dropout DeepLabv3+.
- Precision/site-specific weed management (SSWM) research, weed cover estimation for
  plant-science/herbicide-efficacy studies, and cross-domain-generalization research
  in combination with other weed-segmentation datasets.

### Out-of-Scope Use

- General-purpose object detection/segmentation outside agricultural weed/crop
  monitoring — the dataset is narrowly scoped to one field, one crop, and five plant
  classes.
- Deployment as a sole training source for autonomous spraying/weeding systems in
  fields, crop varieties, climates, or growth stages not represented here (single
  field in Potsdam, Germany; maize only; V1 through near-full-canopy stages of a
  single 2023 season) without additional domain adaptation or validation, as noted
  by the original authors’ own out-of-distribution experiments.
- Any use implying the dataset represents a random or exhaustive sample of weed
  species — `weed_other` pools together multiple lower-frequency species that were
  not individually annotated.

## Dataset Structure

This is a **flat image dataset** (`media_type="image"`) of 156 samples, split into
`train` (104), `val` (26), and `test` (26) via the official spatial split provided by
the authors (`splits/{train,val,test}.txt`, keyed by tile stem) applied as FiftyOne
sample `tags`. The split is spatial rather than random: images from the same one of
48 sampled field locations never appear in more than one split, even though several
locations were imaged on multiple dates.

Each sample corresponds to one annotated 600x600 px tile (one date x one location).
Field table:

| Field                   | FiftyOne type            | Description                                                                                                                           |
|-------------------------|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| `filepath`              | `StringField`            | 8-bit RGB composite PNG (derived), used as the primary/grid media                                                                     |
| `tags`                  | `ListField(StringField)` | `"train"` / `"val"` / `"test"`, from the official spatial split files                                                                 |
| `ndvi`                  | `Heatmap`                | Derived NDVI heatmap (`map_path` to an 8-bit stretched NDVI PNG, `range=[0, 255]`)                                                    |
| `date`                  | `StringField`            | Acquisition date, one of `2023-05-25`, `2023-05-30`, `2023-06-06`, `2023-06-15` (verbatim from source directory name)                 |
| `tile_id`               | `StringField`            | Tile/location identifier (verbatim from source filename stem)                                                                         |
| `ground_truth_semantic` | `Segmentation`           | Per-pixel 6-class mask (`mask_path` points to the original, untouched semantics PNG)                                                  |
| `ground_truth`          | `Detections`             | One `Detection` per plant instance, with bounding box, per-instance mask, class label, and a custom `plant_instance_id` int attribute |

Earlier versions of this dataset also carried `nir_filepath`/`re_filepath` (8-bit
stretched NIR/red-edge display PNGs, as alternate App media) and
`raw_r_path`/`raw_g_path`/`raw_b_path`/`raw_nir_path`/`raw_re_path` (pointers to the
original 16-bit single-band PNGs) as plain `StringField` sample fields. These have
been removed: the `raw_*_path` fields are not FiftyOne media/label fields, so on
export their values were serialized as literal local absolute paths from the
machine that built the dataset — meaningless once shared. They’ve been dropped in
favor of keeping the schema clean and portable; the raw 16-bit bands and NIR/RE
imagery are still available from the [original GFZ data release](https://doidata.gfz.de/weedsgalore_e_celikkan_2024/)
for anyone who needs them directly.

`metadata`, `id`, `created_at`, and `last_modified_at` are standard FiftyOne
bookkeeping fields (`metadata` is left uncomputed/`None` by default; populate it with
`dataset.compute_metadata()` if needed).

**Label types and why:**

- `ground_truth_semantic` is a `Segmentation` because the source annotations are dense
  per-pixel class-index masks (uint8, values 0-5) — one label per pixel, directly
  compatible with FiftyOne’s semantic segmentation label type.
- `ground_truth` is a `Detections`, with one `Detection` per plant instance, because
  the source instance masks are per-instance polygons converted to per-instance
  boolean masks with tight bounding boxes — the natural FiftyOne representation for
  instance segmentation. Each `Detection.mask` is cropped to its bounding box (the
  FiftyOne convention), and each carries a `plant_instance_id` attribute preserving
  the original instance ID from the source instance mask, in case anyone needs to
  cross-reference back to the raw instance PNG.

**Semantic/instance classes** (`dataset.mask_targets["ground_truth_semantic"]` and
`dataset.default_mask_targets`):

|   ID | Class          |
|------|----------------|
|    0 | background     |
|    1 | maize (crop)   |
|    2 | amaranth       |
|    3 | barnyard_grass |
|    4 | quickweed      |
|    5 | weed_other     |

**`dataset.info`** stores dataset-level provenance: `source` (original data release
URL), `paper`, `code` (GitHub repo), `citation`, `classes` (the ID-to-name mapping
above), `bands` (`["R", "G", "B", "NIR", "RE"]`), and `notes` describing the
filepath/raw-path convention below.

**App configuration:** `dataset.app_config.media_fields` is set to `["filepath"]`
with `grid_media_field="filepath"`, so the FiftyOne App grid displays the RGB
composite.

**Parsing decisions:**

- The source bands are 16-bit single-channel PNGs, which are not directly viewable as
  standard 8-bit imagery. `filepath` (RGB composite) and the `ndvi` heatmap are
  derived 8-bit renderings computed from these raw bands purely for display/browsing.
- The RGB 8-bit rendering uses a fixed global linear stretch (clipping to
  `[8000, 50000]` of the raw 16-bit range) chosen from percentile sampling across the
  dataset, so brightness/contrast is comparable across tiles and dates.
- NDVI is computed as `(NIR - R) / (NIR + R)` from the raw bands (theoretical range
  `[-1, 1]`), then stretched over `[-0.3, 0.5]` for the 8-bit heatmap rendering — the
  range that was found (via percentile sampling) to actually separate soil/background
  from vegetation in this dataset; stretching the full theoretical range made
  soil-vs-plant contrast nearly invisible.
- The source semantic class indices (0-5) were confirmed by cross-referencing
  instance/semantic mask overlap counts against Table 2 of the paper.
- Per-instance class labels are not stored directly in the source instance masks —
  they only encode instance IDs (0 = background, 1..N = instances). Each instance’s
  label was assigned by taking the majority-vote semantic class among the pixels of
  that instance in the corresponding semantic mask.

## Dataset Creation

### Curation Rationale

At the time of the source paper, publicly available datasets for weed segmentation
were limited in size, sensing modality (mostly RGB-only), crop coverage, and weed
species diversity, and none provided UAV-based pixel-level crop/weed annotations
specifically for maize — one of the highest-production cereal crops worldwide. The
authors created WeedsGalore to fill this gap: a UAV, multispectral (RGB + red-edge +
NIR), multitemporal dataset for maize fields with dense semantic and instance
annotations across multiple weed species, at markedly higher plant-instance density
than prior datasets (e.g. ~78 instances/tile vs. ~5-9 for comparable prior work).

### Source Data

#### Data Collection and Processing

The field (Marquardt, Potsdam, Germany, ~1840 m²) was managed with normal farming
practices (no experimental interference); maize was planted May 9, 2023 (70 cm row
spacing, 20 cm intra-row spacing), irrigated June 6, and herbicide-treated June 12.
Weeds occurred naturally, dominated by common amaranth (*Amaranthus retroflexus*) and
barnyard grass (*Echinochloa crus-galli*), with quickweed (*Galinsoga parviflora*)
least common; other minor species were pooled into `weed_other`.

Imagery was captured with a DJI Phantom P4 Multispectral UAV (5 monochrome sensors:
Blue 450±16 nm, Green 560±16 nm, Red 650±16 nm, Red-Edge 730±16 nm, NIR 840±26 nm,
2.08 MP each) at 5 m flight height (2.5 mm GSD), with 70% side / 60% front overlap in
Hover&Capture mode, across 4 campaigns (May 25, May 30, June 6, June 15, 2023). Rather
than annotating an orthomosaic (which the authors found introduces stitching
artifacts that would corrupt fine-grained masks), the 5 single-band images per shot
were aligned and center-cropped to 600x600 px, and these raw per-shot crops were what
got annotated. Orthomosaics were still generated per campaign (via Agisoft Metashape)
solely to plan/structure the spatial sampling of annotation locations, and are
included in the original source release as additional unlabeled data (not part of
this FiftyOne parse).

The field was divided into 12 equal-area patches, with 4 locations randomly sampled
per patch (48 locations total). 36 locations were annotated for the first 3 dates
(pre-herbicide, most relevant for weed ID); the remaining 12 were annotated across
all 4 dates (including late-stage, post-herbicide growth, useful for mechanical
weeding / weed-cover analysis). Data were spatially split 70:15:15 (8/2/2 patches)
into train/val/test so that no location appears in more than one split.

#### Who are the source data producers?

The UAV data were collected by the paper’s authors’ team (GFZ German Research Centre
for Geosciences and collaborators) at a working agricultural field in Marquardt,
Potsdam, Germany, farmed under normal (non-experimental) practices.

### Annotations

#### Annotation process

Images were annotated using the web-based tool Encord with an AI-assisted, SAM
(Segment Anything Model) point-prompt workflow: annotators clicked on each plant to
get an initial SAM-predicted mask, then manually refined the polygon boundary. Each
plant instance’s polygon (i.e. instance mask) was also assigned one of the semantic
classes: maize, amaranth, barnyard grass, quickweed, or weed_other (the latter used
for rarer species, or when species could not be confidently distinguished due to
similar early-growth-stage phenotypes). All 156 images were mutually reviewed by
three experts to ensure annotation quality.

#### Who are the annotators?

Two annotators produced the initial instance/semantic annotations, with review by
three domain experts, as reported by the dataset authors.

#### Personal and Sensitive Information

None. The dataset consists exclusively of overhead multispectral imagery of an
agricultural field, plants, and soil — it contains no personal, sensitive, or
identifiable human information.

## Citation

**BibTeX:**

```bibtex
@inproceedings{celikkan2025weedsgalore,
  title     = {WeedsGalore: A Multispectral and Multitemporal UAV-Based Dataset for
               Crop and Weed Segmentation in Agricultural Maize Fields},
  author    = {Celikkan, Ekin and Kunzmann, Timo and Yeskaliyev, Yertay and
               Itzerott, Sibylle and Klein, Nadja and Herold, Martin},
  booktitle = {Proceedings of the IEEE/CVF Winter Conference on Applications of
               Computer Vision (WACV)},
  pages     = {4767--4777},
  year      = {2025}
}
```

**APA:**

Celikkan, E., Kunzmann, T., Yeskaliyev, Y., Itzerott, S., Klein, N., & Herold, M.
(2025). WeedsGalore: A Multispectral and Multitemporal UAV-Based Dataset for Crop and
Weed Segmentation in Agricultural Maize Fields. *WACV 2025*, 4767-4777.

## More Information

The source paper additionally provides extensive semantic/instance segmentation
baselines (DeepLabv3+, MaskFormer, RGB vs. multispectral input), a probabilistic
(MC-dropout) variant for calibrated uncertainty quantification, and an
out-of-distribution generalization study on a separate unseen field
(“Maize2024”) — see [arxiv.org/abs/2502.13103](https://arxiv.org/abs/2502.13103) for
full results and discussion. Code for the original baselines is available at
[github.com/GFZ/weedsgalore](https://github.com/GFZ/weedsgalore).

## Dataset Card Authors

Harpreet Sahota (FiftyOne parse and dataset card)

## Dataset Card Contact

[harpreetsahota](https://huggingface.co/harpreetsahota)
