BDRC Tibetan OCR:チベット語OCRツールの紹介と実装事例

はじめに チベット語写本のデジタル化は、デジタル人文学における重要な課題の一つです。貴重な仏教経典や歴史文書が世界中の図書館に保管されていますが、その多くはまだテキストデータ化されていません。手作業での文字起こしには膨大な時間とコストがかかり、専門知識を持つ研究者も限られています。 本記事では、BDRC Tibetan OCR を紹介します。このツールは、Buddhist Digital Resource Center (BDRC) によって開発されたオープンソースのチベット語OCRシステムです。 また、チベット語写本カンギュール114点 をデジタル化するプロジェクトでの実装事例も紹介します。 BDRC Tibetan OCRとは BDRC Tibetan OCR は、チベット語の画像からテキストを自動抽出する無料のオープンソースツールです。 主要な特徴 1. デスクトップアプリケーション Windows、macOS(Intel/M1,M2)で動作するGUIアプリケーションです。 インストール方法: リリースページから各OS用のZIPファイルをダウンロード 解凍して実行ファイルを起動するだけ 2. 複数の出力形式 プレーンテキスト : 抽出されたUnicodeチベット文字 PageXML : 座標情報付きXML(Transkribusと互換) Wylie : ローマ字転写形式 3. 画像補正機能 歪み補正(Dewarping) : ページの湾曲を補正 回転補正 : 自動的にページの傾きを検出・補正 行検出 : 行分割機能 4. バッチ処理対応 複数の画像ファイルを一括処理 PDFファイルからの直接OCR IIIF(International Image Interoperability Framework)マニフェストからの自動取得・処理 4つの専門OCRモデル BDRC Tibetan OCRの特徴の一つは、書体や資料の種類に応じて最適化された4つの専門モデル を提供している点です。 1. ウチェン(Uchen)モデル - 現代印刷用 用 デ 特 適 途 ー 徴 用 : タ : 例 セ : 印 ッ チ 刷 ト ベ コ さ : ッ ン れ ト ピ た 4 語 ュ 経 4 で ー 典 0 最 タ 、 万 も ー 現 サ 標 フ 代 ン 準 ォ の プ 的 ン 出 ル な ト 版 の 書 で 物 統 体 印 一 刷 ウ さ チ れ ェ た ン テ モ キ デ ス ル ト 、 木 版 印 刷 ウチェンは「正書体」を意味し、チベット語で最も標準的な書体です。現代の印刷物やデジタルフォントで使用されます。 ...

2025年11月16日 · 19 分 · Nakamura

Azure OpenAI GPT-4 vs Document Intelligence: 日本語縦書きOCRの比較検証

概要 Microsoft Azureが提供する2つのOCRサービス(Azure OpenAI GPT-4 VisionとAzure Document Intelligence)を使用して、日本語の縦書き原稿用紙のOCR処理を実施し、その結果を詳細に比較検証しました。 検証対象画像 画像ソース : Canvaテンプレート(400字詰め原稿用紙) URL : https://www.canva.com/ja_jp/templates/EAFbqUoH7P8/ 画像の特徴 : 20×20の400字詰め原稿用紙 縦書きレイアウト 薄いグリッド線(マス目) タイトル欄と本文欄の区別 正解データ(Ground Truth) 原 佐 原 こ 稿 藤 稿 の の ち 用 テ タ あ 紙 キ イ き に ス ト 書 ト ル く を テ 使 キ 用 ス す ト る が 場 入 合 り は ま 、 す 日 。 本 作 語 文 の や 全 小 角 論 を 文 使 を う 作 こ っ と た で り マ 、 ス 小 に 説 あ を っ 書 た い 文 た 字 り を な 打 ど つ に こ ご と 活 が 用 で く き だ ま さ す い 。 。 手 書 き で 使 用 し た い 場 合 は 、 こ の テ キ ス ト を 削 除 し 、 印 刷 し て ご 使 用 く だ さ い 。 1. Azure OpenAI GPT-4.1 による認識結果 認識されたテキスト 原 佐 原 こ 稿 藤 稿 の の 用 テ タ ち 紙 キ イ あ に ス ト き 書 ト ル く を テ 使 キ 用 ス す ト る が 場 入 合 り は ま 、 す 日 。 本 作 語 文 の や 全 小 角 論 を 文 使 を う 作 こ っ と た で り マ 、 ス 小 に 説 あ を っ 書 た い 文 た 字 り を な 打 ど つ に こ ご と 活 が 用 で く き だ ま さ す い 。 。 手 書 き で 使 用 し た い 場 合 は 、 こ の テ キ ス ト を 削 除 し 、 印 刷 し て ご 使 用 く だ さ い 。 評価 GPT-4.1は縦書きの原稿用紙に対して以下の特徴を示しました: ...

2025年9月29日 · 3 分 · Nakamura

LLMによる原稿用紙OCR性能比較:縦書き日本語の認識精度検証

はじめに 本記事では、実際の原稿用紙画像を用いて 主要LLMモデルのOCR性能を比較検証しました。多くのOCRベンチマークが印刷文書や横書きテキストを対象とする中、日本独自の縦書き原稿用紙という特殊なフォーマット での認識精度を評価することで、各モデルの日本語文書理解能力をより実践的に検証しています。 本検証の特徴 原稿用紙という日本固有のフォーマットを使用 :マス目に収められた文字、縦書きレイアウト、特有の余白構成など、複雑な要素を含む画像での検証 実用シーンを想定 :作文、小説、論文など、実際の執筆場面で使用される原稿用紙での性能評価 最新モデルの網羅的比較 :GPT-5、GPT-4.1、Gemini 2.5 Pro、Claude Opus 4.1、Claude Sonnet 4という最新モデルを同一条件で比較 検証概要 使用画像 画像ソース : Canvaテンプレート(400字詰め原稿用紙) URL : https://www.canva.com/ja_jp/templates/EAFbqUoH7P8/ 画像の特徴 : 20×20の400字詰め原稿用紙 縦書きレイアウト 薄いグリッド線(マス目) タイトル欄と本文欄の区別 検証条件 使用プロンプト : 「OCRして」(全モデル共通) パラメータ : 各モデルのデフォルト設定 実行時期 : 2025年9月 正解テキスト 原 佐 原 こ 稿 藤 稿 の の 用 テ タ ち 紙 キ イ あ に ス ト き 書 ト ル く を テ 使 キ 用 ス す ト る が 場 入 合 り は ま 、 す 日 。 本 作 語 文 の や 全 小 角 論 を 文 使 を う 作 こ っ と た で り マ 、 ス 小 に 説 あ を っ 書 た い 文 た 字 り を な 打 ど つ に こ ご と 活 が 用 で く き だ ま さ す い 。 。 手 書 き で 使 用 し た い 場 合 は 、 こ の テ キ ス ト を 削 除 し 、 印 刷 し て ご 使 用 く だ さ い 。 評価方法 本記事の精度スコアは、文字認識の正確性、レイアウト理解、文章構造の保持などを総合的に評価した主観的なスコア です。実用的な観点から、各モデルの強みと課題を分かりやすく数値化しています。 ...

