Computer Vision e Deep Learning a supporto del settore Agrifood - ALTEN Italy

Computer Vision e Deep Learning a supporto del settore Agrifood

Agrifood_cow
,

Introduzione alla Object Detection

Quando si parla di Object Detection in ambito Computer Vision, si fa riferimento ad una tecnica di Deep Learning che mira al riconoscimento di oggetti all’interno di una immagine. Col termine oggetti si intende qualsiasi particolare nell’immagine che può essere identificato e riquadrato in appositi “boxes”, in questo modo l’algoritmo andrà a riconoscere le features specifiche di questi box per poi ricercarle nelle nuove immagini di input. Più nello specifico, come algoritmo solitamente si utilizza una rete convoluzionale più o meno complicata in base alle difficoltà del setting di detection.
Sebbene esistano implementazioni Non-Neural per la Object Detection, le reti neurali rappresentano una soluzione end-to-end difficilmente superabile in termini di metriche e risultati.

L’utilizzo delle reti convoluzionali in Computer Vision ha inizio nel 2012 ed ha avuto in pochi anni uno sviluppo rapido e verticale andando oltre le capacità umane in image classification. Le prime applicazioni dell’Object Detection sono state principalmente nel campo della videosorveglianza, dove l’obiettivo era quello di identificare e monitorare persone all’interno di un’area specifica, mentre oggi è una tecnologia utilizzata in una vasta gamma di settori, tra cui quello dell’automotive (guida autonoma), manifatturiero (controllo qualità prodotti) ed healthcare (riconoscimento malattie dalle immagini di radiografie/ecografie).

La nostra applicazione, invece, fa riferimento al settore agricolo e più in particolare al riconoscimento e tracciamento di animali all’interno di una recinzione. L’impiego della AI in questo settore sta crescendo sempre di più, anche se in generale il processo di modernizzazione è molto lento.

Andremo ad analizzare i principali algoritmi di Computer Vision e Deep Learning utilizzati e come ALTEN  Italia è riuscita a renderli operativi e funzionali in questo setting specifico.

Strumenti

Dati acquisiti mediante le telecamere

Con l’obiettivo di identificare e tracciare i movimenti degli animali all’interno delle due recinzioni, sono state installate 8 camere fish-eye HikVision (4 MP Super Wide Angle Fixed Bullet Network Camera), posizionate all’esterno delle recinzioni, con vista “a volo d’uccello” (figura sotto) per non disturbare gli animali durante le operazioni di installazione e pulizia delle camere stesse.

Dati provenienti dal robot di mungitura – Software Horizon

I dati relativi ai robot di mungitura sono forniti dall’azienda Lely ( www.lely.com ) e sono stati accessibili e scaricabili tramite il software “T4C management system” di proprietà dell’azienda Lely, esclusivamente presso l’azienda Vanzetti.

I dataset disponibili sono di tre tipologie

  1. Dati relativi ad ogni singola mungitura, come la resa di mungitura, la resa prevista ed il risultato della visita (avvenuta con successo o rifiuto)
  2. Dati giornalieri, come il numero di mungiture, il numero di fallimenti, il numero di rifiuti e la produzione giornaliera.
  3. Dati relativi alle lattazioni precedenti, ad esempio la produzione per ogni lattazione, i giorni di lattazione ed il numero medio di mungiture.

Computer Vision (Camera Calibration, Re-Projection Problem)

I primi step nel lavoro hanno riguardato la calibrazione delle camere, lavoro necessario per garantire precisione e affidabilità dei dati generati dal sistema. L’approccio sviluppato mira a determinare con precisione i parametri intrinseci ed estrinseci delle telecamere utilizzate in un sistema di Computer Vision. Questi parametri includono la distorsione dell’immagine, la posizione e l’orientamento degli obiettivi delle telecamere, la lunghezza focale, la risoluzione e altre caratteristiche che influiscono sulla qualità dell’immagine acquisita e ci permettono di ottenere una immagine pulita su cui lavorare e successivamente poter passare dall’informazione 2D delle immagini all’informazione 3D del mondo reale.

Inoltre, come ultima fase di pre-processing dell’immagine, abbiamo applicato una trasformazione prospettica, che ci ha permesso di diminuire i problemi relativi alla profondità, tipici di un setting di camere “a volo d’uccello”.

Il modello matematico utilizzato in questa fase è stato il “Pin-hole Camera Model” e l’implementazione ha seguito gli step classici definiti sulla libreria python `opencv2`.

Nelle immagini seguenti si può vedere il passaggio da immagine originale, con distorsione, all’ immagine finale utilizzata per la detection.

Object Detector (EfficientDet)

