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

TesseractとMicrosoft OCRの比較:直接比較

公開済み 2024年3月26日
共有:

イントロダクション

開発者はしばしば光学文字認識の際に、Tesseract OCRツールとMicrosoft OCRエンジンのどちらを選択するかを迫られます。(OCR (光学式文字認識))C#で それぞれ異なる機能、効率性、統合性、使いやすさを持ちながら、どちらも写真やスキャンされたドキュメントから文字を抽出するための効果的なOCRツールです。 C#開発の枠組みの中で、TesseractやMicrosoft OCRなどのさまざまなOCRツールのメリット、デメリット、および適用性をこの記事で徹底的に検討します。

OCRとは何ですか?

光学文字認識はOCR(Optical Character Recognition)と呼ばれます。 それは、スキャンされた画像ドキュメント、PDFファイル、またはデジタルカメラの写真など、さまざまなドキュメント形式を編集可能で検索可能なデータに変換することを可能にする技術です。 画像の形状やパターンを機械可読なテキストに変換するために、Google Cloud Vision や Google Vision OCR などの異なるOCRツールが画像を分析します。 この技術を使用することにより、ユーザーは写真からテキストを抽出し、デジタル文書のように編集、検索、および内容を変更することができます。

テッセラクト OCR (テッセラクト OCR (Tesseract OCR))

テッセラクト OCR (テッセラクト OCR (Tesseract OCR))オープンソースの光学式文字認識(OCR)です(OCR (光学式文字認識))エンジン、時には単にTesseractと呼ばれることもあります。 テッセラクトは、1980年代にヒューレット・パッカード研究所によって最初に作成され、現在はGoogleによって維持されている、今日使用されている最も人気のあるOCRエンジンの一つです。

Tesseractの主な機能は、写真に含まれるテキストやスキャンされた文書を識別し、それを機械可読のテキストに変換することです。 これにより、ユーザーはスキャンしたドキュメント解析、写真、PDFファイルなど、さまざまなソースからテキストを抽出し、編集可能、検索可能、および操作可能にします。

Tesseract OCRの主な機能

  • オープンソース:TesseractはApache License 2.0の条件の下で、誰でも使用、変更、配布が自由です。コミュニティの貢献により、そのオープンソースの設計は広く採用され、継続的な改良が大いに進んでいます。
  • 言語サポート:Tesseractはこれらの言語に加えて、100以上の異なるスクリプトおよび文字セットを認識することができます。 その多言語対応能力により、さまざまな言語や地域における幅広いOCRアプリケーションに適しています。
  • 精度: Tesseractは、その適切な設定と関連データで訓練された場合、優れたテキスト認識精度で広く知られています。 さまざまな問題を抱えた写真から信頼性の高いテキスト抽出が可能です。これには、歪んだ角度、低品質、および不十分な照明が含まれます。
  • オプション: Tesseractは多くの設定およびカスタマイズオプションを提供します。 特定の使用状況に対応するために、ユーザーは複数のパラメーターを調整してOCR性能を最大化することができます。 さらに、Tesseractは、Java、C++、Python、C#など、さまざまなプラットフォームやプログラミング言語と連携することができ、その機能を幅広いアプリケーションで活用することが可能です。
  • Tesseractは継続的な開発とメンテナンスが行われており、精度、パフォーマンス、言語サポートを向上させるために新機能が定期的に追加されます。 Tesseractのオープンソースコミュニティはその継続的な開発を支援しており、常に最新のOCRツールであることを保証しています。

.NET用Tesseract OCRをインストール

Tesseract OCRをコンピュータにインストールすることが第一歩です。公式のTesseract GitHubリポジトリからTesseractインストーラーを入手できます: https://github.com/tesseract-ocr/tesseract.

Tesseract OCRをコンピュータにインストールするには、お使いのオペレーティングシステムに特化したセットアップ指示に従ってください。(Windows、macOS、またはLinux). Tesseract OCRをインストールした後、Visual StudioのNuGetパッケージマネージャーを使用して、Tesseract.NETラッパーをC#プロジェクトに追加します。

Visual StudioでC#プロジェクトを開いた後、「ツール」 -> 「NuGet パッケージ マネージャー」 -> 「ソリューションの NuGet パッケージの管理」に移動します。 NuGet パッケージ マネージャーで "Tesseract" を検索することで、"Tesseract" や "Tesseract.NET" といったパッケージを見つけることができるはずです。 パッケージをプロジェクトに含めるには、それを選択して「Install」をクリックしてください。

テッセラクト vs マイクロソフト OCR (OCR機能比較): 図1 - テッセラクト

C#を使用したTesseract OCR

Tesseract.NET ラッパーをインストールした後、Tesseract OCR 実行ファイルと言語データファイルの場所を指定するために、C#プロジェクトで Tesseract を設定する必要があります。 Here's an example: 例があります。

