OCRツール

EasyocrとTesseractの比較(OCR機能の比較)

公開済み 2024年12月15日
共有:

イントロダクション

光学文字認識 (OCR)(OCR (光学式文字認識))は、スキャンした紙のドキュメント、PDFファイル、カメラで撮影した高解像度の画像などのドキュメントを処理し、印刷可能で検索可能なデータに変換する技術です。 抽出されたテキストの特徴認識と形態学的操作により、OCR (光学式文字認識)データ入力を自動化し、情報処理のプロセスを迅速化し、より正確にします。

OCRはドキュメントをスキャンし、文字、数字、または記号などの文字を認識し、それを機械で読み取り可能な形式に変換します。 その用途には、書籍のデジタル化、フォーム処理、ドキュメントワークフローの自動化、視覚障害者へのアクセシビリティの向上が含まれます。 ディープラーニングとAIの発展に伴い、OCRエンジンは手書き、マルチランゲージドキュメント、さらには低品質の画像のような複雑な形式を非常に正確に認識できるようになりました。

EasyOCR、Tesseract OCR、Keras-OCR、IronOCRのような人気のOCRツールやライブラリは、この機能を最新のアプリケーションに統合するために一般的に使用されています。

EasyOCR を翻訳しますか?

EasyOCR を翻訳しますか?は、画像からのテキスト抽出を簡単かつ効率的にすることを目的としたオープンソースのPythonライブラリです。 それはディープラーニング技術を使用し、ラテン語、中国語、アラビア語を含む80以上の言語をサポートしています。 そのAPIは非常にシンプルで、誰でも簡単にOCR予測機能をアプリケーションに統合することができます。EasyOCR Tesseractを使用すれば、シンプルな文書のデジタル化、ナンバープレート認識、さらには画像からテキストを抽出することが可能です。

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

EasyOCRは印刷されたテキストや手書きテキストの認識でよく知られています。 ほとんどの他のOCRソリューションはこの機能を提供していません。 複数行テキストも処理でき、低品質の画像であってもすべての画像タイプで動作します。 したがって、それは現実の使用例に対して堅牢であり、わずかないくつかの依存関係に頼っています。 軽量で、最新のハードウェア上でGPUを必要とせず効率的に動作します。 これにより、EasyOCRは柔軟なOCR機能を必要とする開発者にとって非常に魅力的です。

EasyOCRの特徴

多くの機能がEasyOCRを完全で本当に強力なOCRユーティリティにします。

80以上の言語を認識します: EasyOCRは中国語、日本語、韓国語、アラビア語、ラテン系言語、および他の多くの複雑な単語や言語を読み取ることができます。

それは画像から手書きおよび印刷されたテキストの両方を認識し、したがって、潜在的なアプリケーションの範囲をさらに拡大します。

高度な深層学習ベース: 認識は、高度な深層学習技術の強力なアルゴリズムをサポートしており、特にノイズの多いまたは歪んだテキストのレイアウトや画像において、高いレベルのパフォーマンスと精度を提供します。

シンプルなAPI: 非常に使いやすいAPIで実装が非常に簡単です。追加の設定なしで、ユーザーがアプリケーション内で迅速にOCR機能を利用できます。

マルチラインテキスト検出: 複数行のテキストの認識; ドキュメント、書籍、または複数行の看板に便利です。

軽量: CPU上で良好に動作し、パフォーマンス向上のためにGPUを活用することができますが、基本的なハードウェアでも問題なく動作します。

画像前処理: ノイズが多い画像や低解像度画像からのOCR出力をクリーンアップするための主要な画像前処理ツールを保持しています。

柔軟なデプロイメント: 多くのプラットフォームで動作し、Pythonアプリケーションに比較的簡単に組み込むことができます。

インストール

EasyOCRは、Pythonのパッケージマネージャーであるpipを通じてインストールすることができます。 まず、すべての依存関係が満たされていることを確認してください。

これらの中で最初に挙げられるのは、PyTorchライブラリであるtorchとtorchvisionです。 Torchとtorchvisionは、EasyOCRと一緒にインストールできます。

EasyOCRをインストールする: インストールするには、ターミナルまたはコマンドラインを開いて、次のコマンドを入力してください。

pip install easyocr
pip install easyocr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install easyocr
VB   C#

壊れた画像 Pixabayから追加、ファイルから選択、またはここに画像をドラッグアンドドロップしてください。

