他のコンポーネントと比較

Google OCRとIronOCRの比較

公開済み 2023年5月16日
共有:

OCRは光学文字認識の略です。 画像ファイルを機械符号化テキストに変換する機能を提供します。 スキャンされたドキュメントは常にコンピュータによって画像ファイルとして保存されます。 これらの画像ファイルに含まれるデータは、通常のテキストエディタやワードプロセッシングアプリケーションを使用しても、検索、編集、またはテキスト形式で保存することはできません。 OCR処理は、これらの画像を機械で読み取れるテキストに変換し、ユーザーによる更なる処理を可能にします。

この現代において、インターネットを通じて共有されるスキャンされたドキュメントはデジタル形式であり、ほとんどがPDFや画像の形で提供されています。 画像をテキストに変換するオンラインリソースが多数利用可能です。 しかし、主に企業はこの機能を自社のソフトウェアアプリケーションに必要としています。 これを念頭に置くと、ソフトウェアアプリケーションに組み込むためのOCR処理技術を提供する多くのライブラリがあります。

この記事では、C#向けの最も人気のあるOCRライブラリのうち二つについて議論します。 これらは:

  • IronOCR
  • Google Cloud Vision OCR(グーグルクラウドビジョンOCR)(ビジョンAPI)

イントロダクション

IronOCR - C# ライブラリ

IronOCR for .NETは、画像およびPDFをスキャン、検索、読み取るためのC#ライブラリです。 画像またはPDFファイルを入力として取り込み、最新のTesseract 5カスタムビルド.NET OCRエンジンを使用して、テキスト、構造化データ、または検索可能なPDFドキュメントを出力します。 そのTesseractは、125以上の言語に対応しており、.NET CoreおよびStandard 2.0から7までのクロスプラットフォームをサポートしています。

IronOCRは、C#開発者がIronTesseractクラスとAPIキーを使用して、画像を自動的にテキストに変換できる使いやすいAPIです。 速度、正確性、そして使いやすさを優先します。 また、訓練されたモデルセットを使用してテキストを見つけるために、コンピュータービジョンAPIの支援も行います。

IronOCRのもう一つの強力な機能は、すべての画像ファイルからバーコードやQRコードをスキャンし、そのテキストを読み取ることができることです。 IronOCRの他の重要な機能は以下の通りです。

機能

  • 国際言語: 高品質で高速なパフォーマンスを持つ125以上の言語およびカスタム言語のサポート
  • テキストとバーコードの読み取り: 複数の言語からテキストと数字を一度に読み取る
  • 専門文書: 特に領収書、小切手、請求書からのテキストを読み取ります。
  • 多くの形式から読み取る: イメージ(PNG、JPG、GIF、TIFF、BMP)System.Drawing Objects、ストリーム、PDFドキュメント(最適化されたターゲットDPI)
  • フィルター: フィルターウィザード、画像補正、画像の向き修正、画像色修正
  • シンプルなデータ出力: .NET テキスト文字列、バーコードおよびQRデータ、画像

    では、Google Cloud Vision APIを見てみましょう。

Google Cloud Vision OCR (Google Cloud Vision Optical Character Recognition)

Google Cloud Vision API (グーグル クラウド ビジョン API)は、C#言語をサポートするGoogle Cloud OCRクライアントライブラリです。 C# 開発者が簡単にソフトウェアアプリケーションにコンピュータビジョン検出機能を統合できるようにします。 次の処理を行います: OCRを実行し、画像ファイルからテキストを検出、画像ラベル、顔認識、ランドマーク認識。

Google Cloud Vision APIは、RESTおよびRPC APIを使用して強力な事前学習済みの機械学習を提供します。(機械学習)モデル クラウドインポートビジョンAPIを使用すると、あらかじめ定義された数百万のカテゴリに画像を迅速に分類することができます。 また、オブジェクトの検出、印刷された文書および手書きのテキストからのテキスト読み取りも可能です。

機能

  • 画像テキスト検出:画像をOCRしてテキスト認識を行い、機械言語コードに変換する
  • ドキュメントテキスト検出:ファイルをOCRする(PDF/TIFF)濃密なテキスト
  • ランドマーク検出: 検出されたオブジェクトの座標を返します
  • ロゴ検出:テキストによる説明を返します
  • ラベル検出: 画像に対する一般化されたラベルを返します

    記事の残りは次のとおりです:

  1. Visual Studio プロジェクトの作成

  2. IronOCRのインストール

  3. Google OCRのインストール

  4. 画像からテキストへ

  5. バーコードおよびQRコードからテキストへ

  6. PDFをテキストに変換

  7. ライセンス

  8. 結論

