メインコンテンツへスキップ

Tesseract OCR 技術ドキュメント

Tesseract OCRは、世界で最も支持されているオープンソースの光学文字認識(OCR)エンジンです。LSTMニューラルネットワークをベースとし、100以上の言語に対応しています。

最新バージョン: 本ドキュメントは、LSTMディープラーニングモデルを標準搭載した Tesseract v5.3+ に準拠しています。

インストール

主要なオペレーティングシステム別のインストール手順です:

macOS (Homebrew)

brew install tesseract
brew install tesseract-lang  # 全言語モデルを追加

Ubuntu / Debian

sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-jpn tesseract-ocr-eng

Windows

winget install UB-Mannheim.TesseractOCR
# または Scoop:
scoop install tesseract

CLIクイックスタート

最も基本的なテキスト抽出コマンド:

# 画像から日本語テキストを抽出し stdout に出力
tesseract input.png stdout -l jpn

# テキストファイル (output.txt) として保存
tesseract scan.jpg output -l jpn+eng

# 検索可能なテキスト付きPDFを生成
tesseract document.tif output_searchable -l jpn pdf

ページ分割モード (PSM)

--psm <N> フラグでドキュメントのレイアウト解析方法を指定します:

PSM モード説明 適用例
0 向きとスクリプトの検出 (OSD) のみ 画像の回転角度・言語判定
1 自動レイアウト解析 + OSD 複雑な多言語文書スキャン
3 完全自動レイアウト解析 (デフォルト) 一般的なページ全体の文書
6 単一の均一なテキストブロック 領収書、請求書、本の一節
7 単一のテキスト行 ナンバープレート、ラベル
8 単一の単語 キャプチャ文字、ロゴ

Python統合 (pytesseract)

Pythonスクリプトから簡単にOCRを実行できます:

import pytesseract
from PIL import Image

# 画像読み込み
img = Image.open('receipt.jpg')

# 日本語と英語の同時抽出
text = pytesseract.image_to_string(img, lang='jpn+eng', config='--psm 6')
print(text)

# 検索可能PDFとして書き出し
pdf_bytes = pytesseract.image_to_pdf_or_hocr(img, extension='pdf', lang='jpn')
with open('output.pdf', 'wb') as f:
    f.write(pdf_bytes)

Node.js & ブラウザ (tesseract.js)

import { createWorker } from 'tesseract.js';

const worker = await createWorker('jpn');
const { data: { text, confidence } } = await worker.recognize('invoice.png');

console.log(`認識精度: ${confidence}%`);
console.log(text);

await worker.terminate();

独自モデルのファインチューニング (tesstrain)

特殊フォントや業界専門用語の認識精度を向上させるため、公式学習ツール tesstrain を使用して既存モデルを追加学習(ファインチューニング)できます:

# 公式学習リポジトリのクローン
git clone https://github.com/tesseract-ocr/tesstrain.git
cd tesstrain

# 日本語モデルのファインチューニング実行
make training MODEL_NAME=jpn_custom START_MODEL=jpn TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata