57行のコードで8,600万ドルのプロジェクトプロトタイプ







今日、多くの優れた競争力のあるシステムが、大企業だけでなく、個々の開発者によって作成されています。 原則として、これは参照ソリューション(企業の製品)に基づいてコピーされ、その後最適化されます。 この場合、健全な競争からの企業、技術スキルの開発と経験の獲得からの開発者、新しい機会とソリューションからの消費者から、誰もが利益を得ます。







自己紹介をします。私の名前はIvan Grekovです。フロントエンドチームBadooの出身です。 私はこの投稿が本当に好きでした。ただ通過できず、翻訳もできませんでした。 この投稿は、デバイスプロトタイピングとオープンソースソリューションのファンにとって素晴らしいインスピレーションの源です。 翻訳は著者の視点を維持して公開されており、あなたにとって興味深いものになることを願っています。







ビクトリア警察は、オーストラリアのビクトリア州の主要な法執行機関です。 過去1年間で、この状態で16,000台を超える車が盗まれ、合計金額は約1億7000万ドルになりました。そのため、警察はハイジャックの回数を減らすためにさまざまな技術的ソリューションを試しています。







彼らはすでに盗まれた車の不正販売を防ぐためにVicRoads Webサービスを使用しています。 サービスでは、車の登録の現在のステータスを確認できます。 また、警察署は、固定式ナンバープレートスキャナー(通過する車を取り除き、盗難車を自動的に特定する三脚のカメラ)を取得しました。







理由を聞かないでください。しかし、一度自動車に取り付けられたナンバープレートスキャナーのプロトタイプを作成したいと思いました。 このスキャナーは、自動モードで盗難車または未登録の車について通知します。 目的の製品の個々のコンポーネントは既に誰かによって実装されていることを理解し、それらを単一のシステムに結合することがどれほど難しいかを知りたいと思いました。







しかし、ネットを検索したところ、 ビクトリアの警察が最近、同様のデバイスのテストを行ったことがわかりました。推定配備コストは約86,000,000 ドルです







解決策をより最適に見つけることができると確信しています。









固定ナンバープレートスキャナーの1つ







成功基準



まず、製品アーキテクチャの基本的な要件を策定しましょう。







ローカルビデオ処理



集中処理のためのストリーミングビデオは、この問題に対する最も効果的なソリューションではないようです。 データ転送の巨額の請求に加えて、ネットワーク遅延も考慮する必要があり、これにより処理速度が大幅に低下します。







集中型機械学習アルゴリズムは改善されていますが、ローカル処理を使用したソリューションがどれほど受け入れられるかを知りたいと思いました。







かなり低品質の画像で作業する



Raspberry Pi用のカメラや通常のWebカメラがないため、DVRの録画を使用します。 テストに理想的なソースです。 さらに、DVRからの録画の品質は、パトカーに取り付けられたカメラの品質に匹敵します。







製品は、オープンソース技術を使用して作成する必要があります



プロプライエタリなソフトウェアに依存している場合、開発者にすべての問題を修正するように依頼する必要性に常に休むでしょう。 オープンソース技術ではこれは起こりません。







解決策



一般的には、DVRの記録から画像を取得し、デバイスにインストールされたオープンソースのナンバープレート認識システムを介して画像を駆動し、車の登録を確認するサービスを要求して、結果を画面に表示することにしました。







パトカーに取り付けられたデバイスに返されるデータには、車のメーカーとモデル(ナンバープレート自体だけが盗まれた場合の状況を確認するため)、車の登録のステータス、および車が盗難にリストされているという通知が含まれます。







それは簡単にopenalpr



ます。そのため、たとえば、 openalpr