PyTorchをインストールする(未インストールの場合)(EasyOCRによって必要とされる): EasyOCRはPyTorch上で動作します。 環境に自動的にインストールされている場合、特定のバージョンをインストールします。 公式のPyTorchインストールに従ってください。ガイド.

これで、EasyOCRを使用してテキスト抽出作業を行う準備が整いました。

EasyOCRを使用して画像をOCRします

import easyocr
import matplotlib.pyplot as plt
import cv2
# Initialize the EasyOCR reader
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)
# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)
# Perform OCR on the image
result = reader.readtext(image_path)
# Print the detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")
# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))
    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
import easyocr
import matplotlib.pyplot as plt
import cv2
# Initialize the EasyOCR reader
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)
# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)
# Perform OCR on the image
result = reader.readtext(image_path)
# Print the detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")
# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))
    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
#Initialize the EasyOCR reader
#Load the image
#Perform OCR on the image
#Print the detected text and its bounding boxes
#Optionally, display the image with bounding boxes around the detected text
	#Unpack the bounding box
	#Draw a rectangle around the text
#Convert the image to RGB (since OpenCV loads images in BGR by default)
#Display the image with bounding boxes
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import easyocr import TryCast(matplotlib.pyplot, plt) import cv2 reader = easyocr.Reader(['en']) # Specify the languages(e.g., 'en' for English) image_path = 'sample_image.png' # Path @to the image image = cv2.imread(image_path) result = reader.readtext(image_path) for(bbox, text, prob) in result: print(f"Detected Text: {text} (Confidence: {prob:.4f})") for(bbox, text, prob) in result: top_left, top_right, bottom_right, bottom_left = bbox top_left = tuple(map(int, top_left)) bottom_right = tuple(map(int, bottom_right)) cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2) image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) plt.imshow(image_rgb) plt.axis('off') plt.show()
VB   C#

以下の画像は、上記のコードから生成された出力です。

EasyocrとTesseractの比較(OCR機能比較):図3 - EasyOCR出力

テッセラクト

テッセラクトは、さまざまなハイパーパラメーターオプションを備えた、最も人気のあるオープンソースの光学式文字認識エンジンの1つです。 Pythonアプリケーションからpytesseractを使用してアクセスできます。 テッセラクトの開発はヒューレット・パッカードによって開始されましたが、その後Googleによって改良されました。 これは非常に多用途で、100以上の言語の画像やPDFに含まれるテキストを抽出できます。 Pythonのラッパーは、pytesseractを通じてTesseractとのシームレスな相互作用を可能にします。

Easyocr vs Tesseract(OCR機能比較):図4 - Tesseract

Tesseractは、機械印刷とテキストの検出および抽出のリーダーであり、多言語認識機能を備えており、新しいフォントのトレーニングをサポートし、テキストレイアウトの分析も行います。 主に印刷されたテキストをサポートしていますが、それ以外では手書きテキストでもかなりうまくいきますが、精度レベルはやや高いです。 Tesseractは、文書のデジタル化、領収書のスキャン、データ入力の自動化、および検索可能なPDFの作成に広く利用されています。 これらすべての柔軟性をPythonとTesseractに組み込むことは、OCR関連のタスクに取り組んでいる開発者にとって非常に強力な組み合わせとなるでしょう。

Tesseract OCRの特徴

pytesseractの最も重要な機能のいくつかは次のとおりです。

マルチ言語サポート: Tesseractは100以上の言語を読み込むことができ、pytesseractにはPythonスクリプト内で簡単なマルチ言語OCRサポートがあります。また、追加のカスタムフォントや言語のトレーニングをサポートしているため、さらに多くの言語やフォントに対応する能力を拡張できます。

画像からテキストへの変換に使用: pytesseract は、PNG、JPEG、BMP、GIF、TIFF などのさまざまな形式の画像からテキストコンテンツを抽出し、多様なタイプのソースでOCRを実行します。

PDFから検索可能なPDFへの変換: TesseractはPDFファイルのテキストを読み取り、そのPDFを検索可能にします。 ユーザーはスキャンされた文書の内容を検索し、索引付けすることができます。

複雑なテキストレイアウトを読み取ることができ、複数の列のドキュメント、テーブル、およびテキストと画像の混在したコンテンツを含みます。 したがって、非標準レイアウトからテキストをより正確に抽出することができます。

手書きのテキスト認識機能: pytesseractは主に印刷されたテキスト用です。 ただし、精度のレベルは使用される手書きの品質と明瞭さに依存します。