2025年9月27日 · 6 分 · Nakamura

PDFの透明テキスト抽出における順序保持の課題と解決策

はじめに PDFファイルから透明テキストレイヤーを抽出する際、「テキストの順序が元のPDFと異なってしまう」という問題に直面しました。本記事では、この問題の原因と、JavaScriptとPythonそれぞれでの解決策について解説します。誤っている点もあるかもしれませんが、参考になりましたら幸いです。 PDFの透明テキストとは PDFの透明テキストレイヤーは、PDFファイル内に埋め込まれた検索可能なテキスト情報です。OCR処理されたPDFや、デジタル生成されたPDFには、この透明テキストレイヤーが含まれており、以下のような機能を実現しています: テキスト検索 コピー&ペースト スクリーンリーダーによる読み上げ 機械翻訳 問題:テキストの順序が乱れる理由 PDFの内部構造 PDFファイルは、テキストを「コンテンツストリーム」という形式で保存しています。このストリームには、テキストとその位置情報が含まれていますが、必ずしも読む順序で格納されているわけではありません。 例 [ [ [ : 位 位 位 P 置 置 置 D : : : F コ x x x ン = = = テ 1 3 1 ン 0 0 0 ツ 0 0 0 ス , , , ト リ y y y ー = = = ム 2 4 3 の 0 0 0 概 0 0 0 念 , , , 図 テ テ テ キ キ キ ス ス ス ト ト ト = = = " " " 見 脚 本 出 注 文 し " " " ] ] ] 一般的な抽出方法の問題点 多くのPDF処理ライブラリは、以下のような手順でテキストを抽出します: ...

2025年9月10日 · 21 分 · Nakamura

TEI ODDファイルのカスタマイゼーション:NDL古典籍OCRの事例

はじめに TEI (Text Encoding Initiative) は、人文学研究におけるテキストのデジタル化と共有のための国際標準です。本記事では、NDL古典籍OCR-Liteアプリケーションの出力形式に合わせてTEI ODDファイルをカスタマイズした過程を紹介します。 ODD (One Document Does it all) は、TEIスキーマをカスタマイズするための仕組みで、必要な要素と属性だけを含む独自のスキーマを定義できます。 背景:NDL古典籍OCR-Liteアプリケーションの開発 NDL古典籍OCR-Liteの出力結果をTEI/XMLで出力するアプリケーションを作成しています。このアプリケーションは、日本の古典籍をOCR処理し、その結果を標準的なTEI形式で出力することを目的としています。 出力されるTEI XMLには以下の情報を含めることにしました: テキスト情報 : OCRで認識した文字列 レイアウト情報 : 各行の座標情報(バウンディングボックス) 画像参照 : IIIF (International Image Interoperability Framework) 対応の画像URL メタデータ : 文書タイトル、処理情報など このアプリケーションで使用するスキーマをODDで記述してみました。以下、そのカスタマイゼーション過程を紹介します。 カスタマイゼーションのアプローチ 1. 初期アプローチ:標準モジュールの利用 最初は、TEIの標準モジュールを利用してODDを作成しました: < s / c < < < < < s h m m m m m c e o o o o o h m d d d d d e a u u u u u m S l l l l l a p e e e e e S e R R R R R p c e e e e e e f f f f f c i > d k k k k k e e e e e e n y y y y y t = = = = = = " " " " " " t h c t t n e e o e r d i a r x a l " d e t n _ / e " s s k > r t c o " i r r t n u " e i c c n n l t i _ c u u n o l d r c c u e e l r d = " u " e " d = p i e s " n = t t t c " a e i l f r i t u a t H l d c = e e e s " a = i T d n " m E e a T i I r m E l " e I e f p i r t s r l e e u e e s x r f D p t f i e a x s r b c = c e o e " s d t t p y z e i S " i t t n _ l m e " e t " > S / t l > m b t p p b u b g l r i a c p a h t i i c o " n / S > t m t s o u r c e D e s c " / > include属性の重要性 moduleRef要素のinclude属性は、モジュールから特定の要素のみを選択的に含める重要な機能です: ...

2025年9月5日 · 18 分 · Nakamura

Azure Container AppsでNDL古典籍OCR Liteを用いたスケーラブルOCR処理システム

