---
title: TuberVision
sdk: docker
app_port: 7860
pinned: false
short_description: Tuber segmentation, morphometrics, and yield prediction
---
# Seeing beyond yield: distribution-aware image phenotyping reveals plot-level tuber profiles in potato breeding
[](#)
---
## Overview
Companion code for the paper *"Seeing beyond yield: distribution-aware image phenotyping reveals plot-level tuber profiles in potato breeding"*.
The pipeline ingests top-down RGB images of harvested tubers on a conveyor belt and runs YOLOv11-seg instance segmentation, per-tuber polygon morphometrics, USDA commercial size classification (B, A1, A2, OV), plot-level aggregation of distributional features, and yield prediction with a linear model fit under a leave-one-trial-out (LOTO) framework.
Two ways to use this repository:
1. A **Gradio app** that runs the full pipeline on a single image.
2. A set of **reproducibility scripts** that re-create the per-tuber, per-plot, and per-fold modeling outputs.
---
## Installation
The project uses [uv](https://docs.astral.sh/uv/) for environment and dependency management.
```bash
# install uv (see https://docs.astral.sh/uv/getting-started/installation/)
curl -LsSf https://astral.sh/uv/install.sh | sh
# clone and enter the repo
git clone potatopheno
cd potatopheno
# create the project venv and install the core dependencies
uv sync
# add the optional demo deps (gradio) when running the app
uv sync --extra app
```
All scripts are launched with `uv run python