Google Colabを用いたNDLOCRアプリのVersion 2を作成しました。
お知らせ
ノートブックのURL
2022-07-06
使い方のデモ動画を作成しました。
またルビのテキスト化機能が追加されました。
概要
Google Colabを用いたNDLOCRアプリを作成し、以下の記事で紹介しました。
今回は、上記ノートブックの改良版であるVersion 2を作成しましたので紹介します。以下からノートブックにアクセスいただけます。
特徴
複数の入力形式に対応しました。以下のオプションを使用できます。
- 画像
- 単一の画像ファイルの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
いつも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)不具合の対応をしていただきありがとうございます。
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
ご連絡ありがとうございます。また不具合が生じてしまい、ご迷惑をおかけして申し訳ありません。
本ノートブックの不具合について、不完全ではありますが、修正しました。
またノートブックに記載しましたが、新しいノートブック(NDLOCRのver.2.1を使用したもの。これまではNDLOCRのver.1を使用していました。)を用意しました。今後はこちらをお使いいただけますと幸いです。
引き続き不具合などが生じるかと思いますが、都度ご連絡いただけますと幸いです。
今後とも何卒よろしくお願いいたします。
早急なご対応ありがとうございます。利用させていただきます。