OCRツール

OCR C# オープンソース(開発者向けリスト)

OCR(光学式文字認識技術)は、スキャンされた文書の利用方法を現代のデジタル世界で完全に変革する画期的な技術です。 これは、コンピューターがスキャンされたPDFドキュメントを含むさまざまなソースからテキストを認識して抽出できるようにし、PDFドキュメントを効果的に編集し、操作することを可能にします。 光学文字認識(OCR)プログラムの一つにAdobe Acrobatがあります。これを使用すると、スキャンした文書からテキストを素早く抽出し、編集可能なPDFや検索可能な画像PDFに変換することができます。

開発者は、TesseractやIronOCRのようなOCRライブラリを利用することで、最先端のアルゴリズムや機械学習アプローチを活用する強力なツールとAPIにアクセスできます。 これらのライブラリは正確なテキスト認識を可能にし、既にスキャンされた文書や新しい文書の情報を管理し、役立つ情報を検索することを容易にします。 OCRは、シームレスなコンテンツ分析を可能にし、スキャンした文書やページ画像を最大限に活用することによって、企業や個人の生産性を最大化するのに役立ちます。 OCRは、紙ベースの記録をデジタル化したり、請求書からデータを抽出したり、単に文書のアクセシビリティを向上させたりするために使用される、現代技術において重要なツールです。

テッセラクト

最も有名なオープンソースのOCRエンジンは「Tesseract」と呼ばれ、元々はヒューレット・パッカードによって開発されました。 2006年以降、GoogleはApacheライセンスの下でリリースされるこの無料ソフトウェアプロジェクトを支援しています。

最も正確なオープンソースかつ無料のシステムの1つにTesseract OCRエンジンがあります。Tesseractは最新の安定版4.1.1においてLSTMに基づき、現在116言語をサポートしています。

Tesseractは独自のインターフェースを備えていないため、コマンドラインインターフェースから実行する際は、別のGUI(グラフィカルユーザーインターフェース)のサポートが必要です。 それはニューラルネットワークを使用して新しい情報を学習し、先進的な画像前処理パイプラインを持っています。.NETアプリケーションにOCR機能を追加するための最も効果的な手法は、Tesseract .NET SDKです。これは、テキスト認識機能を提供するための最善のソリューションの一つです。 テッセラクトは間違いなく現在市場で最高のOCRライブラリであるにもかかわらず。

GOCR

GNU一般公衆利用許諾契約書は、GOCRとして知られるOCR(光学文字認識)プログラムを作成するために使用されました。 それはテキストファイルを文書のスキャン画像に変換します。 プログラムの開始とSFでの開発チームの管理を行った後、ヨルグ・シューレンブルクは今日、パッケージを(非常に)低い時間ベースで引き続き扱っています。

GOCRはいくつかのフロントエンドで使用できるため、他のオペレーティングシステム、ネットワークアプリケーション、およびアーキテクチャに移植することが比較的簡単です。 幅広い種類の画像ファイル形式を読み取ることができ、2010年までその品質は一貫して向上していました。

GOCRによれば、20~60ピクセルの高さの単一コラムのサンセリフフォントを処理することができます。 ラテン文字以外のアルファベットで書かれたテキスト、セリフフォント、重なり合う文字、さまざまな書体、ノイズの多い写真、過度の傾き角度に関する困難を報告しています。 GOCRもバーコードの翻訳が可能です。

キュネイフォーム

CuneiFormは、無料でオープンソースの技術であり、現在「Cognitive OpenOCR」としても知られています。これは、組み込みの出力およびデータベースを備えています。 それは23の異なる言語に対応し、テキスト形式のスキャン、ドキュメントレイアウトの解析および識別などのタスクを実行します。

コグニティブ・テクノロジーズは、フリーウェアおよびBSDライセンスのOpenOCR用ライセンスを開発しました。 クロスプラットフォームの使用をサポートしていますが、Linuxユーザーにはグラフィカルインターフェースが提供されません。

任意の. NET Framework 2.0以降のアプリケーションで文字認識作業を簡素化するために、ラッパーライブラリPuma Dot NETが使用されます。 データを処理する際に辞書チェックを実行して、認識の質を向上させます。

CuneiFormは、紙の文書や画像ファイルの電子コピーを、構造や元の文書のフォントに影響を与えることなく、編集可能な形式に自動または半自動で変換するために設計された技術です。 システムは、電子文書を一括処理する部分と、1つの文書を個別に処理する部分の2つで構成されています。さらに、システムはロシア語と英語の組み合わせをサポートしています。 アンドレイ・ボロフスキーによって2009年に作成されたブランチのみが、他のハイブリッド言語の認識をサポートしています。 システムに他の言語を認識させることは困難です。各言語にはdatファイルが関連付けられており、その構造や作成プロセスは開発者によって公開されていません。

クラーケン

Krakenは、Ocropusの他の機能に影響を与えずにその問題に対処するために開発されました。 それは、CLSTMニューラルネットワークリブラリを利用し、以前のプロジェクトから得た貴重な経験を新しいデータと共に活用します。 異なるプラットフォームで効果的に機能するためには、特定の外部ライブラリの使用が必要です。 保存された情報を活用することで、潜在的なデータ検証の問題についてより正確な予測を行うことができます。 さらに、その作業方法論は新しいモデルの簡単なデプロイメントとトレーニングを容易にします。

A9T9

