Team Ai
Datasetpublic

BashayerAA/PlantMetricDepth

PlantMetricDepth PlantMetricDepth is a multimodal plant dataset designed for metric monocular depth estimation (MDE) and related plant analysis tasks. The dataset provides paired stereo RGB images, disparity maps, generated metric depth maps, and plant segmentation masks collected across 15 acquisition days. The metric depth maps provide dense per-pixel depth supervision in centimetres, enabling models to learn metric depth from a single RGB image at inference time without… See the full description on the dataset page: https://huggingface.co/datasets/BashayerAA/PlantMetricDepth.

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes1.6kdownloads
Dataset Card

PlantMetricDepth

PlantMetricDepth is a multimodal plant dataset designed for metric monocular depth estimation (MDE) and related plant analysis tasks.

The dataset provides paired stereo RGB images, disparity maps, generated metric depth maps, and plant segmentation masks collected across 15 acquisition days.

The metric depth maps provide dense per-pixel depth supervision in centimetres, enabling models to learn metric depth from a single RGB image at inference time without requiring a stereo camera.

Dataset Contents

The repository is organised into 15 folders:

text
PlantMetricDepth/
├── day_1/
├── day_2/
├── day_3/
│   ...
└── day_15/

Each acquisition day contains five modalities:

text
day_X/
├── Left/
├── Right/
├── Disparity/
├── Depth/
└── Seg_mask/

Modalities

FolderDescription
Left/Left-view RGB plant images
Right/Corresponding right-view RGB images
Disparity/Stereo disparity maps
Depth/Generated metric depth maps
Seg_mask/Plant segmentation masks

The RGB images have a spatial resolution of 650 × 650 pixels.


Metric Depth Maps

Each sample in the Depth directory contains:

text
plant1_day1.npy
plant1_day1.png

The two files have different purposes:

  • —`.npy` — numerical metric depth map used for training and evaluation.
  • —`.png` — visualisation of the corresponding depth map.

The .npy files contain dense floating-point depth values expressed in centimetres.

For quantitative experiments, use the `.npy` depth maps rather than the PNG visualisations.

Loading a depth map

python
import numpy as np

depth = np.load(
    "PlantMetricDepth/day_1/Depth/plant1_day1.npy"
)

print(depth.shape)
print(depth.dtype)
print("Minimum depth:", depth.min(), "cm")
print("Maximum depth:", depth.max(), "cm")

Metric Depth Generation

Metric depth supervision was generated from the stereo image pairs using FoundationStereo.

The processing pipeline consists of three main stages:

text
Left + Right RGB
       │
       ▼
FoundationStereo
       │
       ▼
Stereo Disparity
       │
       ▼
Inverse-disparity depth
       │
       ▼
Floor-plane metric scaling
       │
       ▼
Metric Depth (cm)

FoundationStereo was used in its pre-trained configuration without dataset-specific fine-tuning.

Given a disparity map \(d\), an inverse-disparity representation is obtained as:

$$ D_{\mathrm{rel}} = \frac{1}{d + \epsilon}, $$

where \(D_{\mathrm{rel}}\) represents relative depth and \(\epsilon\) prevents division by zero.

Metric scale is recovered using the known camera-to-floor distance:

$$ H = 150\ \mathrm{cm}. $$

The median relative depth over the floor reference region is calculated as:

$$ r{\mathrm{floor}} = \operatorname{median} \left( D{\mathrm{rel}}(p) \right), \quad p \in M_{\mathrm{floor}}. $$

The metric scale factor is then:

$$ s = \frac{H}{r_{\mathrm{floor}}}, $$

and the final metric depth is:

$$ D{\mathrm{metric}} = sD{\mathrm{rel}}. $$

The resulting depth maps therefore provide centimetre-scale dense depth supervision.


Example Sample Pairing

Files belonging to the same plant and acquisition day share the same sample identifier.

For example:

