TETRA iStorage4SME

Intelligente Geavanceerde Anomalie Detectie bij de opslag en transport in de voedingsketen

5. Computer vision: Eerste test model training

Image Classification met MobileNet

Fruit and Vegetable Classification

  • Inladen en voorbereiden van de beelden

een 200 stukjes van 75 op 75 pixels werden uit de foto’s gesneden en verdeeld over de mapjes Witloof, Achtergrond en onkruid.

3 groepen van beelden: Witloof, Achtergrond en Onkruid

  • Inladen van de beelden

Deze 200 beelden werden verdeeld in 3 datasets: een train, validatie en test dataset met respectievelijk 159, 38 en 15 beelden

De beelden werden herschaald naar 96 op 96 pixels gezien dit een veelvoud van 32 pixels moet zijn.

  • Trainen van het model

De accuraatheid op de train dataset naderde naar 1 en de loss curve op de train dataset naderde naar 0. De accuratie van het model op de validatiedataset varieerde tussen de 80 en 85% en de loss van de validatie dataset variëerde rond de 0.4.

  • Visualisatie

De accuratie van het getrainde model op de test dataset (15 beelden) was 93.3 %. één achtergrond beeld werd geclassificeerd als witloof.

Object detection met Yolov5

  • Inladen en voorbereiden van de beelden

In 68 foto’s werden witloof plantjes, schoenen en onkruid manueel gelabelled met Open Source Data Labeling | Label Studio .

De foto werd hiervoor heel sterk ingezoomd

  • Inladen van de beelden

De 68 gelabelde foto’s werden geëxporteerd in het YOLO formaat daarna verdeeld over een train dataset (58 foto’s) en een validatie dataset (10 foto’s).

Deze foto’s werden gevoed in het Yolov5 model. GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

!python train.py --img 1200 --data /home/aaron/projecten/iSTorage4SME/witloof.yaml

De foto’s van 4128 pixels werden verkleind naar 1216 pixels en het model getraind. Dit vooral om in een preliminaire fase het model sneller te kunnen trainen en het lichter te maken bij predicties.

  • Trainen van het model

  • Visualisatie

Detecteren van individuele plantjes op een grote foto werkt minder goed dat bij uitgecropte platjes. In de foto’s werden 0.57 van de Schoenen gedetecteerd die manueel gelabeld werden als schoen en 43% als achtergrond. Voor de witloof plantjes werd 36% gedetecteerd die manueel als witloof werden gelabeld en 64% als achtergrond. Geen enkel onkruid plantje werd gedetecteerd dat manueel gelabeld werd. Het model vindt ook witloof plantjes die niet manueel werden gelabeld als witloof.

Manueel gelabelde foto’s

Het model slaagt er in om de rijen witloof plantjes terug te vinden. Het model slaagt er nog niet in om onkruid te detecteren omdat in het tweeblad stadium dicotylen niet van elkaar te onderscheiden zijn. In extremis kan wel een onderscheid gemaakt worden tussen monocotylen en dicotylen in respectievelijk het eenblad en tweeblad stadium, hier zijn wel heel weinig datapunten voor.

De performantie van dit model kan nog verbeterd worden. De foto waar geen witloof op gedecteerd werd kan toegevoegd worden aan de train dataset zodat het model ook leert om deze planten te decteren. De foto’s waar plantjes gedetecteerd werden waar geen manueel gelabeld werd, moet manueel geverifieerd worden en de labels al dan niet aangepast.

Met de steun van:
© Howest 2023