⚠️ 重要な利用上の注意 本記事で紹介するシステムは、外部サーバーに負荷をかける可能性があります。利用時は十分ご注意ください。 サーバー負荷 : 並列リクエストは対象サーバーに負荷を与えます DoS攻撃のリスク : 大量の同時アクセスはDoS攻撃と誤解される可能性があります 推奨アプローチ : 事前に画像をローカルにダウンロードし、OCR処理のみを並列実行することを推奨します 利用規約の確認 : 対象サーバーの利用規約を必ず確認し、必要に応じて事前許可を取得してください 適切なレート制限 : 実運用では慎重な並列数設定(5-10並列程度)を強く推奨します 責任ある利用 : サーバー管理者や他の利用者への配慮を忘れずに 本記事は技術的な実証実験の記録です。読者の皆様には責任を持った利用をお願いします。 はじめに 本記事では、国立国会図書館(NDL)が開発したNDL古典籍OCR Liteを活用し、Azure Container AppsでスケーラブルなOCR処理システムを構築した事例を紹介します。クラウドネイティブなアーキテクチャにより、従量課金とオートスケーリングを実現したシステムの設計と実装について解説します。 システム概要 アーキテクチャ I I I F 画 像 → A オ ( z ー 0 u ト - r ス 3 e ケ 0 ↓ ー レ C リ プ o ン リ n グ カ t ) a i n e r A p p s → N D L 古 典 籍 O C R → T E I X M L 出 力 主要コンポーネント OCRエンジン : NDL古典籍OCR Lite(日本古典籍特化) インフラ : Azure Container Apps(サーバーレスコンテナ) API設計 : REST API(画像URL → OCR結果) 出力形式 : TEI P5準拠XML スケーリング : 需要に応じた自動スケーリング NDL古典籍OCR Liteの特徴 日本古典籍に最適化されたOCR 縦書きレイアウト対応 : 古典籍特有の縦書き文書構造 読み順序最適化 : 右から左、上から下の日本語読み順 古典文字認識 : くずし字や変体仮名への対応 軽量実装 : Docker化によりクラウドデプロイ対応 Azure Container Appsの選択理由 サーバーレスコンテナの利点 # s c ス a m m c ケ l i a o ー e n x o リ : R R l ン e e d グ p p o 設 l l w 定 i i n 例 c c P a a e s s r : : i o 0 3 d 0 : 3 0 0 # # # ア 需 5 イ 要 分 ド 時 で ル : ス 時 ケ : 自 ー 動 ル コ 拡 ダ ス 張 ウ ト ン 0 コスト最適化 従量課金 : 使用した分のみ課金 0レプリカ : アイドル時は完全にコスト0 自動スケーリング : 需要に応じたリソース調整 システム実装 サーバーサイド実装 # f f f a a @ c r r r p p a l F o o o p i p a l m m m i s a = = . s d s f f s r e k l l i F A o I f a a m l p u m + s s p a i t a g i # r r k k l s ( e g e m e e N _ e k a ( e t a N s t D i r _ ( p ' O ( g D u u L m e o _ p / C s e L l r p s c _ , a R e _ t n O o t r n p ( l u O C r x _ a d i R f r C = r R t s m o / e ) l R e 統 i e e c i s : で o s 合 F m r _ = m o = 画 c u l p v _ ' a u 像 r l a o i ) / g r r 処 _ t s r c d e c e 理 s k t e o ' e q e , c ) ) u r A i s : e v r p m / s i e i p ' t c q , o ) . e u r a . e R t r p s e g r t s O s o , o C . c u R g e j r S e s s c e t s o e r ( _ n v ' s i i i i f c m n y e a g g l e e _ _ u i r m l a ' g ) e ( i m a g e _ u r l ) 読み順序アルゴリズム d e f s " r o " e r " t t 日 u _ 本 r - l j 古 n l i a 典 i n p 籍 s n e a の o e [ n 読 r [ " e み t " b s 順 e b b e 序 d b o _ ソ ( o x r ー l x " e ト i " ] a " n ] [ d " e [ 1 i " s 0 ] n , ] g , _ k o e r y # # d = e l x y r a 座 座 ( m 標 標 l b 降 昇 i d 順 順 n a ( ( e 右 上 s l → → ) i 左 下 : n ) ) e : ( TEI XML出力 < < ? T / x E < < < T m I t / f / t / E l e < t a < f e < t I x i f / e c s / a x b / e > v m H i < < f i s u < s c t o < b x e l e l t / r / i H i r z u s > d d / o t r n a e i < t e < < r l e m f o r i y i < < い d d > s s d D t t i s r n / e e a i a n f m > v p l づ i y i = e e l i t p e a N n s D d l c e a i b b れ v > o " r s e t l S s m D a p e e e e c l t の > n h > c S l e t p e L m S s r > x l e e y n n 御 = t > t e S m > 古 e t c > x m r > > p = = 時 " t m > t t A r 典 > m > m l x e " " に 1 p t 桐 m > u e 籍 t l : = = 1 1 か . : > 壺 t t f O > : i " " " . 0 / < > o = C i d 3 t 1 " / / m " R d = 7 r f " w t a h = " 2 a a e w i t t L " z 7 n c c n w t e t i s o " s s o c . l d p t u n c = r o t e s e r e l r " r d e > T : f - r i # e i i r / a 1 y p s s n - a / c - = t u p g c n g e 1 " i r = = . s i - " 2 o f " " o c t 1 9 n a # U r r h " u 2 " c z T g i u > l 4 > e o F / p b x " - n - n t . = 1 e 8 s i c " c " - " / o o 3 e / 1 ? 1 n m 3 r > - > . < 9 t 1 0 n 1 = " " r d " " > e l 0 c s - u . e p l l 7 r > a y 9 t b = 9 = / " " " n 1 / h d 1 > i l 4 g k 1 h o " " t / e > n o c r - l i t e " > 処理結果事例 小規模テスト処理(桐壺) 対象 : 東京大学所蔵「桐壺」 ページ数 : 32ページ 処理時間 : 約30秒 成功率 : 100% 並列数 : 10並列 コスト : 約$0.05 パフォーマンス特性 処 コ ス 理 ス ケ 時 ト ー 間 効 リ 率 ン = グ = 約 = 1 $ 秒 1 数 / . 秒 ペ 5 で ー 〜 0 ジ 2 → ( . 2 並 0 0 列 / レ 処 1 プ 理 0 リ 時 0 カ ) 0 ペ ー ジ システムの技術的特徴 1. コールドスタート対応 a s y n c " f " o d " r e コ f ー a t e ル t r x p ド t y c r ス e : e o タ m i r p i c ー p f e t f e ト t t s 時 a u ( a s の i t w a r H t r _ 自 n t a w n T t a w 動 e i a T e i i リ r m t i a P m s t ト a p _ t w E p e h ラ n t t a r t _ イ g i a i r e r " e > m s t o = e " ( e y r = t " m 0 n o , r a : = c c m y x i r T a ( _ 2 o _ i x i r . r m _ m e s e e r a t l q o e g r e u u t e i ( e e t r _ e a p s E i u s t ( t r e r t w ( r s l + e a i o : , m i m r 1 p t a ) m ) t _ g a : t e a x - i _ s _ m u r 1 e r e e ) ) l : t ) r i e s = 3 ) : 2. 設定の外部化 # O D D D C E E E 環 R F F F 境 _ A A A 変 A U U U 数 P L L L に I T T T よ _ _ _ _ る U M C O 設 R A O U 定 L X N T = _ F P h C I U t O D T t N E _ p C N F s U C O : R E R / R _ M / E T A y N H T o T R = u = E x r 1 S m - 0 H l o O c L r D - = s 0 e . r 3 v i c e . a z u r e c o n t a i n e r a p p s . i o 3. Swagger UI統合 # a p A i P I = v t d d 仕 e i e o 様 A r t s c の p s l c = 自 i i e r ' 動 ( o = i / 生 a n ' p d 成 p = N t o p ' D i c , 1 L o s . 古 n / 0 典 = ' ' 籍 ' , O 日 C 本 R 古 典 A 籍 P 専 I 用 ' O , C R 処 理 A P I ' , デプロイメント Azure Container Appsデプロイ # a z コ ン c - - - - - - - - - - テ o n r e i t i m m c m ナ n a e n m a n i a p e ア t m s v a r g n x u m プ a e o i g g r - - o リ i u r e e e r r 2 r 作 n o r o t s e e . y 成 e c c n r - s p p 0 r r e m e p l l 4 a - - e g o e i i \ G p s g n i r x c c i p e r t s t t a a r o t e s s c v u c r 8 r r i p o y 0 n 0 3 e c n . a 0 a e r t a l t g a z e - i u \ n r \ c e e r r c - r \ e . n i v o / o c r - a p p : l a t e s t \ Docker化 # s c ス a m m c ケ l i a o ー e n x o リ : R R l ン e e d グ p p o 設 l l w 定 i i n 例 c c P a a e s s r : : i o 0 3 d 0 : 3 0 0 # # # ア 需 5 イ 要 分 ド 時 で ル : ス 時 ケ : 自 ー 動 ル コ 拡 ダ ス 張 ウ ト ン 0 0 ...

