Model card
Crack detection macro F10.907
Morphology macro F10.794
95% CI 0.698–0.876
Localisation pointing game0.765
| Architecture | EfficientNet-B0, multi-task, auxiliary segmentation head (3.67 M parameters) |
|---|---|
| Input | 384 × 384, egg isolated and background neutralised, per-image per-channel standardisation |
| Training data | 554 candled hatching eggs, single annotator, verified by a hatchery manager |
| Test data | 98 eggs, sealed before any modelling and opened exactly once |
| Detection | macro F1 0.907, ROC-AUC 0.985, recall 0.980 |
| Morphology | macro F1 0.794 (95% CI 0.698–0.876) |
| Localisation | pointing game 0.765, energy inside expert polygon 0.513 |
Reference points
Capture statistics alone — image size, brightness and colour, with no egg content whatsoever — reach 0.357 on morphology. The best classical pipeline, combining texture descriptors, ridge filtering and crack geometry, reaches 0.565. Read every figure above against those, not against chance.
Root-cause rule base
Physiological share of attributed cause, by crack morphology and flock lay stage.
| Pattern | Early lay | Peak production | Late lay |
|---|---|---|---|
| Hairline | 30% | 40% | 55% |
| Star | 15% | 20% | 30% |
| Network | 50% | 60% | 75% |
Deterministic expert rules from Ross 308 specifications and the crack-morphology literature. Not learned from data and not validated against hatch outcomes.
Known limitations
- Single annotator. All labels come from one person, verified by a domain expert but not independently double-rated, so inter-rater reliability is unknown.
- One farm, one capture setup. Every training image comes from a single light-proof box and a single smartphone. A session-held-out evaluation lost about 0.056 macro F1, so expect some loss on new equipment.
- Star is the smallest class. 68 eggs in total, 11 in the test set, so its confidence interval is wide, 0.55 to 0.94.
- Star and Network confusions are the expensive ones. They shift the root-cause split by 40 percentage points and reverse the dominant cause in every age class.
- The root cause is expert knowledge, not measurement. Never validated against hatch outcomes.
- Not validated for grading or sale decisions. It supports inspection; it does not replace it.
API
For integration with other equipment, such as a future conveyor-mounted camera.
GET /api/v1/health liveness
GET /api/v1/ready readiness, including model state
GET /api/v1/info this model card as JSON
GET /api/v1/rules the root-cause rule base
POST /api/v1/inspect multipart "image", plus "age_class"
POST /api/v1/batch multipart "images", plus "age_class"