📝

NDLOCRおよびNDL古典籍OCRのver.2を用いたノートブックを作成しました。

2023/09/20に公開9

概要

NDLOCRおよびNDL古典籍OCRのver.2を用いたノートブックを作成しました。

それぞれ以下のリンクからお試しいただけます。

  • NDL OCR

https://colab.research.google.com/github/nakamura196/000_tools/blob/main/NDLOCR_v2の実行例.ipynb

  • NDL古典籍OCR

https://colab.research.google.com/github/nakamura196/000_tools/blob/main/NDL古典籍OCR_v2の実行例.ipynb

最新のノートブックとは異なりますが、ノートブックの使い方については以下の動画をご確認ください。

https://youtu.be/46p7ZZSul0o

以下、詳細について説明します。

背景

NDLOCRとNDL古典籍OCRについて、2023年にver.2が公開されました。ver.1とver.2の違いについては、以下のサイトを参考にしていただきたいですが、特に行単位で認識した文字列の読み順の付与性能が向上しています。

https://lab.ndl.go.jp/data_set/r4ocr/r4_software/

https://lab.ndl.go.jp/data_set/r4_koten/

今回作成したノートブックでは、これらver.2のOCR処理プログラムを採用しています。

入力方法

これまでのノートブックと同様、以下のオプションを提供します。

  • 画像
    • 単一の画像ファイルのURLを指定する場合
    • 単一の画像ファイルをアップロードする場合
    • 複数の既にダウンロード済みの画像ファイルを対象にする場合
  • PDF
    • 単一のPDFファイルのURLを指定する場合
    • 単一のPDFファイルをアップロードする場合
    • 単一の既にダウンロード済みのPDFファイルを対象にする場合
  • IIIF
    • IIIFマニフェストファイルのURLを指定する場合(本記事執筆時点ではPresentation API v2のみ)

実行結果

上記の各オプションを実行後、以下のような画面が表示されます。

具体的には、以下の2種類です。

  • Googleドライブへのリンク(「以下に出力しました。」の部分)
  • 認識結果を確認するビューアへのリンク(「認識結果は以下です。」の部分)

それぞれについて説明します。

Googleドライブへのリンク

以下のように、4つのフォルダが作成されます。

txtおよびxmlはNDLOCRおよびNDL古典籍OCRの一部で出力されるデータです。

pdfは認識結果を透明テキスト付きPDFで出力します。末尾に_textがあるものとないものの2種類が出力されます。_textがついているPDFは、以下のように、確認用にテキストを赤字で表示します。

iiifは後述するビューアで使用するデータです。jsonやxmlファイルが格納されていますが、主に開発者向けの情報になります。

認識結果を確認するビューアへのリンク

以下のようなビューアが表示されます。認識結果のテキストを画像に重ね合わせることで、OCRの精度などを確認できます。

本ビューアについて、技術的な情報については別の記事で紹介できればと思います。

まとめ

ノートブックについて、不具合や不足機能があるかと思いますので、随時ご連絡いただけますと幸いです。

NDLOCRおよびNDL古典籍OCRの活用にあたり、お役に立ちましたら幸いです。

Discussion

AdachiAdachi

初めまして、
本NDLOCRノートブックは大変助かりました。いつもありがとうございます。
昨日から、「単一のPDFファイルをアップロードする場合」は以下のエラーが発生します。

ImportError: /usr/local/lib/python3.10/dist-packages/mmcv/_ext.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZNK3c106SymIntltEl

FileNotFoundError Traceback (most recent call last)
<ipython-input-4-e385819590aa> in <cell line: 13>()
11
12 task.prepare_pdf(pdf_path)
---> 13 task.run_common_pipeline()

3 frames
/usr/local/lib/python3.10/dist-packages/ldas/iiif.py in convert_ndl_ocr_xml_to_iiif_manifest(xml_path, >base_manifest_path, output_manifest_path)
197
198 # Load XML content
--> 199 with open(xml_path, "r") as file:
200 content = file.read()
201

FileNotFoundError: [Errno 2] No such file or directory: >'/content/drive/MyDrive/ndlocr_v2/output/pdf_local_2023-10-23T06:17:57.095664+09:00/78944c98-7120-11ee-9990-0242ac1c000c/xml/78944c98-7120-11ee-9990-0242ac1c000c.xml'

宜しくお願い致します。

nakamura196nakamura196

ご不便をおかけして申し訳ありません。対応いたします。

nakamura196nakamura196

不具合を修正しました。お手数をおかけしますが、ご確認のほどよろしくお願いいたします。

lucanidlucanid

Colabの実行例を使わせていただきました。便利なのですが、処理対象がたくさんあると負荷をかけすぎるのもどうかという気になっております。
出来ればローカルで動かしたいのですが、Colabの例とGithubのndlocr_cliを比較すると、ndlocr_cliにはPDF関係の処理が含まれていないようでした。恐らくocr_iiif_toolsのあたりが該当するのだと思うのですが、入出力形式や引数がよくわからないので、そのあたりを解説いただけないでしょうか。
素人質問で恐縮ですがよろしくお願いします。

nakamura196nakamura196

ご連絡ありがとうございます。また返信が遅くなってしまい申し訳ありません。
PDF関係の処理の部分は独立したライブラリとしてご利用いただけるようにドキュメンテーションなどを準備したいと思いますので、少々お時間をいただけますと幸いです。

TakahashiTakahashi

突然申し訳ありません。
本ノートブックをぜひ利用したいと思い、セットアップは無事に終わったのですが、「単一のPDFファイルをアップロードする場合」などで実行しようとすると、下記のようなエラーが出てきてしまいました。
もし不具合でなく、当方の設定に問題がある場合は、もう少し自分で調べてみようと思います。
念のため、ご報告させていただきました。


FileNotFoundError Traceback (most recent call last)
<ipython-input-12-e385819590aa> in <cell line: 13>()
11
12 task.prepare_pdf(pdf_path)
---> 13 task.run_common_pipeline()

3 frames
/usr/local/lib/python3.10/dist-packages/ldas/iiif.py in convert_ndl_ocr_xml_to_iiif_manifest(xml_path, base_manifest_path, output_manifest_path)
197
198 # Load XML content
--> 199 with open(xml_path, "r") as file:
200 content = file.read()
201

FileNotFoundError: [Errno 2] No such file or directory: '/content/drive/MyDrive/ndlocr_v2/output/pdf_local_2024-03-19T12:08:39.596531+09:00/fc062596-e59d-11ee-9cbc-0242ac1c000c/xml/fc062596-e59d-11ee-9cbc-0242ac1c000c.xml'

nakamura196nakamura196

ご連絡ありがとうございます。また不具合申し訳ございません。
不具合を修正しましたので、ご確認いただけますと幸いです。

TakahashiTakahashi

早々にご対応いただき、誠にありがとうございました。
修正していただいあとも、やはり同様のエラーが起こってしまうようで、おそらく私の知識不足によるものと思われます。
もう少し、調べてみます。

非常に有益なノートブックを公開していただき、ありがとうございます。

nakamura196nakamura196

ご連絡ありがとうございます。改めてノートブックを修正しました。

PDFを処理する際、展開後の画像が大きい場合に、ご連絡いただいたエラーが生じるようでした。

リサイズする設定を加えましたので、改めてお試しいただけますと幸いです。