2025年8月31日 · 12 分 · Nakamura

DToC: Dynamic Table of Contextsを試す

概要 DToC: Dynamic Table of Contextsを試す機会がありましたので、備忘録です。 https://www.leaf-vre.org/docs/features/dtoc 機械翻訳の結果は以下です。 セマンティックマークアップの威力と書籍のナビゲーション機能を融合させ、電子読書に革新をもたらします。従来の印刷書籍で長年親しまれてきた目次とキーワード索引という概観機能が、全文検索やタグベースのインデックス機能と動的に統合されることで、新たな読書体験を実現します。 最終的に、以下のような可視化を行うことができました。 https://dtoc.leaf-vre.org/view?document=https://dtoc-demo.vercel.app/P-III-b-1189/dtoc.json 対象データ 東洋文庫が所蔵するモリソンパンフレット「Marco Polo’s adventures : The greatest traveller the world has seen.」をサンプルデータとして利用しました。 https://www.toyo-bunko.org/open/show_detail_open.php?targetid=363479 https://www.toyo-bunko.org/morisonp2015/morisonpocr2016_showimg.php?tgfn=P-III-b-1189&tgfn2=01Geo01 背景 以下のワークショップに参加し、DToCの使用方法を教えてもらいました。 https://github.com/LEAF-VRE/dh2025_workshop 以下のチュートリアルも参考になりました。 https://www.leaf-vre.org/docs/training/tutorials/dtoc-tutorial mainとなるxmlを作成する まず、mainとなるxmlを作成します。以下のURLで確認できます。 https://dtoc-demo.vercel.app/P-III-b-1189/main.xml OCR Azure AI Document Intelligenceを用いてOCRを行いました。 https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence 校正 & タグづけ OCR結果の校正と、人名や地名のタグ付与にあたり、「Google: Gemini 2.5 Pro」を使用しました。 https://deepmind.google/models/gemini/pro/ このように機械的な処理のため、誤りなどが含まれている可能性が高いですが、DToCで使用するためのTEI/XMLファイルを用意することができました。 index用のxmlを作成する 以下を参考にしました。 https://www.leaf-vre.org/docs/training/tutorials/dtoc-tutorial#step-2-create-an-index このindex作成にも「Google: Gemini 2.5 Pro」を使用し、先に作成したmain.xmlから機械的に作成しました。結果は以下です。 https://dtoc-demo.vercel.app/P-III-b-1189/index.xml JSONファイルを作成する DToCでロードするためのJSONファイルを作成します。この部分はGUIから行うことができました。最終的な結果は以下です。 https://dtoc-demo.vercel.app/P-III-b-1189/dtoc.json まず、以下にアクセスし、GitHubアカウントでログインします。 https://dtoc.leaf-vre.org/ 次に以下にアクセスします。 https://dtoc.leaf-vre.org/view そして、チュートリアル資料などを参考に、必要な項目を入力します。 Documentsには、前のプロセスで作成したXMLファイルのURLを入力します。 Corpus Partsでは、XMLファイルのどの部分を使用するか、を指定します。Curpus Partではmain.xmlのdivタグを、Curpus Indexではindex.xmlのdivタグをXPathで指定しました。 ...

2025年7月16日 · 3 分 · Nakamura

NDL古典籍OCR-Liteを用いて、IIIFマニフェストファイルからTEI/XMLファイルを作成する

概要 NDL古典籍OCR-Liteを用いて、IIIFマニフェストファイルからTEI/XMLファイルを作成するGradioアプリの紹介です。 以下のURLからアクセスできます。 https://nakamura196-ndlkotenocr-lite-iiif.hf.space/ 背景 以下の記事の続きです。 これまでは、2つのアプリを使用する必要がありましたが、今回の改修により、単独のGradioアプリで変換作業が完結するようにしました。 また画像のコマ数が多いマニフェストファイルを処理する場合、進捗がわかりにくいことや、処理結果をコピーできない、といった不具合があったので、これらを修正しています。 画面の例 以下のように、「ページ 111/129 を処理中… - 79.7%」といった進捗を表示するように修正しました。 実装にあたっては、Progressを使用しています。 https://www.gradio.app/docs/gradio/progress またOCR完了後は、TEI/XMLファイルをダウンロードするためのリンクが表示されるようにしました。 まとめ Hugging Faceの無料で利用可能なCPUの制約上、OCRに時間がかかることがありますが、参考になりましたら幸いです。

2025年6月12日 · 1 分 · Nakamura

その2:NDL古典籍OCR-Liteを用いたアノテーション付きIIIFマニフェストファイルとTEI/XMLファイルの作成

概要 以下の記事で、NDL古典籍OCR-Liteを用いたアノテーション付きIIIFマニフェストファイルとTEI/XMLファイルの作成について紹介しました。 上記について、説明が不十分な点が多かったため、改めて使い方を紹介いたします。 補足 今回の記事執筆に合わせて、以下の改修を加えました。 プロセス1: IIIFマニフェストファイルの作成 IIIF Presentation API v3に対応しました。 プロセス2: TEI/XMLファイルの作成 プロセス1との接続を考慮して、文字列を入力とするフォームを追加 使い方 プロセス1: IIIFマニフェストファイルの作成 以下にアクセスします。 https://nakamura196-ndlkotenocr-lite-iiif.hf.space/ 今回は、IIIF Presentation API v3でマニフェストファイルが公開されている「東北大学総合知デジタルアーカイブ」を対象とします。以下の「源氏物語湖月抄 本居宣長自筆付箋及書入」を対象とします。 https://touda.tohoku.ac.jp/portal/item/10010030012489 IIIFマニフェストファイルのURLは以下です。 https://touda.tohoku.ac.jp/collection/iiif/0/metadata/10010030012489/manifest.json 以下のように入力します。注意点として、「Image Width」を-1に設定してください。これにより、最大ピクセルの画像をダウンロードするようになります。(デフォルト値である1200ピクセルではエラーとなります。) 結果、OCRテキストをアノテーションとして持つIIIFマニフェストファイルのJSON文字列が画面右側に表示されます。以下の赤字で示すコピーボタンを押して、文字列をコピーしておきます。 プロセス2: TEI/XMLファイルの作成 以下にアクセスします。 https://iiif-tei-monorepo-web.vercel.app/ コピーしたJSON文字列を「Paste Manifest JSON」というフォームに貼り付け、Convert to TEI XMLボタンを押します。 結果、TEIに変換され、XMLファイルをダウンロードできます。 Oxygen XML EditorのAuthorモードで表示した例が以下です。 まとめ 使いにくい点も多いかと思いますが、OCRとIIIF・TEIの応用にあたり、参考になりましたら幸いです。

