バーコードツールズ

ディープラーニングを用いたQRコード認識の理解方法

ジョルディ・バルディア
ジョルディ・バルディア
2023年8月29日
共有:

クイックレスポンス(QR)コードは、シームレスなデータ共有と情報取得を実現することで、私たちのデジタル生活に欠かせないものとなっています。 画像中のQRコードを認識することは、人工知能の一分野であるディープラーニングの貴重な応用です。 この記事では、.NET/C#を使用してディープラーニングによるQRコード認識システムの構築プロセスを案内します。

深層学習によるQRコード認識の理解

ディープラーニングは、機械学習の一分野であり、ニューラルネットワークをトレーニングしてデータから複雑なパターンを学習することを含みます。 QRコード認識の文脈では、ディープラーニングモデルをトレーニングすることで、さまざまなサイズ、向き、および状況の画像からQRコードを識別し、デコードすることができます。 畳み込みニューラルネットワーク(CNN)は、複雑な視覚的特徴を捉える能力があるため、QRコード認識のような画像ベースのタスクにおいて人気の選択肢です。

この記事では、私たちのモデルをトレーニングするためにML.NET Model Builderを使用します。

ML.NET モデルビルダー

Model Builderは、.NET/C#で機械学習モデルを構築するためのML.NETフレームワークの一部としてマイクロソフトが提供している強力なツールです。 それは機械学習アルゴリズムの詳細な知識や幅広いコーディングの専門知識を必要とせずに、カスタムマシンラーニングモデルの作成プロセスを簡素化し、加速します。Model Builderはユーザーフレンドリーでアクセスしやすいように設計されており、アプリケーションに機械学習の能力を取り入れたい開発者にとって素晴らしいツールです。 モデルビルダーはAutoMLをサポートしており、さまざまな機械学習アルゴリズムや設定を自動的に探索して、あなたのシナリオに最も適したものを見つけるのに役立ちます。

QRコード認識モデルのトレーニング

Model Builderを使用してQRコード認識モデルを訓練するには、モデルの作成と訓練のプロセスを案内する一連の手順が含まれます。 このステップバイステップガイドでは、.NET/C#のModel Builderを使用してQRコードモデルをトレーニングする各段階をご案内します。

ステップ1: 環境の設定

実装に進む前に、以下の前提条件を確認してください:

  • Visual Studio: Visual Studio、.NET開発向けの多用途な統合開発環境(IDE)をダウンロードしてインストールします。
  • モデルビルダー: ML.NET Model Builderはこちらからダウンロードできます。

ステップ 2:データ準備

私たちのモデルをトレーニングするためにQRコード画像が必要です。 QRコードの画像はKaggleRoboflowから入手できます。 この例のために、RoboflowからQRコード画像をダウンロードしました。

ステップ3: モデルビルダーを開く

Visual Studioプロジェクトを開く。

プロジェクトを右クリック > 追加 > 機械学習モデル...

ディープラーニングによるQRコード認識の理解方法: 図1

次のウィンドウが表示されます。

深層学習によるQRコード認識の理解方法: 図2

モデル名を入力し、[追加]ボタンをクリックします。 次のウィンドウが表示されます:

ディープラーニングを用いたQRコード認識の理解方法: 図3

スクロールダウンして、コンピュータービジョンの下にある「オブジェクト検出」を見つけてください。

ディープラーニングを用いたQRコード認識の理解方法: 図4

ステップ4: トレーニング環境を選択

提供されたデータセットからQRコードを検出する必要があるため、「Object detection」を選択します。 お好みに応じて、ローカルまたはAzureを選択してください。 この例では「Local」を選択しています。

Localをクリックすると、次のウィンドウが表示されます:

深層学習によるQRコード認識の理解方法: 図5

お好みに応じてローカルのCPUまたはGPUを選択してください。また、Azureを選択することもできます。 そのためには、アクティブなAzureサブスクリプションが必要です。 テスト環境を選択した後、「次へ」ボタンをクリックしてください。 次のウィンドウが表示されます。

ディープラーニングでQRコード認識を理解する方法: 図6

ステップ 5: データを選択

データの選択はトレーニングプロセスの最も重要な部分です。 前述の通り、データはRobo Flowから取得します。 RoboFlowを開き、QRコードを検索してください。 データには白いQRコードが含まれている場合や、多くのローカル機能が含まれている場合があります。 このチュートリアルでは、QR検出コンピュータービジョンデータセットを使用しています。 フォーマットを選択してデータをダウンロードしてください。 このデータをダウンロードするためにCOCOフォーマットを選択しました。 このフォーマットは、今後データ前処理および画像認識に使用されます。

深層学習によるQRコード認識の理解方法:図 7

データが揃いましたので、Visual Studioに戻りましょう。 上記でダウンロードしたCocoファイルの入力パスを選択してください。 また、Vottを選択することもできますが、その場合はデータ用のVottファイルを作成する必要があります。 次のウィンドウが表示されます。

