Scancam utilise ML.NET pour prévenir le vol de carburant
Client
Scancam Industries
Produits & services
ML.NET
ASP.NET Core
Xamarin
Azure
Secteur
Sécurité et enquêtes
Taille de l’organisation
Petite (1-100 employés)
Pays/région
Australie
Scancam est une société de protection contre la perte. L’un de leurs principaux produits est une solution anti-vol de carburant qui s’adresse aux détaillants de carburant et fournit une solution de bout en bout pour empêcher et gérer le vol de carburant, y compris la récupération de la dette.
Problème d’entreprise
Le vol de carburant coûte chaque année des millions de dollars au secteur australien de la vente au détail de carburant. Dans les stations-service en Australie, les clients remplissent d’abord leurs bacs à carburant et paient ensuite. Certains partent sans payer de carburant, et d’autres se rendent compte qu’ils ont oublié leur portefeuille ou qu’ils n’ont pas assez d’argent pour payer le carburant qu’ils viennent de payer. Ces pannes et échecs de paiement entraînent des milliers de dollars de pertes pour les détaillants de carburant.
La solution de Scancam utilise la technologie de reconnaissance des plaques d'immatriculation pour détecter les véhicules aux pompes des stations-service et fournit des alertes aux contrevenants connus (personnes qui doivent de l'argent à l'une des stations-service de leur réseau). Il comprend également une fonction permettant de signaler les vols de carburant, la génération automatique de séquences d'incidents, les paiements en ligne et le recouvrement de créances.
Pourquoi ML.NET ?
Scancam est principalement un magasin .NET. Avant ML.NET, l’entreprise exécutait la détection d’objets sur un conteneur Docker distinct exécutant du code Python. Lorsque Custom Vision ajouté l’exportation de modèles de détection d’objets, Scancam a été porté vers ML.NET, ce qui a permis à l’entreprise d’héberger des composants Machine Learning dans le même code base que leurs applications.
Scancam exécute le code C# des plus petits appareils périphériques sur site jusqu'au cloud. Ils peuvent utiliser le même langage et les mêmes outils C# familiers sur n'importe quel composant de leurs solutions et peuvent facilement déplacer le code du cloud vers la périphérie et vice versa (par exemple, d'Azure Functions vers des images de conteneur ASP.NET Core exécutées sur des appareils ARM32).
Impact de ML.NET
ML.NET donne à Scancam la flexibilité de se déplacer facilement là où son code s'exécute, c'est-à-dire sur les appareils périphériques, les appareils mobiles ou le cloud. La fonctionnalité de détection d'objets ML.NET qui en a résulté a réduit les besoins en bande passante de Scancam jusqu'à 35 % et, par conséquent, ses besoins en calcul dans le cloud, tandis que les composants de détection d'anomalies surveilleront de manière proactive des centaines d'appareils.
ML.NET nous a permis d’augmenter la productivité en nous donnant la possibilité de coder nos composants ML avec le même langage et les mêmes outils que ceux que nous utilisons pour tout le reste. ML.NET a constitué le point de départ le plus facile pour nos développeurs .NET lorsqu’ils ont commencé à intégrer le machine learning dans nos applications.\ »
Compte tenu de la fenêtre de temps limitée disponible à partir du moment où un véhicule est détecté jusqu'au moment où l'automobiliste commence à pomper du carburant (5-7 secondes), ML.NET a permis à Scancam d'ajouter la détection d'objets à leur pipeline de traitement avec pratiquement aucun impact sur les performances avec des prédictions prenant en moyenne ~300 ms.
Architecture de la solution
La pile technique de Scancam est composée de ML.NET, ASP.NET Core, Xamarin sur iOS et Azure (App Service, Azure Functions, Azure Service Bus, Stockage Azure, Azure Cosmos DB, SignalR Azure SQL Database).
Lorsqu’un véhicule se dirige vers une pompe à carburant, une caméra déclenche un événement sur un point de terminaison HTTP exécuté sur ASP.NET Core sur Docker. ML.NET est ensuite utilisé pour détecter d’abord la présence de véhicules, puis détecter la présence de plaques d’autorisation sur ces véhicules. Ils utilisent ensuite une technologie de reconnaissance de plaques d’licence distincte pour analyser les numéros et lettres des plaques de licence et les remettre à une fonction Azure afin de déclencher le pipeline de traitement cloud basé sur Azure restant, y compris la vérification croisée de la plaque de licence avec une base de données de personnes connues et la diffusion de plaques de licence détectées sur les écrans iPad et TV via SignalR.
Application cliente
La principale application utilisateur final est une application Xamarin qui est utilisée par les préposés aux stations-service sur un iPad. Cette application affiche toutes les plaques d'immatriculation détectées sur chaque pompe et affiche une alerte si une plaque d'immatriculation se trouve dans la base de données des délinquants connus. Cela permet à l'opérateur de la console d'empêcher la distribution de carburant et de demander au client de prépayer le carburant avant d'activer la pompe.
Détection d'objet
La plupart des caméras que Scancam utilise s’appuient sur la détection de mouvement pour détecter les véhicules entrants et sortants des zones de pompe à carburant. Ils reçoivent des centaines de milliers d’événements de centaines de caméras chaque jour. Compte tenu de la fréquentation des stations-service, Scancam peut obtenir des tas de faux déclencheurs. Ces faux déclencheurs entraînent des événements indésirables qui doivent être traités pour la reconnaissance des plaques de licence, ce qui consomme une grande partie de la bande passante Internet disponible limitée sur les stations-service.
Afin de réduire le nombre d’événements qui devaient être envoyés au cloud à des fins de traitement, Scancam a utilisé Azure Custom Vision pour entraîner un modèle de détection d’objet afin de détecter la présence d’un véhicule et la visibilité de la région de la plaque d’autorisation dans une image et a exporté le modèle au format ONNX. Ils utilisent ensuite le modèle avec ML.NET sur les appareils de périphérie pour prétraiter les événements de caméra avant de les envoyer au cloud pour un traitement ultérieur.
Détection d'anomalie
Scancam met également en œuvre ML.NET pour la détection d'anomalies afin de détecter les pics (par exemple, des zones de déclenchement de mouvement incorrectes, un seuil de déclenchement trop bas) et des baisses (par exemple, la caméra a été déplacée, bloquée, des paramètres d'exposition incorrects) dans les événements de caméra dans le cadre de la surveillance de la santé des installations de caméras. Cette détection permet à Scancam d'identifier facilement les problèmes potentiels avec leurs centaines de caméras sans avoir à rechercher manuellement dans les journaux.
Classification d'images
ScanCAM prévoit également l’ajout de la marque et l’identification du modèle de la solution ML.NET.
Prêt à démarrer ?
Notre tutoriel étape par étape vous aidera à démarrer ML.NET sur votre ordinateur.