1. Visual Studioプロジェクトの作成

このチュートリアルでは、最新バージョンのVisual Studio 2022を使用します。 では、既にC#用にダウンロードしてインストール済みであると仮定します。 そうでない場合は、こちらからダウンロードできます:Visual Studioウェブサイト.

まず、両方のライブラリを使用するためにコンソールプロジェクトを作成する必要があります。 プロジェクトを作成する手順に従ってください:

  • Visual Studio 2022 を開いてください。
  • 新しいプロジェクトを作成をクリックします。

    ![C# ウィンドウズアプリケーションでバーコードを印刷する方法

図1 - 新しいプロジェクトを作成する](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-1.webp)

  • 与えられたオプションからC#コンソールアプリケーションを選択します。

    C# Windowsアプリケーションでバーコードを印刷する方法 図2 - コンソールアプリ

  • 新しいプロジェクトの名前と場所を設定してください。 例:「OCRプロジェクト」
  • 次へ進む。

    ![C# Windowsアプリケーションでバーコードを印刷する方法

図3 - プロジェクトの構成](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-3.webp)

  • 追加情報から、最も安定したバージョンである.NET 6.0フレームワークを選択します。

    C# Windows アプリケーションでバーコードを印刷する方法 図4 - 追加情報

  • 以下の手順を実行すると、選択した場所にプロジェクトが作成されます。

    次に、比較のためにプロジェクトにライブラリをインストールします。

2. IronOCRのインストール

IronOCRライブラリをインストールするための方法は複数あります。 それでは、一つずつ見ていきましょう。

2.1. Visual Studio NuGet パッケージ マネージャーの使用

NuGetは、プロジェクト内の依存関係をダウンロードしてインストールするためのパッケージマネージャーです。 そのパッケージにはコンパイル済みのコードが含まれています(DLL (ディーエルエル))およびマニフェストファイル。以下の方法を使用してアクセスします:

  • ツールタブをクリック
  • NuGetパッケージマネージャーオプションを拡張する
  • ソリューションの NuGet パッケージを管理する クリック

    C# Windowsアプリケーションでバーコードを印刷する方法 図5 - NuGetパッケージマネージャー

  • または、ソリューション エクスプローラーを右クリック
  • NuGet パッケージの管理をクリック

    C# Windowsアプリケーションでバーコードを印刷する方法 図6 - ソリューションエクスプローラー

    さて、NuGetパッケージマネージャーウィンドウが開きます。 IronOCRを検索して、インストールをクリックします。

    C# Windowsアプリケーションでバーコードを印刷する方法 図7 - IronOCR

2.2. NuGetウェブサイトからダウンロード

NuGet公式ウェブサイトから直接ダウンロードすることができます。以下の手順に従ってください:

  1. リンクをクリックしてください: ""。

  2. ページの右側にある「Download package」オプションをクリックしてください。

  3. ダウンロードしたパッケージを開くと、インストールが開始されます。

  4. 最後にソリューションをリロードして完了です。

2.3. IronOCRのウェブページを使用してダウンロードする

Iron Softwareのウェブサイトにアクセスし、IronOCR for .NETのウェブページに移動してください。 下までスクロールして、「Download DLL」または「Download Windows Installer」をクリックしてください。

C# Windowsアプリケーションでバーコードを印刷する方法 図8 - Iron Softwareウェブサイト

Zipファイルがダウンロードされます。 抽出してプロジェクトファイルに追加するか、Windowsインストーラーを実行してください。 以下の手順に従ってプロジェクトに追加してください。

  1. ソリューションエクスプローラーからVisual Studioのプロジェクトの依存関係を右クリックします。

  2. 次に、オプションの「Add Project Reference」を選択します。

  3. ダウンロードしたDLLファイルの場所を参照します。

  4. 最後に、OKをクリックしてプロジェクトの参照を追加します。

2.4. Visual Studioでコマンドプロンプトを使用する方法

  1. Visual Studioの「ツール」タブに移動します。

  2. NuGetパッケージマネージャーオプションを拡張する。

  3. パッケージ マネージャー コンソールを選択し、次のコマンドを入力してください:
    Install-Package IronOCR

