ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
光学文字認識 (OCR)(OCR (光学式文字認識))画像ファイルを機械読み取り可能なテキストに変換する機能を提供します。 これは非常に便利です。なぜなら、スキャンされたドキュメントは画像ファイルとして保存され、これらの画像ファイル内のデータは通常のテキストエディタやワードプロセッシングアプリケーションを使用して検索、編集、またはテキスト形式で保存することができないからです。 OCR処理は、これらの画像を機械可読のテキストに変換し、ユーザーによるさらなる処理を可能にします。
この現代では、インターネット上で共有される文書は通常デジタルフォーマットで、ほとんどがPDFや画像の形式です。 画像をテキストに変換するオンラインリソースは数多く存在します。 しかし、ほとんどの企業は自社のソフトウェアアプリケーションにこの機能を必要とします。 これを念頭に置くと、多くのライブラリがソフトウェアアプリケーションに組み込むためのOCR処理技術を提供しています。
この記事では、C#向けの最も人気のあるOCRライブラリのうち二つについて議論します。 これらは:
IronOCR for .NETは、ユーザーが画像やPDFをスキャン、検索、読み取ることを可能にするC#ライブラリです。 画像またはPDFファイルを入力として受け取り、最新のTesseract 5カスタムビルド.NET OCRエンジンを使用して、テキスト、構造化データ、または検索可能なPDFドキュメントを出力します。 Tesseractは125以上の言語に対応しており、IronOCRは.NET CoreおよびStandard 2.0から7までのクロスプラットフォームサポートを提供します。
IronOCRは、C#開発者がIronTesseract
クラスを使用して画像をテキストに自動的に変換するためのユーザーフレンドリーなAPIです。 ライブラリは速度、精度、使いやすさを優先します。
IronOCRのもう一つの強力な機能は、すべての画像ファイルからバーコードやQRコードをスキャンしてそのテキストを読み取る能力です。 IronOCRの追加の重要な機能は以下に記載されています。
シンプルなデータ出力: .NETテキスト文字列、バーコード、QRコード、および画像形式で出力します。
では、Nanonets OCR APIを見てみましょう。
Nanonets OCR API(エヌエーノーネッツOCR API)は、自動化されたワークフローのために、ビジネスニーズに合わせたリアルタイムのデータ抽出を提供するREST APIです。 OCR APIはAIを搭載しており、非構造化文書からデータを数秒で安全にキャプチャ、分類、抽出することができます。 Nanonetsを使用すると、手作業でのデータ入力を自動化し、必要な手作業を削減できます。
Nanonetsは、標準のテンプレートに従わない文書であっても、機械学習を使用して理解します。 任意の非構造化文書をアップロードし、異なるフィールドに基づいて必要な情報だけを取得できます。 従来のOCRとは異なり、Nanonets OCRモデルはより良い結果を得るために訓練することができます。 あなたのビジネスが成長するにつれて、Nanonetsのインテリジェントドキュメント処理OCRモデルも、新しいドキュメントごとに学び、進化し、迅速かつ正確な結果を提供します。
さらに、Nanonetsは、APIリクエストを必要とせず、Pythonアプリケーションへの簡単な統合およびデータキャプチャを可能にするPythonパッケージを提供します。 他の機能には以下が含まれます:
GDPRコンプライアンス
複数のエクスポートオプションが利用可能です
記事の残りは次のとおりです:
Visual Studio プロジェクトの作成
IronOCRのインストール
Nanonets OCR APIのインストール
画像からテキストへ
バーコードおよびQRコードからテキストへ
PDFをテキストに変換
ライセンス
このチュートリアルでは、最新バージョンのVisual Studio 2022を使用します。まだダウンロードおよびインストールしていない場合は、こちらから行うことができます。Visual Studioウェブサイト.
次に、両方のライブラリを使用するためのコンソールプロジェクトを作成する必要があります。 プロジェクトを作成する手順に従ってください:
新しいプロジェクトを作成をクリックします。
与えられたオプションからC#コンソール アプリケーションを選択してください。
次へ進む。
追加情報の欄で、.NET 6.0フレームワークを選択してください。これは最も安定したバージョンです。
次に、「作成」をクリックすると、プロジェクトが指定した場所に作成されます。
次に、比較のためにプロジェクトにライブラリをインストールします。
IronOCRライブラリをインストールする方法はいくつかあります。 それでは、一つずつ見ていきましょう。
NuGetは、プロジェクト内の依存関係をダウンロードしてインストールするためのパッケージマネージャーです。 パッケージにはコンパイル済みのコードと(DLLs (動的リンクライブラリ))およびマニフェストファイル。以下の方法を使用してアクセスします:
「ソリューションの NuGet パッケージを管理」をクリックします。
あるいは:
NuGet パッケージの管理をクリックします。
さて、NuGetパッケージマネージャーウィンドウが開きます。 IronOCRを検索して、インストールをクリックします。
IronOCR は NuGet 公式ウェブサイトから直接ダウンロードすることもできます。以下の手順に従ってください:
リンクをクリックしてください: ""。
ページの右側にある「download package」オプションをクリックしてください。
ダウンロードしたパッケージを開くと、インストールが開始されます。
Iron Softwareのウェブサイトにアクセスし、IronOCR for .NETのウェブページに移動してください。 下までスクロールして、「Download DLL」または「Download Windows installer」をクリックしてください。
ZIPファイルがダウンロードされます。 プロジェクトファイルを抽出するか、Windowsインストーラーを実行してください。 以下の手順に従って、プロジェクトに追加してください。
ソリューションエクスプローラーからVisual Studioのプロジェクトの依存関係を右クリックします。
次に、オプションの「Add Project Reference」を選択します。
ダウンロードしたDLLファイルの場所を参照します。
Visual Studioの[ツール]タブに移動します。
NuGetパッケージマネージャーのオプションを拡張する。
Install-Package IronOcr
これにより、プロジェクトにIronOCRが自動的にダウンロードおよびインストールされます。
さて、プロジェクトでIronOCRを使用する準備が整いました。
必要な名前空間は1つだけで、それをIronOCRの機能にアクセスするためにソースコードファイルの先頭に追加する必要があります。
using IronOcr;
using IronOcr;
Imports IronOcr
それでは、Nanonets OCR APIをインストールしましょう。
以下は修正された段落です:
Nanonetsを使用して、データを複数の方法でキャプチャすることができます。 それは、即時なデータ抽出に使用できるオンラインOCR機能を提供し、処理時間を短縮します。 REST APIとして、それは複数のプログラミング言語に統合することができます。 ここでは、それをC#プログラミング言語に統合する方法を示します。
以下の事項が必要です:
Nanonets OCR APIを使用してC#でデータキャプチャを自動化するためには、
Nanonetsにサインアップ - GmailアカウントまたはNanonetsで登録したメールアドレスを使用して、無料トライアルにサインアップできます。
OCRモデルを作成 - これは後でAPIコールを行う際に使用するモデルIDを生成します。
RestSharpは、.NET向けのシンプルなRestおよびHTTPクライアントライブラリです。 APIリクエストの送受信および応答の処理に使用されます。 このライブラリは、Nanonets API コードを実行するために必要です。これはREST APIでもあります。
RestSharpをインストールするには、ソリューションのNuGetパッケージマネージャーを開き、RestSharpを検索してインストールします。 また、パッケージ マネージャー コンソールを開き、次のコマンドを入力することもできます:
PM> Install-Package RestSharp
さて、すべての設定が完了し、使用準備が整いました。
画像からデータを読み取ることは非常に面倒な作業となることがあります。 コンテンツを抽出する際には、画像の解像度と品質が重要な役割を果たします。 IronOCRとNanonetsの両方が、画像からテキストを抽出するための光学文字認識機能を提供します。
IronOCRは、開発者が非常に簡単に画像ファイルの内容を読み取る強力なIronTessaract
クラスで。 以下のコードを使用して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
IronOCRの出力は、提供された元の画像と一致します。 コードはクリーンで、技術的な複雑さがなく理解しやすいです。
Nanonetsは画像からテキストを抽出する機能も提供しています。 これを行うには、認証キーを使用してAPIコールを行い、その後画像をNanonetsサーバーにアップロードします。 高速OCRツールは抽出されたテキストをアプリケーションへのレスポンスとして返します。 以下はコードの例です:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/FullText")
client.Timeout = -1
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddFile("file", "FILE_PATH")
Dim response As RestResponse = client.Execute(request)
Console.WriteLine(response.Content)
出力は完璧ではありません。 画像には構造化データが含まれており、その一部のみが正しく取得されています。 別の単純なテキスト画像の場合、出力は問題ありませんでした。モデルをトレーニングして、より正確な結果を得ることができることに注意してください。
IronOCR は、バーコードやQRコードを検出して読み取る機能を含む画像読み取りの有用な機能を提供します。 この機能を有効にするには、画像を処理する前に ReadBarcodes
設定プロパティを true に設定してください。 OCR処理が完了したら、OCR結果を反復処理して検出された各バーコードの値を抽出します。 以下は、IronOCRを使用してバーコードを読み込むためのコードスニペットの一例です:
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
入力画像のすべてのバーコードが正常に読み取られ、その隠されたテキストが表示されます。
Nanonets OCR APIはQRコードの検出機能を提供します。 ただし、この機能はエンタープライズプランでのみ利用可能であり、使用するには営業に連絡する必要があります。 さらに、Nanonetsを使用すれば文書やレシートの特定部分を検出することができます。また、Nanonetsは買掛金管理、請求書処理、会計自動化などの機能も提供します。
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
抽出されたテキストは、PDFファイルと同じ形式です。
PDFファイルからデータを読み取ることは、Nanonets OCR APIでも利用可能です。 コードは画像テキスト検出コードとほとんど同じですが、リクエストで使用されるURLが異なります。コードを見てみましょう:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false")
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddHeader("accept", "Multipart/form-data")
request.AddFile("file", "test-files/example.pdf")
Dim response As RestResponse = client.Execute(request)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Console
上記のコードでは、モデルIDをあなたのOCRモデルIDに置き換えてください。 また、APIキーを自分のAPIキーに置き換えてください。 その後、PDFファイルのパスを自分のファイルのパスに置き換えてください。
出力はIronOCRに似ていますが、Nanonets OCRの出力には余分なスペースと改行が含まれています。
IronOCRは開発目的で無料で使用できますが、商業利用にはライセンスが必要です。 そのすべての可能性をテストするために無料試用版も提供しています。 ライトパッケージは、30日間の返金保証付きで $749 からご利用いただけます。 IronOCRは、1年間の製品サポートとアップデートを無料で提供し、その後は年間 $399 となります。 すべてのライセンスは永続的です。つまり、一度の購入のみで、追加料金は発生しません。 SaaSおよびOEM製品のためにロイヤリティフリー再配布カバレッジを、わずか$1999の一度きりの購入で選択することもできます。 ライセンスパッケージと価格プランの詳細については、以下のリンクをご覧ください。リンク.
Nanonets OCR APIは、3つの異なるパッケージを提供しています。 無料でスターターパッケージにサインアップできます。 最初の500ページは無料で、その後は1ページあたり$0.3が課金されます。 必要な分だけ料金をお支払いください。 以下のリンクで価格に関する詳細な情報をご覧いただけますリンク.
IronOCRは、C#開発者に主要なプラットフォームで利用可能な高度なTesseract APIを提供します。 それはWindows、Linux、Mac、Azure、AWS、およびLambdaに展開することができ、.NET Frameworkプロジェクトだけでなく、.NET Standardおよび.NET Coreもサポートしています。 IronOCRは、OCRスキャンでバーコードを読み取ることも可能で、さらにOCRデータをHTMLや検索可能なPDFとしてエクスポートすることもできます。 C# Tesseract OCRに関する詳細情報については、こちらをクリックしてください。これ.
Nanonets OCR APIは、さまざまなOCRツールを提供しています。 次のことができます。請求書、領収書、請求書、フォーム、IDカードなどの複数の文書タイプに対するすぐに使用できるOCRソリューションを提供し、データのキャプチャを自動化します。 テンプレートの設定は不要で、隠れた料金もありません。Nanonets OCR APIを使用することで、90%の時間を節約し、生産性を10倍に向上させることができます。
IronOCRのライセンスは開発者ベースであり、製品を使用する開発者の数に基づいてライセンスを購入する必要があります。 Nanonetsの価格プランは、情報を抽出してデータを分析するための画像やPDFページの数に基づいています。 プロおよびエンタープライズプランはモデルごとの月額料金として設定されており、IronOCRライセンスと比較してモデルおよびページ数が増加すると価格も上昇します。 さらに、IronOCRのライセンスは一回限りの購入で、生涯にわたって使用することができます。また、OEMおよびSaaSの配布をサポートしています。
全体的に比較すると、どちらのAPIもAIおよびMLベースのOCR機能を提供しています。 IronOCRはオフラインで使用でき、構造化されていないドキュメントに対してもより信頼性の高い結果を提供するため、Nanonetsよりわずかに優位に立っています。 IronOCRは、より正確な結果のために、カスタムトレーニング済みデータを迅速に統合して使用する機能を提供します。 Nanonets OCRは主要なフィールドに基づいてモデルを訓練する機能を提供しますが、適切に訓練されていない場合は検出が困難です。 さらに、IronOCRは多言語サポートを提供し、127以上の国際言語をサポートしています。
5つのIron製品が2つの価格で手に入る、完全なIron Suiteの一環として提供されています。こちらをご覧くださいリンク詳しくはこちらをご覧ください。
9つの .NET API製品 オフィス文書用