🐥

Google Colabを用いたNDLOCRアプリのVersion 2を作成しました。

2022/05/02に公開
4

お知らせ

ノートブックのURL

https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ndl_ocr_v2.ipynb

2022-07-06

使い方のデモ動画を作成しました。

https://youtu.be/46p7ZZSul0o

またルビのテキスト化機能が追加されました。

https://zenn.dev/nakamura196/articles/2c94cc7589c503

概要

Google Colabを用いたNDLOCRアプリを作成し、以下の記事で紹介しました。

https://zenn.dev/nakamura196/articles/a8227f4524570c

今回は、上記ノートブックの改良版であるVersion 2を作成しましたので紹介します。以下からノートブックにアクセスいただけます。

https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ndl_ocr_v2.ipynb

特徴

複数の入力形式に対応しました。以下のオプションを使用できます。

  • 画像
    • 単一の画像ファイルのURLを指定する場合
    • 単一の画像ファイルをアップロードする場合
    • 複数の既にダウンロード済みの画像ファイルを対象にする場合(Sigle input dir mode)
    • 複数の既にダウンロード済みの画像ファイルを対象にする場合(Image file mode: 単体の画像ファイルを入力として与える場合)
  • PDF
    • 単一のPDFファイルのURLを指定する場合
    • 単一のPDFファイルをアップロードする場合
    • 単一の既にダウンロード済みのPDFファイルを対象にする場合
    • 複数の既にダウンロード済みのPDFファイルを格納したフォルダを指定する場合
  • IIIF
    • IIIFマニフェストファイルのURLを指定する場合(本記事執筆時点ではPresentation API v2のみ)

PDFファイルやIIIFマニフェストファイルの入力をサポートします。また、Version 1では事前にGoogle Driveに画像ファイルをアップロードする必要がありましたが、Version 2では画像ファイルのURLの指定や、アップロードフォームによる登録機能を提供しています。

さらに、上記のいくつかのオプションにおいて、実行後に推論結果をマージしたテキストファイルをダウンロードする機能を提供します。ダウンロードしたテキストファイルをVoyantツールなどの他のアプリケーションに使用することができます。(なお本格的な分析にあたっては、認識結果の修正やトークナイズの方法など、各種調整が必要です。)

使用方法

1.初期セットアップ

以下に示す2つの実行ボタンを押してください。Googleドライブのアクセス許可が求められるので、許可してください。

2.設定

上述したオプションから、目的に応じたものを選択してください。各オプションに付与されたリンクをクリックすると、当該オプションの設定画面に遷移します。

実行後

実行後は、以下のように、出力フォルダが表示されます。設定において選択したprocessの値が「@(アットマーク)」とともにフォルダ名に付与されます。また既に出力フォルダが存在する場合には、フォルダ名の末尾に実行時間に基づくIDが「_(アンダーバー)」とともに付与されます。

また単一のファイルを処理するオプションを選択した場合、実行後、以下のようにテキストファイルがダウンロードされます。

まとめ

NDLOCRアプリの利用にあたって、参考になりましたら幸いです。

Discussion

ccocco

いつもNDLOCRアプリの方を研究利用させていただいてます。
2週間ほど前までは、アプリが利用できていたのですが、数日前からこのようなエラーコードがでて利用することができません。複数の入力方式の方を試してみたのですが、すべてエラーコードが出てきました。
自分以外にも同様のエラーがでている方がいるそうです。
対応の程していただければ幸いです。


IndexError Traceback (most recent call last)
<ipython-input-6-b8576dfd6394> in <cell line: 10>()
8 input_file = next(iter(uploaded))
9
---> 10 ins = Task.pdfFromLocal(input_file, output_dir, process, ruby)
11 message(ins)

2 frames
/content/ndlocr_cli/task.py in merge_txt_and_download(self)
297 output_dir = self.output_dir
298 tmp_dirs = glob.glob(os.path.join(output_dir, "*/txt"))
--> 299 txt_dir = tmp_dirs[0]
300
301 file_id = os.path.basename(os.path.dirname(txt_dir))

IndexError: list index out of range

(20237/20)不具合の対応をしていただきありがとうございます。

ken202309ken202309

OCRを試してみようと思い手順に従ってやったつもりですがエラーがでてしまうのですが何が悪いのか分からない状態です。
単一のPDFファイルのURLを指定する場合を実行

/usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py:1095: InsecureRequestWarning: Unverified HTTPS request is being made to host 'dglb01.ninjal.ac.jp'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
warnings.warn(

OCR処理を実行しています。


IndexError Traceback (most recent call last)
<ipython-input-2-2325c3705cde> in <cell line: 8>()
6 ruby = False #@param {type:"boolean"}
7
----> 8 ins = Task.pdfFromUrl(url, output_dir, process, ruby)
9 message(ins)

2 frames
/content/ndlocr_cli/task.py in merge_txt_and_download(self)
297 output_dir = self.output_dir
298 tmp_dirs = glob.glob(os.path.join(output_dir, "*/txt"))
--> 299 txt_dir = tmp_dirs[0]
300
301 file_id = os.path.basename(os.path.dirname(txt_dir))

IndexError: list index out of range

nakamura196nakamura196

ご連絡ありがとうございます。また不具合が生じてしまい、ご迷惑をおかけして申し訳ありません。

本ノートブックの不具合について、不完全ではありますが、修正しました。

またノートブックに記載しましたが、新しいノートブック(NDLOCRのver.2.1を使用したもの。これまではNDLOCRのver.1を使用していました。)を用意しました。今後はこちらをお使いいただけますと幸いです。

引き続き不具合などが生じるかと思いますが、都度ご連絡いただけますと幸いです。

今後とも何卒よろしくお願いいたします。

ken202309ken202309

早急なご対応ありがとうございます。利用させていただきます。