IRONOCRの使用

C#でナンバープレートをOCRする方法(チュートリアル)

更新済み 2024年11月12日
共有:

イントロダクション

ナンバープレート認識は、交通管理や駐車システムから法執行および料金徴収ソリューションに至るまで、多くの業界で不可欠なツールとなっています。 活用することによって光学文字認識 (OCR (光学式文字認識))開発者はテクノロジーを使用して画像からテキストを効率的に抽出し、ナンバープレートの識別プロセスを自動化できます。 このチュートリアルでは、使用方法を示します。IronOCR、画像からナンバープレートを正確に読み取るための強力なC# OCRライブラリ。 OpenCVのソースコードとシームレスに統合され、コンピュータビジョンタスクに対応するIronOCRは、複雑またはノイズの多い画像ソースからでもテキストを認識するための強力なソリューションを提供します。 きれいなナンバープレートの画像でも、車両全体の写真でも、現代的なOCR技術を使用して信頼性の高いナンバープレート認識システムを構築する手順をこのガイドで説明します。

ナンバープレート認識 C# の使い方

1.C#ライブラリをインストールしてナンバープレート認識を使用します。

  1. ナンバープレート画像を新しい OcrImageInput インスタンスにインポートします。

  2. 画像フィルターを適用してC#でのテキスト抽出を改善する

  3. 写真の中でナンバープレートの領域を指定することで認識速度を向上させる

  4. OcrLicensePlateResultインスタンスを使用して抽出したテキストを印刷してください。

IronOCRの使い始め方

IronOCRは、Tesseract OCRエンジンに基づいて構築されたC# OCRライブラリで、.NETアプリケーションにおけるテキスト認識プロジェクトに高精度と効率をもたらすように特別に設計されています。 ノイズの多い画像や低品質の画像を処理するのに理想的なIronOCRは、自動ノイズリダクションやグレースケール変換などの強力な画像前処理機能を備えており、テキスト抽出の明瞭さを向上させます。

IronOCRの優れた機能には以下が含まれます:

  • 高精度のOCR: さまざまな言語やフォントに最適化されており、IronOCRは複雑または歪んだテキストでも高精度に処理します。
  • 画像およびPDFサポート: 複数の画像フォーマットとPDFファイルからテキストを読み取ることができ、さまざまな種類のドキュメントに対応します。
  • OpenCVとの統合: OpenCVサポートを通じて、IronOCRは画像内の特定のテキスト領域を検出するなどのコンピュータービジョンタスクを実行できます。これは特にナンバープレート認識に役立ちます。
  • 高度な前処理: 認識品質を向上させるために、グレースケール変換、回転、傾き補正、コントラスト強調のフィルターが含まれています。
  • 柔軟な入力オプション: マルチページドキュメントと調整可能な領域をサポートし、開発者が選択したエリアにOCR処理を集中させることで、より迅速かつターゲットを絞った結果を得ることができます。

    これらの機能を備えたIronOCRは、正確性、柔軟性、他のコンピュータビジョンツールとの統合の容易さを求めるOCRアプリケーションを構築するための強力なソリューションです。

Visual Studio プロジェクトを作成する

Visual Studio を開いて、「新しいプロジェクトの作成」を選択します。 これにより、作成したいプロジェクトのタイプを選択できるページに移動します。(私たちの場合、コンソールアプリケーションを作成します。). ご希望のアプリケーションタイプを選択し、「次へ」をクリックしてください。

License Plate Ocr Csharp Tutorial 1 related to Visual Studio プロジェクトを作成する

次に、プロジェクトに名前を付け、保存先を選択してください。

License Plate Ocr Csharp Tutorial 2 related to Visual Studio プロジェクトを作成する

最後に、ターゲットの.NETフレームワークを選択し、「作成」ボタンをクリックします。 これにより、以下に示すプロジェクトが作成されます。

License Plate Ocr Csharp Tutorial 3 related to Visual Studio プロジェクトを作成する

次のステップは、ナンバープレートの処理を開始するためにIronOCRライブラリをインストールすることです。

IronOCRのインストール

C#プロジェクトでIronOCRを利用開始するには、まずNuGetからIronOCRパッケージをインストールする必要があります。 IronOCRは.NET Frameworkおよび.NET Coreと互換性があり、さまざまな.NETアプリケーションに簡単に統合できます。

ステップ 1: パッケージ マネージャー コンソールを開く

Visual Studioで、ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソールに移動します。

ステップ2: IronOCRパッケージをインストールする

パッケージ マネージャー コンソールに次のコマンドを入力してください:

Install-Package IronOcr
Install-Package IronOcr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr
VB   C#

