Scancam utilizza ML.NET per prevenire i furti di carburante
Cliente
Scancam Industries
Prodotti e servizi
ML.NET
ASP.NET Core
Xamarin
Azure
Settore
Sicurezza e indagini
Dimensioni dell'organizzazione
Piccole dimensioni (1-100 dipendenti)
Paese/area geografica
Australia
Scancam è una società di prevenzione della perdita. Uno dei prodotti principali è una soluzione antifurto che si rivolge ai rivenditori di carburante e fornisce una soluzione end-to-end per prevenire e gestire il furto di carburante, incluso il recupero del debito.
Problema aziendale
Il furto di carburante costa al settore australiano della vendita al dettaglio di carburante milioni di dollari ogni anno. Nelle stazioni di carburante in Australia, i clienti riempiono prima il serbatoio e poi pagano. Alcuni guidatori se ne vanno senza pagare il carburante e alcuni si rendono improvvisamente conto di aver dimenticato il portafoglio o di non avere abbastanza denaro per pagare il carburante. Questi guasti e il mancato pagamento comportano migliaia di dollari di perdite per i rivenditori di carburante.
La soluzione di Scancam usa la tecnologia di riconoscimento delle targhe per individuare i veicoli ai distributori delle stazioni di servizio e invia avvisi per i trasgressori noti, ovvero le persone che hanno un debito con una delle stazioni di servizio della rete. Include anche una funzione per segnalare i furti di carburante, la generazione automatica di filmati degli incidenti, pagamenti online e recupero crediti.
Perché ML.NET?
Scancam è principalmente un negozio .NET. Prima di ML.NET, l'azienda ha eseguito il rilevamento oggetti in un contenitore Docker separato che esegue codice Python. Quando Visione personalizzata ha aggiunto l'esportazione dei modelli di rilevamento oggetti, Scancam ha eseguito il passaggio a ML.NET, che ha consentito all'azienda di ospitare componenti di apprendimento automatico nella stessa codebase delle applicazioni.
Scancam esegue il codice C# dai dispositivi perimetrali più piccoli in loco fino al cloud. Può usare lo stesso linguaggio C# e gli stessi strumenti familiari su qualsiasi componente delle sue soluzioni e può spostare facilmente il codice dal cloud al dispositivo perimetrale e viceversa (ad esempio, da Funzioni di Azure a immagini del contenitore ASP.NET Core in esecuzione su dispositivi ARM32).
Impatto di ML.NET
ML.NET offre a Scancam la flessibilità necessaria per spostarsi facilmente dove viene eseguito il codice, ovvero in dispositivi perimetrali, in dispositivi mobili o nel cloud. La funzionalità di rilevamento oggetti ML.NET risultante ha eliminato i requisiti di larghezza di banda di Scancam fio al 35% e ha ridotto di conseguenza i requisiti di calcolo cloud, mentre i componenti di rilevamento delle anomalie eseguiranno il monitoraggio proattivo di centinaia di dispositivi.
ML.NET ci ha consentito di aumentare la produttività consentendo di codificare i componenti di Machine Learning nello stesso linguaggio e negli strumenti usati per tutto il resto. ML.NET fornito il punto di partenza più semplice per gli sviluppatori .NET per iniziare a integrare Machine Learning nelle applicazioni."
Data la limitata finestra di tempo disponibile nel momento in cui viene rilevato un veicolo quando l'automobilista inizia mettere il carburante (5-7 secondi), ML.NET consente a Scancam di aggiungere il rilevamento oggetti alla pipeline di elaborazione con pochissimo impatto sulle prestazioni con stime di valore medio di ~300 ms.
Architettura della soluzione
Lo stack tecnico di Scancam comprende ML.NET, ASP.NET Core, Xamarin su iOS e Azure (Servizio app, Funzioni di Azure, bus di servizio di Azure, Archiviazione di Azure, Azure Cosmos DB, SignalR e database SQL di Azure).
Quando un veicolo viene condotto una stazione di servizio, una fotocamera attiva un evento in un endpoint HTTP in esecuzione ASP.NET Core in docker. ML.NET viene usato per rilevare prima di tutto la presenza di veicoli e quindi rilevare la presenza di targhe su tali veicoli. Viene quindi usata una tecnologia di riconoscimento delle targhe separate per eseguire la scansione dei numeri e delle lettere delle targhe e passarla a una funzione di Azure per attivare la rimanente pipeline di elaborazione cloud basata su Azure, incluso il controllo incrociato della targa con un database di trasgressori noti e i dati delle targhe trasmessi vengono rilevati nei display iPad e TV tramite SignalR.
Applicazione client
L'applicazione principale per l'utente finale è un'app Xamarin usata dagli addetti della stazione di servizio su un iPad. Quest'app mostra tutte le targhe rilevate presso ogni pompa e visualizza un avviso se una targa è presente nel database dei trasgressori noto. Questo consente all'operatore di impedire l'erogazione del carburante e di chiedere al cliente di pagare il carburante prima di abilitare la pompa.
Rilevamento oggetti
La maggior parte delle videocamere usate da Scancam usa il rilevamento del movimento per individuare i veicoli che entrano ed escono dalle aree delle pompe del carburante. L'azienda riceve ogni giorno centinaia di migliaia di eventi da centinaia di videocamere. Dato il traffico elevato nelle stazioni di servizio, Scancam può ottenere una quantità elevatissima di trigger falsi. Questi trigger falsi si traducono in eventi indesiderati da elaborare per il riconoscimento della targa e che consumano una grande quantità della limitata larghezza di banda Internet disponibile nelle stazioni di servizio.
Per ridurre il numero di eventi che devono essere inviati al cloud per l'elaborazione, Scancam ha usato Azure Visione personalizzata per eseguire il training di un modello di rilevamento oggetti per rilevare la presenza di un veicolo e la visibilità dell'area della targa in un'immagine ed esportato il modello in formato ONNX. Usano quindi il modello con ML.NET nei dispositivi perimetrali per pre-elaborare gli eventi della fotocamera prima dell'invio al cloud per un'ulteriore elaborazione.
Rilevamento anomalie
Scancam sta anche implementando ML.NET per il rilevamento di anomalie per rilevare picchi (ad esempio, aree di attivazione del movimento non corrette, soglia di attivazione troppo bassa) e flessioni (ad esempio, la fotocamera è stata eliminata dalla posizione, bloccata, impostazioni di esposizione non corrette) negli eventi della fotocamera come parte del monitoraggio dell'integrità delle installazioni della fotocamera. Questo rilevamento consente a Scancam di individuare facilmente i potenziali problemi con le centinaia di fotocamere senza dover cercare manualmente nei log.
Classificazione immagini
Scancam sta anche pianificando l'aggiunta della marca di veicoli e dell'identificazione del modello alla soluzione ML.NET.
Pronti per iniziare?
Questa esercitazione dettagliata ti aiuterà a ottenere ML.NET in esecuzione nel computer.