Overview
Measuring root growth is an important but labour-intensive task in plant biology research. Researchers photograph root samples growing in petri dishes and then manually trace root structures to measure length and locate the growing tip. This project automates that process using a semantic segmentation model trained on annotated petri dish images.
The pipeline takes a raw petri dish photograph as input and returns:
- a pixel-level segmentation mask distinguishing root from background
- the coordinates of each detected root tip, found via skeleton analysis on the binary mask
- a summary of root length estimated from the skeletonised structure
My contribution
This was an individual project. I was responsible for the full pipeline: dataset preparation, model architecture selection, training, post-processing, and evaluation. I also designed the skeleton analysis step for root tip localisation, which was not part of the original brief and emerged from testing on difficult images where root crossings caused false positives.
Technical approach
I used a U-Net architecture with a pretrained ResNet-34 encoder, fine-tuned on the labelled petri dish dataset. The loss function combined binary cross-entropy with Dice loss to handle the class imbalance between root pixels and background.
Post-processing steps:
- Threshold the probability map to produce a binary mask
- Apply morphological closing to fill small gaps
- Compute the medial axis (skeleton) of the mask
- Detect branch endpoints in the skeleton graph as candidate root tips
- Filter tips by local intensity to remove artefacts
What I found difficult
The biggest challenge was root crossings — where two roots overlap in the image, the skeleton branches incorrectly and generates spurious tip candidates. I iterated through several pruning strategies before settling on a combination of minimum branch length and local contrast thresholds that reduced false positives to an acceptable rate.
Getting the training data right also took longer than expected. The initial annotations had inconsistent treatment of thin root tips — some annotators included them, others stopped a few pixels short. Standardising the annotation protocol mid-project required re-labelling roughly a third of the training set.
Dataset
The dataset consisted of [N] petri dish images collected by [research group/university lab], manually annotated using LabelMe. Images were split 70/15/15 for training, validation, and test.
Related project
See also the label quality research study which used this model as a base to investigate whether expert or student annotations produce better training data.