2025年6月6日 · 1 分 · Nakamura

IIIFマニフェストファイルからOCR結果を含むTEI_XMLファイルを作成するプログラム

概要 IIIFマニフェストファイルからOCR結果を含むTEI_XMLファイルを作成するプログラムを作成しました。このプログラムの使用方法について説明します。 仕組み IIIFマニフェストファイルのURLを指定して、NDL古典籍OCR-LiteによるOCR結果を含むTEI/XMLファイルを作成します。 https://github.com/ndl-lab/ndlkotenocr-lite 使い方 以下のノートブックにアクセスしてください。 https://colab.research.google.com/github/nakamura196/000_tools/blob/main/IIIFマニフェストファイルからTEI_XMLファイルを作成するプログラム.ipynb そして、一つ目の再生ボタンを押します。 完了したら、「実行」という部分のmanifest_urlとoutput_dirの値を更新して、セルを実行します。 output_dirに、OCR結果を含むTEI/XMLファイルが出力されます。 出力例 以下のように、ページおよび行ごとのOCR結果を含むファイルが作成されます。 < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ? ? T t f t t / p p d / s b p / / / / t b a l s l s l s / a l s l s l s l s l s l s l s l s l s l s l s l s l x x E e i i i t u u a p o i t b s f t e o b b e b e b e a b b e b e b e b e b e b e b e b e b e b e b e b e b m m I i l t t i b b t u u b r i o i e x d / g / g / g b / g / g / g / g / g / g / g / g / g / g / g / g / l l H e l l t l l e b r l b u l i t y n > > > > n > > > > > > > > > > > > > - - x e D e e l i i > l c > t l r e H > > = t t t = t t t t t t t t t t t t m m m a e S > e c s 2 i e a > c D e " y y y " y y y y y y y y y y y y o o l d s t O S a h 0 c D r e e a 1 p p p 2 p p p p p p p p p p p p d d n e c m C t t e 2 a e g D s d " e e e " e e e e e e e e e e e e e e s r > t R m i r 5 t s e e c e = = = = = = = = = = = = = = = l l = > > 結 t o > - i c t s > r t " " " t " " " " " " " " " " " " " 果 > n N 0 o > = c > y 本 本 本 y 本 本 本 本 本 本 本 本 本 本 本 本 h h h : S D 1 n " > p 文 文 文 p 文 文 文 文 文 文 文 文 文 文 文 文 r r t t L - S h e " " " e " " " " " " " " " " " " e e t h m 古 2 t t = = f f p t t 典 9 m t " n n n " n n n n n n n n n n n n = = : t > O < t p p = = = p = = = = = = = = = = = = " " / p C / > s a " " " a " " " " " " " " " " " " h h / s R d : g 1 3 4 g 1 2 3 4 5 6 7 8 9 1 1 1 t t w : < a / e " " " e " " " " " " " " " 0 1 2 t t w / / t / " " " " " p p w / p e i c c c c c c c c c c c c : : . i u > i f o o o f o o o o o o o o o c c c / t i b i a r r r a r r r r r r r r r o o o / e i l f c r r r c r r r r r r r r r r r r w w i f i . s e e e s e e e e e e e e e r r r w w - . s d = s s s = s s s s s s s s s e e e w w c d h l " p p p " p p p p p p p p p s s s . . . l e . h = = = h = = = = = = = = = p p p t t o . r i t " " " t " " " " " " " " " = = = e e r i > t t # # # t # # # # # # # # # " " " i i g t c p z z z p z z z z z z z z z # # # - - / c . s o o o s o o o o o o o o o z z z c c n . u : n n n : n n n n n n n n n o o o . . s u - / e e e / e e e e e e e e e n n n o o / - t / - - - / - - - - - - - - - e e e r r 1 t o i 1 3 4 i 1 2 3 4 5 6 7 8 9 - - - g g . o k i " " " i " " " " " " " " " 1 1 1 / 0 k y i > > > i > > > > > > > > > 0 1 2 r r " y o f 国 空 ゆ f あ ・ 中 住 ね に は は な " " " e e > o . . 外 せ ふ . つ ・ 川 ぬ ら く じ つ り > > > l l . a d < み か d た ・ ノ < れ ま め か ぬ こ お ほ e e a c l / 二 ほ l い ・ 中 / 給 れ て し れ ぼ ぼ ど a a c . . s < < . < ・ 川 s は て う う な し す が s s . j i e / / i / ・ 宿 e ぬ も し て ど て て み e e j p t g s s t s ・ に g ま な と な の ふ さ の / / p / c > e e c e ・ て > ゝ ら 世 が 給 し ぐ い x x / r . g g . g ・ 之 に は を ら へ た り と m m r e u > > u > ・ 源 。 ぬ 思 ふ ば り の な l l e p - - ・ 氏 わ を ひ ま 。 。 ほ が / / p o t t ・ 十 れ 。 知 じ な い そ か t t o / o o ・ 六 は こ ぬ く み ど く ら e e / i k k ・ 才 か よ れ こ た ら ち ざ i i i i y y ・ < く ひ ば そ を う い り / / i i o o ・ / 人 な < 思 さ た さ し c c i f . . ・ s に ん / ひ へ し き け u u f / a a ・ e < < s < < と < < s s / 0 c c ・ g / / e / / < / / t t 0 f . . ・ > s s g s s / s s o o f 1 j j ・ e e > e e s e e m m 1 1 p p ・ g g g g e g g / / 1 a / / ・ > > > > g > > s s a 3 i i ・ > c c 3 e i i ・ h h e d i i ・ e e d - f f ・ m m - 1 / / ・ a a 1 8 s s ・ / / 8 c o o ・ r r c 2 t t ・ e e 2 - o o ・ l l - 7 _ _ ・ a a 7 3 o o ・ x x 3 2 g g ・ n n 2 2 a a ・ g g 2 - i i ・ / / - 6 _ _ ・ t t 6 3 2 2 ・ e e 3 4 0 0 ・ i i 4 0 2 2 ・ _ _ 0 - 3 3 ・ a a - 1 1 1 ・ l l 1 9 0 0 ・ l l 9 e / / ・ . . e d A A ・ r r d 3 0 0 ・ n n 3 f 5 5 < g g f 0 _ _ / " " 0 d 4 4 s d 9 / / e t t 9 6 0 0 g y y 6 6 0 0 > p p 6 e 2 2 e e e / / / = = / m A A " " m a 0 0 a a a n 5 5 p p n i _ _ p p i f 4 4 l l f e _ _ i i e s 0 0 c c s t 0 0 a a t " 2 2 t t < / _ _ i i / > 0 0 o o t 0 0 n n i 0 0 / / t 1 2 x x l . . m m e t t l l > i i " " f f / / s s f f c c u u h h l l e e l l m m / / a a f f t t u u y y l l p p l l e e / / n n 0 0 s s / / = = d d " " e e h h f f t t a a t t u u p p l l : : t t / . . / j j r p p p e u g g l r " " a l > > x . n o g c . l o c r . g r n g s d s s t d r l u / c s t c u h r e e m / a 1 t . r 0 o " n ? " > ? > まとめ 不完全な点もあるかと思いますが、参考になりましたら幸いです。 ...

