NDL古典籍OCR-lite Next.js版の開発
概要
@yuta1984 さんが「WebAssemblyを使用したNDL古典籍OCR-liteのWeb移植版」を開発されました。
今回は、上記のリポジトリを参考にさせていただき、Next.js版を作成しました。
加えて、以下の点を追加しています。
- IIIFマニフェストファイルの入力フォーム
- TEI/XMLファイルのダウンロード機能
- 出力フォーマットに関するODDファイルの作成
使い方
サンプルとして、九州大学附属図書館の源氏物語を利用させていただきます。
マニフェストファイルを入力し、「読み込む」ボタンを押すと、以下のように、画像の一覧が表示されます。
なお、内部的には、@iiif/parser
を利用し、v2とv3、どちらのマニフェストファイルにも対応するようにしています。
その後、処理の実行ボタンを押すと、画像ごとにOCR結果のテキストが表示されます。
実行完了後、画面下部に結果のダウンロードボタンが表示されます。
ODDファイルの作成
TEI/XMLでのエクスポートにあたり、どのようなタグや形式が想定されているのか、という質問をいただくことがありました。
そこで、このフォーマットの共有にあたり、ODD(One Document Does it all)ファイルを作成しました。
このODDファイルの作成については、以下の記事も参考にしてください。
さらに、TEIGarageのAPIを利用し、RNGファイルやHTMLファイルを作成しています。この変換については、以下の記事を参考にしてください。
不完全な部分もありますが、このような方法を採ることで、TEIのエコシステムを活用しながら、スキーマを公開・共有することができそうです。
これまでに作成したツールと今後開発予定のツール
これまでの開発
NDL古典籍OCR-liteについては、これまでにいくつかのツールを開発してきました。
まず、Gradio Appを作成しました。こちらは公式に提供されている「デスクトップアプリケーション」で代替可能なものでしたが、スマホやタブレットで撮影した画像に対してOCRをかけるといった用途では有用性があると考えられます。
次に、以下の記事で紹介したように、同じくGradioを用いたウェブアプリですが、IIIFマニフェストファイルを入力とし、TEI/XMLファイルを出力とするアプリを作成しました。IIIFとTEIを接続している点で有用性はありましたが、Hugging Faceの無料枠でアプリを公開しているため、多くの人が同時に使用できる環境ではないという課題がありました。
これらの課題に対して、@yuta1984 さんが作成されたウェブ版を参考に、IIIFとTEIの接続機能を維持しながら、ユーザの端末側でOCR処理を実行する環境を今回構築しました。これにより、複数人が同時に処理を実行できるようになりました。
今後の展望
人手でOCRをかける際には、公式のデスクトップアプリケーションを使用するか、@yuta1984 さんのウェブアプリ、あるいは今回開発したNext.js版のウェブアプリを使用することで、多くのニーズに対応できると考えています。
今後の取り組みとして、API等を介して大量の画像に対して一括でOCR処理を行う場合には、複数のサーバで並列にOCR処理を実行することで効率化を図ることができます。例えば、2000枚を超える画像から構成されるIIIFマニフェストファイルを対象とする際には、並列でOCR処理を行うことが、順次実行するよりも効果的です。
このような処理を実現するため、以下の記事で紹介しているように、Azure Container Appsを使用したスケーラブルなOCR処理システムの構築を進めています。
まだ不完全な点や考慮すべき点は多いものの、サーバレスな環境でOCRを提供することで、大規模な画像に対するOCR処理の実現を目指しています。
まとめ
NDL古典籍OCR-liteの活用にあたり、参考になりましたら幸いです。
Discussion