概要
国会図書館が古典籍資料からテキスト抽出する軽量OCRツールを公開 ~GPUなしでも動作という記事を遅ればせながら目にしたのでトライしました。
NDL古典籍OCR-Lite は、国立国会図書館(NDL)が公開する古典籍向け軽量OCRツールです。GPUを必要とせず、CPU環境でも動作可能である点が特徴です。
本書では、Ubuntu 24.04環境においてCUI(コマンドライン)で動作させるための手順を解説します。
動作環境
- OS: Ubuntu 24.04
- Python: 3.x 系
- 仮想環境(venv)
Ubuntu 24.04では、システムPython環境に対して直接 pip install を実行することが制限されているため、Python仮想環境(venv)を使用します。
リポジトリの取得
公式リポジトリ:
https://github.com/ndl-lab/ndlkotenocr-lite
git clone https://github.com/ndl-lab/ndlkotenocr-lite
cd ndlkotenocr-lite
Python仮想環境の構築とインストール
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
入力画像の配置
クローンされたndlkotenocr-liteの中にsrcというディレクトリがあるのでそこに移動します。src/ocr.py に直接パスを通して利用する方法もありますが、手っ取り早くすべての作業をこのディレクトリ内で完結します。
src 直下に fig ディレクトリを作成します。ここは、OCRしたい画像ファイルを入れます。
cd src
mkdir fig
今回は大正12年に厚沢部村役場に提出された陳情書の画像ファイル5枚を格納しました。読めなくはないですが、一般的なOCRだとかなり辛いものがあります。
OCRの実行
以下の手順でOCRを実行します。作業ディレクトリはsrcディレクトリです。
- 仮想環境を開く
- テキストを格納する tmpdir を作成する
-
ocr.pyを実行する
python3 -m venv .venv
source .venv/bin/activate
mkdir tmpdir
python ocr.py --sourcedir fig --output tmpdir --viz True
コマンドオプション解説
-
--sourcedirオプション
処理したい画像の含まれるディレクトリを絶対パスまたは相対パスで指定する。ディレクトリ内の"jpg(jpegも可)"、"png"、"tiff(tifも可)"、"jp2"及び"bmp"の拡張子のファイルを順次処理する。 -
--sourceimgオプション
処理したい画像を絶対パスまたは相対パスで直接指定する。"jpg(jpegも可)"、"png"、"tiff(tifも可)"、"jp2"及び"bmp"の拡張子のファイルを処理することが可能。 -
--outputオプション
OCR結果を保存する出力先ディレクトリを相対パスまたは絶対パスで指定する。 -
--vizオプション
--viz Trueを指定することで、文字認識箇所を青枠で表示した画像を出力先ディレクトリに出力する。
出力結果
tmpdir(出力ディレクトリ)には以下が生成されます:
- 抽出テキストファイル
-
viz_*.jpg(認識領域可視化画像)
--vizオプションをつけると出力されるvix_☓☓.jpg には元の画像のうち、読み取ったテキスト部分が青枠で示されます。
まとめ
NDL古典籍OCR-Liteは、GPU非依存で動作する軽量かつ実用的な古典籍OCRツールです。役場で支給される(非力な)マシンでも十分動作します。人間の校正は必須ですが、史料デジタル化の一次抽出工程を効率化できると思います。