using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports Tesseract
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			Using img = Pix.LoadFromFile("image.png")
				Using page = engine.Process(img)
					Dim text = page.GetText()
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

これを達成するには、Tesseractインストールディレクトリの場所と、TesseractEngineコンストラクタオプションで使用したい言語または言語のリストを指定してください。 言語または使用したい言語用の言語コードで「eng」を置き換えてください(「例えば、英語なら'英'と表記してください。」)「path_to_tesseract_folder」をTesseractインストールディレクトリの実際のパスに置き換えてください。

C#プロジェクトでTesseractを設定した後は、そのOCR機能を利用して画像からテキストを抽出できます。 TesseractEngineインスタンスは、Pixクラスを使用して画像を読み込んだ後、テキストを抽出したり、OCRを実行したりするために使用できます。「image.png」を画像ファイルのパスに置き換えてください。

Microsoft OCRとは何ですか?

マイクロソフトのCognitive Servicesパッケージには、マイクロソフト OCRMicrosoft Optical Character Recognition(Microsoft光学文字認識)と呼ばれることもあります。 マイクロソフト Azure は、クラウドベースの光学式文字認識を提供します。(OCR (光学式文字認識))文書や写真からテキストを抽出できる、強化されたテキスト認識機能を持つソリューション。 Microsoft OCRは、ディープニューラルネットワークと機械学習技術を使用して、さまざまなソースからテキストを非常に高い精度で認識します。

主な機能

  • Azure Cognitive Servicesとの統合: Microsoft OCRは、AI搭載のMicrosoft Azure APIおよびサービスのコレクションであるAzure Cognitive Servicesと連携して機能します。 この接続により、開発者はREST API、SDK、クライアントライブラリを使用して、Microsoft OCR機能をアプリケーションやワークフローに簡単に統合することができます。
  • 高精度と高性能: Microsoft OCR は、膨大なデータセットでトレーニングされた高度な機械学習モデルにより、高精度かつ高性能なテキスト認識を提供します。 複雑なレイアウト、様々な書体、および手書きのテキストを含む写真から正確にテキストを抽出する能力により、広範なOCRアプリケーションに適しています。
  • スケーラビリティと信頼性: Azure Cognitive ServicesのコンポーネントであるMicrosoft OCRは、スケーラビリティと信頼性を提供し、さまざまな処理要件を持つアプリケーションに適しています。 それは、大量の文書と複数のリクエストを同時に効果的に管理し、稼働時間と安定したパフォーマンスを保証します。
  • 多言語サポート: 他のOCRプログラムと同様に、Microsoft OCRは多言語認識を可能にし、ユーザーがさまざまな言語と文字セットから写真のテキストを抽出できるようにします。 多言語サポートを提供しているため、さまざまな言語のニーズに対応する世界的なアプリケーションに適しています。

    C#プロジェクトでMicrosoft OCRを使用するには、Azure Cognitive Services、特にComputer Vision APIと組み合わせる必要があります。 以下は、その始め方です。

Azureアカウントを作成する

既にアカウントをお持ちでない場合は、Azureアカウントを作成する必要があります。 無料の Azure アカウントを作成すると、試用期間中にいくつかのサービスにアクセスできます。

Azure Cognitive Servicesを構成する

Azure Cognitive Servicesのコンピュータビジョンサービスは、Azureアカウントを持っている際に構成する必要があります。

  • 以下の内容を日本語に翻訳します:

Open the

開くAzureポータル。

  • 「リソースの作成」をクリックして「コンピュータビジョン」を検索します。
  • 「コンピュータビジョンサービス」を選択した後に「作成」をクリックしてください。
  • サービスを設定するには、指示に従ってサブスクリプションと価格帯を選択してください。
  • サービスが構築された後、リソースに移動して、サブスクリプションキーとエンドポイントURLを保存してください。 クエリの真正性を確認するために、それらが必要になります。

Azure Cognitive Services SDKをインストールする

Microsoft Azureを利用することが可能です。 C#プロジェクトでComputer Vision APIと通信するためには、CognitiveServices.Vision.ComputerVision NuGetパッケージを使用してください。

Visual StudioでC#プロジェクトを開いた後、「ツール」→「NuGetパッケージマネージャー」→「ソリューションのNuGetパッケージの管理」に移動します。

「Microsoft.Azure.CognitiveServices.Vision.ComputerVision」を検索してパッケージをインストールしてください。

テッセラクト (テッセラクト) 対 マイクロソフトOCR (マイクロソフト OCR) (OCR機能比較): 図2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

C# を使用した Microsoft OCR

SDKをインストールした後、コンピュータビジョンAPIを使用してOCRを行うことができます。 以下に、Computer Vision APIを使用して画像に対してOCRを実行するための入門的な例があります:

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
		Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
		For Each region In result.Regions
			For Each line In region.Lines
				For Each word In line.Words
					Console.WriteLine(word.Text)
				Next word
			Next line
		Next region
	End Function
