NDLOCR-Liteで出力した文字データを修正・管理・出力するWebアプリを作りました!
Node.js環境でnpx iiif-annotatorを実行することで利用可能です。
できること
- PDFや画像ファイルを読み込み、アノテーションを付与することができます。
- NDLOCR-Liteで出力されるOCR結果(JSON形式)を使って、OCR結果を編集可能なアノテーションとして取り込むことができます。
- アノテーションデータはIIIF Presentation APIのマニフェストファイルとしてダウンロード・再利用できます。
NDLOCR-Liteとは?
国立国会図書館(NDL) NDLラボが開発・無償公開している、OCRソフトウェアです。
これまではGPUリソースが必要なNDLOCRのみ公開されていましたが、2026年2月24日に、CPUのみで利用できるデスクトップアプリとしてNDLOCR-Liteがリリースされました。
114ページのPDFデータを読み込ませると、3分弱で全ページのOCR処理が完了しました。驚異的な速さ... 旧字・異体字混じりでも高精度の結果を出しています。
NDLOCR-Liteで足りなかったもの
NDLOCRは軽量でかつ高精度なアウトプットを出力してくれますが、下記の点で悩みもありました。
-
アウトプットの文字データ(テキスト・BBox)を編集したい
かなり高精度なOCR結果が得られるとはいえ、テキストにエラーが混じっていたり、BBoxが正しく認識されていないケースがあります。実用上、これらを編集・保存・再利用する機能が必要でした。
複雑な表構造などを一発で検出するのは難しいですよね...
-
IIIF Presentation APIで使える形式にして保存管理したい
仕事柄、画像・アノテーションデータはIIIF1 Presentation APIのマニフェスト形式で出力・再利用する必要がありました。
そのため、NDLOCRで出力したデータを、IIIF準拠のデータ形式(IIIFマニフェスト)に変換する機能が必要でした。
作ったもの
「足りなかったもの」で記載した2点を補う目的で、ローカルで動くウェブアプリを作りました。
npxで実行、localhostでアクセスできます。
npx iiif-annotator
機能1: NDLOCR-Liteの文字データ取り込み
NDLOCR-LiteにアップロードしたOCR対象のファイル(PDFもしくは画像ファイル)、OCR結果として得られるJSONファイルをアップロードすることで、IIIF Presentation APIによる画像表示とOCR結果を元にしたAnnotation Layerの追加ができます。
また、OCR結果のconfidenceの表示と並び替えにも対応しています(v0.4.0から)。大量の文字データに優先度をつけて確認・修正作業ができるようになりました。
JSONはNDLOCR-Liteで指定される「出力先」にページごとに保存されており、次のような形式になっています。
{
"contents": [
[
{
"boundingBox": [
[167,238],
[167,409],
[186,238],
[186,409]
],
"id": 0,
"isVertical": "true",
"text": "滿洲國政府公報日譯目錄第一號",
"isTextline": "true",
"confidence": 0.699
},
]
],
"imginfo": {
"img_width": 1488,
"img_height": 1052,
"img_path": "/Users/user_name/Library/Application Support/jp.go.ndl.ndlocr-lite-gui/flet/app/4ab7ecc3-53fb-b3e7-64e8-a809b5a483d2/1932大同元年4月・5月分(第1号~第10号)_00005.jpg",
"img_name": "1932大同元年4月・5月分(第1号~第10号)_00005.jpg"
}
}
機能2-1: テキストアノテーションの編集
ビュアー上の矩形、もしくは「アノテーション一覧」から編集したいテキストを選択することで、対象テキストを編集することができます。また、矩形(BBox)の座標を変えることも可能です。
機能2-2: IIIFマニフェストのエクスポート
ウェブアプリ上の編集は全てIIIFマニフェスト形式で保存されます。マニフェストをダウンロードし、別のソフトウェア等で再利用することが可能です。
ただし、コンテンツ自体を配信するためのサーバを準備する必要があること、マニフェスト内のURLを書き換える必要があるなど、ハードルは高いかなと思っています。
この点については要件を整理して実装していきたいと思います。
機能3(おまけ): 複数ファイルの並行編集
すべてのデータはローカルに保存されており、それらを「プロジェクト一覧」から確認・管理することができます。一度作業を離れても、再度作業を継続することが可能です。
今後やりたいこと
IIIFマニフェストを配信するイメージサーバ(Cantaloupeなど)とのシームレスな連携を実現したいですね!
折角NDLOCRが気軽に使えるようになったので、色々な使い方を試して、アウトプットをバシバシ生み出していきたいと思います!
動作検証環境
- OS: macOS Taohe26.3
- Nodejs: v10.8
-
デジタルアーカイブ領域で標準となっている画像の国際的相互運用の枠組み.https://iiif.io/ ↩