ディープラーニングによるQRコード認識の理解方法: 図8

次のステップボタンをクリックして、トレインタブに移動します。

ディープラーニングでQRコード認識を理解する方法:図9

ステップ6: QRコード検出モデルのトレーニング

それでは、「Start Training Model」をクリックしてトレーニングを開始してください。 モデルビルダーは自動的にバイナリ画像に変換し、指定されたニューラルネットワークを使用します。 何も指定する必要はありません。 Model Builderの最も素晴らしい点は、ディープラーニングの背景がほとんどない開発者でも、モデルのトレーニング、テスト、および使用ができることです。

ディープラーニングでQRコード認識を理解する方法: 図10

モデルビルダーは指定されたデータセットでモデルの訓練を行い、訓練の進行状況を表示します。 上記のトレーニングにはシステムに応じて時間がかかります。 このモデルはQRコードを一つずつ取り込み、それぞれの特徴を学習します。 トレーニングが完了したら、任意のテストQRコード画像をモデルに渡して、そのモデルをテストすることができます。

ステップ7:モデルの評価

トレーニング完了後、Model Builderは検証データに基づいてモデルの性能を評価します。

評価指標として、正確率、精度、再現率、F1スコアが表示されます。 これらの指標は、モデルのパフォーマンスを評価します。

ステップ 8: コンシューム

モデルがトレーニングされ、QRコード検出器が準備できたので、そのモデルを利用してコードを検出し、検出されたQRコードをデコードする必要があります。 このモデルは、与えられた入力にクイックレスポンスコードが含まれているかどうかだけを検出します。 これはQRコードをデコードしません。 QRコードのデコードには、サードパーティのライブラリが必要です。 Iron Barcodeは、QR Codeイメージを読み取るための最高のライブラリです。 先に進む前に、IronBarcodeについて少し探ってみましょう。

IronBarcode - QRコードデコードライブラリ

IronBarcode は、主にQRコード(URL、テキスト、連絡先情報などの情報をエンコードするために広く使用されている2Dバーコードの一種)を扱うために特化した.NETライブラリです。 このライブラリは、サイズ、色、エラー訂正などのカスタマイズ可能な特徴を持つQRコードを生成できる直感的なツールを開発者に提供することで、QRコードの生成を簡素化します。

さらに、IronBarcodeは、画像に埋め込まれたQRコードから情報を抽出することを可能にし、QRコードの生成および解読機能を.NETアプリケーションにシームレスに統合するための不可欠なリソースとなります。

このチュートリアルでは、モデルからQRコードが検出された場合にそのQRコードのデコードに使用します。

Iron Barcode NuGetパッケージをインストール

NuGet パッケージ マネージャー コンソールで次のコマンドを入力して、IronBarcode NuGet パッケージをダウンロードします。

Install-Package BarCode

上記のコマンドはIronBarcodeパッケージをインストールし、プロジェクトに参照を追加します。

ディープラーニングでQRコード認識を理解する方法:図11

QRコードをデコードする

次のコードを記述して、検出された単一の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())
$vbLabelText   $csharpLabel

以下は出力結果です:

ディープラーニングでQRコード認識を理解する方法: 図12

結論

結論として、Model Builder と IronBarcode ライブラリーは、QRコードを扱いたい .NET 開発者にとって貴重な組み合わせです。 Model Builderは、QRコード認識用のモデルの作成およびトレーニングの難しい作業を非常に簡単にします。 さらに、IronBarcodeライブラリを追加すると、さらに簡単になります。画像からQRコードを問題なく読み取るのに役立ちます。 このチームワークは、在庫およびマーケティングのタスクを改善するだけでなく、あなたのアプリケーションの使い心地をより楽しいものにします。 Model BuilderとIronBarcodeが一緒になると、.NETアプリケーションに高度な技術が組み込まれ、QRコードに関するさまざまなクールな可能性が広がります。 Iron Barcode の商用ライセンスは、無料の試用ライセンスとともに非常に低価格で利用可能です。

ジョルディ・バルディア
ソフトウェアエンジニア
ジョルディは、Iron Softwareでのスキルを活かしていないときには、ゲームプログラミングをしており、Python、C#、C++に最も堪能です。彼は製品テスト、製品開発、研究の責任を共有しており、継続的な製品改善に大きな価値をもたらしています。この多様な経験は彼を常に挑戦的で魅力的に保ち、彼はIron Softwareで働く一番好きな側面の一つだと言っています。ジョルディはフロリダ州マイアミで育ち、フロリダ大学でコンピューターサイエンスと統計学を学びました。
< 以前
バージョン4 QRコード 最大50文字 (初心者ガイド)
次へ >
GoogleフォームのQRコードを作成する方法