Azureの仮想マシンを用いたNDLOCRのGradioアプリ構築

概要 以下の記事で、Azureの仮想マシンとNDLOCRを用いたGradioアプリについて紹介しました。 本記事では、このアプリの構築方法に関する備忘録です。 仮想マシンの構築 GPUを使用するにあたり、クォータの要求を行う必要がありました。 要求後、今回は「NC8as_T4_v3」を使用します。 Docker環境の構築 以下の記事を参考にします。 https://zenn.dev/koki_algebra/scraps/32ba86a3f867a4 Secure Boot の無効化 以下のように記載されています。 Secure Boot を無効化しないと NVIDIA Driver が正しくインストールされない. 実際、無効化しなかった場合、以下の画面が表示され、前に進めませんでした。 以下で、Secure Bootを無効化します。 NVIDIA Driver のインストール ubuntu-drivers コマンドのインストールを行い、インストール可能な NVIDIA Driver を確認する。 s s u u u b d d u o o n t a a u p p - t t d - r g i i e n v t s e t r u a s p l d l d a e t u v e b i u c n e t s u - d r i v e r s - c o m m o n 以下が結果です。 ...

2024年12月23日 · 15 分 · Nakamura

ndlocr_cli(NDLOCR(ver.2.1)アプリケーションを試すことができるGradioアプリを作成しました。

概要 ndlocr_cli(NDLOCR(ver.2.1)アプリケーションを試すことができるGradioアプリを作成しました。 以下のURLからお試しください。 https://ndlocr.aws.ldas.jp/ 補足 現在は1枚の画像アップロードのみに対応しています。今後、PDFのアップロード機能などのオプションも追加したいと思います。 Azureで使用可能なVMである「NC8as_T4_v3」に搭載されている「NVIDIA Tesla T4 GPU」を使用しています。 まとめ いつまでこの形で提供できるかはわかりませんが、ndlocr_cli(NDLOCR(ver.2.1)アプリケーションの精度の確認などにあたり、ご利用いただけますと幸いです。

2024年12月22日 · 1 分 · Nakamura

NDL古典籍OCR-Lite(ndlkotenocr-lite)をMac OSで使用する

概要 2024年11月26日にNDLラボから、NDL古典籍OCR-Liteが公開されました。 https://lab.ndl.go.jp/news/2024/2024-11-26/ 本記事ではMac OSでの使用方法について紹介します。 使用方法(動画) https://www.youtube.com/watch?v=NYv93sJ6WLU 使用方法(テキスト) 以下にアクセスします。 https://github.com/ndl-lab/ndlkotenocr-lite/releases/tag/1.0.0 一覧からmacosを含むものを選びます。またチップについても、合致するものを選択します。 リンクをクリックすると、以下のように、「ndlkotenocr-lite_v1.0.0_macos_m1.tar.gz」がダウンロードされます。 ダブルクリック等で展開すると、macosというフォルダの中に、「NDLkotenOCR-Lite」というアプリケーションが展開されます。 「NDLkotenOCR-Lite」というアプリケーションをダブルクリックして起動します。 ただし、初回実行時は、以下のような警告と共に開くことができません。 「プライバシーとセキュリティ」に移動して、「このまま開く」を押すことで、アプリケーションを開くことができます。 結果、以下が起動します。 処理対象と出力先を選択して「OCR」ボタンを押すことで、以下のように認識されました。 ここでは『源氏物語』(東京大学総合図書館所蔵)を使用しています。 出力結果としては、txt, json, xmlファイルが生成されました。 まとめ 現時点ではNDL古典籍OCR ver.3と比較すると、読み取り精度が平均して約2%程度低下するとのことですが、GPUがなくとも軽量なOCR処理が可能となった点は大きなメリットだと思います。 開発者および公開に関わった方々に感謝いたします。

2024年11月27日 · 1 分 · Nakamura

NDLTSR (NDL Table Structure Recognition)を試す

概要 NDLTSR (NDL Table Structure Recognition)は以下のように説明されています。 資料画像に含まれる表の構造を認識するプログラムを公開しています。 座標付きのOCRテキストデータと組み合わせることで表中に含まれるテキストデータを構造化する用途に利用できます。 参考(外部リンク):次世代デジタルライブラリーへの新機能(表の構造化)の追加及び新機能のソースコード及びデータセットの公開について 本プログラムにより、国立国会図書館が公開しているNDLTableSetを学習した機械学習モデルによる表構造の推論を行えるほか、LORE-TSR(外部リンク)と同様の方法により別途利用者が用意したデータセットによる再学習を行うことが可能です。 ノートブック 以下のノートブックを用意しました。 https://colab.research.google.com/github/nakamura196/000_tools/blob/main/NDLTSR.ipynb 以下のように、「ランタイム」 > 「すべてのセルを実行」 からお試しいただけます。 結果 以下のような認識結果が出力されます。 参考 台湾総督府農業試験所 編『台湾総督府農業試験所彙報』第197号 甘藷の生育、収量並に品質に及ぼす懽漑の影響,台湾総督府農業試験所,昭和15-19. 国立国会図書館デジタルコレクション https://dl.ndl.go.jp/pid/1046122 (参照 2024-04-26) https://dl.ndl.go.jp/pid/1046122/1/1 注意 以下のように公式の説明がありますが、本プログラムで得られるのは表の構造情報のみである点にご注意ください。 本プログラムが推論できるのは、表の構造情報(各セルの矩形座標及びセル間の関係性を表す数値情報)であるので、プログラム単体でOCR処理プログラムとして利用することはできません。 次世代デジタルライブラリーの機能と同様の処理を行うためには、別途座標付きテキストデータを出力するOCR処理プログラムが必要です。 まとめ NDLTSR (NDL Table Structure Recognition)の試行にあたり、参考になりましたら幸いです。

2024年4月26日 · 1 分 · Nakamura

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

お知らせ 2026-02-24 ! 本ページで提供しているノートブックは今後更新されません。 NDLOCRについては、デスクトップアプリケーションおよびコマンドラインツールとして簡易に利用可能な「NDLOCR-Lite」が公開されました。今後は、こちらをお使いいただけますと幸いです。 https://github.com/ndl-lab/ndlocr-lite 2025-04-02 現在、不具合が発生しています。修正が完了するまで、ご使用をお控えください。 不具合を修正しました。 2025-03-21 NDL古典籍OCRについては、デスクトップアプリケーションとして簡易に利用可能な「NDL古典籍OCR-Lite」が公開されました。今後は、こちらをお使いいただけますと幸いです。 https://github.com/ndl-lab/ndlkotenocr-lite 概要 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の活用にあたり、お役に立ちましたら幸いです。

2023年9月20日 · 1 分 · Nakamura

mdxでNDL古典籍OCRを実行する

更新履歴 2024-05-22 「Dockerコマンドを実行するユーザーをdockerグループに追加」を追記しました。 概要 mdxは大学・研究機関で共創する産学官連携のためのデータプラットフォームです。 https://mdx.jp/ 今回は、mdxの仮想マシンを使用して、NDL古典籍OCRを実行してみます。 https://github.com/ndl-lab/ndlkotenocr_cli プロジェクトの申請 今回、プロジェクトタイプは「お試し/Trial」を選択しました。 「お試し/Trial」では、1つのGPUパックが割り当てられました。 仮想マシンの作成 デプロイ 今回は、「01_Ubuntu-2204-server-gpu (Recommended)」を選択しました。 デプロイ前の画面では、以下のように設定しました。パックタイプを「GPUパック」、パック数を1としました。 公開鍵については、ローカルPCで以下のように作成しました。 c s d s h ~ - / k . e s y s g h e / n m d x その後に作成されたid_rsa.pubの内容を貼り付けました。 その後、仮想マシンのデプロイが完了するまで少し待ちます。 SSH接続のためのネットワーク設定 以下の動画を参考に進めることができました。 https://youtu.be/p7OqcnXBQt8?si=E5JtC-xnrc5ZQYo_ まず起動した仮想マシンのサービスネットワーク1のIPv4アドレスを控えておきます。 次に、ネットワークタグから「DNAT」を追加しました。「転送元グローバルIPv4アドレス」は自動入力され、「転送先プライベートIPアドレス」に先ほど控えておいたサービスネットワークのIPv4アドレスを入力しました。 次に「ACL」を追加しました。動画にならって、以下のように設定しました。 特定のIPアドレスからのみアクセスする場合、以下のように設定しました。 一方、セキュリティの観点から、無制限に任意のアドレスからのアクセスを許可するのはリスクが伴いますが、以下のように設定することで、任意のアドレスからssh接続できるようです。 接続を試す DATで追加した転送元グローバルIPv4アドレスを使用します。初期ログイン後、パスワードの変更が求められるので、変更します。 s s h m d x u s e r @ < D A T で 追 加 し た 転 送 元 グ ロ ー バ ル I P v 4 ア ド レ ス > - i ~ / . s s h / m d x / i d _ r s a VS Codeで接続する その後の操作は、必須ではありませんが、VS Codeの拡張機能である「Remote Explorer」を使いました。 ...

2023年8月29日 · 11 分 · Nakamura

NDL-DocLデータセット(資料画像レイアウトデータセット)の変換と可視化

NDL Labが公開するNDL-DocLデータセット(資料画像レイアウトデータセット)について、Pascal VOC形式のXMLファイルをCOCO形式のJSONファイルへ変換し、その内容を可視化するノートブックを作成しました。 https://github.com/nakamura196/ndl_ocr/blob/main/NDL_DocLデータセット(資料画像レイアウトデータセット)の変換と可視化.ipynb 上記のノートブックを開き、「ランタイム」 > 「すべてのセルを実行」 を押すことで、変換と可視化を行うことができます。 実行後に作成される「/content/img」フォルダと「/content/dataset_kotenseki.json」ファイルを使用することで、COCO形式のデータが求められる機械学習プログラムに使用することができます。 参考になりましたら幸いです。

2022年7月22日 · 1 分 · Nakamura

NDL OCRでルビのテキスト化を行えるようにしていただきました。

概要 NDL OCRについて、これまではルビのテキスト化を行わない設定がデフォルトでした。これに対して、NDLの方々のご協力により、テキスト化を行うか否かを設定できるようにしていただきました。 https://github.com/ndl-lab/ndlocr_cli/ config.yamlの以下をTrueにするとルビのテキスト化機能が動作します。 y i e l d _ b l o c k _ r u b i : F a l s e また、以下の留意事項があるとのことです。ご利用される際はご注意ください。 必ずしもルビの振られた漢字の箇所で切れるわけではなく、複数箇所のルビがマージされて出力されてしまうことも多い ルビは字のサイズが小さいことから、〓になってしまうことも多い チュートリアル用のノートブックの更新 ルビのテキスト化オプションについて、チュートリアル用のGoogle Colabにも追加しました。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ndl_ocr_v2.ipynb rubyというオプションにチェックを入れると、ルビのテキスト化を行います。デフォルトでは、従来通りFalse(ルビのテキスト化は行わない設定)にしています。 また今回の機能追加に合わせて、PDFを入力とした際の不具合修正や、認識結果の出力方法の変更等を行いました。認識結果を保存したGoogleドライブへのリンクを出力し、リンク先で認識結果を確認する方法に統一しました。 操作方法については、今回の修正内容は含まれていませんが、以下のデモ動画を用意しています。Google Colabの使い方など、参考になりましたら幸いです。 https://youtu.be/46p7ZZSul0o

2022年7月6日 · 1 分 · Nakamura