Scancam は燃料の盗難を防ぐために ML.NET を使用します
製品とサービス
ML.NET
ASP.NET Core
Xamarin
Azure
業界
セキュリティと調査
組織の規模
Small (1-100 の社員)
国/地域
オーストラリア
Scancam は損失防止企業です。主要な製品には、燃料小売業者に対応する燃料盗難防止ソリューションがあり、負債回復を含む燃料盗難を防止および管理するためのエンド ツー エンド ソリューションを提供します。
ビジネスの問題
燃料盗難は、オーストラリアの燃料小売業界に毎年数百万ドルの損害を及ぼしています。オーストラリアのガソリンスタンドでは、客はまず燃料タンクを満タンにし、後払いで料金を支払います。運転手の中には支払いをせずにそのまま走り去ってしまう者もいます。その中には財布を忘れてきた者もいれば、補給した燃料分の料金を持ち合わせていない場合もあります。こうした料金不払いによって燃料小売業者に数千ドルの損害をもたらしています。
Scancam のソリューションでは、ナンバープレート認識技術を使用して給油所のポンプで車両を検出し、既知の違反者 (ネットワーク内のいずれかの給油所で支払いが完了していない人) に警告を発します。また、燃料の盗難を報告する機能、事件映像を自動的に生成する機能、オンライン支払い機能、債権回収機能なども備えています。
ML.NET を選ぶ理由
Scancam は主要な .NET ショップです。ML.NET 以前は、Python コードを実行する別の Docker コンテナーで物体検出を実行していました。Custom Vision が物体検出モデルのエクスポート機能を追加したとき、Scancam は ML.NET に移植し、アプリケーションと同様にコードベースで会社が機械学習コンポーネントをホストできるようになりました。
Scancam は、オンサイトの最小のエッジ デバイスからクラウドに至るまで、C# コードを実行しています。Scancam は、使い慣れた C# 言語とツールをソリューション内のどのコンポーネントでも使用することができ、クラウドからエッジへ、またはその逆にコードを簡単に移動させることができます (たとえば、ARM32 デバイス上で実行する Azure Functions から ASP.NET Core コンテナー イメージへの移動)。
ML.NET の影響
ML.NET では、エッジ デバイス、モバイル デバイス、クラウドなど、コードを実行する場所を容易に移動できる柔軟性を Scancam に付与しています。結果として、ML.NET オブジェクト検出機能は、異常検出コンポーネントが予防的に数百のデバイスを監視する一方で、Scancam の帯域幅要件を最大 35% 削減し、最終的には同社のクラウド コンピューティング要件を削減しました。
ML.NET を使用すると、他のすべての機能と同じ言語とツールで ML コンポーネントのコードを記述できるため、生産性を高めることができました。ML.NET は、.NET 開発者がアプリケーションに機械学習の統合を開始するための最も簡単なポイントが用意されています。"
車両が検出された時点から、運転手がアクセルペダルを踏み始めるまでの限られた時間枠 (5 - 7 秒) があるとして、ML.NET は Scancam に、平均約 300 ms の予測でパフォーマンスにほとんど影響を与えずに、処理パイプラインに物体検出を追加することを許可しました。
ソリューション アーキテクチャ
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 関数に渡して、ナンバープレートを既知の違反者データベースと照合したり、検出されたナンバープレートを SignalR を介して iPad やテレビのディスプレイに配信するなど、残りの Azure ベースのクラウド処理パイプラインを起動します。
クライアント アプリケーション
主要なエンドユーザー アプリケーションは、給油所の従業員が iPad で使用する Xamarin アプリです。このアプリは、各ポンプで検出されたすべてのナンバープレートを表示し、そのナンバープレートが既知の違反者データベースに登録されている場合はアラートを表示します。これにより、コンソールのオペレーターは燃料の供給を阻止し、ポンプの機能を有効にする前に顧客に燃料の前払いを依頼することができます。
オブジェクトの検出
Scancam が使用するカメラのほとんどは、燃料ポンプ領域に出入りする車両を検出するためにモーション検出に依存しています。 彼らは毎日何百ものカメラから何十万ものイベントを受け取ります。 ガソリン スタンドがどれほど忙しいかを考えると、Scancam は大量の誤ったトリガーを取得する可能性があります。 これらの誤ったトリガーにより、ナンバー プレート認識のために処理する必要のある不要なイベントが発生し、ガソリン スタンドで利用可能な限られたインターネット帯域幅の多くを消費します。
処理用にクラウドに送信する必要があるイベントの数を減らすために、Scancam は Azure Custom Vision を使用して、車両の存在と画像内のナンバープレート領域の可視性を検出するための物体検出モデルをトレーニングし、モデルを ONNX 形式でエクスポートしました。その後、エッジ デバイス上の ML.NET を使用してモデルを使用し、さらに処理するためにクラウドに送信する前にカメラ イベントを前処理します。
異常検出
Scancam は、カメラ設置の正常性を監視する一環のカメラ イベントで、異常検出用にも ML.NETを実装し、カメラ イベントの急増 (不正なモーション トリガー エリア、トリガーしきい値が低すぎるなど) やディップ (設置場所からカメラが外れた、ブロックされた、不適切な露出設定など) を検出します。この検出により、Scancam は数百台のカメラの潜在的な問題を、手作業でログを検索することなく簡単に特定することができます。
画像分類
Scancam では、車両のメーカーとモデルの識別を ML.NET ソリューションに追加することも計画しています。
準備はできましたか?
このステップ バイ ステップ チュートリアルは、あなたのコンピューターで ML.NET を実行するのに役立ちます。