ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
開発者はしばしば光学文字認識の際に、Tesseract OCRツールとMicrosoft OCRエンジンのどちらを選択するかを迫られます。(OCR (光学式文字認識))C#で それぞれ異なる機能、効率性、統合性、使いやすさを持ちながら、どちらも写真やスキャンされたドキュメントから文字を抽出するための効果的なOCRツールです。 C#開発の枠組みの中で、TesseractやMicrosoft OCRなどのさまざまなOCRツールのメリット、デメリット、および適用性をこの記事で徹底的に検討します。
光学文字認識はOCR(Optical Character Recognition)と呼ばれます。 それは、スキャンされた画像ドキュメント、PDFファイル、またはデジタルカメラの写真など、さまざまなドキュメント形式を編集可能で検索可能なデータに変換することを可能にする技術です。 画像の形状やパターンを機械可読なテキストに変換するために、Google Cloud Vision や Google Vision OCR などの異なるOCRツールが画像を分析します。 この技術を使用することにより、ユーザーは写真からテキストを抽出し、デジタル文書のように編集、検索、および内容を変更することができます。
テッセラクト OCR (テッセラクト OCR (Tesseract OCR))オープンソースの光学式文字認識(OCR)です(OCR (光学式文字認識))エンジン、時には単にTesseractと呼ばれることもあります。 テッセラクトは、1980年代にヒューレット・パッカード研究所によって最初に作成され、現在はGoogleによって維持されている、今日使用されている最も人気のあるOCRエンジンの一つです。
Tesseractの主な機能は、写真に含まれるテキストやスキャンされた文書を識別し、それを機械可読のテキストに変換することです。 これにより、ユーザーはスキャンしたドキュメント解析、写真、PDFファイルなど、さまざまなソースからテキストを抽出し、編集可能、検索可能、および操作可能にします。
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」をクリックしてください。
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
これを達成するには、Tesseractインストールディレクトリの場所と、TesseractEngineコンストラクタオプションで使用したい言語または言語のリストを指定してください。 言語または使用したい言語用の言語コードで「eng」を置き換えてください(「例えば、英語なら'英'と表記してください。」)「path_to_tesseract_folder」をTesseractインストールディレクトリの実際のパスに置き換えてください。
C#プロジェクトでTesseractを設定した後は、そのOCR機能を利用して画像からテキストを抽出できます。 TesseractEngineインスタンスは、Pixクラスを使用して画像を読み込んだ後、テキストを抽出したり、OCRを実行したりするために使用できます。「image.png」を画像ファイルのパスに置き換えてください。
マイクロソフトのCognitive Servicesパッケージには、マイクロソフト OCRMicrosoft Optical Character Recognition(Microsoft光学文字認識)と呼ばれることもあります。 マイクロソフト Azure は、クラウドベースの光学式文字認識を提供します。(OCR (光学式文字認識))文書や写真からテキストを抽出できる、強化されたテキスト認識機能を持つソリューション。 Microsoft OCRは、ディープニューラルネットワークと機械学習技術を使用して、さまざまなソースからテキストを非常に高い精度で認識します。
多言語サポート: 他のOCRプログラムと同様に、Microsoft OCRは多言語認識を可能にし、ユーザーがさまざまな言語と文字セットから写真のテキストを抽出できるようにします。 多言語サポートを提供しているため、さまざまな言語のニーズに対応する世界的なアプリケーションに適しています。
C#プロジェクトでMicrosoft OCRを使用するには、Azure Cognitive Services、特にComputer Vision APIと組み合わせる必要があります。 以下は、その始め方です。
既にアカウントをお持ちでない場合は、Azureアカウントを作成する必要があります。 無料の Azure アカウントを作成すると、試用期間中にいくつかのサービスにアクセスできます。
Azure Cognitive Servicesのコンピュータビジョンサービスは、Azureアカウントを持っている際に構成する必要があります。
Open the
Microsoft Azureを利用することが可能です。 C#プロジェクトでComputer Vision APIと通信するためには、CognitiveServices.Vision.ComputerVision NuGetパッケージを使用してください。
Visual StudioでC#プロジェクトを開いた後、「ツール」→「NuGetパッケージマネージャー」→「ソリューションのNuGetパッケージの管理」に移動します。
「Microsoft.Azure.CognitiveServices.Vision.ComputerVision」を検索してパッケージをインストールしてください。
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
画像ファイルに対してOCRを実行するには、上記のコードサンプル内の「image.png」を画像ファイルのパスに置き換えてください。このコードは、画像をComputer Vision APIに送信し、認識されたテキストを取得します。 Azure Cognitive ServicesでComputer Visionサービスを設定した後に受け取ったエンドポイントURLとサブスクリプションキーは、「YOUR_ENDPOINT」と「YOUR_SUBSCRIPTION_KEY」の代わりに使用する必要があります。
開発者は、IronOCRという.NET OCRライブラリを使用して、C#またはVB.NETアプリケーションにテキスト認識機能を組み込むことができます。 PDF、画像、その他のメディアからテキストを抽出するためのユーザーフレンドリーなAPIを提供します。 Iron Softwareは、.NETコンポーネントとライブラリを専門とするソフトウェア開発企業で、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
上記のコードを使用すると、最高のOCR精度で画像からデータを抽出できます。 さらに、IronOCRは、手書き文書から抽出したテキストをWordなどの編集可能なファイル形式に変換することも可能です。 スキャンされたドキュメントは、検索可能なPDFに変換することもできます。 IronOCRを使用すると、結果をさまざまなOCR出力形式で保存できます。 コードについてさらに詳しく知るには、参照してくださいこれ.
ソース画像:
結果:
結論として、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製品についてさらに詳しく知る。
9つの .NET API製品 オフィス文書用