This thesis presents the design and implementation of a full-stack image processing system for the automated analysis of apple traits, developed in collaboration with Agriculture and Agri-Food Canada (AAFC). The system integrates a YOLOv11 object-detection model with classical computer vision techniques to detect individual fruit and stems in photographs, extract calibrated physical measurements via a reference card, and compute a comprehensive set of 40 engineered features spanning physical, color, shape, texture, russet, and contextual categories. The processing pipeline is exposed through a FastAPI backend and a Next.js web frontend that together support single-image upload and anal ysis, batch hot-folder processing with automated QR-code-based dataset organisation, and persistent storage of results in a PostgreSQL database. A lightweight YOLOv11n model (2.58M parameters, 5.3MB) was trained on a freshly curated 333-image, 9-class annotated dataset and achieves a test mAP@50 of 99.5% with 100% recall, demonstrating reliable detection across diverse apple views including whole fruit, cross-sections, and core structures. Key contributions include (1) a modular, reproducible feature detection pipeline that converts raw photographs into structured phenotypic data, (2) a rule-based quality grading system that combines texture, color, and russet analysis to assign grades A-D, (3) a batch processing system with watchdog-based hot-folder monitoring and automated QR-code folder organisation, and (4) a web interface that provides interactive visualisation, CSV/JSON export, and database-backed history for researchers. The discussion identifies limitations including sensitivity to extreme occlusion, the small annotated dataset, and the need for ground-truth metric measurements for rigorous calibration evaluation. Future work directions include a hybrid neural network that fuses engineered features with CNN-derived embeddings, expanded defect-class coverage, and containerised multi-user deployment.
Om Mistry (Thu,) studied this question.