A9T9は、画像ファイルからテキストを抽出し、画像やPDFドキュメントを変換するために使用できる無料のOCRソフトウェアです。 それは、Tesseract OCRエンジンのためのグラフィカルユーザーインターフェース(GUI)を提供します。

プログラムはセットアップが簡単です。最も重要なのは、完全に無料でオープンソースであることです。 スパイウェアやアドウェアが含まれていません。

PDFファイルまたは画像を開くと、ソースファイルの内容が左側のウィンドウに表示されます。 ドキュメントが複数ページにわたる場合、またはマルチページのドキュメントである場合は、ページ下部の矢印を使用してページ間を移動できます。

OCRプロセスを開始するには、緑色のOCRボタンをクリックするだけで、出力が右側の2番目のペインに表示されます。 出力テキストをテキストファイルとWordドキュメントの両方として保存するオプションがあります。

IronOCR

標準のTesseractライブラリと対照的に、IronOCRはTesseractを拡張し、より高い精度、改善されたパフォーマンス、および強化された安定性を備えたネイティブのC# OCRライブラリを提供します。 IronOCRを使用すると、.NETプログラムやウェブサイトでPDFや画像からテキストを抽出することができます。 それは幅広い外国語をサポートしており、プレーンテキストや構造化データの出力を生成できます。 これは、埋め込まれたテキストを含むバーコードや画像をスキャンすることができます。 ライブラリは、コンソール、ウェブ、MVC、およびデスクトップ用に開発された.NETアプリケーションで利用することができます。開発チームは、商用導入のためのライセンスプロセスに対して直接的なサポートを提供します。 IronOCRは最新バージョンのVisual Studioと互換性があります。

IronOCRの利点

  • 最新のTesseract 5エンジンを使用して、IronOCRはさまざまな画像やPDFファイルから紙文書、バーコード、およびQRコードを読み取ることができます。 このパッケージは、デスクトップ、コンソール、およびWebアプリケーションにOCRを組み込むことを簡素化します。
  • IronOCRは、OCRを実行することができ、スキャンしたPDFを検索可能なPDFに変換できます。
  • 単語リストおよびカスタム言語に加えて、IronOCRは世界中の127の異なる言語をサポートしています。
  • IronOCRは、20種類以上のバーコードおよびQRコードをスキャンできます。
  • IronOCRはプレーンテキストとバーコードデータの両方で出力を提供できます。 開発者は、代替の構造化データオブジェクトパラダイムを使用して、システムへの直接入力用のすべてのコンテンツを取得することができます。 これは、Webアプリケーションの構造化された見出し、段落、行、単語、および文字を含みます。

    以下のサンプルコードは、指定された画像からテキストコンテンツを認識し、テキストに変換するために使用します。

var Ocr = new IronTesseract();   
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var R = Ocr.Read(Input);       
    Console.WriteLine(R.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract();   
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var R = Ocr.Read(Input);       
    Console.WriteLine(R.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("Demo.png")
	Dim R = Ocr.Read(Input)
	Console.WriteLine(R.Text)
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

上記のコードスニペットでは、IronTesseractを使用して機能を開発しています。 まず、1つ以上の画像ファイルを追加できるようにするために、新しいOcrInputオブジェクトをインスタンス化します。 OcrInputオブジェクトのAddメソッドを使用する際には、コード内で画像のパスを指定する必要があるかもしれません。 画像を好きなだけ追加できます。 画像ドキュメントを解析し、結果をOCR結果に抽出することにより、以前作成したオブジェクトのRead機能を利用して画像にアクセスできます。 それは画像からテキストを抽出し、文字列に変換する機能を持っています。

以下の出力は、先に提供された画像から抽出されたテキストを示しており、テキストが画像から正常に抽出されたことを証明しています。

OCR C# オープンソース (開発者向けリスト) 図1 - 出力

詳細なIronOCRの説明については、この投稿をご覧ください。

結論

OCRのオープンソースツールを使用すると、そのソースコードを使用して独自のプログラムを構築することができます。 しかし、いくつかのツールには公式ライブラリや、コーディングの問題が発生した場合のサポートを提供する専用チームが存在しません。 Tesseractのドキュメントには、一般的な使用シナリオに関するサンプルコードやチュートリアルも欠けているため、初心者がコードやライブラリを理解するのが難しくなっています。

IronOCRは、.NET Framework Standard 2、.NET Framework 4.5、および.NET Core 2、3、5など、さまざまな.NETプロジェクトをサポートしています。また、Mono、Xamarin、Azureなどの新しい技術とも互換性があります。 IronOCRの技術を活用することで、Tesseractの結果を向上させ、不正確にスキャンされたドキュメントや画像を修正できます。 複雑なTesseract辞書システムは、NuGetパッケージを通じて管理されます。 私たちはOCRツールを開発するためにIron OCRライブラリを利用しています。

IronOCRを使用すると、追加の設定なしでプログラムを使用でき、PDFファイル、マルチフレームTIFF、およびすべての一般的な画像フォーマットに対応しています。 また、バーコード認識機能を提供しており、画像からバーコードデータを抽出し、バーコードの値を読み取ることができます。 IronOCRは、費用対効果の高い開発版を無料試用版で提供しており、ライフタイムライセンスが追加費用なしでIronOCRバンドルに含まれています。IronOCRバンドルは、単一の支払いで複数のプラットフォームをカバーします。 IronOCRの価格に関する詳細情報は、このページをご参照ください。

Kannaopat Udonpant
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
日本語対応の最適なOCR(開発者向け更新リスト)
次へ >
Tesseractを使用して画像からテキストを取得する方法