透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
クイックレスポンス(QR)コードは、シームレスなデータ共有と情報取得を実現することで、私たちのデジタル生活に欠かせないものとなっています。 画像中のQRコードを認識することは、人工知能の一分野であるディープラーニングの貴重な応用です。 この記事では、.NET/C#を使用してディープラーニングによるQRコード認識システムの構築プロセスを案内します。
ディープラーニングは、機械学習の一分野であり、ニューラルネットワークをトレーニングしてデータから複雑なパターンを学習することを含みます。 QRコード認識の文脈では、ディープラーニングモデルをトレーニングすることで、さまざまなサイズ、向き、および状況の画像からQRコードを識別し、デコードすることができます。 畳み込みニューラルネットワーク(CNN)は、複雑な視覚的特徴を捉える能力があるため、QRコード認識のような画像ベースのタスクにおいて人気の選択肢です。
この記事では、私たちのモデルをトレーニングするためにML.NET Model Builderを使用します。
Model Builderは、.NET/C#で機械学習モデルを構築するためのML.NETフレームワークの一部としてマイクロソフトが提供している強力なツールです。 それは機械学習アルゴリズムの詳細な知識や幅広いコーディングの専門知識を必要とせずに、カスタムマシンラーニングモデルの作成プロセスを簡素化し、加速します。Model Builderはユーザーフレンドリーでアクセスしやすいように設計されており、アプリケーションに機械学習の能力を取り入れたい開発者にとって素晴らしいツールです。 モデルビルダーはAutoMLをサポートしており、さまざまな機械学習アルゴリズムや設定を自動的に探索して、あなたのシナリオに最も適したものを見つけるのに役立ちます。
Model Builderを使用してQRコード認識モデルを訓練するには、モデルの作成と訓練のプロセスを案内する一連の手順が含まれます。 このステップバイステップガイドでは、.NET/C#のModel Builderを使用してQRコードモデルをトレーニングする各段階をご案内します。
実装に進む前に、以下の前提条件を確認してください:
私たちのモデルをトレーニングするためにQRコード画像が必要です。 QRコードの画像はKaggleやRoboflowから入手できます。 この例のために、RoboflowからQRコード画像をダウンロードしました。
Visual Studioプロジェクトを開く。
プロジェクトを右クリック > 追加 > 機械学習モデル...
次のウィンドウが表示されます。
モデル名を入力し、[追加]ボタンをクリックします。 次のウィンドウが表示されます:
スクロールダウンして、コンピュータービジョンの下にある「オブジェクト検出」を見つけてください。
提供されたデータセットからQRコードを検出する必要があるため、「Object detection」を選択します。 お好みに応じて、ローカルまたはAzureを選択してください。 この例では「Local」を選択しています。
Localをクリックすると、次のウィンドウが表示されます:
お好みに応じてローカルのCPUまたはGPUを選択してください。また、Azureを選択することもできます。 そのためには、アクティブなAzureサブスクリプションが必要です。 テスト環境を選択した後、「次へ」ボタンをクリックしてください。 次のウィンドウが表示されます。
データの選択はトレーニングプロセスの最も重要な部分です。 前述の通り、データはRobo Flowから取得します。 RoboFlowを開き、QRコードを検索してください。 データには白いQRコードが含まれている場合や、多くのローカル機能が含まれている場合があります。 このチュートリアルでは、QR検出コンピュータービジョンデータセットを使用しています。 フォーマットを選択してデータをダウンロードしてください。 このデータをダウンロードするためにCOCOフォーマットを選択しました。 このフォーマットは、今後データ前処理および画像認識に使用されます。
データが揃いましたので、Visual Studioに戻りましょう。 上記でダウンロードしたCocoファイルの入力パスを選択してください。 また、Vottを選択することもできますが、その場合はデータ用のVottファイルを作成する必要があります。 次のウィンドウが表示されます。
次のステップボタンをクリックして、トレインタブに移動します。
それでは、「Start Training Model」をクリックしてトレーニングを開始してください。 モデルビルダーは自動的にバイナリ画像に変換し、指定されたニューラルネットワークを使用します。 何も指定する必要はありません。 Model Builderの最も素晴らしい点は、ディープラーニングの背景がほとんどない開発者でも、モデルのトレーニング、テスト、および使用ができることです。
モデルビルダーは指定されたデータセットでモデルの訓練を行い、訓練の進行状況を表示します。 上記のトレーニングにはシステムに応じて時間がかかります。 このモデルはQRコードを一つずつ取り込み、それぞれの特徴を学習します。 トレーニングが完了したら、任意のテストQRコード画像をモデルに渡して、そのモデルをテストすることができます。
トレーニング完了後、Model Builderは検証データに基づいてモデルの性能を評価します。
評価指標として、正確率、精度、再現率、F1スコアが表示されます。 これらの指標は、モデルのパフォーマンスを評価します。
モデルがトレーニングされ、QRコード検出器が準備できたので、そのモデルを利用してコードを検出し、検出されたQRコードをデコードする必要があります。 このモデルは、与えられた入力にクイックレスポンスコードが含まれているかどうかだけを検出します。 これはQRコードをデコードしません。 QRコードのデコードには、サードパーティのライブラリが必要です。 Iron Barcodeは、QR Codeイメージを読み取るための最高のライブラリです。 先に進む前に、IronBarcodeについて少し探ってみましょう。
IronBarcode は、主にQRコード(URL、テキスト、連絡先情報などの情報をエンコードするために広く使用されている2Dバーコードの一種)を扱うために特化した.NETライブラリです。 このライブラリは、サイズ、色、エラー訂正などのカスタマイズ可能な特徴を持つQRコードを生成できる直感的なツールを開発者に提供することで、QRコードの生成を簡素化します。
さらに、IronBarcodeは、画像に埋め込まれたQRコードから情報を抽出することを可能にし、QRコードの生成および解読機能を.NETアプリケーションにシームレスに統合するための不可欠なリソースとなります。
このチュートリアルでは、モデルからQRコードが検出された場合にそのQRコードのデコードに使用します。
NuGet パッケージ マネージャー コンソールで次のコマンドを入力して、IronBarcode NuGet パッケージをダウンロードします。
Install-Package BarCode
上記のコマンドはIronBarcodeパッケージをインストールし、プロジェクトに参照を追加します。
次のコードを記述して、検出された単一のQRコードを読み取ります。
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
using IronBarCode;
string qrCodeImagePath = "myQrCode.png";
var data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath);
Console.WriteLine(data.Value.ToString());
Imports IronBarCode
Private qrCodeImagePath As String = "myQrCode.png"
Private data = BarcodeReader.QuicklyReadOneBarcode(qrCodeImagePath)
Console.WriteLine(data.Value.ToString())
以下は出力結果です:
結論として、Model Builder と IronBarcode ライブラリーは、QRコードを扱いたい .NET 開発者にとって貴重な組み合わせです。 Model Builderは、QRコード認識用のモデルの作成およびトレーニングの難しい作業を非常に簡単にします。 さらに、IronBarcodeライブラリを追加すると、さらに簡単になります。画像からQRコードを問題なく読み取るのに役立ちます。 このチームワークは、在庫およびマーケティングのタスクを改善するだけでなく、あなたのアプリケーションの使い心地をより楽しいものにします。 Model BuilderとIronBarcodeが一緒になると、.NETアプリケーションに高度な技術が組み込まれ、QRコードに関するさまざまなクールな可能性が広がります。 Iron Barcode の商用ライセンスは、無料の試用ライセンスとともに非常に低価格で利用可能です。