Official implementation of TomatoWUR dataset:
An annotated dataset of tomato plants to quantitatively evaluate segmentation, skeletonisation, and plant trait extraction algorithms for 3D plant phenotyping
The dataset is related to the paper: 3D plant segmentation: Comparing a 2D-to-3D segmentation method with state-of-the-art 3D segmentation algorithms
This software is tested on Python 3.11. To install the dependencies, run:
pip install -r requirements.txt
Make sure to extract and download the dataset, this will be done automatically if path can not be found:
python3 wurTomato.py --visualise 0
For more examples have a look at the example_notebook.ipynb
Settings are described in config file
This dataset repo is also used as a submodule inside the parent
2D-to-3D_segmentation project for Pointcept experiments.
That project generates non-destructive training bundles under:
data/TomatoWUR/ann_versions/<version-name>/
For the original frame-wise partial data, the bundle contains:
json/train.jsonjson/val.jsonjson/test.json
For the newer trajectory experiments, the same builder also writes:
json/train_trajectories.jsonjson/val_trajectories.jsonjson/test_trajectories.json
Those trajectory manifests preserve frame order inside each trajectory so the loader can expose sequence boundaries to a future recurrent model.
Example command from the parent repo with Docker Compose:
docker compose -f ../docker-compose.yaml run --rm \
-v /path/to/TomatoWUR_trajectory:/data/TomatoWUR_trajectory \
interactive python3 /workspace/plant3d/TomatoWUR/data/TomatoWUR/build_partial_ann_version.py \
--annotations-root /data/TomatoWUR_trajectory/annotations_trajectory_sensor \
--point-clouds-root /data/TomatoWUR_trajectory/point_clouds_trajectory_sensor \
--version-name trajectory-sensor-plant \
--pairing-mode strict \
--split-unit plant \
--sequence-delimiter _sensor_ \
--train-ratio 0.8 \
--val-ratio 0.1 \
--test-ratio 0.1 \
--seed 123 \
--materialize-mode copy \
--dry-runUse --split-unit plant for sequential experiments so all trajectories from
the same plant stay in the same split. Detailed path conventions and usage are
documented in data/README.txt in this repo and in the parent project
readme.md.
@article{VANMARREWIJK2025111852,
title = {TomatoWUR: An annotated dataset of tomato plants to quantitatively evaluate segmentation, skeletonisation, and plant-trait extraction algorithms for 3D plant phenotyping},
journal = {Data in Brief},
volume = {61},
pages = {111852},
year = {2025},
issn = {2352-3409},
doi = {https://doi.org/10.1016/j.dib.2025.111852},
url = {https://www.sciencedirect.com/science/article/pii/S2352340925005773},
author = {Bart M. {van Marrewijk} and Tim {van Daalen} and Katarína Smoleňová and Bolai Xin and Gerrit Polder and Gert Kootstra},
}
This research is part of AgrifoodTEF: Test and Experiment Facilities for the Agri-Food Domain (101100622)