Come algoritmo abbiamo scelto EfficientDet, una rete neurale convoluzionale sviluppata dal Google Brain Team. Le immagini per l’allenamento del modello sono state annotate manualmente e sono state applicate tecniche di image-augmentation per moltiplicare il numero di istanze presenti nel nostro dataset di partenza.

Nello specifico abbiamo applicato trasformazioni come zoom-in dell’immagine, modifica dei valori di Hue, Saturation e Brightness.

Nella fase di creazione del dataset è stato importante scegliere immagini il più eterogenee possibili, in modo da passare all’algoritmo dati di input rappresentativi del maggior numero di scenari possibili.

Per l’allenamento del modello è stata utilizzata una GPU personale e sono state raggiunte metriche importanti (AP di 0.815 con 0.5 di treshold IoU) considerando che gli oggetti da identificare nelle immagini potevano arrivare anche a numeri importanti (circa 25/30 animali per camera).

Tracking System

Il tracciamento dati rappresenta lo step successivo al riconoscimento degli oggetti e segue il paradigma del tracking-by-detection, ovvero partire dagli output della Object-Detection in due frame successivi e poi unire queste informazioni secondo determinare metriche (distanza euclidea fra i centri dei bounding box, Intersection over Union). In questo fase un ID temporaneo viene associato ad ogni animale e l’informazione sull’ID rimane tracciata nel tempo.

Una ulteriore possibilità per il tracciamento riguarda l’utilizzo dei Kalman Filters, che aggiungono una predizione sui futuri stati del sistema basandosi su una assunzione di moto a velocità costante.

Real ID Assignment

Lo step di tracking ci permette di associare un ID temporaneo ad ogni animale riconosciuto nei frame dei video. Vorremmo però che questa informazione sia sostituita con il vero ID dell’animale, che può essere ritrovato tramite l’associazione dei dati di tracking con i dati dei robot di mungitura.

Questa associazione segue una indicazione spaziale ed una indicazione temporale. Quando un animale è identificato all’interno della specifica area di uscita dal robot di mungitura viene fatta partire una query sul dataset del robot che ci restituisce l’ID.

Final Network

La pipeline sviluppata si conclude con la creazione di un network, dove i nodi sono gli animali e andiamo ad assegnare una connessione se i due animali in considerazione sono a distanza minore di una certa treshold, non di valore statico, in modo tale da poter definire diversi scenari.

Questo network permette di studiare le caratteristiche e le peculiarità dei gruppi che sono andati a formarsi all’interno della mandria, con lo scopo finale di scoprire le correlazioni fra relazioni sociali e qualità del prodotto finale, ovvero qualità della mungitura.

La pipeline sviluppata si conclude con la creazione di un network, dove i nodi sono gli animali e andiamo ad assegnare una connessione se i due animali in considerazione sono a distanza minore di una certa treshold, non di valore statico, in modo tale da poter definire diversi scenari.

Questo network permette di studiare le caratteristiche e le peculiarità dei gruppi che sono andati a formarsi all’interno della mandria, con lo scopo finale di scoprire le correlazioni fra relazioni sociali e qualità del prodotto finale, ovvero qualità della mungitura.

Vantaggi

Il monitoraggio dell’allevamento di bestiame da noi realizzato tramite la computer vision consente di migliorarne la gestione e l’efficienza, il benessere degli animali e la produttività complessiva, consentendo agli allevatori di prendere decisioni più informate e tempestive.

Ad esempio, può rilevare automaticamente il numero di animali presenti nell’allevamento, monitorare il loro movimento e comportamento, e identificare eventuali anomalie o situazioni di pericolo.

E’ particolarmente utile per identificare prontamente eventuali problemi o emergenze, come malattie o comportamenti anomali degli animali.

Può aiutare a monitorare il consumo di cibo e acqua da parte degli animali, identificando eventuali sprechi o carenze. Inoltre, può fornire informazioni sull’ambiente di vita degli animali, come la temperatura e l’umidità, per garantire condizioni ottimali.

E’ possibile identificare i fattori che influenzano la produttività degli animali. Ciò consente di apportare modifiche mirate all’alimentazione, all’ambiente o alle pratiche di gestione per massimizzare la crescita, la qualità della carne o del latte, o altri obiettivi specifici dell’allevamento.

Potrebbe anche individuare segni di malattie o disagi negli animali, come cambiamenti nell’aspetto fisico, lesioni o sintomi specifici. Ciò consente di intervenire tempestivamente per garantire il benessere degli animali e prevenire la diffusione di malattie.

L’utilizzo della computer vision per il monitoraggio della produttività degli animali nell’allevamento offre agli allevatori una visione dettagliata delle condizioni individuali e collettive degli animali e consente loro di prendere decisioni informate per ottimizzare la nutrizione, la salute, la riproduzione e l’ambiente di vita degli animali, migliorando così la produttività complessiva dell’allevamento.

Articolo a cura di G. Montrucchio