このコマンドは、プロジェクトでOCR機能を実行するために必要なすべての依存関係を含むIronOCRライブラリをインストールします。 私たちのアプリケーションがコンピュータビジョンを使用したナンバープレート検出のような高度な機能を必要としているため、この方法でオプションのIronOcr.ComputerVision.Windowsパッケージもインストールできます。

Install-Package IronOcr.ComputerVision.Windows
Install-Package IronOcr.ComputerVision.Windows
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.ComputerVision.Windows
VB   C#

そして、あなたが持っていることを確認してくださいIronOcr.Extensions.AdvancedScan拡張機能をインストールし、その強力なReadLicensePlateメソッドを利用してください。

Install-Package IronOcr.Extensions.AdvancedScan
Install-Package IronOcr.Extensions.AdvancedScan
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.Extensions.AdvancedScan
VB   C#

または、ツール > NuGet パッケージ マネージャー > ソリューションの NuGet パッケージを管理 を使用してパッケージをインストールし、必要なパッケージを検索することができます。

License Plate Ocr Csharp Tutorial 4 related to ステップ2: IronOCRパッケージをインストールする

コードの設定

最後に、コードの先頭に必要なインポートとusingステートメントを追加する必要があります。

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

光学文字認識でナンバープレートを読み取る

このセクションでは、 を使用してナンバープレートを読み取るプログラムを作成します。IronOCR、画像からテキストを抽出することに優れたTesseract OCRエンジン。 車両検出を実装するために、追加の機械学習ライブラリを組み込むことができます。 特に、IronOCRは、主要なオープンソースのコンピュータビジョンライブラリであるOpenCVと統合されており、車両やナンバープレートの識別といったオブジェクト検出のタスクを実行することができます。

例のナンバープレート画像

次のナンバープレートを使用します:

License Plate Ocr Csharp Tutorial 5 related to 例のナンバープレート画像

次に、ナンバープレートに対してOCRを実行するために以下のコードを追加します。

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrImageInput("licensePlate.jpeg")
	' Fixing the digital noise and making the image easier to read
	input.DeNoise()
	input.ToGrayScale()

	' Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)

	' Saving the license plate text to a string variable
	Dim output As String = result.Text

	' Outputting the license plate text to the console
	Console.WriteLine(output)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 6 related to C#でナンバープレートをOCRする方法(チュートリアル)

コードの内訳:

  • 初期化: var ocr = new IronTesseract(); の新しいインスタンスを作成しますIronTesseract光学文字認識のためのメソッドを提供するクラス(OCR (光学式文字認識)).
  • 画像入力: Using ステートメントは新しいものを作成しますOcrImageInput指定された画像ファイル「licensePlate.jpeg」を含むオブジェクト。 このオブジェクトは、OCR処理用の画像データを保持するために設計されています。
  • 画像前処理:

    *input.DeNoise();デジタルノイズリダクションフィルターを適用して、画像の品質を向上させ、OCRエンジンがテキストを読みやすくします。

    *input.ToGrayScale();画像をグレースケールに変換し、認識精度と処理速度を向上させることができます。

  • ナンバープレート認識: OcrLicensePlateResult result = ocr.ReadLicensePlate(入力); ReadLicensePlateメソッドを使用して処理された画像を分析し、検出したナンバープレート情報を抽出し、その結果を保存します。OcrLicensePlateResultオブジェクト
  • 出力ストレージ: ナンバープレートのテキストは、認識されたナンバープレートのテキストを含む result.Text にアクセスすることによって、文字列変数 output に格納されます。
  • コンソール出力: 最後に、Console.WriteLine(出力); 抽出されたナンバープレートのテキストをコンソールに出力して確認します。

車のナンバープレート番号をスキャンする

車のナンバープレートだけでなく車全体の画像がある場合、ナンバープレートの領域に焦点を当てるための矩形領域を指定できます。 使用できますSystem.Drawing.Rectangleこの領域をピクセルで定義します。

オリジナル画像

次の画像ファイルを例として使用します。

License Plate Ocr Csharp Tutorial 7 related to オリジナル画像

関心のある領域を指定することで、処理速度を向上させ、不必要なテキストの抽出を避けることができます。

実装コード

using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing

Private ocr = New IronTesseract()

Using input = New OcrInput()
	Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
	input.LoadImage("CarPlate.jpeg", contentArea)
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 8 related to 実装コード

