PDFに一括OCRをかけるツールを作成した(その2 NDLOCR-Lite版)
前回、PDFに一括OCRをかけるPythonツールをご紹介しました。そこで利用したOCRエンジンは YomiToku でした。
YomiTokuは日本語OCRとしても優秀で、特に縦書き書面の解析に強みがあります。
ただし、商用利用では有償になること、そして GPUがほぼ必須という点 が、人によってはハードルになると感じました。
そんななか、国会図書館のXで 新しいOCR「NDLOCR-Lite」公開 の告知を見かけました。
NDLOCR-Liteを公開しました。ノートPC等の一般的な環境で動作する軽量なOCRです。英活字や手書きにも試行的に対応しています。
— 国立国会図書館 NDL (@NDLJP) February 24, 2026
マウス操作のみでお使いいただけるようWindows及びMacに対応したアプリもご用意しました。是非お試しください!https://t.co/ZMNWfVfI0J
使い方https://t.co/P0hCRLAgda pic.twitter.com/GfrJJu8QgO
これは良さそうだ、と思い、さっそく試してみることにしました。
実際に触ってみると、OCRの結果はかなり好印象でした(古く変色した岩波文庫もバッチリ認識しました)。
一方で、私の用途では少し残念なところもありました。アプリ版でテストしたところ、標準では OCR結果の出力が中心 で、そのまま検索可能PDFとして使える形にはならない からです。
そこで、前回公開した YomiTokuベースのOCRアプリ をもとに、第二弾として作ったのが NDLOCR-Lite版 です。今回もPythonでのバイブコーディングです。今回は指定フォルダ内の処理と、新たに指定したファイル単独でも処理が出来るようにしています。
今回やりたいこと
開発目的そのものは、YomiToku版のときと大きくは変わっていません。
OCRされていない古いPDFや画像を、検索できるPDFにすること。これが基本の目的です。
ただ今回はそこに、グラボのない環境でも手軽に試せるようにする という狙いを加えました。
NDLOCR-Liteで文字を読み取り、その結果を PDFのテキスト層に埋め込んで、検索可能PDFとして保存する。
つまり、単にOCR結果をテキストとして取り出すだけではなく、実際に使えるPDFとして仕上げるところまで自動化したい、というのが今回のポイントです。
インストール方法
NDLOCR-Lite を試す際は、まずは 公式GitHubの Releases から、自分のOS向けファイルをダウンロードする方法 が分かりやすいです。
デスクトップアプリ版が用意されているので、最初はそれを使うのが手軽だと思います。
ひとつ注意したいのは、保存先のフォルダ名やパスに 日本語(全角文字)を含めないほうが安全 という点です。
うまく起動しない場合があるため、半角英数字の場所に置いておくのが無難です。
次に、今回作成したPythonスクリプトを動かすための環境準備です。Python環境を用意した上で、PDFの作成や画像処理に使うライブラリをインストールします。
コマンドプロンプトなどで pip install pypdf pillow pypdfium2 reportlab と実行すれば、自作スクリプト側で必要なパッケージが入ります。
なお、これとは別に NDLOCR-Lite 本体(実行ファイルまたは起動用スクリプト)が利用できる状態である必要があります。
YomiToku版とは依存環境が異なります
ここは少し注意が必要です。
同じOCRアプリ系でも、YomiToku版とNDLOCR-Lite版では必要な環境や準備が同じではありません。
前回の導入手順をそのまま流用できるとは限らないので、今回は 別構成のアプリとして見る ほうが分かりやすいと思います。
いろいろ試したい方は、仮想環境(venv)を分けて使う ほうが安心です。
Pythonコード
今回作成したツールの全コードは、GitHubリポジトリに置いておきます。
まとめ
今回のNDLOCR-Lite版は、GPUを使ったYomiToku版に比べて、商用利用しやすいこと、そして ノートパソコン等のグラボが無いPCでも使えるのが大きな特徴です。
国会図書館はデジタルアーカイブでも非常に面白い取り組みを続けていますし、今回のようなツール公開にも目を引かれます。
今後の活動にも注目していきたいです。
ひとりごと
前回のYomiToku版は、PDFファイルが大きくなってしまう欠点があるので、たのバグの修正と合わせて改訂版をリリース予定です。


コメント