カスタム構成: ユーザーは、pytesseract を介してカスタム Tesseract 構成パラメータを渡すことができ、OCR のパフォーマンスを微調整することが可能です。これにより、必要に応じて、特定の属性をテキストに与えるための適切な認識モードやイメージが利用できます。

シンプルAPI: これはpytesseract上のシンプルなAPIであり、そのため開発者がPythonプロジェクトにOCRを追加する際に、少ないコードでインタラクションすることが容易です。

このライブラリは、OpenCVやPILなどの他のライブラリと良く連携します。(Pythonイメージングライブラリ)、またはNumPyを使用して画像の前処理を行い、OCRの精度を向上させる。

インストール

Tesseractをインストールしたら、pipを使ってpytesseractパッケージをインストールします。

pip install pytesseract
pip install pytesseract
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install pytesseract
VB   C#

Easyocr と Tesseract  (OCR 機能比較): 図 5 - pytesseract

pytesseractを使用してOCR画像を処理する

import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
#Example: Read text from an image
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import pytesseract from PIL import Image pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>' image = Image.open('sample_image.png') text = pytesseract.image_to_string(image) print(text)
VB   C#

以下は上記のコードから生成された出力です。

Easyocr vs Tesseract(OCR機能の比較):図6 - Tesseract出力

IronOCR

IronOCRは、開発者がC#およびVB.Netアプリケーションから画像やPDFドキュメントを読み取り、テキストを抽出することを可能にします。IronOCRは、製品の高いパフォーマンスと正確性で知られており、Microsoft OCRとTesseract OCRの技術を組み合わせています。これにより、複雑なレイアウトや出版物、手書きのテキストに対しても高い認識率を誇ります。

  • サポートされるファイル形式: PNG, JPG, GIF, TIFF, BMP, PDF
  • ユニークな機能: 複数言語のテキスト認識、回転・歪みの補正、ノイズ除去
  • 導入が簡単: .NETフレームワークや.NET Coreプロジェクトに簡単に統合可能
  • ライセンスオプション: Lite License, Plus License, Professional License, Unlimited License

IronOCRの利点

  1. 高い認識精度: IronOCRは最新のOCR技術を利用し、正確なテキスト抽出を実現します。
  2. 迅速な処理: 高速な処理速度で大量のドキュメントを効率的に処理できます。
  3. シンプルな統合: APIがシンプルで使いやすいため、開発者は短時間で機能を実装できます。

IronOCRを活用することで、あなたのアプリケーションは自動化されたデータ抽出機能を備え、業務効率を大幅に向上させることができます。

.NET開発者が力を引き出すことができる強力な光学文字認識ライブラリIronOCR画像、PDF、およびその他の文書形式からのテキストの効率的な抽出のために。 高度なアルゴリズムによって、複雑なレイアウトや多言語環境でも非常に高い精度が保証されます。 JPEG、PNG、GIF、TIFF形式をサポートします。 このライブラリは、画像の解像度やテキストの向きなどのパラメータによってOCRエンジンプロセスを微調整できる可変設定を提供します。

画像前処理の機能により、品質の高い入力画像をより高い認識精度に変換し、さらに出力文書を情報検索を容易にするための検索可能なPDFに変換することができます。 したがって、このように簡単にウェブアプリケーションに統合できるため、IronOCRは複数の分野で最も信頼されているテキスト抽出および文書デジタル化ソリューションを実装したい開発者にとって最適なツールです。

IronOCR の機能

高精度: ドキュメントの複雑さやさまざまなフォントの使用に関係なく、高度な複雑なアルゴリズムを使用して高精度なテキスト認識を提供します。

複数の形式に対応: JPEG、PNG、GIF、TIFFなどの画像形式に加えてPDFも対応しており、さまざまなアプリケーションで意図した機能を実行できるようにしています。

多言語認識対応: 多言語に対応しており、さまざまな言語の文脈でのテキスト抽出において正確な結果をもたらします。

テキストレイアウトの保持: これは、抽出されたテキストが同じレイアウトを持つようにドキュメントの元のレイアウトを保持し、明確な可読性のために重要です。

設定可能なOCR: 画像の解像度、テキストの方向などの設定可能なパラメータを提供し、開発者が画像固有のOCRツールを最適化できるようにします。

画像の前処理: ノイズの除去やコントラストの調整、サイズ変更など、OCRの精度を向上させるために設計された基本的なツールが付属しています。

