はじめに
OCRとは
OCR(Optical Character Recognition/光学的文字認識)とは、紙や製品、画像データに含まれる文字情報を読み取り、コンピューターで扱える文字コードへ変換する技術です。
例えば、以下のような情報を自動でテキスト化できます。
・パッケージに印字された消費期限「20XX.01.01」
・部品番号「ABC123」
・納品書の品名や数量
通常、印刷物や画像内の文字はそのままではPCで識別できません。そのため、人が目視確認し、手入力する必要がありました。
OCRを活用することで、
・入力作業の自動化
・人為的ミスの削減
・業務効率の向上
・データ管理の効率化
が可能になります。
今回の検証内容
・PDFの文字認識精度
・画像の文字認識精度
・手書き文字の認識精度
・使いやすさ
使用ツール
・LightPDF(Web)
・i2OCR(Web)
・NDLOCR-Lite(デスクトップ / CLI)
・Gemini Pro 3.0(手書き検証用)
LightPDF
こちらはWebページ上から使用できます。
WebでPDFや画像をOCR処理して 編集可能なテキストやWord形式に変換できます。インターフェースは比較的わかりやすいです。
特徴
インターフェースが直感的で使いやすい
PDFの文字認識精度が高い
Word形式で出力可能
精度
半角/全角の違いが数文字発生
それ以外は非常に高精度
総評:
Webツールとしてはかなり優秀。手軽に使える高精度OCR。
i2OCR
こちらもWebブラウザで利用できる無料OCRツールです。
特徴
128言語対応
Word / テキスト / HTML出力対応
非常にシンプルなUI
精度
PDF、画像ともにほぼ100%
半角/全角の違いがわずかに発生
総評:
無料かつシンプルで高精度。とにかく手軽に使いたい人向け。
NDLOCR-Lite
デスクトップアプリとCLIツールがあります。
国立国会図書館のNDLラボが公開しているOCRソフトです。
一般的なPCで動作し、資料デジタル化用途を想定しています。
GitHubからダウンロード可能で、CC BY 4.0ライセンスで公開されています。
インストール手順(デスクトップアプリ)
https://github.com/ndl-lab/ndlocr-lite/releases
から使用しているOSのZIPファイルをダウンロードし展開
GitHubのReleaseページから使用OSのZIPをダウンロードして展開。
※Windowsの場合
exeを右クリック → プロパティ → セキュリティのチェックを許可 → OK
※注意
NDLOCR-Liteのパスに日本語が含まれていると動作しないため、C直下などへ配置する必要があります。
インストール手順(CLI)
※コマンドラインから操作を行うにはPython 3.10以上が必要です。
事前準備
git clone https://github.com/ndl-lab/ndlocr-lite
cd ndlocr-lite
pip install -r requirements.txt
cd src
実行例1.(同階層にある「9892834_0001」という名称のディレクトリ内の画像を一括処理し、tmpdirという名称のディレクトリに結果を出力する。)
python3 ocr.py --sourcedir 9892834_0001 --output tmpdir
実行例2.(同階層にある「digidepo_1287221_00000002.jpg」という名称の画像を処理し、tmpdirという名称のディレクトリに結果を出力する。)
python3 ocr.py --sourceimg digidepo_1287221_00000002.jpg --output tmpdir
精度
PDF・写真:約98%
手書き文字:ほぼ認識できず
総評:
活字には強いが、手書きには弱い印象。
ローカルで完結する点は大きなメリット。
Gemini Pro 3.0
手書き文字の検証に使用。
精度
手書き文字:非常に高精度
PDF/写真:ほぼ完璧
今回の検証では、手書き認識はダントツで最も優秀でした。
まとめ
今回の検証から分かったことは以下の通りです。
・活字OCRはどのツールもかなり高精度
・手書き認識はツールによって大きく差が出る
・Web型は手軽さが強み
・ローカル型はセキュリティや業務利用向き
用途別におすすめすると、
・業務PDFを手軽に処理 → LightPDF / i2OCR
・ローカル環境で完結したい → NDLOCR-Lite
・手書きを高精度で処理したい → Gemini
OCR技術はかなり実用レベルに達していると感じました。
特に手書き認識はAIモデルの進化を強く実感できる結果でした。

