この記事のポイント
- PaddleOCRとTesseractは無料で使える高精度なOCRツール
- きれいな印刷文字なら95%以上の認識精度を期待できる
- 日本語OCRには得意・不得意パターンがあり、事前に把握しておくことが重要
はじめに:なぜ今、OCRが注目されているのか
「紙の書類をデータ化したい」「PDFの文字を検索できるようにしたい」——こうしたニーズは、DX推進が叫ばれる現在、ますます高まっています。
OCR(Optical Character Recognition:光学文字認識)は、画像やスキャンデータから文字を読み取る技術です。かつては専用ソフトが必要でしたが、今では無料のオープンソースツールでも十分な精度が出せるようになりました。
本記事では、代表的な無料OCRツールであるPaddleOCRとTesseractを取り上げ、「きれいな印刷文字(ワープロ文字)がどこまで読めるか」を検証します。まずはこの2つのツールで何ができるのか、ベースラインを把握しましょう。
PaddleOCRとは?
PaddleOCRは、中国のBaidu(百度)が開発したオープンソースのOCRツールです。ディープラーニングベースで、80以上の言語に対応しています。
PaddleOCRの特徴
- 高精度: ディープラーニングモデルにより、従来のOCRより認識精度が向上
- 多言語対応: 日本語、中国語、英語など80言語以上をサポート
- 軽量モデル: モバイル向けの軽量版も用意されている
- 無料・オープンソース: Apache 2.0ライセンスで商用利用も可能
PaddleOCRのセットアップ
Pythonがインストールされている環境であれば、pipコマンドで簡単に導入できます。
pip install paddlepaddle paddleocr
基本的な使い方は以下のとおりです。
from paddleocr import PaddleOCR
ocr = PaddleOCR(lang='japan')
result = ocr.predict('読み取りたいファイル')
for item in result:
if 'rec_texts' in item:
for text in item['rec_texts']:
print(text)
Tesseractとは?
Tesseractは、GoogleがメンテナンスしているオープンソースのOCRエンジンです。1980年代にHP(ヒューレット・パッカード)が開発を開始し、長い歴史を持つ信頼性の高いツールです。
Tesseractの特徴
- 歴史と実績: 30年以上の開発実績があり、安定性が高い
- 100言語以上対応: 追加の言語データをインストール可能
- コマンドライン対応: シェルスクリプトとの連携が容易
- カスタマイズ性: 学習データの追加や調整が可能
Tesseractのセットアップ
macOSの場合はHomebrewでインストールできます。
brew install tesseract tesseract-lang
Windowsの場合は、UB Mannheim提供のインストーラーを使用します。
Pythonから使う場合は、pytesseractライブラリを利用します。
pip install pytesseract pillow
import pytesseract
from PIL import Image
text = pytesseract.image_to_string(
Image.open('document.png'),
lang='jpn'
)
print(text)
日本語OCRの得意・不得意パターン
日本語は漢字・ひらがな・カタカナ・英数字が混在する複雑な言語です。OCRにも得意・不得意があります。
得意なパターン
- ゴシック体・明朝体の標準フォント: 学習データが豊富で高精度
- 横書き文書: 標準的なレイアウトは安定して認識
- 大きめのフォント(11pt以上): 文字の特徴を捉えやすい
- 単純なレイアウト: 1段組み、表なしの文書
不得意なパターン
- 手書き風フォント・装飾フォント: 認識率が大幅に低下
- 縦書き文書: 横書きに比べて精度が落ちる傾向
- 小さい文字(8pt以下): 解像度が十分でも認識ミスが増加
- 旧字体・異体字: 学習データに含まれていないケースあり
- ルビ(ふりがな)付き文書: 本文とルビが混同されることがある
よくある認識ミスの例
| 正解 | 誤認識例 | 原因 |
|---|---|---|
| 土 | 士 | 形状が類似 |
| 口 | ロ(カタカナ) | 見分けがつきにくい |
| 一 | ー(長音) | 横棒の区別が困難 |
| 0(ゼロ) | O(オー) | 文脈依存 |
標準OCRの限界と次のステップ
PaddleOCRやTesseractは、きれいな印刷文字であれば十分な精度を発揮します。しかし、以下のようなケースでは認識精度が低下します。
- 透かし(ウォーターマーク)が入った文書
- FAXや低画質スキャンで劣化した文書
- 複雑なレイアウト(多段組み、図表混在)
- 手書き文字や特殊フォント
こうした難しいケースでは、LLM(大規模言語モデル)を活用したOCRが威力を発揮します。GeminiやGPT-4oなどのマルチモーダルAIは、文脈を理解しながら文字を認識できるため、従来のOCRでは読み取れなかった文書にも対応可能です。
次回の記事では、「透かし・ノイズ入り文書でもOCRは動くか?」をテーマに、劣化した文書への対処法を詳しく解説します。
まとめ
本記事では、無料OCRツールであるPaddleOCRとTesseractの基本的な使い方と、きれいな印刷文字での精度を検証しました。
- PaddleOCR: ディープラーニングベースで高精度。日本語対応も良好
- Tesseract: 長い実績と安定性。カスタマイズ性が高い
- 日本語特有の認識ミスパターンを把握しておくことが重要
まずはこれらの無料ツールで試してみて、精度が不足する場合に有料サービスやLLM-OCRへのステップアップを検討するのがおすすめです。
次のステップ
OCRの導入・運用でお困りの方は、ぜひお気軽にご相談ください。貴社の文書タイプに最適なOCR構成をご提案いたします。
困ったときは
AI DARUMAでは、OCR活用の個別サポートを行っています。 まずは無料相談から。
〒723-0062 広島県三原市本町 1丁目7-29 2階 コワーキングスペースarica内