Evolution Software migliora la qualità delle nocciole con ML.NET
Cliente
Evolution Software Design, Inc.
Prodotti e servizi
ML.NET
Azure
.NET Core
ASP.NET Core
Entity Framework Core
SignalR
SQL Server
Xamarin
Settore
Consulente
Dimensioni dell'organizzazione
Piccole dimensioni (1-100 dipendenti)
Paese/area geografica
Stati Uniti
Evolution Software Design, Inc. è una società di consulenza che aiuta altre organizzazioni ad applicare la tecnologia in modo più efficace tramite soluzioni tecnologiche strategiche e sviluppando applicazioni per il settore sanitario, l'e-commerce, l'agricoltura e le aziende. Una delle recenti iniziative dell'azienda è nel settore delle nocciole, collaborando con diverse società di elaborazione di nocciole per migliorare la qualità delle nocciole da azienda a consumer usando Machine Learning e ML.NET.
ML.NET ha reso semplice sfruttare le nostre competenze e le risorse software .NET e C# esistenti per aggiungere funzionalità di apprendimento automatico all'applicazione. Poiché il resto dell'applicazione è stato sviluppato utilizzando lo stack di tecnologie Microsoft e distribuito in Azure, l'integrazione dei modelli di Machine Learning è stata semplice e veloce."
Problema aziendale
Affinché le nocciole siano adatte al consumo umano, devono soddisfare determinati requisiti. Uno di questi requisiti è che le nocciole devono essere "ben essiccate" o contenere un livello specifico di umidità, specificato dai rappresentanti del settore tra l'8,5% e l'11,5%. Affinché le nocciole vengano accettate dagli acquirenti, è importante ottenere il giusto contenuto di umidità: se è troppo bassa, la nocciola si riduce troppo; se è troppo alta, le noccioline possono presentare muffa o essere rovinate.
Per garantire che le nocciole raggiungano questo livello di umidità, dopo il raccolto vengono portate dall'azienda alle stazioni di ricezione e posizionate in essiccatori commerciali, che possono contenere fino a 50.000 chilogrammi di nocciole ciascuno.
Determinare la quantità di tempo che le nocciole devono trascorrere negli essiccatoi per raggiungere l'umidità desiderata può essere una procedura soggetta a errori ed è influenzata da più variabili, ad esempio la varietà di nocciole, il peso del lotto, l'essiccatoio usato, la posizione e le condizioni meteorologiche. Il metodo standard per determinare il contenuto di umidità è un processo manuale: qualcuno si reca periodicamente presso l'essiccatoio per raccogliere un secchio di nocciole, pesarle, essiccarle e quindi osservare la differenza di peso. Il processo viene ripetuto più volte durante il processo di essiccazione e le condizioni nell'essiccatoio non sono ideali, con aria a 50° soffiata a 160 chilometri orari.
Chi si occupa di questa procedura da tempo, spesso presume di sapere quando le nocciole sono pronte senza eseguire il processo di campionamento. Questo può causare livelli di umidità errati e incongruenze da un essiccatoio all'altro, il che a sua volta si traduce in riduzioni delle entrate per le stazioni riceventi e i centri di lavorazione delle nocciole.
Inoltre, poiché ogni autunno un grande volume di nocciole viene raccolto e lavorato in un periodo relativamente breve (nel 2018, le aziende di lavorazione delle nocciole partecipanti hanno ricevuto sessantotto milioni di libbre di nocciole essiccate dalle stazioni di ricezione), l'ottimizzazione dell'uso degli essiccatoi durante il loro funzionamento 24 ore su 24 presenta un elevato valore commerciale.
Per risolvere questi problemi aziendali, l'applicazione Hanut Monitor usa ML.NET per stimare il contenuto di umidità delle nocciole all'interno degli operatori di avviso e batch di secchezza quando viene raggiunto il livello di destinazione.
L'obiettivo dell'app è quello di rendere molto semplice per le persone che operano negli essiccatoi sapere quando l'umidità delle noci si avvicina all'intervallo di umidità ottimale, riducendo al contempo la necessità di campionare; alla fine vorremmo arrivare al punto di non dover campionare le noci così frequentemente."
Perché ML.NET?
Nonostante l'apprendimento automatico sembrasse una strategia convincente per risolvere il problema aziendale, non era chiaro quanto sarebbe stato facile implementarlo all'interno dell'applicazione. Tuttavia, il rilascio di ML.NET accelerò notevolmente l'implementazione e, dopo solo quattro settimane e mezzo di sviluppo, Evolution Software ottenne il suo primo modello di Machine Learning per migliorare la previsione del livello di umidità delle nocciole del 2,5-3% per 35 essiccatoi commerciali.
Impatto di ML.NET
Oltre al monitoraggio dei valori misurati, ad esempio temperatura, umidità e pressione barometrica, i processori che gestiscono le asciugatrici hanno ora stime in tempo reale dei livelli di umidità accessibili tramite un client Web compatibile con i dispositivi mobili. Il motore di notifica opera su entrambi i valori misurati e stimati, quindi gli operatori possono ricevere SMS o messaggi di posta elettronica quando viene raggiunto il livello di umidità di destinazione.
Queste informazioni aggiuntive offrono agli operatori maggiore visibilità e confidenza sullo stato del processo di essicazione tramite i loro telefoni cellulari e altri dispositivi.
Architettura della soluzione
Elaborazione dati
L'app usa SignalR per ottenere aggiornamenti in tempo reale non appena i dati arrivano al server e archivia i dati nei database SQL. Ogni asciugatrice dispone di più sensori collegati a un hub, che ogni minuto invia i dati raccolti seguenti tramite REST a un'API Web implementata in ASP.NET Core MVC:
Dati aggiuntivi necessari per effettuare previsioni, come l'ora di inizio e di fine, il peso, la varietà di nocciole, la struttura (asciugatrice) e la posizione (struttura per l'asciugatura) vengono raccolti e registrati manualmente dal personale della struttura:
I livelli di umidità dei campioni di nocciole (usati per i dati di training) vengono anche raccolti e registrati manualmente:
Trasformazioni dei dati e algoritmi di Machine Learning
Hazelnut Monitor usa la codifica one-hot per convertire le funzionalità di categoria (varietà di nocciola, posizione dell'essiccatoio e numero della struttura) in tipi di dati float, il formato accettato dagli algoritmi ML.NET, e concatena queste funzionalità con delta di temperatura, delta di umidità e peso. Queste colonne delle funzionalità vengono quindi passate a un algoritmo di regressione Fast Tree che stima i livelli di umidità delle nocciole.
L'anno scorso l'algoritmo di training è stato eseguito una volta al giorno come attività pianificata e il modello sottoposto a training è stato quindi inviato come file zip all'Archiviazione BLOB di Azure. Il modello è stato quindi caricato nella cache dei servizi app di Azure e utilizzato con i nuovi dati per effettuare previsioni sul livello di umidità. In questa stagione, Evolution Software prevede di spostare questo processo in una funzione di Azure pianificata.
Applicazione client
Hazelnut Monitor fornisce un portale basato su Web, creato con .NET Core e Aurelia e ospitato in Azure, che offre informazioni dettagliate sulle operazioni di essiccatura in più località. Include anche un motore di regole e un sistema di notifica tramite Funzioni di Azure che può inviare avvisi al personale essenziale tramite SMS e notifiche tramite posta elettronica quando determinate misure non rientrano nell'intervallo specifico (ad esempio se la temperatura è troppo elevata o troppo bassa), quando si verificano malfunzionamenti dei sensori o quando viene raggiunto il livello di umidità desiderato.
Il rilascio di ML.NET ha reso molto semplice per Evolution Software aggiungere funzionalità di apprendimento automatico all'applicazione Hazelnut Monitor. L'azienda è stata in grado di sfruttare le competenze e le risorse software .NET e C# esistenti per creare da zero un modello di Machine Learning funzionante in un lasso di tempo molto breve e quindi risolvere i problemi aziendali individuati.
Pronti per iniziare?
Questa esercitazione dettagliata ti aiuterà a ottenere ML.NET in esecuzione nel computer.