text
day_1/
├── Left/
│   └── plant1_day1.png
│
├── Right/
│   └── plant1_day1.png
│
├── Disparity/
│   └── plant1_day1.*
│
├── Depth/
│   ├── plant1_day1.npy
│   └── plant1_day1.png
│
└── Seg_mask/
    └── plant1_day1.*

This naming convention allows the modalities to be paired directly.


Downloading the Dataset

The Hugging Face repository ID is:

text
BashayerAA/PlantMetricDepth

Option 1 — Hugging Face CLI

This is the recommended method for downloading the complete dataset.

1. Install Hugging Face Hub

bash
pip install -U huggingface_hub

2. Download the dataset

bash
hf download BashayerAA/PlantMetricDepth \
    --repo-type dataset \
    --local-dir PlantMetricDepth

The complete repository will be downloaded into:

text
PlantMetricDepth/

The original directory structure will be preserved.


Option 2 — Download with Python

The complete dataset can also be downloaded programmatically.

python
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="BashayerAA/PlantMetricDepth",
    repo_type="dataset",
    local_dir="PlantMetricDepth"
)

After completion:

text
PlantMetricDepth/
├── day_1/
├── day_2/
├── ...
└── day_15/

Download a Single Acquisition Day

If the complete dataset is not required, individual acquisition days can be downloaded.

For example, to download only day_1:

bash
hf download BashayerAA/PlantMetricDepth \
    --repo-type dataset \
    --include "day_1/*" \
    --local-dir PlantMetricDepth

Download Only Metric Depth Maps

To download only the numerical metric depth maps:

bash
hf download BashayerAA/PlantMetricDepth \
    --repo-type dataset \
    --include "day_*/Depth/*.npy" \
    --local-dir PlantMetricDepth

Download Only Left RGB Images

For monocular RGB input images only:

bash
hf download BashayerAA/PlantMetricDepth \
    --repo-type dataset \
    --include "day_*/Left/*" \
    --local-dir PlantMetricDepth

Loading RGB and Depth Pairs

A simple example for loading a left RGB image with its corresponding metric depth map is:

python
from PIL import Image
import numpy as np

rgb_path = "PlantMetricDepth/day_1/Left/plant1_day1.png"
depth_path = "PlantMetricDepth/day_1/Depth/plant1_day1.npy"

rgb = Image.open(rgb_path).convert("RGB")
depth = np.load(depth_path)

print("RGB size:", rgb.size)
print("Depth shape:", depth.shape)
print("Depth range:", depth.min(), depth.max(), "cm")

For monocular depth estimation, the typical training pair is:

text
Input  : Left RGB image
Target : Metric depth (.npy)

The right RGB image and disparity map are therefore not required during monocular inference.


Intended Uses

PlantMetricDepth can be used for research involving:

  • —Metric monocular depth estimation
  • —Plant phenotyping
  • —Agricultural computer vision
  • —RGB-to-depth prediction
  • —Stereo-to-monocular knowledge transfer
  • —Depth-assisted plant classification
  • —Multimodal plant analysis
  • —Evaluation of dense depth-estimation models

Dataset Characteristics

PropertyDescription
DomainGreenhouse plant imagery
Acquisition period15 days
Image resolution650 × 650
RGB viewsLeft and right
Depth typeDense metric depth
Depth unitCentimetres
Stereo informationDisparity maps
SegmentationPlant segmentation masks
Monocular inputLeft RGB
Metric supervisionGenerated depth map

Important Notes

The metric depth maps are generated supervision rather than direct measurements from an active depth sensor.

Metric scaling relies on the known 150 cm camera-to-floor distance and the floor reference region.


Licence

This dataset is released under the Apache License 2.0.


Citation

If you use PlantMetricDepth in your research, please cite the associated publication when available.

bibtex
@dataset{plantmetricdepth,
  author    = {Bashayer Abdallah, Shan E Ahmed Raza},
  title     = {PlantMetricDepth: A Plant Dataset with Generated Metric Depth Supervision},
  publisher = {Hugging Face},
  year      = {2026}
}


---

# Contact

For questions regarding the dataset, methodology, or research use, please use the **Community** section of the PlantMetricDepth Hugging Face repository.