コードの分解:

  • 初期化: var ocr = new IronTesseract(); IronTesseractクラスの新しいインスタンスを作成します。このクラスはOCR操作の実行を担当しています。
  • OCR入力: The using(var input = new OcrInput())ステートメントは新しいOcrInputオブジェクトを作成し、OCRのために画像を読み込み処理するために使用されます。
  • 関心領域の定義: var contentArea = new Rectangle(x: 252, y: 282, 幅: 148, 高さ: 47); 矩形領域を定義します(contentArea)画像内に。 この長方形は座標と寸法を指定します。(幅と高さ)ナンバープレートがあると予想される場所。
  • 画像の読み込み: input.LoadImage(「CarPlate.jpeg」、contentArea); 指定された画像ファイルを読み込みます("CarPlate.jpeg")定義された長方形に焦点を当てます。(contentArea)OCR処理をその特定の領域に限定します。
  • ナンバープレートの読み取り: OcrLicensePlateResult result = ocr.ReadLicensePlate(入力); 入力画像からナンバープレートの文字を解析し、抽出されたテキストを含むOcrLicensePlateResultオブジェクトを返すReadLicensePlateメソッドを呼び出します。
  • 出力: Console.WriteLine(result.Text); ナンバープレートから認識されたテキストをコンソールに出力します。

自動ナンバープレート認識

IronOCRは、さまざまな画像処理技術を利用して、OpenCVを活用し画像内のテキスト領域を特定します。 この機能により、画像内のテキスト領域を特定し、Tesseractを利用してこれらの領域を読み取ることで、プログラムがナンバープレートを検出できるようになります。

インストール

ナンバープレート検出モデルを有効にするには、パッケージマネージャーコンソールを通じて必要なパッケージをインストールしてください。

var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()

Using input = New OcrImageInput("CarPlate.jpeg")
	input.FindTextRegion()
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 9 related to インストール

コードの分解:

  • 初期化: 光学文字認識に使用されるIronTesseractクラスのインスタンスが作成されます。(OCR (光学式文字認識))Tesseractエンジンを使用して。
  • 画像入力: 指定された画像ファイルで新しいOcrImageInputオブジェクトがインスタンス化されます。("CarPlate.jpeg"). このオブジェクトはOCRプロセスの入力として機能し、適切なリソース管理を確保するためにusingステートメント内に囲まれています。
  • テキスト領域検出:そのテキスト領域を検索メソッドが入力オブジェクトに対して呼び出されます。 このメソッドはコンピュータビジョン技術を利用して、画像内でテキストが含まれていると考えられる領域を自動的に識別し、特にナンバープレートを対象としています。
  • ナンバープレート認識: ReadLicensePlateメソッドを呼び出して、検出されたテキスト領域を分析し、ナンバープレート番号を抽出します。 結果は、認識されたテキストと関連するメタデータを保持する OcrLicensePlateResult オブジェクトに保存されます。
  • 出力: 検出されたナンバープレートのテキストがコンソールに表示され、ユーザーは抽出されたナンバープレート番号を見ることができます。

IronOCRライセンス

License Plate Ocr Csharp Tutorial 10 related to IronOCRライセンス

自分でIronOCRを試してみたい方のために、IronOCRは無料試用これにより、提供されているすべてのツールにアクセスできるようになり、ライセンスを購入する前に自分のプロジェクトで試用することができます。 無料試用版が終了すると、IronOCR ライセンスLiteライセンスはわずか$749からです。 また、追加料金でオプションのアドオンを提供しており、ロイヤリティフリーの再配布カバレッジや途切れないサポート、継続的な製品のアップデートなどがあります。

これに加えて、単にIronOCRだけでなく、それ以上にIronSoftware製品を使用する必要がある場合、たとえばPDF関連のタスクにIronPDFを使用したり、Word文書を操作するためにIronWordを使用したりする必要がある場合、IronSoftwareはまたIron Suite、優れた価格で幅広いツールにアクセスできる素晴らしい方法です。

結論

このガイドでは、C#を使用して信頼性のあるナンバープレート認識システムを構築する方法を探りました。IronOCR. 強力なテキスト抽出機能とOpenCVとの統合により、IronOCRは車両画像から正確なテキスト認識を必要とするアプリケーションに対して、効率的で使いやすいソリューションを提供します。 画像の前処理から特定の検出領域の設定まで、IronOCRは騒音の多いまたは複雑な画像(交通や監視映像のナンバープレートなど)に合わせたツールでOCRプロセスを簡素化します。

交通監視、駐車取り締まり、もしくはナンバープレートの自動認識を必要とするあらゆるアプリケーションの開発において、IronOCRは.NET環境にシームレスに統合できる包括的なライブラリを提供します。 これらの手順に従うことで、さまざまな実際のシナリオで効率と精度を向上させるOCR対応のソリューションを展開する準備が整います。 地域選択やノイズ低減などの追加機能により、IronOCRはナンバープレート認識タスクが最適な結果を得られるようにします。

< 以前
C#で運転免許証をOCRする方法
次へ >
C#チュートリアルで請求書からテキストを取得する方法