ライブラリを使用して画像を処理できます。 ナンバープレートの文字を認識するには、他に何も必要ありません。







 openalpr.IdentifyLicense(imagePath, function (error, output) { // handle result });
      
      





少し説明



API VicRoads



へのパブリックアクセスがないため、私のプロトタイプでは、ナンバープレートの検証はコンテンツグラバーを介して行われます。 一般的にこれは非難された決定ですが、それでも概念の操作性を確認する問題です-私は誰かのサーバーを落とすことはありません。







ここにアイデアの実現可能性の私の証拠があります:







 // Open form and submit enquire for `rego` function getInfo(rego) { horseman .userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0') .open(url) .type('#registration-number-ctrl input[type=text]', rego) .click('.btn-holder input') .waitForSelector('.ctrl-holder.ctrl-readonly') .html() .then(function(body) { console.log(processInfo(body, rego)); return horseman.close(); }); } // Scrape the results for key info function processInfo(html, rego) { var $ = cheerio.load(html); var vehicle = $('label.label').filter(function() { return $(this).text().trim() === 'Vehicle:'; }).next().text().trim(); var stolen = $('label.label').filter(function() { return $(this).text().trim() === 'Stolen status:'; }).next().text().trim(); var registration = $('label.label').filter(function() { return $(this).text().trim() === 'Registration status & expiry date:'; }).next().text().trim(); return { rego, vehicle, stolen, registration }; }
      
      





結果



私は言わなければならない、私はうれしい驚きでした。







オープンソースの番号認識はかなり失礼だと思っていました。 さらに、アルゴリズムはおそらく、オーストラリア形式のナンバープレート用に最適化されていません。







しかし、システムは広角画像上の数字を認識できました。









美しさのために私が追加した注釈。 まぶしさと光学的歪みにもかかわらず、数は正常に認識されました







ただし、特定の文字に問題がありました。









番号が誤って読み取られた; Mの代わりに、Hが認識された







しかし、最終的には、システムはまだそれらを正しく認識していました。









数フレーム後、文字Mが正確に決定され、確実性が高くなります。







ご覧のとおり、認識精度は最初のフレームの87%から2番目のフレームの91%に跳ね上がりました。

サンプリング周波数を上げてから、信頼性の程度でソートすることで、精度を改善できると確信しています。 または、数値を確認するために、許容できる信頼性のしきい値を、たとえば90%のレベルに設定できます。







このため、コードの非常に簡単な修正で十分であり、認識のためのアプリケーションのトレーニングをあなたの国の数だけに制限する必要はありません。







86百万ドルの質問



正直なところ、私はこの記事にどの記事が含まれているのか分かりません。また、BlueNetパイロットシステムの認識精度を、オーストラリアの数字で動作するように訓練されていないオープンソースツールと比較することもできません。







予算の一部は、いくつかの古いデータベースとアプリケーションを、高い処理頻度をサポートし、多数のナンバープレート認識リクエストを処理する際の低遅延を提供する新しいソリューションに置き換えることを計画していると思います。







一方、マシンあたり391千ドルのコストは、特にBlueNetがあまり正確でなく、相互接続システムの廃止または更新のための大規模ITプロジェクトの実装がコストに含まれていない場合、非常に強力に見えます。







将来のアプリケーション



Orwellによると、ナンバープレート泥棒の遍在するネットワークを作成するという考えにとらわれないために、このテクノロジーにはさらに多くの積極的なアプリケーションを考案できます。 道路上の車をスキャンし、盗まれた車の現在の位置と方向を当局と所有者に自動的に警告するパッシブシステムを想像してください。







Tesla車には、OTAの更新を受信できるカメラとセンサーが既に搭載されています。 しかし、あなたがそれらを善良なサマリア人の仮想艦隊に変えたらどうでしょうか? UberマシンとLyftマシンにもこのようなデバイスを装備することができ、カバレッジエリアが大幅に拡大します。







オープンソーステクノロジーと既製のソフトウェアおよびハードウェアコンポーネントを使用すると、はるかに高い投資収益率を8600万ドル未満で提供するソリューションを提案することが可能になります。








All Articles