Evolution Software améliore la qualité des noisettes avec ML.NET
Client
Evolution Software Design, Inc.
Produits & services
ML.NET
Azure
.NET Core
ASP.NET Core
Entity Framework Core
SignalR
SQL Server
Xamarin
Secteur
Consultant
Taille de l’organisation
Petite (1-100 employés)
Pays/région
États-Unis
Evolution Software Design, Inc. est une société de conseil qui aide d'autres organisations à appliquer la technologie plus efficacement grâce à des solutions technologiques stratégiques et en développant des applications de santé, de commerce électronique, d'agriculture et d'entreprise. L'une des entreprises récentes de l'entreprise est dans l'industrie de la noisette, en partenariat avec diverses entreprises de transformation de noisettes pour améliorer la qualité des noisettes de la ferme au consommateur en utilisant l'apprentissage automatique et ML.NET.
ML.NET a simplifié l’utilisation de nos compétences et ressources logicielles .NET et C# existantes pour ajouter des fonctionnalités de machine learning à l’application. Étant donné que le reste de l’application est développé à l’aide de la pile de technologies Microsoft et déployé sur Azure, l’intégration de modèles Machine Learning était facile et simple.\ »
Problème d’entreprise
Pour que les noisettes soient comestibles, elles doivent répondre à certaines exigences. Par exemple, elles doivent être \ "bien séchées " ou contenir un niveau spécifique d’humidité que l’industrie a spécifié entre 8. 5% et 11. 5%. Pour que les acheteurs acceptent les noisettes, il est important de régler correctement le taux d’humidité : s’il est trop faible, les noisettes rétréciront trop ; et s’il est trop élevé, elles risquent de moisir et s’abîmer.
Pour faire en sorte que les noisettes atteignent ce niveau d’humidité, une fois récoltées, elles sont apportées de l’exploitation aux postes de réception et placées dans des séchoirs commerciaux, qui peuvent contenir chacun 50 000 kilos de noisettes.
Déterminer le temps que les noisettes doivent passer dans les séchoirs pour atteindre le taux d’humidité cible peut être un art sujet à erreurs et est influencé par de multiples variables, telles que la variété de noisette, le poids du lot, le séchoir utilisé, l’emplacement et le temps. La méthode standard de détermination de la teneur en eau est un processus très manuel : quelqu un est envoyé périodiquement dans le séchoir pour en retirer un seau de noisettes, peser les noix, les sécher, puis observer la différence de poids. Ce processus est répété plusieurs fois au cours du séchage, et les conditions dans le séchoir sont loin d être idéales, l’air soufflant à 120 degrés Fahrenheit et à 100 mph.
Les personnes qui effectuent ce processus depuis un certain temps supposent souvent qu’elles savent quand les récepteurs sont prêts sans effectuer le processus d’échantillonnage, ce qui peut entraîner des niveaux d’humidité incorrects et des incohérences entre le sécheur et le sécheur, ce qui entraîne une perte de revenus pour les stations de réception et les processeurs de récepteurs.
De plus, étant donné qu'un grand volume de noisettes est récolté et transformé dans une fenêtre relativement courte chaque automne (en 2018, les entreprises de transformation de noisettes participantes ont reçu soixante-huit millions de livres de noix séchées des stations de réception), il y a une grande valeur commerciale à optimiser l'utilisation des séchoirs pendant leur fonctionnement 24 heures sur 24.
Pour résoudre ces problèmes commerciaux, l'application Hazelnut Monitor utilise ML.NET pour prédire la teneur en humidité des noix dans le lot de séchage et alerter les opérateurs lorsque le niveau cible est atteint.
L’objectif de l’application est de permettre aux personnes qui utilisent les séchoirs de savoir très facilement quand l’humidité des noix est proche de la plage d’humidité optimale tout en réduisant le besoin d’échantillonner ; l’objectif final serait pour nous d’arriver au point où elles n’auraient plus besoin de goûter les noix aussi fréquemment.\ »
Pourquoi ML.NET ?
Bien que le Machine Learning semble être une stratégie intéressante pour résoudre le problème commercial, il n’était pas évident de savoir si elle serait facilement mise en œuvre dans l’application. Cependant, la sortie de ML.NET a considérablement accéléré la mise en œuvre, et après seulement quatre semaines et demi de développement, Evolution Software disposait de son premier modèle d’apprentissage automatique pour améliorer la prédiction du taux d’humidité des noisettes dans une fourchette de 2,5 à 3 % pour 35 séchoirs commerciaux.
Impact de ML.NET
Outre la surveillance des valeurs mesurées, telles que la température, l’humidité et la pression barométrique, les processeurs fonctionnant dans les séchoirs disposent désormais de prédictions en temps réel de niveaux d’humidité accessibles via un client Web compatible mobile. Le moteur de notification fonctionne à la fois sur les valeurs mesurées et prévues, ce qui permet aux opérateurs de recevoir des messages SMS ou e-mail lorsque le niveau d’humidité cible est atteint.
Ces informations supplémentaires offrent aux opérateurs une visibilité accrue et une plus grande confiance quant à l'état du processus de séchage via leurs téléphones portables et autres appareils.
Architecture de la solution
Traitement des données
L'application utilise SignalR pour obtenir des mises à jour en temps réel lorsque les données arrivent sur le serveur et stocke les données dans des bases de données SQL. Chaque sécheur dispose de plusieurs capteurs connectés à un hub, qui envoie chaque minute les données collectées suivantes via REST à une API Web implémentée dans ASP.NET Core MVC :
Les données supplémentaires nécessaires pour faire des prévisions, telles que l'heure de début et de fin, le poids, la variété de noisette, la structure (séchoir) et l'emplacement (installation de séchage) sont collectées et enregistrées manuellement par les travailleurs de l'installation :
Les niveaux d'humidité des échantillons de noisettes (utilisés pour les données de formation) sont également collectés et enregistrés manuellement :
Transformations de données et algorithmes d'apprentissage automatique
Hazelnut Monitor utilise un codage à chaud pour convertir les caractéristiques catégorielles (variété de noisettes, emplacement du séchoir et numéro de bac/structure) en données flottantes types, qui est le format accepté par les algorithmes ML.NET, et concatène ces fonctionnalités avec le delta de température, le delta d'humidité et le poids. Ces colonnes de caractéristiques sont ensuite transmises à un algorithme de régression rapide par arbre, qui prédit les niveaux d'humidité des noisettes.
L'année dernière, l'algorithme de formation a été exécuté une fois par jour en tant que tâche planifiée, et le modèle formé a ensuite été poussé sous forme de fichier zip vers le stockage Azure Blob. Le modèle a ensuite été chargé dans le cache Azure App Services et utilisé sur de nouvelles données pour effectuer des prévisions de niveau d'humidité. Cette saison, Evolution Software prévoit de déplacer ce processus vers une fonction Azure planifiée.
Application cliente
Hazelnut Monitor fournit un portail Web, construit avec .NET Core et Aurelia et hébergé sur Azure, qui donne un aperçu des opérations de séchage sur plusieurs sites. Il comprend également un moteur de règles et un système de notification (utilisant Azure Functions) qui peut alerter le personnel clé via des notifications SMS et e-mail lorsque certaines mesures sont hors plage (par exemple, la température est trop chaude ou trop froide), lorsque les capteurs fonctionnent mal, ou lorsque la teneur en humidité cible est atteinte.
La publication de ML.NET a permis à Evolution Software d’ajouter facilement des fonctionnalités d’apprentissage automatique à l’application Monitor Hazelnut. L’entreprise a pu tirer parti de ses compétences et ressources logicielles .NET et C# existantes pour passer de zéro à un modèle Machine Learning fonctionnel dans un court laps de temps et ainsi résoudre les problèmes métier ciblés.
Prêt à démarrer ?
Notre tutoriel étape par étape vous aidera à démarrer ML.NET sur votre ordinateur.