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

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
                }
            }
        }
    }
}
$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 は、スケーラビリティと信頼性を提供するため、さまざまな処理要件を持つアプリケーションに適しています。 多くのドキュメントを効率的に管理し、同時に複数のリクエストを処理することで、稼働時間と安定したパフォーマンスを保証します。 -多言語サポート: Microsoft OCR は、他の 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#プロジェクトをVisual Studioで開き、ツール -> NuGet Package Manager -> ソリューションのNuGet Packagesを管理に移動します。

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

"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 を使用する基本的な例が以下に示されています:

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);
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

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

IronOCRとは何ですか?

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

IronOCRの主な機能

-シンプルな統合: NuGet パッケージを使用するか、プロジェクト内でライブラリに直接アクセスすることで、IronOCR を C# または VB.NET プロジェクトに簡単に組み込むことができます。 -多用途OCR: IronOCRは、スクリーンショット、スキャンした文書、PDFファイル、写真など、幅広いソースからテキストを認識できます。BMP、TIFF、PNG、JPEGなど、様々な画像形式に対応しています。 -正確なテキスト認識: IronOCR は、洗練された OCR アルゴリズムを利用して、優れたテキスト認識精度を実現します。 - 複数言語に対応: IronOCRは複数の言語を認識できるため、多言語アプリケーションに適しています。 -複数言語のサポート: IronOCR は複数の言語を認識できるため、多言語アプリケーションに適しています。 - PDFテキスト抽出: IronOCRはスキャンされたPDFと画像ベースのPDFの両方からテキストを抽出できます。

  • PDF テキスト抽出:スキャンされた PDF と画像ベースの PDF の両方から、IronOCR によってテキストを抽出できます。 - 画像の前処理: OCR処理前に、IronOCRは受けた画像のクオリティを向上させるために画像の前処理機能を持っています。 -画像前処理: OCR 処理の前に、IronOCR は画像前処理機能を使用して入力画像の品質を向上させることができます。 これには、デスキュー、コントラストの変更、ノイズの削減などのタスクが含まれます。

C# を使用した IronOCR

こちらが IronOCR を使用した基本的な C# の例です:

// 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
}
$vbLabelText   $csharpLabel

上記のコードを使用して、最高のOCR精度で画像からデータを抽出できます。 さらに、IronOCRは文書から抽出されたテキストをWordを含む編集可能なファイル形式に変換することを容易にします。 スキャンした文書も検索可能なPDFに変換できます。 コードについて詳しくはこちらを参照してください。 コードの詳細については、こちらをご覧ください。

ソース画像:

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

結果:

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

結論

結論として、Tesseract と Microsoft OCR は、それぞれ独自の利点と欠点を持ち、C# 開発者に強力な OCR 機能を提供します。 Tesseract はカスタマイズ性と柔軟性を提供するため、多くの微調整を必要とするアプリケーションに適しています。 C#プロジェクト向けにTesseractとMicrosoft OCRの間で選択する際に、開発者は個々のニーズ、変更の必要性、財政的制約を評価する必要があります。 最後にIronOCRは、卓越した統合、柔軟性、および精度を提供する目立つOCRソリューションです。

その比類のない精度、進化したアルゴリズム、およびさまざまな文書タイプを特定する能力のおかげで、IronOCRは現在市場で最高のOCRソリューションです。 その比類のない精度、高度なアルゴリズム、さまざまな文書タイプを認識する能力により、IronOCRは現在市場で最高のOCRソリューションです。 IronOCRの開発版を無料で試すことができ、IronOCRパッケージを購入すると生涯ライセンスが得られます。

IronOCRの手頃な開発版を無料で試すことができ、IronOCRパッケージを購入すると、生涯ライセンスが得られます。 料金についてもっと知るには、IronOCRのウェブサイトを訪れてください。 詳細については、IronOCR の ウェブサイトをご覧ください。 このリンクをクリックして、Iron Software製品についてもっと学びましょう。

[{i:(Tesseract および Microsoft OCR は、それぞれの所有者の登録商標です。 このサイトは、Tesseract または 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』を再視聴したりしていることが多いです。