2025年1月30日 · 10 分 · Nakamura

校異源氏物語に対する類似テキスト検索アプリを作成しました。

概要 校異源氏物語に対する類似テキスト検索アプリを作成しました。以下のURLからお試しいただけます。 https://huggingface.co/spaces/nakamura196/genji_predict 本アプリの使用方法などについて紹介します。 データ 以下の校異源氏物語DBで公開されているテキストデータを使用します。 https://kouigenjimonogatari.github.io/ アプリの内容 仕組みは単純で、校異源氏物語の巻毎・ページ毎のテキストを用意しておき、入力された文字列との編集距離を算出し、類似度が高いテキスト(+巻とページ)を返却します。 ソースコードは以下です。 https://huggingface.co/spaces/nakamura196/genji_predict/tree/main 応用例 例えば、以下の「[源氏物語] [4](東京大学総合図書館所蔵)」では、1つのIIIFマニフェスト内に複数の巻が含まれており、何コマ目から何コマ目までが何巻に属するのか、素人には判断が難しい場合があります。 https://da.dl.itc.u-tokyo.ac.jp/portal/assets/b90bbddc-509d-7c12-0fb9-af409a90a487 そこで、上記に資料に対してコマ毎のOCRテキストを取得し、今回作成したアプリに問い合わせることで、ページ毎に推定される巻数が提示され、巻の変わり目を知る手助けを行うことができます。 OCR OCRにあたっては、NDL古典籍OCR-Liteを使用します。 https://github.com/ndl-lab/ndlkotenocr-lite OCR結果を修正して、以下のようなTEI/XMLを作成しました。 < < < < ? ? ? T x x x E < < m m m I t / t l l l e < t e < - - x i f / e x b v m m m H i < < < f i t o < < < e o o l e l t / p / s / i H > d a / a / a r d d n a e i < t u < < p o < s l e y b < < < < < < < < a b < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < a b < < < < < < < < < < < < s e e s d D t t i b p d u u b / o e a > l s l s l s l s b l s l s l s l s l s l s l s l s l s l s l s l s l s l s l s l s l s l s l s b l s l s l s l s l s l s i l l = e e l i t l u a b r i < b u D d n b e b e b e b e > n b e b e b e b e b e b e b e b e b e b e b e b e b e b e b e b e b e b e b e > n b e b e b e b e b e b e o " r s e t l i b t l c b p i r e e = / g / g / g / g = / g / g / g / g / g / g / g / g / g / g / g / g / g / g / g / g / g / g / g = / g / g / g / g / g / g n h h h > c S l e c l e i e l t b c s r " > > > > " > > > > > > > > > > > > > > > > > > > " > > > > > > = r r t > t e S a i > c D > r l e c > 1 t t t t 2 t t t t t t t t t t t t t t t t t t t 3 t t t t t t " e e t m > t t s 2 a e > D > " y y y y " y y y y y y y y y y y y y y y y y y y " y y y y y y 1 f f p t O m i h 0 t s t e p p p p p p p p p p p p p p p p p p p p p p p p p p p p p . = = : > C t o e 2 i c a s t e e e e t e e e e e e e e e e e e e e e e e e e t e e e e e e 0 " " / R > n r 5 o > r c y = = = = y = = = = = = = = = = = = = = = = = = = y = = = = = = " h h / 結 S > - n g > p " " " " p " " " " " " " " " " " " " " " " " " " p " " " " " " t t w 果 t N 0 S e e 本 本 本 本 e 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 本 e 本 本 本 本 本 本 e t t w : m D 1 t t = 文 文 文 文 = 文 文 文 文 文 文 文 文 文 文 文 文 文 文 文 文 文 文 文 = 文 文 文 文 文 文 n p p w t L - m = " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " c : : . h > 古 2 t " p p p o / t t 典 9 > h a n n n n a n n n n n n n n n n n n n n n n n n n a n n n n n n d / e t 籍 < t g = = = = g = = = = = = = = = = = = = = = = = = = g = = = = = = i w w i p O / t e " " " " e " " " " " " " " " " " " " " " " " " " e " " " " " " n w w - s C d p " 1 3 4 5 " 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 " 1 2 3 4 5 6 g w w c : R a s " " " " " " " " " " " " " 0 1 2 3 4 5 6 7 8 9 " " " " " " = . . . / - t : f f " " " " " " " " " " f " t t o / L e / a c c c c a c c c c c c c c c a c c c c c c U e e r i i > / c o o o o c o o o o o o o o o c c c c c c c c c c c o o o o o o T i i g i t i s r r r r s r r r r r r r r r o o o o o o o o o o s r r r r r r F - - / i e i = r r r r = r r r r r r r r r r r r r r r r r r r = r r r r r r - c c n f < i " e e e e " e e e e e e e e e r r r r r r r r r r " e e e e e e 8 . . s . / f h s s s s h s s s s s s s s s e e e e e e e e e e h s s s s s s " o o / d p . t p p p p t p p p p p p p p p s s s s s s s s s s t p p p p p p ? r r 1 l u d t = = = = t = = = = = = = = = p p p p p p p p p p t = = = = = = > g g . . b l p " " " " p " " " " " " " " " = = = = = = = = = = p " " " " " " / 0 i l . s # # # # s # # # # # # # # # " " " " " " " " " " s # # # # # # r r " t i i : z z z z : z z z z z z z z z # # # # # # # # # # : z z z z z z e e > c s t / o o o o / o o o o o o o o o z z z z z z z z z z / o o o o o o l l . h c / n n n n / n n n n n n n n n o o o o o o o o o o / n n n n n n e e u e . i e e e e i e e e e e e e e e n n n n n n n n n n i e e e e e e a a - r u i - - - - i - - - - - - - - - e e e e e e e e e e i - - - - - - s s t > - i 1 1 1 1 i 2 2 2 2 2 2 2 2 2 - - - - - - - - - - i 3 3 3 3 3 3 e e o t f - - - - f - - - - - - - - - 2 2 2 2 2 2 2 2 2 2 f - - - - - - / / k o . 1 3 4 5 . 1 2 3 4 5 6 7 8 9 - - - - - - - - - - . 1 2 3 4 5 6 x x y k d " " " " d " " " " " " " " " 1 1 1 1 1 1 1 1 1 1 d " " " " " " m m o y l > > > > l > > > > > > > > > 0 1 2 3 4 5 6 7 8 9 l > > > > > > l l . o . 国 紅 は あ . O □ 源 / あ ろ か が を " " " " " " " " " " . ろ 上 詠 ち か ひ / / a . i 外 葉 な ふ i O □ 氏 朱 ま か た り あ > > > > > > > > > > i く 達 は と ほ か t t c a t < の の ひ t O □ 十 雀 り る 〴 給 か 前 青 火 と み に お し 詠 一 t 哀 部 て り の る e e . c c / か え < c < □ 七 院 な べ 〵 。 ず に 海 と な や さ も ぶ な 後 c な み ゝ た 色 と i i j . . s < ん / . / □ 才 の り き 物 う お て 波 の る ま し し み ど 順 . る こ 初 る あ 見 / / p j u e / < s u s □ ノ 行 。 た 見 へ ぼ せ を ゝ を ば た ろ お し 伽 u に た う が ひ え c c / p - g s / e - e □ 十 幸 よ び 給 も さ さ ぞ 頭 。 な る き も 給 の - 。 ち ち く ま 給 u u r / t > e s g t g □ 月 ば の の は な る せ ま 中 立 り に ほ ゝ へ こ t み も な の さ 。 s s e r o g e > o > < よ 。 つ こ ぬ つ れ 給 ひ 将 な 。 。 ど ち る ゑ o か み を に り 春 t t p e k > g k / り 神 ね と こ ぼ ば ふ 給 が ら 入 が に 。 は な k と な し ぎ て 宮 o o o p y > y s 四 無 な 成 と の 。 。 け た び が く 。 よ こ ら y 泪 な 給 は つ の m m / o o o e 年 月 ら け を 。 誠 源 る ち て た の お に れ ん o お き へ ゝ ね 女 / / i / . . g の の ず れ 口 み 楽 氏 。 よ は の こ な 見 や と . と 給 る し よ 御 s s i i a a > 十 十 。 ば お 給 を の か う 。 日 ゑ じ え 仏 聞 a し ぬ に き り 。 c c i i c c 月 日 お 。 し は 御 中 た い 花 か ま ま ぬ の ゆ c 給 < ま に も か h h f i . . 迄 < も 御 < ざ < 将 て 人 の げ さ ひ さ 御 。 . 。 / < < < く e e / f j j 有 / し < / ら / は に に か さ り の ま 迦 お j < s / / / < m m b / p p < s < / s ん s 。 は こ た や 。 あ な < も p / e s s s / a a 9 b / / / e / s e < e < 。 < は か 物 < り / し / s g e e e s / / 0 9 i i s g s e g / g / < / ら < の / 。 s < i e > g g g e r r b 0 i i e > e g > s > s / s の / < s < e / i g > > > g e e b b i i g g > e e s e < s / e / g s i > > l l d b f f > > g g e g / e s g s > e f a a d d / / > > g > s g e > e g / x x c d s s > e > g g > s n n - c o o g > > o g g 5 - t t > t / / 0 5 o o o t t 9 0 _ _ _ e e d 9 o o o i i - d g g g _ _ 7 - a a a a a c 7 i i i l l 1 c _ _ _ l l 2 1 2 2 2 . . - 2 0 0 0 r r 0 - 2 2 2 n n f 0 3 3 3 g g b f 1 1 1 " " 9 b 0 0 0 - 9 / / / t t a - A A A y y f a 0 0 0 p p 4 f 5 5 5 e e 0 4 _ _ _ = = 9 0 4 4 4 " " a 9 / / / a a 9 a 0 0 0 p p 0 9 0 0 0 p p a 0 4 4 4 l l 4 a / / / i i 8 4 A A A c c 7 8 0 0 0 a a / 7 5 5 5 t t m / _ _ _ i i a m 4 4 4 o o n a _ _ _ n n i n 0 0 0 / / f i 0 0 0 x x e f 4 4 4 m m s e _ _ _ l l t s 0 0 0 " " < t 0 0 0 / " 0 0 0 s s t / 1 2 3 c c i > . . . h h t t t t e e l i i i m m e f f f a a > / / / t t f f f y y u u u p p l l l e e l l l n n / / / s s f f f = = u u u " " l l l h h l l l t t / / / t t 0 0 0 p p / / / : : d d d / e e e / f f f r p a a a e u u u u l r l l l a l t t t x . . . . n o j j j g c p p p . l g g g o c " " " r . > > > g r n g s d s s t d r l u / c s t c u h r e e m / a 1 t . r 0 o " n ? " > ? > 推定 上記のXMLファイルを入力として、先に紹介したGradioアプリのAPIを利用します。 ...

