1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NDLOCR-Liteの結果を編集したい

1
Last updated at Posted at 2026-02-26

NDLOCR-Liteで出力した文字データを修正・管理・出力するWebアプリを作りました!

Node.js環境でnpx iiif-annotatorを実行することで利用可能です。

capture.gif

できること

  • 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)の座標を変えることも可能です。

スクリーンショット 2026-02-26 17.19.45.png

機能2-2: IIIFマニフェストのエクスポート

ウェブアプリ上の編集は全てIIIFマニフェスト形式で保存されます。マニフェストをダウンロードし、別のソフトウェア等で再利用することが可能です。

ただし、コンテンツ自体を配信するためのサーバを準備する必要があること、マニフェスト内のURLを書き換える必要があるなど、ハードルは高いかなと思っています。
この点については要件を整理して実装していきたいと思います。

機能3(おまけ): 複数ファイルの並行編集

すべてのデータはローカルに保存されており、それらを「プロジェクト一覧」から確認・管理することができます。一度作業を離れても、再度作業を継続することが可能です。

今後やりたいこと

IIIFマニフェストを配信するイメージサーバ(Cantaloupeなど)とのシームレスな連携を実現したいですね!

折角NDLOCRが気軽に使えるようになったので、色々な使い方を試して、アウトプットをバシバシ生み出していきたいと思います!

動作検証環境

  • OS: macOS Taohe26.3
  • Nodejs: v10.8
  1. デジタルアーカイブ領域で標準となっている画像の国際的相互運用の枠組み.https://iiif.io/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?