OCRツール

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

Kannaopat Udonpant
カンナパット・ウドンパント
2024年12月15日
共有:

イントロダクション

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

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

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

EasyOCR を翻訳しますか?

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

-->

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

EasyOCRの特徴

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

80以上の言語に対応: EasyOCRは、中国語、日本語、韓国語、アラビア語、ラテン系言語など、複雑な単語や難解な言語を書く多くの言語を読み取ることができます。

それは画像からテキストを認識し、したがって潜在的なアプリケーションの範囲をさらに広げます。

高度なディープラーニングベース: 認識は、高度なディープラーニング技術の強力なアルゴリズムをサポートしており、特にノイズや歪んだテキストレイアウトや画像において、高いパフォーマンスと精度を実現します。

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

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

軽量: CPU上で問題なく動作し、性能向上のためにGPUを利用できますが、基本的なハードウェアでも動作可能です。

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

柔軟なデプロイメント: 多くのプラットフォームで動作し、Pythonアプリケーションに埋め込むのも比較的容易です。

インストール

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

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

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

pip install easyocr
-->

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()
PYTHON

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

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

テッセラクト

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

Easyocrと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を通じてカスタムTesseract設定パラメータを渡すことができ、必要に応じてOCR性能を微調整するために適切な認識モードや画像とともにテキストに特定の属性を与えることができます。

シンプルなAPI: これはpytesseract上のシンプルなAPIであり、開発者がPythonプロジェクトにOCRを追加するためのコードが少なくて済むため、簡単に操作できます。

このライブラリは、OpenCV、PIL(Python Imaging Library)、またはNumPyなどの他のライブラリと連携して、画像の前処理を行い、OCRの精度を向上させるのに役立ちます。

インストール

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

pip install pytesseract

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)
PYTHON

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

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

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

比較評価

高い精度

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製品について詳しく知るには、ライブラリスイートページをご覧ください。

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