LSTMニューラルネットワークエンジン
従来のパターンマッチング方式から革新的なLSTMディープラーニングモデルへ進化。不鮮明なスキャンや歪みのある文書でも極めて高い文字認識精度を発揮します。
Tesseract OCRは、業界標準のオープンソース光学文字認識エンジンです。 高度なLSTMニューラルネットワークを活用し、100以上の言語において画像やスキャン文書から99%以上の高精度でテキストを抽出します。完全ローカル・オフライン動作でプライバシーも安心。
$ tesseract scanned_doc.png output -l jpn+eng --psm 3 pdf hocr
Tesseract OCR v5.3.0初期化中 (LSTMエンジン)...
Leptonica画像ライブラリをロード: scanned_doc.png (300 DPI, 2480x3508)
言語モデル読み込み: jpn.traineddata, eng.traineddata
ページレイアウト解析実行中 (PSM 3: 完全自動レイアウト認識)...
文字認識処理中 (LSTMニューラルネットワーク)... 完了 (0.84秒)
✓ output.txt 生成完了 (テキスト抽出)
✓ output.pdf 生成完了 (検索可能PDF / テキストレイヤー付き)
✓ output.hocr 生成完了 (バウンディングボックス座標付きXML)
入力画像からテキスト・検索可能PDFへ変換する5段階のOCRパイプライン
画像の二値化(白黒変換)、傾き補正、ノイズ除去、300+ DPIへの正規化を行い、認識精度を最大化します。
カラム構造、段落、テキスト行、単語の境界を検出し、段落や表などの複雑な構造を自動認識します。
テキスト行の基準線(ベースライン)を追跡し、文字の塊(ブロブ)を抽出してニューラルネットワークへ渡します。
双方向LSTM(長短期記憶)リカレントニューラルネットワークが、前後の文脈を考慮して高精度に文字を識別します。
認識結果をプレーンテキスト、検索可能な透明テキスト付きPDF、hOCR (HTML)、ALTO XML、TSV、Boxファイルとして出力します。
各主要OSに対応した簡単なインストール手順
Windowsパッケージマネージャー (winget または Scoop) を使用するか、UB Mannheim公式インストーラーをご利用ください:
# 推奨: wingetによるインストール
winget install UB-Mannheim.TesseractOCR
# またはScoopによるインストール:
scoop install tesseract
# インストール確認:
tesseract --version
インストーラー(.exe)をご希望の場合は、UB Mannheim Tesseract Wikiから最新バイナリをダウンロードし、PATH環境変数に登録してください。
Homebrewによるインストールが最も推奨されます。全言語パックも簡単に追加可能です:
# HomebrewでTesseractをインストール
brew install tesseract
# 全追加言語パックのインストール (推奨):
brew install tesseract-lang
# インストール確認:
tesseract --version
tesseract --list-langs
# Ubuntu / Debian
sudo apt update
sudo apt install tesseract-ocr tesseract-ocr-jpn tesseract-ocr-eng
# Fedora / RHEL
sudo dnf install tesseract tesseract-langpack-jpn
# Arch Linux
sudo pacman -S tesseract tesseract-data-jpn tesseract-data-eng
PythonでTesseractを利用する業界標準ライブラリ pytesseract の使い方:
pip install pytesseract pillow opencv-python
# Pythonコード例:
import pytesseract
from PIL import Image
# 画像からテキストを抽出
image = Image.open('receipt.jpg')
text = pytesseract.image_to_string(image, lang='jpn+eng')
print(text)
# 検索可能PDFとして出力
pdf = pytesseract.image_to_pdf_or_hocr('document.png', extension='pdf')
with open('output.pdf', 'wb') as f:
f.write(pdf)
WebAssembly (WASM) により、ブラウザおよびNode.jsでサーバーレス・完全ローカル実行が可能です:
npm install tesseract.js
// Node.js または ブラウザ用コード:
import { createWorker } from 'tesseract.js';
const worker = await createWorker('jpn');
const ret = await worker.recognize('image.png');
console.log(ret.data.text);
await worker.terminate();
開発者、研究者、エンタープライズに選ばれる理由
従来のパターンマッチング方式から革新的なLSTMディープラーニングモデルへ進化。不鮮明なスキャンや歪みのある文書でも極めて高い文字認識精度を発揮します。
日本語、英語、中国語、アラビア語、キリル文字、デーヴァナーガリーなど、世界中の文字体系に対応。複数言語の混在文書も同時認識可能です。
スキャン画像の下に見えないテキストレイヤーを配置した検索可能PDFを生成。元の文書デザインを維持したまま、キーワード検索やテキストコピーが可能になります。
外部サーバーやクラウドへのデータ送信は一切不要。医療記録、契約書、機密財務データなど、厳格なセキュリティ要件を満たします。
単語や文字ごとの座標(バウンディングボックス)、信頼度スコアを含むリッチなメタデータを出力可能。高度なドキュメント解析パイプラインに最適です。
100以上の言語に対応。検索して専用の学習済みモデル(.traineddata)を即座にダウンロードできます。
コマンドラインが苦手な方でも、グラフィカルな画面で簡単にOCRを利用できる無料ツール
GTK/Qtベースの使いやすいGUIフロントエンド。画像やPDFの直接編集、OCR領域の選択、スペルチェック機能を備えています。
gImageReaderを見る →既存のスキャンPDFに検索可能なテキストレイヤーを追加する最高峰のCLI/自動化ツール。傾き補正や自動ページ回転にも対応。
OCRmyPDFを見る →Javaおよび.NETで構築されたクロスプラットフォームGUI。一括OCR処理、テキスト後処理、PDF変換を標準サポート。
VietOCRを見る →最適な認識精度を得るためのページ分割モード(Page Segmentation Mode)設定ガイド
| PSMフラグ | モード名称 | 最適な適用シーン |
|---|---|---|
--psm 3 |
完全自動ページ分割 (デフォルト) | 標準的なスキャン文書、複数段落、一般的なページ全体。 |
--psm 6 |
単一の均一なテキストブロック | 領収書、請求書、本の1ページなど均一なフォントの文章。 |
--psm 7 |
単一のテキスト行 | ナンバープレート、バーコード下の文字、切り抜かれた見出し。 |
--psm 8 |
単一の単語 | 切り抜かれたロゴ文字、単一の識別番号。 |
--psm 11 |
順序不定の疎なテキスト | ポスター、名刺、ランダム配置のチラシ、表内の散在データ。 |
Tesseract OCRに関する技術的な疑問にお答えします
Leptonicaライブラリ経由で、PNG, JPEG, TIFF, BMP, PNM, GIF, WebP形式を標準サポートしています。最高精度のOCR結果を得るには、300 DPI以上の非可逆形式(TIFFまたはPNG)を推奨します。
鮮明で高解像度の標準文書の場合、文字認識精度は99%以上に達します。手書き文字や低解像度スキャンの場合は、事前の二値化や傾き補正を行うことで大幅に精度を向上させることができます。
Tesseractは100%無料・オープンソース・完全オフライン動作するため、大量文書の一括処理やプライバシー重視の環境に最適です。一方、Google Cloud Visionは手書き文字や超難読画像に強いですが、API従量課金が発生し画像をクラウドへ送信する必要があります。
(1) 画像解像度を300 DPIに拡大、(2) Otsuアルゴリズム等で二値化、(3) 傾き補正(Deskew)、(4) 適切なPSMモード(--psm)の指定、(5) 正しい言語モデルの指定(日本語なら -l jpn または縦書きなら -l jpn_vert)が効果的です。