Tesseract-OCR:Pythonで画像からテキストを抽出するための強力なライブラリ

Tesseract-OCRは、オープンソースの光学文字認識(OCR)エンジンで、画像からテキストを抽出するための強力なツールです。Pythonでは、pytesseractライブラリを使用してTesseract-OCRを操作することができます。以下に、Tesseract-OCRの概要とその特徴を具体的な例を交えて紹介します。

Tesseract-OCRの特徴

高精度な文字認識

Tesseractは多くの言語に対応しており、高い精度で文字認識を行います。手書き文字や印刷されたテキストの認識に優れています。

オープンソース

TesseractはGoogleによってサポートされているオープンソースプロジェクトであり、自由に利用、改良が可能です。

多言語対応

Tesseractは、英語をはじめとする多数の言語に対応しており、日本語などの非ラテン文字も認識できます。

統合が容易

pytesseractライブラリを使用することで、Pythonプログラムに簡単に統合できます。画像処理ライブラリのPillowやOpenCVと組み合わせて使用することが一般的です。

例題1: 基本的なOCR処理

以下の例では、pytesseractを使用して画像からテキストを抽出する基本的な方法を示します。

必要なライブラリのインストール

pip install pytesseract pillow

また、Tesseract-OCRエンジンをインストールする必要があります。インストール方法はOSによって異なりますが、以下に代表的なコマンドを示します。

Windows

Tesseractのインストーラを公式サイトからダウンロードしてインストールします。

Mac

Homebrewを使用してTesseractをインストール。

brew install tesseract

Ubuntu

sudo apt install tesseract-ocr

画像からテキストを抽出するスクリプト

from PIL import Image
import pytesseract

# 画像の読み込み
image = Image.open('sample_image.png')

# 画像からテキストを抽出
text = pytesseract.image_to_string(image, lang='eng')

# 抽出したテキストの表示
print(text)

このコードでは、Pillowライブラリを使用して画像を読み込み、pytesseract.image_to_string関数でテキストを抽出しています。langパラメータを指定することで、使用する言語を選択できます。

例題2: 日本語テキストの認識

次に、日本語テキストを含む画像から文字を抽出する例を示します。

日本語データのインストール

Tesseractの日本語データをインストールする必要があります。以下のコマンドでインストールできます。

Windows

日本語データをダウンロードし、Tesseractのtessdataフォルダに配置します。

Mac

Homebrewを使用してTesseractをインストール。

brew install tesseract-lang

Ubuntu

sudo apt install tesseract-ocr-jpn

日本語テキストの抽出スクリプト

from PIL import Image
import pytesseract

# Tesseractの実行ファイルのパスを設定(Windowsの場合のみ)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

# 画像の読み込み
image = Image.open('japanese_sample.png')

# 画像から日本語テキストを抽出
text = pytesseract.image_to_string(image, lang='jpn')

# 抽出したテキストの表示
print(text)

このコードでは、日本語データを使用して日本語テキストを抽出しています。langパラメータに'jpn'を指定することで、日本語テキストの認識を行います。

例題3: 前処理を含むOCR処理

画像の前処理を行うことで、OCRの精度を向上させることができます。以下の例では、OpenCVを使用して画像の前処理を行い、テキストを抽出します。

必要なライブラリのインストール

pip install opencv-python

前処理を含むOCRスクリプト

import cv2
from PIL import Image
import pytesseract

# 画像の読み込み
image = cv2.imread('sample_image.png')

# グレースケール変換
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 二値化
_, binary = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

# ノイズ除去
denoised = cv2.medianBlur(binary, 3)

# 画像を保存してPillowで開く
cv2.imwrite('processed_image.png', denoised)
processed_image = Image.open('processed_image.png')

# 画像からテキストを抽出
text = pytesseract.image_to_string(processed_image, lang='eng')

# 抽出したテキストの表示
print(text)

このコードでは、OpenCVを使用して画像をグレースケールに変換し、二値化とノイズ除去を行っています。前処理された画像を保存し、Pillowで開いてからpytesseractでテキストを抽出します。

結論

Tesseract-OCRは、Pythonで画像からテキストを抽出するための強力なツールです。Tesseractを使用することで、スキャンした文書や手書きのノートからテキストデータを抽出し、デジタル化することができます。基本的なOCR処理から、日本語テキストの認識、前処理を含む高度なOCR処理まで、Tesseractの理解と適用は、データ解析や情報抽出のプロジェクトにおいて非常に有用です。

タイトルとURLをコピーしました