これにより、プロジェクトにIronOCRが自動的にダウンロードおよびインストールされます。

さて、プロジェクトでIronOCRを使用する準備が整いました。

2.5. 必要なIronOCRネームスペースの追加

その関数にアクセスする必要があるソースコードファイルの先頭に追加する必要がある名前空間は一つだけです。


    using IronOCR;

    using IronOCR;
Imports IronOCR
VB   C#

では、Google Vision OCRをインストールしましょう。

Google OCRのインストール

お客様のC#プロジェクトでビジョンAPIを使用するためには、以下の前提条件を満たす必要があります。

  1. Google アカウントを作成

  2. Google Cloud コンソールから新しいプロジェクトを作成

  3. 請求を有効にする

  4. ビジョンAPIを有効にする

  5. サービスアカウントを作成し、クレデンシャルを設定する

  6. サービス アカウント キーの認証情報をJSONファイル形式でダウンロードしてください。

    Google Cloud Visionのセットアップや要件に関する詳細は、公式ドキュメントでご覧いただけます。これ.

    では、Visual StudioでOCR処理を行うためにGoogle Cloudクライアントライブラリをインストールするためには、NuGetパッケージマネージャーを使用する必要があります。

3.1. NuGetパッケージマネージャーの使用

以下のメソッドを使用してアクセスしてください:

  • ツールタブをクリック
  • NuGetパッケージマネージャーオプションを拡張する
  • ソリューションの NuGet パッケージを管理をクリックします

    バーコードをC# Windowsアプリケーションで印刷する方法 図9 - ツールタブ

  • または、ソリューション エクスプローラーを右クリック
  • NuGet パッケージの管理をクリック

    ![C# Windowsアプリケーションでバーコードを印刷する方法

図10 - NuGetパッケージの管理](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-10.webp)

さて、NuGetパッケージマネージャーウィンドウが開きます。 Google Cloud Vision OCR を検索し、インストールをクリックします。

C# Windows アプリケーションでバーコードを印刷する方法   図11 - Google Cloud Vision OCR

3.2. Google Vision API 名前空間の追加

以下の名前空間を含めて、Google OCR Vision APIを使用してください:


    using Google.Cloud.Vision.V1;

    using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
VB   C#

また、JSONファイルでダウンロードしたキー認証情報を使用して環境変数を設定してください。


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
VB   C#

さて、すべての設定が完了し、使用準備が整いました。

4. 画像からテキストへ

画像からデータを読み取る作業は非常に骨の折れる仕事です。 コンテンツを抽出する際には、画像の解像度と品質が重要な役割を果たします。 どちらのライブラリも光学文字認識(OCR)を提供します(OCR (光学式文字認識))画像からテキストを抽出する機能。

4.1. IronOCRを使用する

IronOCRは強力なIronTesseractクラスを使用して、画像ファイルの内容を簡単に読み取ることができます。 ここではPNG画像を使用して画像ファイルからテキストを読み取るコードは次の通りです:


    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddImage("test-files/employmentapp.png");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }

    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddImage("test-files/employmentapp.png");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }
Dim OCR = New IronTesseract()
	Using Input = New OcrInput()
		Input.AddImage("test-files/employmentapp.png")
		Dim Result = OCR.Read(Input)
		Console.WriteLine(Result.Text)
	End Using
VB   C#

入力画像

C# Windows アプリケーションでバーコードを印刷する方法 図 12 - バウンディングボックスを持つ入力

出力

C# Windows アプリケーションでバーコードを印刷する方法   図13 - 個々の単語による画像出力

IronOCRの出力は、提供された元の画像と一致します。 コードはクリーンで、技術的な複雑さがなく理解しやすいです。

Google OCRの使用

Google Cloud Vision OCRは、異なるフォントを使用して画像をテキストに変換することもできます。 まず、資格情報ファイルを使用してクライアントを作成する必要があります。それから、このクライアントオブジェクトを使用して、DetectText メソッドを呼び出し、アノテーション形式のレスポンスを取得できます。 コードは次のように与えられます:


    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }

    Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
    var client = ImageAnnotatorClient.Create();
    var image = Image.FromFile("test-files/employmentapp.png");
    var response = client.DetectText(image);
    foreach (var annotation in response)
    {
        if (annotation.Description != null)
        {
            Console.WriteLine(annotation.Description);
        }
    }
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
	Dim client = ImageAnnotatorClient.Create()
	Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
	Dim response = client.DetectText(image)
	For Each annotation In response
		If annotation.Description IsNot Nothing Then
			Console.WriteLine(annotation.Description)
		End If
	Next annotation
