フッターコンテンツにスキップ
他のコンポーネントと比較する

Tesseract対Microsoft OCR:直接比較

開発者は、C#での光学文字認識(OCR)の際に、Tesseract OCRツールとMicrosoft OCRエンジンのどちらを選ぶかを頻繁に決定する必要があります。 異なる能力、効率性、統合性、使いやすさを持ちながらも、どちらも写真やスキャンされた文書からテキストを抽出するための効果的なOCRツールです。 C#開発のフレームワーク内で、この記事ではTesseract対Microsoft OCRなどの異なるOCRツールの長所、短所、適用性を徹底的に調査します。

OCRとは何ですか?

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

Tesseract OCR

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

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#プロジェクトに追加します。

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

Tesseract対Microsoft OCR(OCR機能の比較):図1 - Tesseract

C#を用いたTesseract OCR

C#プロジェクトでTesseractを使用するには、次の手順に従います。

using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
Imports Tesseract

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			' Load the image from which to extract text
			Using img = Pix.LoadFromFile("image.png")
				' Process the image and extract the text
				Using page = engine.Process(img)
					' Get the extracted text
					Dim text = page.GetText()
					Console.WriteLine(text) ' Print the extracted text
				End Using
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

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

C#プロジェクトにTesseractを設定した後の今、写真からテキストを抽出するためのそのOCR機能を活用できます。 TesseractEngineインスタンスは、Pixクラスを使用してロードされた写真を処理し、テキストを抽出または画像ファイルでOCRを実行するために使用できます。"image.png"を画像ファイルのパスに置き換えます。

Microsoft OCRとは何ですか?

MicrosoftのCognitive Servicesパッケージには、Microsoft Optical Character Recognitionと呼ばれることもあるMicrosoft OCRが含まれています。 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アカウントを所有している場合、Azure Cognitive ServicesのComputer Visionサービスを設定する必要があります。

  • Azureポータルを開きます。
  • "リソースの作成"をクリックして"Computer Vision"を検索します。
  • Computer Visionサービスを選択したら"作成"をクリックしてください。
  • プロンプトに従って、サブスクリプションと価格層を選択してサービスを設定します。
  • サービスが構築されたら、リソースに移動して、サブスクリプションキーとエンドポイントURLを保存します。あなたのリクエストの正当性を確認するためにこれらが必要です。 ### Azure Cognitive Services SDKのインストール

Microsoft Azureを利用することができます。

C#プロジェクト内でComputer Vision APIと通信するためには、CognitiveServices.Vision.ComputerVision NuGetパッケージを使用します。 C#プロジェクトをVisual Studioで開き、ツール -> NuGet Package Manager -> ソリューションのNuGet Packagesを管理に移動します。

"Microsoft.Azure.CognitiveServices.Vision.ComputerVision"を検索してパッケージをインストールします。

Tesseract対Microsoft OCR(OCR機能の比較):図2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

C#を用いたMicrosoft OCR

SDKをインストールした後、Computer Vision APIを使用してOCRを行うことができます。

画像にOCRを行うためのComputer Vision APIの使用例が以下に示されています。 画像ファイルにOCRを実行するには、上記のコードサンプル内の"image.png"を画像ファイルのパスで置き換えます。このコードは、Computer Vision APIに画像を送信して、画像から認識されたテキストを取得します。

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        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;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        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
Imports System.Threading.Tasks

Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Set your endpoint and subscription key for authentication
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"

		' Create a new instance of the ComputerVisionClient
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}

		' Perform OCR on the specified image
		Dim result = Await client.RecognizePrintedTextInStreamAsync(True, "image.png")

		' Iterate over the results and print the recognized text
		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
$vbLabelText   $csharpLabel

Azure Cognitive ServicesでComputer Visionサービスを設定した後に受け取ったエンドポイントURLとサブスクリプションキーを"YOUR_ENDPOINT""YOUR_SUBSCRIPTION_KEY"の代わりに使用してください。 ## IronOCRとは何ですか?

開発者は、IronOCRという.NET OCRライブラリを使用して、彼らのC#またはVB.NETアプリケーションにテキスト認識機能を組み込むことができます。

PDF、写真、その他のメディアからのテキスト抽出のための使いやすいAPIを提供します。 .NETコンポーネントとライブラリを専門とするソフトウェア開発企業のIron SoftwareがIronOCRを作成し、維持しています。 - 簡単な統合: IronOCRをあなたのC#またはVB.NETプロジェクトに簡単に組み込むには、NuGetパッケージを使用するか、プロジェクトにライブラリを直接アクセスしてください。

