NDLOCRおよびNDL古典籍OCRのver.2を用いたノートブックを作成しました。
概要
NDLOCRおよびNDL古典籍OCRのver.2を用いたノートブックを作成しました。
それぞれ以下のリンクからお試しいただけます。
- NDL OCR
- NDL古典籍OCR
最新のノートブックとは異なりますが、ノートブックの使い方については以下の動画をご確認ください。
以下、詳細について説明します。
背景
NDLOCRとNDL古典籍OCRについて、2023年にver.2が公開されました。ver.1とver.2の違いについては、以下のサイトを参考にしていただきたいですが、特に行単位で認識した文字列の読み順の付与性能が向上しています。
今回作成したノートブックでは、これら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
初めまして、
本NDLOCRノートブックは大変助かりました。いつもありがとうございます。
昨日から、「単一のPDFファイルをアップロードする場合」は以下のエラーが発生します。
宜しくお願い致します。
ご不便をおかけして申し訳ありません。対応いたします。
不具合を修正しました。お手数をおかけしますが、ご確認のほどよろしくお願いいたします。
Colabの実行例を使わせていただきました。便利なのですが、処理対象がたくさんあると負荷をかけすぎるのもどうかという気になっております。
出来ればローカルで動かしたいのですが、Colabの例とGithubのndlocr_cliを比較すると、ndlocr_cliにはPDF関係の処理が含まれていないようでした。恐らくocr_iiif_toolsのあたりが該当するのだと思うのですが、入出力形式や引数がよくわからないので、そのあたりを解説いただけないでしょうか。
素人質問で恐縮ですがよろしくお願いします。
ご連絡ありがとうございます。また返信が遅くなってしまい申し訳ありません。
PDF関係の処理の部分は独立したライブラリとしてご利用いただけるようにドキュメンテーションなどを準備したいと思いますので、少々お時間をいただけますと幸いです。
突然申し訳ありません。
本ノートブックをぜひ利用したいと思い、セットアップは無事に終わったのですが、「単一の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'
ご連絡ありがとうございます。また不具合申し訳ございません。
不具合を修正しましたので、ご確認いただけますと幸いです。
早々にご対応いただき、誠にありがとうございました。
修正していただいあとも、やはり同様のエラーが起こってしまうようで、おそらく私の知識不足によるものと思われます。
もう少し、調べてみます。
非常に有益なノートブックを公開していただき、ありがとうございます。
ご連絡ありがとうございます。改めてノートブックを修正しました。
PDFを処理する際、展開後の画像が大きい場合に、ご連絡いただいたエラーが生じるようでした。
リサイズする設定を加えましたので、改めてお試しいただけますと幸いです。
こんにちは、
便利な古書OCRを作成頂き、大変便利に使わせて頂いております。ありがとうございます。
1点確認ですが、本OCRでは手書き文字には対応していないのでしょうか?
古書の手書き文字、現代文の手書き文字などを試してみたのですが、精度が悪いため、そもそも対応していないのではないか?と気になった次第です。
ReadMeなど、しっかりと読めていなければ申し訳ないですが、対応可否について教えて頂ければ幸いです。
よろしくお願いします。
NDL OCRの性能を調べるため、自分で環境を作ろうかと考えていたところ、こちらのノートブックを見つけました。大変ありがとうございます。
セットアップ終了後、”複数の既にダウンロード済みの画像ファイルを対象にする場合”を実行したところ、以下のエラーが出ました。
こんにちは。
いつも当該プログラムを使わせて頂いております。とても便利で大変助かっております。
今回は,次のようなエラーが出ましたので念のためご報告させて頂きました。
ただ,私の方の設定間違いがあるかもしれません。
よろしくお願い申し上げます。
FileNotFoundError Traceback (most recent call last)
<ipython-input-6-0697eaef5019> in <cell line: 14>()
12
13 task.prepare_pdf(pdf_path, 画像をリサイズする際の長辺の長さ)
---> 14 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/output/17f7ab1c-982c-11ef-a3c8-0242ac1c000c/17f7ab1c-982c-11ef-a3c8-0242ac1c000c/xml/17f7ab1c-982c-11ef-a3c8-0242ac1c000c.xml'