VB   C#

同じ画像を入力として与え、両方のライブラリの出力を比較します。

C# Windowsアプリケーションでバーコードを印刷する方法 図14 - 出力

上記の出力から、IronOCRが画像出力形式を保持していることが明確にわかります。 Google OCRは正確な出力テキストを提供していますが、表の書式は保持されていません。 IronOCRは、指定された画像と全く同じようにテーブルの書式を維持しました。

バーコードおよびQRコードからテキストへ

5.1. IronOCRの使用

IronOCR は画像を読み取る際に、バーコードやQRコードを読み取ることができるというユニークで便利な機能を提供します。 バーコードを検出し、その値を簡単に表示することができます。 まず、ReadBarCodes構成を真に設定し、その後、OCR結果の各バーコードを反復処理します。 バーコードを読み取るコードは以下のとおりです:


    var OCR = new IronTesseract();
    OCR.Configuration.ReadBarCodes = true;
    using (var input = new OcrInput()){   
        input.AddImage("test-files/Barcode.png");   
        var Result = OCR.Read(input);   
        foreach (var Barcode in Result.Barcodes){
                Console.WriteLine(Barcode.Value);
        }
    }

    var OCR = new IronTesseract();
    OCR.Configuration.ReadBarCodes = true;
    using (var input = new OcrInput()){   
        input.AddImage("test-files/Barcode.png");   
        var Result = OCR.Read(input);   
        foreach (var Barcode in Result.Barcodes){
                Console.WriteLine(Barcode.Value);
        }
    }
Dim OCR = New IronTesseract()
	OCR.Configuration.ReadBarCodes = True
	Using input = New OcrInput()
		input.AddImage("test-files/Barcode.png")
		Dim Result = OCR.Read(input)
		For Each Barcode In Result.Barcodes
				Console.WriteLine(Barcode.Value)
		Next Barcode
	End Using
VB   C#

入力画像

C# ウィンドウズ アプリケーションでバーコードを印刷する方法 図15 - 入力

出力

C# Windowsアプリケーションでバーコードを印刷する方法 図16 - 画像出力

入力された3つのバーコードはすべて正常に読み取られ、それらの隠されたテキストが表示されます。

5.2. Google OCRの使用

Google Vision APIでは、まだこの機能は利用できません。 ソフトウェアアプリケーションでバーコードを読み取ることは便利です。 しかし、Google OCRは手書きのテキストを抽出し、スキャンされたドキュメントから画像ファイルとしてテキストを取得することができます。ラベル検出のコードは次のとおりです:


    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }

    var client = ImageAnnotatorClient.Create();
    var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
    var labels = client.DetectLabels(image);

    Console.WriteLine("Labels (and confidence score):");
    Console.WriteLine(new String('=', 30));

    foreach (var label in labels)
    {
        Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
    }
Imports System

Dim client = ImageAnnotatorClient.Create()
	Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
	Dim labels = client.DetectLabels(image)

	Console.WriteLine("Labels (and confidence score):")
	Console.WriteLine(New String("="c, 30))

	For Each label In labels
		Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
	Next label
VB   C#

出力

C# Windowsアプリケーションでバーコードを印刷する方法 図 17 - ラベル検出出力

6. PDFからテキストへ

6.1. IronOCRの使用

PDFファイルを読み込むことは、IronOCRで画像ファイルを読み込むことと同じくらい簡単です。 画像読み取りコードでは、AddImage メソッドを AddPdf に変更するだけで済みます。 コードは次のようになります:


    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddPdf("test-files/example.PDF");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }

    var OCR = new IronTesseract();
    using (var Input = new OcrInput()){
        Input.AddPdf("test-files/example.PDF");
        var Result = OCR.Read(Input);
        Console.WriteLine(Result.Text);
    }
Dim OCR = New IronTesseract()
	Using Input = New OcrInput()
		Input.AddPdf("test-files/example.PDF")
		Dim Result = OCR.Read(Input)
		Console.WriteLine(Result.Text)
	End Using
VB   C#

出力

抽出されたテキストは、PDFファイルと同じフォーマットです。

C# Windowsアプリケーションでバーコードを印刷する方法   図18 - PDFからテキストへの出力