主要機能 of IronOCR

  • 多様なOCR: IronOCRはスクリンショット、スキャンされた文書、PDFファイル、写真など、さまざまなソースからテキストを認識することができます。BMP、TIFF、PNG、JPEGを含むいくつかの画像タイプに対応しています。
  • 高精度なテキスト認識: IronOCRは、洗練されたOCRアルゴリズムを利用して、非常に高精度なテキスト認識を実現しています。 さまざまな解像度、フォント、背景を持つ写真から信頼性の高いテキストを抽出できます。 - 複数言語に対応: IronOCRは複数の言語を認識できるため、多言語アプリケーションに適しています。 一般的な言語用の内蔵言語パックを提供し、カスタマイズされた言語トレーニングを可能にします。 - PDFテキスト抽出: IronOCRはスキャンされたPDFと画像ベースのPDFの両方からテキストを抽出できます。 PDF文書からテキストを取り除く際に、コンテンツの元のフォーマットとレイアウトを維持できます。 - 画像の前処理: OCR処理前に、IronOCRは受けた画像のクオリティを向上させるために画像の前処理機能を持っています。 これは、傾き補正、コントラスト修正、およびノイズ除去などのタスクを含みます。 ### C#を用いたIronOCR

ここにIronOCRを使用した基本的なC#の例があります:

上記のコードを使用することにより、画像から最も高いOCR精度でデータを抽出できます。

// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
' Create an instance of IronTesseract
Dim Ocr = New IronTesseract() ' nothing to configure
' Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Prepare the image input and perform OCR
Using Input = New OcrInput()
	' Add the image for OCR processing
	Input.AddImage("Demo.png")
	' Read the text from the image
	Dim Result = Ocr.Read(Input)
	' Print the recognized text
	Console.WriteLine(Result.Text)
	Console.ReadKey() ' Wait for user input before closing
End Using
$vbLabelText   $csharpLabel

加えて、IronOCRは、文書から抽出したテキストをWordを含む編集可能なファイル形式に変換することを可能にします。 スキャンされた文書を検索可能なPDFに変換することができます。 IronOCRを使用すると、結果をさまざまなOCR出力形式で保存できます。 コードについて詳しくはこちらを参照してください。 Tesseract対Microsoft OCR(OCR機能の比較):図3 - 入力画像

ソース画像:

Tesseract対Microsoft OCR(OCR機能の比較):図4 - コンソール出力

Aspose.BarCodeは、線の高さおよび幅を指定するためにParameters.Barcode.XDimension.Millimetersプロパティを使用してバーの高さおよび幅をカスタマイズすることもサポートしています。

結論として、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製品についてもっと知りたい場合は、このリンクをクリックしてください。

ご注意TesseractおよびMicrosoft OCRはそれぞれの所有者の登録商標です。

このサイトは、TesseractまたはMicrosoft OCRと提携、承認、または支援されていません。 This site is not affiliated with, endorsed by, or sponsored by Tesseract or Microsoft OCR. すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

TesseractとMicrosoft OCRは言語サポートの観点からどのように比較されますか?

Tesseractは100以上の言語をサポートしており、言語データのカスタマイズオプションを広範に提供しているため、非常に汎用性があります。Microsoft OCRもAzure Cognitive Servicesを通じて多言語サポートを提供し、クラウドを介したスケーラブルな言語処理が可能です。

どのOCRツールがC#プロジェクトとより良い統合を提供しますか?

Microsoft OCRはAzure Cognitive Servicesを通じてC#プロジェクトとシームレスに統合され、クラウドベースのスケーラビリティを提供します。TesseractはTesseract.NETラッパーを使用して統合することができます。代わりに、IronOCRはC#プロジェクトと簡単に統合できるように提供され、.NET開発者向けに追加の機能が含まれています。

Microsoft OCRを使用する主な利点は何ですか?

Microsoft OCRは、そのクラウドベースのシステムであるAzure Cognitive Servicesを通じて、高い精度、スケーラビリティ、および多言語サポートを提供し、テキスト認識のために深層ニューラルネットワークを使用しています。

Tesseract OCRをカスタマイズに適している理由は何ですか?

Tesseract OCRはオープンソースであり、さまざまなプロジェクトニーズに適応させることができる広範なカスタマイズオプションを提供しています。カスタム言語トレーニングや認識設定の微調整が可能です。

TesseractやMicrosoft OCRに比べて、IronOCRはどのようにC#プロジェクトを強化できますか?

IronOCRは簡単な統合、高い精度、多言語サポートを提供し、画像の前処理やPDFのテキスト抽出などの高度な機能を備えています。.NETアプリケーションでシームレスに使用できるように設計されており、開発者に直感的なインターフェースを提供します。

C#用のOCRツールを選択する際に考慮すべき要素は何ですか?

C#用のOCRツールを選ぶ際には、言語サポート、統合の容易さ、カスタマイズオプション、スケーラビリティ、特定のプロジェクト要件などの要素を考慮してください。Tesseractはカスタマイズに最適であり、Microsoft OCRはクラウドベースのスケーラビリティに優れ、IronOCRは.NETとの統合の容易さで際立ちます。

IronOCRはC#アプリケーションで画像をテキストに変換するために使用できますか?

はい、IronOCRを使用してC#アプリケーションで画像をテキストに変換できます。それは複数の画像フォーマットをサポートし、テキスト認識において高い精度を提供するため、開発者にとって信頼できる選択肢です。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。