# Label Protocol — Cherry Ripeness Data Without Slowing Harvest

**Project:** AR Cherry Glasses / Phone MVP  
**Audience:** James (ops), QC lead, Claude (app), ChatGPT (review)  
**Date:** 2026-09-04  
**Principle:** Labels come from **scout / QC / packer truth**, not from interrupting pick cadence.

---

## 1. Why we label

Train and calibrate a vision model that maps **camera-visible color + context** → picker decision (READY / WAIT / MAYBE), validated against packer/crew standards and a small Brix subset.

---

## 2. Roles

| Role | Does | Does not |
| --- | --- | --- |
| **Pickers** | Pick as usual | Stop to photograph every fruit |
| **Scout / labeler** | Short end-of-row or ahead-of-crew photo passes | Block the lug line |
| **QC / crew lead** | Morning photo+Brix kit; spot audits | Own continuous video upload |
| **Packer / grade** | Color-sorted samples = free labels | Change SOPs for our experiment |

---

## 3. Consent & privacy

1. James (or ranch manager) confirms **cameras OK** with crew / labor relations before any orchard capture.
2. Prefer **fruit-only** framing; avoid identifiable faces in training exports.
3. One **crew-level consent** note logged in app (date, block, lead name) — not per-fruit paperwork.
4. On-device storage; sync at **shop Wi-Fi**. No continuous cellular streaming of video.
5. Retain only what is needed for model/version audit; purge raw video dumps on a stated schedule (James sets retention).

---

## 4. Morning calibration kit (≈15 minutes / variety)

**When:** Before or at first color-break passes; repeat when block/variety or weather regime changes.

**Kit:** Phone in Label/Calibrate mode, refractometer, wipe cloth, packer/UC Davis–aligned **color card**, clipboard or in-app form.

**Per variety (target N = 20 fruit):**

1. Pick sample spanning light → dark (and Rainier blush bands if applicable).  
2. For each fruit: **photo** (fill frame, note sun vs shade) → **color-card stage** → **°Brix** → optional firmness note.  
3. Enter into app; accept suggested READY threshold offset.  
4. Fruit may go to QC lug — do not waste premium pack fruit unnecessarily.

**Output:** `calibration_<date>_<variety>_<block>.json` (or CSV) with photo ids, stages, Brix, lighting, threshold accepted.

---

## 5. Field label pass (scout — does not slow harvest)

### 5.1 Cadence

- **End-of-row 10-minute blocks** or walk ahead of crew on alternate rows.  
- Goal early season: **hundreds of well-labeled instances per major variety**, then grow toward low thousands across lighting.

### 5.2 Per capture

| Field | Values |
| --- | --- |
| Decision label | READY / WAIT / MAYBE / DEFECT |
| Color stage | light red / red / mahogany / dark mahogany (dark sweets); Rainier blush % bands per written chart |
| Variety tag | Bing / Coral / Brooks / Rainier / Lapin / Tulare / other |
| Lighting | sun / shade / mixed / backlight |
| Occlusion | clear / partial / heavy |
| Block / row | ranch codes James uses |
| Timestamp | auto |
| Consent session id | auto from shift start |

### 5.3 Negatives to include

Leaves, distant fruit, motion blur, doubles, cracked fruit, bird pecks — tagged so the model learns **MAYBE / DEFECT / ignore**.

---

## 6. Packer color card labels (high value, low orchard time)

1. At hydrocool / grade, photograph trays or belts already sorted to commercial color classes.  
2. Map packer classes → our ontology (document the mapping once).  
3. These are operational **ground truth** for READY vs too-light — use heavily for precision measurement.

Bring a printed copy of the **same card** used in morning calibration into the orchard so labels stay consistent.

---

## 7. Variety tags

- Mixed rows: **always** set variety in app before capturing.  
- If unsure: tag `unknown` and MAYBE — do not guess Bing vs Rainier rules.  
- James confirms Handel priority list before heavy labeling spend.

---

## 8. Sun / shade protocol

- Explicit lighting tag on every training frame.  
- When glare washes color: label **MAYBE** (or discard), never force READY.  
- Capture both row sides and morning / midday / late when possible — quality over identical poses.

---

## 9. What not to do

- Do not hand every picker a labeling UI during peak picks.  
- Do not upload continuous egocentric video over cellular.  
- Do not invent Brix from RGB for the label file.  
- Do not change packer grades to “help the model.”

---

## 10. Minimum viable dataset for first Core ML pass

| Slice | Order-of-magnitude target |
| --- | --- |
| Per priority variety | ≥ a few hundred clear fruit instances with decision + color stage |
| Lighting | Both sun and shade represented |
| Calibration | ≥ 20 photo+Brix per priority variety/block at color-break |
| Held-out | Keep a blocked row or date out of training for READY precision score |

Expand after first Handel trial metrics — do not wait for research-scale tens of thousands before Phase A trial.

---

## 11. Handoff artifacts

- Label ontology + color-card mapping (one page)  
- Calibration JSONs  
- Image folders with sidecar labels (JSONL fine)  
- Version note: app build + model bundle + threshold file

Public doc: `GET /docs/label-protocol` on ai-hub.