2025年1月29日 · 25 分 · Nakamura

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を用いたGradio Appを作成しました。

概要 NDL古典籍OCR-Liteを用いたGradio Appを作成しました。 以下でお試しいただけます。 https://huggingface.co/spaces/nakamura196/ndlkotenocr-lite 「NDL古典籍OCR-Lite」ではデスクトップアプリケーションが提供されているため、Gradioのようなウェブアプリがなくても簡単に実行可能な環境が用意されています。 そのため、本ウェブアプリの用途としては、スマホやタブレット等からの利用や、ウェブAPIを介して利用などが考えられます。 作成時の工夫や不具合対応 サブモジュールの利用 本家のndlkotenocr-liteをサブモジュールとして導入しました。 [ s p u u a r b t l m h o = d = u h l n t e d t l p " k s n o : d t / l e / k n g o o i t c t e r h n - u o l b c i . r t c - e o l m i / t n e d " l ] - l a b / n d l k o t e n o c r - l i t e . g i t そして、ビルド時に以下を実行します。 ...

2024年12月4日 · 19 分 · 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

Google Cloud Vision APIを用いて、単一ページから構成される透明テキスト付きPDFを作成する

概要 PDFを対象に、Google Cloud Vision APIを使って、透明テキスト付きPDFを作成する機会がありましたので、備忘録です。 以下、simpleで検索した例です。 背景 今回は単一ページから構成されるPDFを対象とします。 手順 画像の作成 OCRの対象とする画像を作成します。 デフォルトの設定だとボヤけた画像ができてしまったので、解像度を2倍に設定し、また後述するプロセスで、解像度を考慮した位置合わせを実施しています。 以下をインストールします。 P P y i M l u l P o D w F i f i f i # i o # p p # # z # m p i i m r m r m n u d a o a i m m p o p o p 入 p t 入 f g ペ p o 解 t x g g o m o m o 力 u p 力 _ e ー i m 像 . r r r P t u P d ジ x 度 = = = s t P t t t D _ t D o = を = を a I q F p _ F c 画 = 上 f p I v f L j d i フ d p フ u p 像 2 げ i a m e i s m o ァ f d ァ m d と p . る t g a ( t i o イ _ f イ e f し a 0 た z e g " z m n i ル p _ ル n _ て g め . . e . p m と a p を t d レ e に M g . o p 出 t a 開 o ン . ズ a e i # r o 力 h t き = c ダ g ー t t p m t r P h 、 u リ e ム r _ e a P t D = 単 f m ン t 設 i p n g y I F = 一 i e グ _ 定 x i ( e M m t フ " ペ t n し p ( x i . u a q ァ . " ー z t 、 i z m o p P g d イ / . ジ . [ O x o a . n D e m ル i / を o 0 C m o p B g F n o 読 p ] R a m ( y " p u み e で p , m t ) u t 込 n テ ( a e t p み ( # キ ) z t s . u i ス o r I p t n 最 ト o i O d . p 初 を # m x ( f p u の 抽 ) = p " d t ペ 出 解 m i f _ ー 像 a x " p ジ 度 t . # d を 3 ) t f 選 0 o 単 _ 択 0 b 一 p y ペ a D t ー t P e ジ h I s の ) で ( P レ " D ン p F ダ n フ リ g ァ ン " イ グ ) ル ) ) Google Cloud Vision API 出力された画像を対象に、Google Cloud Vision APIを適用します。 ...

