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