6.2. Google OCRの使用

Google OCRは、PDF/TIFFドキュメントからテキストを抽出する機能も提供します。 ただし、Google Cloud Storageにファイルがある場合にのみ、テキストを検出します。 これにはGoogle Storageバケットを作成する必要があります。 C#のコードはここで実装するのは簡単ではなく、かなり長いです。 C# でファイル内のテキストを検出するサンプルは利用できません。 こちらをご覧ください:Javaコード参照として試してみてください。

7. ライセンス

IronOCRは開発目的で無料で使用できますが、商業利用にはライセンスが必要です。 また、すべての機能をお試しいただける無料トライアルも提供しています。 Liteパッケージは、$liteLicense から開始します。無料試用. IronOCRは、1年間の製品サポートとアップデートを無料で提供し、その後は1年あたり$399がかかります。 すべてのライセンスは永久ライセンスであり、一度の購入のみで隠れた料金はありません。 また、$1999の一回購入でSaaSおよびOEM製品向けのロイヤリティフリーの再配布カバレッジを選択することもできます。 ライセンスパッケージと価格プランの詳細については、こちらをご覧ください。これ.

C# Windows アプリケーションでバーコードを印刷する方法 図19 - IronOCR ライセンス

Google Cloud Vision の価格プランは、アプリケーションが画像に対して実行する操作の数に基づいています。 複数ページを持つPDFのようなファイルの場合、各ページは画像として扱われます。 さらに、画像に適用される各機能は、個別の課金単位です。 例えば、同じ画像にテキスト検出とラベル検出を適用する場合、それぞれの機能が別々に課金されます。 以下に価格プランを示します。詳細については、こちらをご覧ください。リンク.

C#のWindowsアプリケーションでバーコードを印刷する方法 図20 - Google Cloud Vision OCRライセンス

8. 結論

IronOCRは、C#開発者に対し、どのプラットフォームでも使用できる最も先進的なTesseract APIを提供します。 IronOCRは、Windows、Linux、Mac、Azure、AWS、Lambdaで展開でき、.NET Frameworkプロジェクトだけでなく、.NET Standardや.NET Coreもサポートしています。 我々はOCRスキャンの中でバーコードを読み取ることができ、さらにOCR結果をHTMLや検索可能なPDFとしてエクスポートすることもできます。

Google Cloud Vision APIは、進化したAIを搭載したAPIです。 MLアプリケーションの構築に非常に役立つさまざまな画像解析機能を提供します。 開発者はAPIキーを使用してGoogle Cloudと直接通信できるため、ローカルにファイルを保存する必要がありません。

IronOCRのライセンスはユーザーベースであり、製品を使用する開発者の数に基づいてライセンスを購入する必要があります。 Google Cloud Visionのライセンスは、情報を抽出しデータを分析するための写真の数に基づいています。 ライセンスは月単位であり、IronOCRライセンスと比較すると、大量の画像に対して価格が非常に高くなります。 さらに、IronOCRライセンスは一度の購入で生涯使用可能であり、OEMおよびSaaS配布に対応しています。

総括すると、両方のライブラリには機械学習機能が備わっています。 IronOCRには、Google OCRに対して若干の利点があります。それは、特にC# .NETフレームワーク向けに構築されており、高速かつ時間を節約できるからです。 それは非常に少ない行数のコードであらゆる機能を提供し、開発者が長いコードを書く労力を軽減します。 これは、最も人気のあるTesseract 5 APIに基づいて構築されており、画像やその他のファイル形式を容易に統合して解析し、精度の高い出力を提供します。 一方、Google Vision OCRはAIに基づいて構築されており、Java、PythonおよびRESTに重点を置いており、Google Cloudに接続されている場合にのみ実行できます。 これはサーバーサイドからの応答があるため、時間がかかることがあります。特定のニーズに応じてライブラリを選択できます。

今なら、2つの価格で5つのIron製品を手に入れることができます。Iron Suiteに含まれているツールは次の通りです:

  • IronBarcode

    IronXL

  • IronOCR
  • IronPDF
  • IronWebscraper

    こちらをご覧くださいリンク詳しくはこちらをご覧ください。

    IronOCRをダウンロードするには、こちらからこれ.

< 以前
AWS vs Google Vision(OCR機能比較)
次へ >
IrisとIronOCRによるOCRソフトウェアの比較