検索可能なPDF: スキャンした画像や文書を、効率的なデータ管理と取得のために直接検索可能なPDFに変換できます。

簡単な統合: これは、.NETへの簡単な統合を可能にし、結果としてユーザーがOCR機能を非常に容易に追加できるようにします。

バッチ処理: 複数の画像または文書を同時に処理するのに役立ちます。 大量のデータを処理するのに非常に役立ちます。

インストール

インストールは非常に簡単です。ソリューション用のNuGetパッケージマネージャーを開き、新しいVisual Studioプロジェクトを開始します。 「IronOCR」と入力し、リストを探します。その後、IronOCRの最新バージョンを選択し、「インストール」をクリックします。

Easyocr vs Tesseract(OCR機能比較):図7 - フランス語言語パッケージをインストール

IronOCRを使用したサンプルコード

using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();
        // Add multiple languages
        Ocr.Language = OcrLanguage.English;
        // Path to the image
        var inputFile = @"path\to\your\image.png";
        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);
            // Display the result
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();
        // Add multiple languages
        Ocr.Language = OcrLanguage.English;
        // Path to the image
        var inputFile = @"path\to\your\image.png";
        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);
            // Display the result
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()
		' Add multiple languages
		Ocr.Language = OcrLanguage.English
		' Path to the image
		Dim inputFile = "path\to\your\image.png"
		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			' Perform OCR
			Dim result = Ocr.Read(input)
			' Display the result
			Console.WriteLine("Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
VB   C#

比較評価

高い精度

IronOCRは、最も近い競合であるTesseractやEasyOCRよりも、複雑なレイアウト、ノイズの多い画像、低解像度のテキストに対してより正確です。 内蔵された画像前処理ツール、例えばノイズリダクションやコントラスト調整などは、実際のアプリケーションにおける精度を達成する可能性をすべて高めます。

マルチフォーマットとレイアウトの保持

IronOCRは、元のドキュメント構造とフォーマットを保持しながら、あらゆる種類の画像フォーマット、PDFファイル、マルチカラムレイアウトを容易に処理するため、ここにある2つよりも優れています。 したがって、レイアウトの保持が利点となるより伝統的なデジタル化プロジェクトにおいて最良の選択となります。

それは、TesseractやEasyOCRのような追加のツールやライブラリに依存せず、画像やスキャンされた文書を直接完全に検索可能なPDFに変換するという大きな利点を持っています。

IronOCRは高度な前処理を提供します

最低品質の画像であっても、この機能を使用することで高いOCR精度が得られます。 これは、OpenCVのような他のライブラリへの依存を最小限に抑え、質の高いテキスト抽出のためのワンストップショップにします。

スケーラビリティとパフォーマンス

高速でリソース効率の良いOCRに最適化されたIronOCRは、大規模ドキュメント処理作業のスケーラビリティを確保し、あらゆるエンタープライズアプリケーションの優先事項となります。

サポートとアップデート

IronOCRは商業サポートを提供しており、それが実際の更新とバグ修正の増加、および長期的な専用サポートにポジティブに影響し、そのためオープンソースの競合製品であるTesseractやEasyOCRには欠けている、長期的な信頼性とOCRの最新進歩の保証を提供します。

結論

最も重要なOCRライブラリの中で、間違いなく最高なのはIronOCRです。その優れた精度と統合の容易さに加えて、画像の事前処理や検索可能なPDFの作成といった他の機能もあります。 複雑なレイアウトやノイズの多い画像を正確に処理し、ドキュメントの構造をそのまま維持しながら、TesseractやEasyOCRのようなオープンソースのソリューションと比較して、マルチ言語を標準でサポートします。

.NETおよびPythonとのシームレスな統合を含むツールが含まれているため、あらゆる種類のプロジェクトに高品質のOCRを統合したい開発者にとって、これが包括的なパックです。 優れたパフォーマンス、スケーラビリティ、商業サポートにより、小規模から大規模な文書のデジタル化の取り組みにも適しており、そのため信頼性が高く効率的なテキスト認識のための究極の選択肢となっています。

IronOCRについて詳しく知り、その機能を確認するには、こちらを訪問してください。ドキュメントページ、IronOCRが無料トライアルを提供している場所。 Iron Softwareの製品について詳しく知るには、参照してくださいライブラリスイートページ.

< 以前
Power Automate OCR(開発者チュートリアル)
次へ >
画像をテキストに変換する方法