2024年11月2日 · 9 分 · Nakamura

縦書きに対応したText Overlay pluginを導入済みのMiradorのリポジトリ

概要 縦書きに対応したText Overlay pluginを導入済みのMiradorのリポジトリを更新しました。 https://github.com/nakamura196/mirador-integration-textoverlay 参考 変更元のText Overlay pluginのリポジトリは以下です。 https://github.com/dbmdz/mirador-textoverlay デモ 以下のページで動作内容をご確認いただけます。 https://nakamura196.github.io/mirador-integration-textoverlay/ 画面右上の「Text visible」ボタンを押すと、テキストが表示されます。ロード中のままとなってしまう場合には、ページの再読み込みをしてください。 参考 以下の記事で紹介した方法を使い、Text Overlay pluginをMirador 3に追加しています。 使用例 Text Overlay pluginの使用方法などについては、以下の記事を参考にしてください。 まとめ 今後、テキスト表示にあたり、ロードしたままになってしまう不具合を解消したいと思います。 IIIF画像とテキストの応用にあたり、参考になりましたら幸いです。

2024年8月23日 · 1 分 · Nakamura

画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成する

概要 画像ファイルに対してGoogle Cloud Visionを適用して、IIIFマニフェストおよびTEI/XMLファイルを作成するライブラリを作成しました。 https://github.com/nakamura196/iiif_tei_py 本ライブラリの使用方法を説明します。 使用方法 以下で使い方などを確認できます。 https://nakamura196.github.io/iiif_tei_py/ ライブラリのインストール GitHubのリポジトリから、ライブラリをインストールします。 p i p i n s t a l l h t t p s : / / g i t h u b . c o m / n a k a m u r a 1 9 6 / i i i f _ t e i _ p y GCのサービスアカウントの作成 以下の記事などを参考に、GC(Google Cloud)のサービスアカウントキー(JSONファイル)をダウンロードします。 ...

2024年8月8日 · 37 分 · Nakamura

ndlocr_cli実行時の共有メモリ不足への対応ほか

概要 ndlocr_cli(NDLOCR(ver.2.1)アプリケーションのリポジトリ)を実行した際、いくつか対応を行う必要がありましたので、その備忘録です。 なお、これらの対応は私の設定漏れや変則的な使用方法によるものが多く、一般的な使用においては発生しないと思われます。同様の不具合が発生した際の参考としてご覧ください。 共有メモリ不足 ndlocr_cliを実行した際、以下のエラーが発生しました。 P D r a e t d a i L c o t a i d n e g r : w 0 o i r t k e [ r 0 0 ( : p 0 i 0 d , ( s ? ) i t 3 / 9 s 9 ] 9 E ) R R e O x R i : t e U d n e u x n p e e x c p t e e c d t e b d u l s y e r r o r e n c o u n t e r e d i n w o r k e r . T h i s m i g h t b e c a u s e d b y i n s u f f i c i e n t s h a r e d m e m o r y ( s h m ) . Chat GPTによる回答は以下でした。 ...

2024年6月5日 · 2 分 · Nakamura

ndlocr_cliをdockerでインストールした後の容量

ndlocr_cliをdockerでインストールした後の容量に関する備忘録です。 以下の手順を参考に、ndlocr_cliをセットアップしました。 以下のように、50GB弱が使われるようでしたので、残りの容量で入出力の画像ファイルなどを処理する必要があります。(以下では、200GBのディスク容量を割り当てた例です。) m F t / t t / t d i m d m m d m x l p e p p e p u e f v f f v f s s s / s s / s e y s s r s d d @ t a a u e 2 1 b m u n t u - 2 2 S 5 1 5 1 5 0 i . 9 2 . . . 4 z 7 6 9 0 1 7 : e G G G M G G ~ / n U 1 6 4 d s . 4 . . l e 4 5 1 0 o d M G 0 0 M K c r A _ v 5 1 5 1 5 c a . 4 2 . . . l i 7 3 9 0 1 7 i l G G G M G G $ U d s 2 f e 1 4 0 0 1 1 % % % % % % % - h M / / / / / r d r b r u u e u o u n n v n n t / t e s l u d h e s m c f e o k i r n / 1 0 0 0 AWS(Amazon Web Services)やmdx(データ活用社会創成プラットフォーム)において、仮想マシンを立ち上げる際の、仮想ディスク(GB)の指定などに役立てば幸いです。 ...

2024年6月3日 · 2 分 · Nakamura