chronoroot2-segmentation-eval
ChronoRoot 2.0: An Open AI-Powered Platform for 2D Temporal Plant Phenotyping — Gaggion et al. (2025) (arXiv:2504.14736, 2025)
What this evaluates
Evaluates deep learning models for simultaneous multi-organ segmentation in 2D plant images. It probes the model's ability to accurately delineate root systems and aerial parts across different plant species and light conditions, while preserving structural fidelity for downstream phenotypic analysis.
Datasets
- Arabidopsis thaliana 2D phenotyping dataset — total ?; splits: train (339), test (176); repo https://github.com/ngaggion/ChronoRoot2
- Tomato 2D phenotyping dataset — total ?; splits: train (299), test (181); repo https://github.com/ngaggion/ChronoRoot2
Metrics
Dice coefficient(primary) — range: [0, 1]- Quantifies the overlap between predicted and ground truth segmentations (intersection over union).
Hausdorff distance— range: [0, ∞) mm- Measures the maximum boundary error in millimeters between predicted and ground truth masks.
Completeness (Cp)— range: [0, 1]- Assesses the extent to which the extracted skeleton retains the original root structure, with higher values indicating fewer missing segments.
Correctness (Cr)— range: [0, 1]- Evaluates the presence of extraneous or spurious branches in the extracted skeleton, with high values indicating accurate root architecture without artifacts.
Input / output format
Input: 2D images of plant seedlings (Arabidopsis thaliana or tomato) grown on agar plates under controlled light conditions.
Output: Multi-class segmentation masks assigning each pixel to one of six plant structures (main root, lateral roots, seed, hypocotyl, leaves, petiole/aerial part).
Scoring recipe
def compute_metrics(pred_mask, gt_mask):
# Dice coefficient
intersection = np.sum(pred_mask == gt_mask)
dice = 2 * intersection / (np.sum(pred_mask) + np.sum(gt_mask))
# Hausdorff distance (mm)
hd = max(hausdorff_distance(pred_mask, gt_mask))
# Skeletonization for Cp/Cr
pred_skel = skeletonize(pred_mask)
gt_skel = skeletonize(gt_mask)
cp = len(np.intersect1d(pred_skel, gt_skel)) / len(gt_skel)
cr = len(np.intersect1d(pred_skel, gt_skel)) / len(pred_skel)
return dice, hd, cp, cr
Common pitfalls
- Test-time augmentation (TTA) significantly improves Hausdorff distance but has negligible impact on Dice scores.
- Data must be split by video or experimental setup rather than randomly to prevent temporal data leakage.
- Tomato dataset annotations merge leaves and petioles into a single 'aerial part' class, unlike the six-class Arabidopsis setup.
Evidence (verbatim from paper)
We first evaluated the segmentation performance of ChronoRoot 2.0’s nnUNet implementation against the original ChronoRoot models using their established dataset (consisting of 339 train images and 55 test images) and metrics (Dice coefficient quantifies the overlap between predicted and ground truth segmentations, while the Hausdorff distance measures the maximum boundary error in millimeters), to validate our architectural improvements.
Citation
@misc{gaggion2025chronoroot2,
title={ChronoRoot 2.0: An Open AI-Powered Platform for 2D Temporal Plant Phenotyping},
author={Gaggion et al. (2025)},
year={2025},
note={arXiv:2504.14736}
}
- arXiv: 2504.14736