Scancam, ML.NET을 사용하여 연료 도난 방지
제품 및 서비스
ML.NET
ASP.NET Core
Xamarin
Azure
업계
보안 및 조사
조직 규모
소규모(직원 1~100명)
국가/지역
오스트레일리아
Scancam은 손실 방지 회사입니다. 주요 제품 중 하나는 연료 소매점에 제공하고 부채 복구를 포함하여 연료 도난을 방지하고 관리하기 위한 엔드 투 엔드 솔루션을 제공하는 연료 도난 방지 솔루션입니다.
비즈니스 문제
오스트레일리아 연료 소매 부문에서 매년 수백만 달러의 연료 절도 비용이 발생합니다. 오스트레일리아의 주유소에서 고객은 먼저 연료 탱크를 채우고 나중에 지불합니다. 일부 운전자는 연료 비용을 지불하지 않고 떠나고, 일부 운전자는 지갑을 깜빡했거나 방금 주유한 연료 비용을 지불할 충분한 돈이 없다는 것을 알게 됩니다. 이러한 도망 및 지불 실패로 인해 연료 소매점에 수천 달러의 손실이 발생합니다.
Scancam의 솔루션은 번호판 인식 기술을 사용하여 주유소 펌프에서 차량을 감지하고 알려진 위반자(네트워크의 주유소에서 빚을 지고 있는 사람)에 대한 경고를 제공합니다. 또한 연료 절도, 자동 사고 영상 생성, 온라인 지불 및 부채 회수를 보고하는 기능도 포함됩니다.
왜 ML.NET를 사용해야 하나요?
Scancam은 주로 .NET 상점입니다. ML.NET 전에 회사는 Python 코드를 실행하는 별도의 Docker 컨테이너에서 개체 검색을 실행했습니다. Custom Vision이 개체 검색 모델의 내보내기를 추가했을 때 Scancam이 ML.NET으로 포팅되어 회사에서 애플리케이션과 동일한 코드베이스에서 기계 학습 구성 요소를 호스트할 수 있었습니다.
Scancam은 현장의 가장 작은 에지 장치에서 클라우드까지 C# 코드를 실행합니다. 솔루션의 모든 구성 요소에서 동일한 친숙한 C# 언어 및 도구를 사용할 수 있으며 클라우드에서 에지로 또는 그 반대로 코드를 쉽게 이동할 수 있습니다(예: Azure Functions에서 ARM32 장치에서 실행되는 ASP.NET Core 컨테이너 이미지로).
ML.NET의 영향
ML.NET은 Scancam에 코드가 실행되는 위치, 즉 에지 장치, 모바일 장치 또는 클라우드에서 쉽게 이동할 수 있는 유연성을 제공합니다. 그 결과 ML.NET 객체 감지 기능은 Scancam의 대역폭 요구 사항을 최대 35%까지 낮추고 결과적으로 클라우드 컴퓨팅 요구 사항을 줄였으며 이상 감지 구성 요소는 수백 대의 장치를 사전에 모니터링합니다.
ML.NET을 사용하면 ML 구성 요소를 동일한 언어로 코딩하고 다른 모든 작업에 사용하는 도구를 사용하여 생산성을 높일 수 있었습니다. ML.NET은 .NET 개발자들이 머신 러닝을 애플리케이션에 통합하기 시작할 수 있는 가장 쉬운 도약점을 제공했습니다."
차량이 감지된 순간부터 운전자가 연료를 주입하기 시작할 때까지(5~7초) 사용 가능한 제한된 시간 창을 감안할 때 ML.NET은 Scancam이 처리 파이프라인에 개체 감지를 추가할 수 있도록 허용했으며 평균 ~300ms로 예측 성능에 거의 영향을 미치지 않았습니다.
솔루션 아키텍처
Scancam의 기술 스택은 ML.NET, ASP.NET Core, Xamarin on iOS 및 Azure(App Service, Azure Functions, Azure Service Bus, Azure Storage, Azure Cosmos DB, SignalR, Azure SQL Database)로 구성됩니다.
차량이 연료 펌프로 운전하면 카메라는 Docker의 ASP.NET Core에서 실행되는 HTTP 엔드포인트에 대한 이벤트를 트리거합니다. 그런 다음 ML.NET을 사용하여 먼저 차량의 존재를 감지한 다음 해당 차량의 번호판의 존재를 감지합니다. 그런 다음 별도의 번호판 인식 기술을 사용하여 번호판 번호와 문자를 스캔하고 Azure 기능에 전달하여 알려진 위반자의 데이터베이스와 번호판을 교차 확인하고 방송하는 것을 포함하여 나머지 Azure 기반 클라우드 처리 파이프라인을 트리거합니다. SignalR을 통해 iPad 및 TV 디스플레이에 번호판을 감지했습니다.
클라이언트 애플리케이션
주요 최종 사용자 애플리케이션은 iPad의 주유소 직원이 사용하는 Xamarin 앱입니다. 이 앱은 각 펌프에서 감지된 모든 번호판을 표시하고 번호판이 알려진 범죄자 데이터베이스에 있는 경우 경고를 표시합니다. 이를 통해 콘솔 운영자는 연료 분배를 방지하고 펌프를 활성화하기 전에 고객에게 연료를 선불로 지불하도록 요청할 수 있습니다.
개체 감지
Scancam이 사용하는 대부분의 카메라는 모션 감지에 의존하여 연료 펌프 영역을 드나드는 차량을 감지합니다. 그들은 매일 수백 대의 카메라에서 수십만 개의 이벤트를 받습니다. 주유소가 얼마나 바쁜지를 감안할 때 Scancam은 수많은 잘못된 트리거를 얻을 수 있습니다. 이러한 잘못된 트리거로 인해 번호판 인식을 위해 처리해야 하는 원치 않는 이벤트가 발생하며, 이는 차례로 주유소에서 제한된 가용 인터넷 대역폭을 많이 소모합니다.
처리를 위해 클라우드로 보내야 하는 이벤트의 수를 줄이기 위해 Scancam은 Azure Custom Vision을 사용하여 이미지에서 차량의 존재와 번호판 영역의 가시성을 감지하는 개체 감지 모델을 학습하고 내보냈습니다. ONNX 형식의 모델. 그런 다음 추가 처리를 위해 클라우드로 보내기 전에 에지 장치에서 ML.NET으로 모델을 사용하여 카메라 이벤트를 사전 처리합니다.
이상 감지
Scancam은 또한 카메라 이벤트에서 스파이크(예: 잘못된 모션 트리거 영역, 트리거 임계값이 너무 낮음) 및 딥(예: 카메라가 제자리에서 벗어남, 차단됨, 잘못된 노출 설정)을 감지하는 이상 감지용 ML.NET을 구현합니다. 카메라 설치 상태 모니터링의 일환으로. 이 감지 기능을 통해 Scancam은 로그를 수동으로 검색할 필요 없이 수백 대의 카메라에서 잠재적인 문제를 쉽게 찾아낼 수 있습니다.
이미지 분류
Scancam은 또한 ML.NET 솔루션에 차량 제조사 및 모델 식별을 추가할 계획입니다.
시작할 준비가 되셨나요?
단계별 자습서는 컴퓨터에서 ML.NET을(를) 실행하는 데 도움이 될 것입니다.