A Scancam usa o ML.NET para evitar roubo de combustível
Cliente
Scancam Industries
Produtos e serviços
ML.NET
ASP.NET Core
Xamarin
Azure
Setor
Segurança e Investigações
Tamanho da Organização
Pequena (1-100 funcionários)
País/região
Austrália
A Scancam é uma empresa de prevenção de perdas. Um de seus principais produtos é uma solução para combater o furto de combustível que atende aos varejistas e oferece uma solução de ponta a ponta para impedir e gerenciar o furto de combustível, incluindo a recuperação de dívidas.
Problema de negócios
O furto de combustível custa milhões de dólares a cada ano ao setor varejista de combustível australiano. Nos postos de combustíveis na Austrália, os clientes enchem o tanque de combustível primeiro e pagam depois. Alguns motoristas fogem sem pagar pelo combustível e outros percebem que esqueceram a carteira ou não têm dinheiro suficiente para pagar pelo combustível que acabou de abastecer. Essas fugas e falta de pagamento resultam em perdas de milhares de dólares para varejistas de combustível.
A solução da Scancam usa a tecnologia de reconhecimento de placa para detectar veículos em bombas de estação de combustível e fornece alertas para invasores conhecidos (pessoas que devem dinheiro de qualquer uma das estações de combustível em sua rede). Ele também inclui uma instalação para relatar roubos de combustível, geração automática de imagens de incidentes, pagamentos online e recuperação de dívidas.
Por que ML.NET?
A Scancam é fundamentalmente uma loja do .NET. Antes do ML.NET, a empresa executou a detecção de objeto em um contêiner do Docker separado executando código Python. Quando a Visão Personalizada adicionou a exportação de modelos de detecção de objeto, a Scancam transferiu para ML.NET, o que permitiu que a empresa hospedasse componentes de machine learning na mesma base de código de seus aplicativos.
O Scancam executa código em C# dos menores dispositivos de borda no local até a nuvem. Todos podem usar a mesma linguagem C# e conjuntos de ferramentas conhecidos em todos os componentes de suas soluções e migrar o código facilmente da nuvem para a borda e vice-versa (por exemplo, do Azure Functions para imagens de contêiner do ASP.NET Core sendo executadas em dispositivos ARM32).
Impacto do ML.NET
ML.NET fornece à Scancam a flexibilidade de mover facilmente para onde seu código é executado, ou seja, em dispositivos de borda, dispositivos móveis ou na nuvem. A funcionalidade de detecção ML.NET objeto resultante reduziu os requisitos de largura de banda da Scancam em até 35% e, consequentemente, reduziu seus requisitos de computação em nuvem, enquanto os componentes de detecção de anomalias monitorarão proativamente centenas de dispositivos.
O ML.NET nos permitiu aumentar a produtividade ao nos permitir codificar nossos componentes de ML na mesma linguagem e ferramentas que usamos para todo o resto. O ML.NET forneceu o ponto de partida mais fácil para nossos desenvolvedores .NET começarem a integrar o aprendizado de máquina aos nossos aplicativos."
Dada a janela de tempo limitado disponível desde o momento em que um veículo é detectado até quando o motorista começa a injetar combustível (5-7 segundos), o ML.NET permitiu que o Scancam acrescentasse a detecção de objeto ao seu pipeline de processamento com quase nenhum impacto sobre o desempenho, com previsões que tomavam em média ~300 ms.
Arquitetura da solução
A pilha técnica da Scancam é composta por ML.NET, ASP.NET Core, Xamarin no iOS e Azure (Serviço de Aplicativo, Azure Functions, Barramento de Serviço do Azure, Armazenamento do Azure, Azure Cosmos DB, SignalR e Banco de Dados SQL do Azure).
Quando um veículo vai para uma bomba de combustível, uma câmera dispara um evento para um ponto de extremidade HTTP em execução ASP.NET Core no Docker. ML.NET é usado primeiro para detectar a presença de veículos e, em seguida, detectar a presença de placas de licença nesses veículos. Em seguida, eles usam uma tecnologia de reconhecimento de placa de licença separada para verificar os números e as letras da placa de licença e habilita-la para uma função do Azure para disparar o pipeline de processamento de nuvem baseado no Azure restante, incluindo a verificação cruzada da placa de licença com um banco de dados de invasores conhecidos e transmissão de placas de licença detectadas para iPad e telas de TV por meio do SignalR.
Aplicativo cliente
O aplicativo principal do usuário final é um aplicativo Xamarin que é usado por atendedores de estação de combustível em um iPad. Este aplicativo exibe todas as placas de licença detectadas em cada bomba e mostra um alerta se uma placa de licença está no banco de dados de banco de dados conhecido. Isso permite que o operador do console impeça a distribuição de combustível e peça ao cliente para pagar antecipadamente pelo combustível antes de habilitar a bomba.
Detecção de objetos
A maioria das câmeras usadas pela Scancam depende da detecção de movimento para detectar veículos que entram e saim das áreas de bomba de combustível. Eles obtêm centenas de milhares de eventos de centenas de câmeras todos os dias. Considerando a disponibilidade das estações de combustível, a Scancam pode obter milhares de gatilhos falsos. Esses gatilhos falsos resultam em eventos indesejados que precisam ser processados para reconhecimento de placa de licença, o que, por sua vez, consome grande parte da largura de banda da Internet limitada disponível nos estações de combustível.
Para reduzir o número de eventos que precisavam ser enviados para a nuvem para processamento, a Scancam usou a Visão Personalizada do Azure para treinar um modelo de detecção de objetos que detectasse a presença de um veículo e captasse a visibilidade da região da placa do veículo em uma imagem. Em seguida, o modelo é exportado no formato ONNX. A empresa consome o modelo com o ML.NET em dispositivos de borda para o processamento prévio dos eventos da câmera antes de enviá-los para a nuvem para um processamento adicional.
Detecção de anomalias
A Scancam também está implementando o ML.NET para detecção de anomalias para detectar picos (por exemplo, áreas incorretas de gatilho de movimento, limite de gatilho muito baixo) e quedas (por exemplo, a câmera foi removida da posição, bloqueada, configurações de exposição incorreta) em eventos da câmera como parte do monitoramento da integridade das instalações da câmera. Essa detecção permite que a Scancam identifique facilmente possíveis problemas com suas centenas de câmeras sem precisar pesquisar manualmente os logs.
Classificação de imagem
O Scancam também está planejando adicionar a marca do veículo e a identificação do modelo à sua solução do ML.NET.
Pronto para começar?
Nosso tutorial passo-a-passo irá ajudá-lo a usar o ML.NET em seu computador.