End Class
VB   C#

画像ファイルに対してOCRを実行するには、上記のコードサンプル内の「image.png」を画像ファイルのパスに置き換えてください。このコードは、画像をComputer Vision APIに送信し、認識されたテキストを取得します。 Azure Cognitive ServicesでComputer Visionサービスを設定した後に受け取ったエンドポイントURLとサブスクリプションキーは、「YOUR_ENDPOINT」と「YOUR_SUBSCRIPTION_KEY」の代わりに使用する必要があります。

IronOCRとは何ですか?

開発者は、IronOCRという.NET OCRライブラリを使用して、C#またはVB.NETアプリケーションにテキスト認識機能を組み込むことができます。 PDF、画像、その他のメディアからテキストを抽出するためのユーザーフレンドリーなAPIを提供します。 Iron Softwareは、.NETコンポーネントとライブラリを専門とするソフトウェア開発企業で、IronOCRを作成および維持しています。

IronOCRの主な機能

  • シンプルな統合:IronOCRは、NuGetパッケージを使用するか、プロジェクト内で直接ライブラリにアクセスすることで、簡単にC#またはVB.NETプロジェクトに組み込むことができます。
  • 多用途OCR: IronOCRは、スクリーンショット、スキャンしたドキュメント、PDFファイル、および写真など、さまざまなソースからテキストを認識できます。BMP、TIFF、PNG、およびJPEGなどの複数の画像タイプを処理することが可能です。
  • 正確なテキスト認識: IronOCRは高度なOCRアルゴリズムを用いることで優れたテキスト認識精度を実現しています。 写真に含まれる異なる解像度、フォント、および背景のテキストを確実に抽出することができます。
  • 複数言語のサポート:IronOCRは複数の言語を認識できるため、多言語アプリケーションに適しています。 カスタマイズされた言語トレーニングを可能にし、人気のある言語用の内蔵言語パックが付属しています。
  • PDFテキスト抽出: スキャンされたPDFおよび画像ベースのPDFのテキストはIronOCRによって抽出できます。 PDFドキュメントからテキストを削除する際、元のフォーマットとレイアウトを維持することができます。
  • 画像前処理: OCR処理の前に、IronOCRは画像前処理機能を通じて入力画像の品質を向上させることができます。 これは、傾き補正、コントラストの修正、およびノイズ削減のようなタスクをカバーします。

C#を使用したIronOCR

基本的なC#の例を以下に示します。

var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("Demo.png")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
VB   C#

上記のコードを使用すると、最高のOCR精度で画像からデータを抽出できます。 さらに、IronOCRは、手書き文書から抽出したテキストをWordなどの編集可能なファイル形式に変換することも可能です。 スキャンされたドキュメントは、検索可能なPDFに変換することもできます。 IronOCRを使用すると、結果をさまざまなOCR出力形式で保存できます。 コードについてさらに詳しく知るには、参照してくださいこれ.

ソース画像:

Tesseract vs Microsoft OCR(OCR機能比較):図3 - 入力画像

結果:

テッセラクト vs マイクロソフトOCR(OCR機能の比較):図4 - コンソール出力

結論

結論として、TesseractとMicrosoft OCRはそれぞれ独自の利点と欠点を持ち、C#開発者に強力なOCR機能を提供しています。 Tesseractはカスタマイズ性と柔軟性を提供するため、細かい調整が必要なアプリケーションに最適な選択肢です。 しかし、Microsoft OCRはその高い精度、スケーラビリティ、およびAzureサービスとのシームレスな連携のため、洗練されたテキスト認識機能を必要とするC#アプリケーションにとって最良の選択肢です。 C#プロジェクトのために、開発者はTesseractとMicrosoft OCRのどちらを選択するかを決定する前に、それぞれのニーズ、変更の必要性、および予算の制約を検討するべきです。

最後に、IronOCR は、優れた統合性、柔軟性、そして正確性を提供する素晴らしいOCRソリューションです。 その比類のない精度、高度なアルゴリズム、および手書き書類を含む広範なドキュメントタイプを識別する能力のために、IronOCRは現在市場で最高のOCRソリューションです。 IronOCRは多数のドキュメントおよび一般的なプログラミング言語とスムーズに統合されるため、開発者のアクセスのしやすさを確保しながら直感的なインターフェースを維持します。

IronOCR の手頃な開発版を無料で試すことができます。また、IronOCRパッケージを購入すると、ライセンスが一生有効となります。 IronOCRバンドルは、複数のデバイスに対応する単一価格を提供しており、$liteLicenseからの開始価格で非常にお得です。 価格について詳しく知るためには、IronOCRをご覧ください。ウェブサイト. クリックしてくださいリンクIron Software製品についてさらに詳しく知る。

< 以前
ABBYY FineReader と Tesseract の OCR 比較
次へ >
請求書OCRオープンソース比較:最適なツールを見つける