Skip to content

NDL古典籍OCR-Liteのアプリケーションのリポジトリ(ソースコードを含む)

License

Notifications You must be signed in to change notification settings

ndl-lab/ndlkotenocr-lite

Repository files navigation

NDL古典籍OCR-Liteアプリケーションのリポジトリ

NDL古典籍OCR-Liteを利用してテキスト化を実行するためのアプリケーションを提供するリポジトリです。

NDL古典籍OCR-Liteは、江戸期以前の和古書、清代以前の漢籍といった古典籍資料のデジタル化画像からテキストデータを作成するOCRです。

GPUを必要としないOCR処理に特徴があり、ノートパソコン等の一般的な家庭用コンピュータやOS環境において高速に実行可能です。

Windows(Windows 10)、Intel Mac(macOS Sequoia)及びLinux(Ubuntu 22.04)環境において動作確認しています。

資料により得意・不得意がありますがNDL古典籍OCR ver.3と比較するとテキスト化精度が2%程度低下することが分かっています。今後、精度についてもNDL古典籍OCRと同等以上の水準を目指して改善を図ります。

本プログラムはNDLラボにおけるこれまでの調査研究活動によって得られた知見等やみんなで翻刻データ(外部サイト)をはじめとする人文情報学分野において構築・蓄積・公開されてきたデータ資源を活用することで独自に開発したものです。

本プログラムを開発・改善するに当たって利用したデータセット等の詳細については、古典籍資料のOCRテキスト化実験及びOCR学習用データセット(みんなで翻刻)も参照してください。

本プログラムは、国立国会図書館がCC BY 4.0ライセンスで公開するものです。詳細についてはLICENCEをご覧ください。なお、本アプリケーションの実行時に利用するライブラリ等のライセンスについてはLICENCE_DEPENDENCIESをご覧ください。

デスクトップアプリケーションによる利用

releasesからお使いのOS環境(Windows/Mac/Linux)に合ったファイルをダウンロードしてください。

Mac環境における利用の場合には、次の記事も参考にしてください。

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

zipファイルを展開後、「ndlkotenocr_lite」をダブルクリックする等で実行してください。

デスクトップアプリケーションの操作方法及びビルド方法についてはデスクトップアプリケーションの利用方法を参照してください。

次のgifアニメーションは、"深川錦鱗 作 ほか『亀屋万年浦島栄 2巻』,刊,天明3 [1783]. https://dl.ndl.go.jp/pid/8929445 "をWindows版デスクトップアプリケーションによってテキスト化するデモを示しています。

コマンドラインからの利用

※コマンドラインから操作を行うにはPython 3.10以上が必要です。

事前準備

git clone https://github.com/ndl-lab/ndlkotenocr-lite
cd ndlkotenocr-lite
pip install -r requirements.txt
cd src

実行例1.(同階層にある「竜宮苦界玉手箱 _ 3巻_9892834_0001」という名称のディレクトリ内の画像を一括処理し、tmpdirという名称のディレクトリに結果を出力する。)

python3 ocr.py --sourcedir 竜宮苦界玉手箱 _ 3巻_9892834_0001 --output tmpdir 

実行例2.(同階層にある「digidepo_1287221_00000002.jpg」という名称の画像を処理し、tmpdirという名称のディレクトリに結果を出力する。)

python3 ocr.py --sourceimg digidepo_1287221_00000002.jpg --output tmpdir 

パラメータの説明

--sourcedirオプション

処理したい画像の含まれるディレクトリを絶対パスまたは相対パスで指定する。ディレクトリ内の"jpg(jpegも可)"、"png"、"tiff(tifも可)"、"jp2"及び"bmp"の拡張子のファイルを順次処理する。

--sourceimgオプション

処理したい画像を絶対パスまたは相対パスで直接指定する。"jpg(jpegも可)"、"png"、"tiff(tifも可)"、"jp2"及び"bmp"の拡張子のファイルを処理することが可能。

--outputオプション

OCR結果を保存する出力先ディレクトリを相対パスまたは絶対パスで指定する。

--vizオプション

--viz Trueを指定することで、文字認識箇所を青枠で表示した画像を出力先ディレクトリに出力する。

--deviceオプション(ベータ)

対応GPUを搭載したサーバかつonnxruntime-gpuがインストールされている環境に限り、--device cudaを指定することでGPUを利用した処理に切り替える。

OCR結果の例

資料画像(文字認識箇所を青枠で表示) OCR結果(誤認識を含む)

『竹取物語』上,江戸前期. https://dl.ndl.go.jp/pid/1287221/1/2
いまはむかしたけとりのおきなといふ
ものありけり野山にましりてたけ
をとりつゝよろつの事につかひけり
名をはさるきのみやつことなんいひ
ける其竹の中にもとひかる竹なん
一すちありけりあやしかりてよりて
見るにつゝの中ひかりたりそれをみ
れは三すんはかりなる人いとくつくしう
てゐたりおきないふやうわれ朝こと夕
ことに見るたけの中におはするにて
しりぬ子になり給ふへき人なめり
とて手にうち入て家へもちてきぬ
めの女にあつけてやしなはすうつ
くしき事かきりなしいとおさなけ
れははこに入てやしなふ竹とりのお
さな竹とるに此子を見つけてのちに

曲亭馬琴 作 ほか『人間万事賽翁馬 3巻』,鶴喜,寛政12. https://dl.ndl.go.jp/pid/10301438/1/17
馬九郎わつとなくこんと
ともにきこゆるゑんじ
のかねあたりを
みればコはいかに
さいわうじのやか
たとみしはもと
やすらひたるのはら
にておや子ゆめさめ
おどろけば馬もの
そのまゝつな
がれてたい
くつそうな
るはないばい
さてはゆめ
かとおや
子がうれ
しさ
むねは
ぜんたり
ときに
ぎや
くわんぜ
をんから
やくと
ひかり
近はな
ちむ
りやうにつかしぎの
方便をといて
馬介郎おや子
をみちびき
たもふ
そのときくわんおんつけたまわくどふだ馬五郎
おそれるからくはくのたねさいわいはわざわい
のもとすこしのさいわいわいあればまたすこ
のわざわひあり大イなるさいわいにあへばかなら
ず大イなるわざわいありそのわざわいはよく
しんから心のこまにたづなをゆるしや〳〵
鳥のけんくわこうろん人くひ馬のわるだくみ
いろくるひのまめごのみそれからしゆらのた
いこをうつぼんぶのよくにめくら馬ついにい
もへごしとなりてぶい〳〵無為をたのして
だしたゞさいわいもなくわざわい
もなく無事をにんげんのたからと
いふなり積善のいへ余慶あり
積悪のいへ余欲あり馬九郎
さらばチヤう
チヤ〳〵チヤ
かきけすごとく
うせたもふ
ざん〳〵
あやまり
で入りました
〽ありがたや〳〵

『論語10卷』一,江戸. https://dl.ndl.go.jp/pid/11892692/1/4
適齊為高昭子家臣以通乎景公公欲封
以尼谿之田憂嬰不可公感之孔子遂行
及乎魯定公元年壬辰孔子年四十三丙
季氏強僭其臣陽虎作乱専政故孔子不
仕而退脩詩書礼楽弟子彌衆九年庚子
孔子年五十一、公山不伍以費畔季氏召
孔子欲往而卒不行。定公以孔子為中都
宰一年四方則之遂為司空文為大司冦。
十年辛丑相定公会斉侯于夾谷齊人帰
魯侵地十二年癸卯使仲由爲季氏宰-
三都收其甲兵孟氏不肯隨成団之不克
十四年乙巳孔子年五十六攝行相事誅
寅正卯與聞国政三月魯国大治[ノ]国大治[ニ]暦
玄楽以組之季桓子受之。郊又不致勝組
於大夫 ̄ニ孔子行適衛子路妻兄顔濁
郷家適陳過過臣人以為陽陽虎而拘之。既

伊藤博文書簡 岩倉具視宛, 明15.8. https://dl.ndl.go.jp/pid/9973821/1/4
両氏の其主説ハ守鶴ニ傾斜セル者ト翁に候昨日
スタインヒ一面銭とも既ニ其説ク所英仏仏獨三ケ国ノ
国体及ヒ其国ノ甚阿馬ノ主説トスル所ヲ分別シテ以
テ御坐ノ整格ヲ興起セシメ中ニ其概略ヲ申上ハ三国何
レモ議政体ナレル其精神大ニ焉ナル者アリ亜人ノ説ク
所ハ政府ナルモノハ桁砕ク国会ニ於テ衆論ノ多数ヲ占ソ
タル堂派ノ首領タルモノ政治ヲ施設スル所ト云仏人ハ
政有ハ国会衆議ノ臣僅ナリト云偶人ハ政府タル者ハ
衆議ヲ採ルモ独立行為ノ権アリト云若シ此独立行
為ノ権ナケレハ国会若シ其国費ヲ供給セサル時ハ各
ヲ束シテカ国政ヲ放擲セサルウ得ス豈ニ斯ノ如キノ理
アランヤ況ンヤ居主ハ立活行双ノ大権ヲ親ヲ掌トリ
君主ノ認可ヲ得スシテ一モ法律ト為ル者ナク君主ノ
許諾ヲ得スシテ一モ施設スルコトナキノ主脳タルニ於テ
オヤ由是観之邦国ハ乃チ君主ニシテ君主乃チ邪国ト云
モ可ナリ然レトトコト異ナル者アリ立憲君主ノ国ニ在
即各宰相
及ヒ百般ノ
ノ恨同ナリ
テハ立法ノ組織幅蠟院行政ノ組織湯
政治皆ヲ一定ノ組織組津波ニ随テ運用スル是ナリ
大雷如斯ト雖モ之ヲ学問上ノ分易定哉ニ依リ申上候時ハ
勿論片紙ノ所尽ニ無之一又甚長ニ渉リ妙モ無
事ニ坐候故略之申ニ
方栖川完既二何左利二御着中旬頃迄御滞在夫ゟ仏
国へ向チ候発途ニ相成との桶草ゟ一昨日

モデルの再学習及びカスタマイズについて(開発者向け情報)

学習及びモデル変換手順をご覧ください。

技術情報について(開発者向け情報)

NDL古典籍OCR-Liteは「レイアウト認識」、「文字列認識」、「読み順整序」の3つの機能(モジュール)を組み合わせて実現しています。

レイアウト認識にはRTMDet[1]、文字列認識にはPARSeq[2]をそれぞれ用いており、読み順整序については当館が公開しているNDL古典籍OCR ver.3と同様のモジュールを用いています。

[1]Chengqi Lyu, Wenwei Zhang, Haian Huang, Yue Zhou, Yudong Wang, Yanyi Liu, Shilong Zhang, Kai Chen. Rtmdet: An empirical study of designing real-time object detectors. arXiv preprint arXiv:2212.07784, 2022.(https://arxiv.org/abs/2212.07784)

[2]Darwin Bautista, Rowel Atienza. Scene text recognition with permuted autoregressive sequence models. arXiv:2212.06966, 2022. (https://arxiv.org/abs/2207.06966)

レイアウト認識及び文字列認識の機械学習モデルは、いずれもpytorchをフレームワークとした学習を行った後にONNX形式に変換して利用しています。詳しくは学習及びモデル変換手順をご覧ください。

開発背景及び技術検討に関するより詳細な情報については、次の論文(※2024年12月公開予定)をご覧ください。

青池亨. CPU環境で高速に動作する軽量OCR「NDL古典籍OCR-Lite」の開発. 人文科学とコンピュータシンポジウム論文集 : じんもんこん2024 (情報処理学会シンポジウムシリーズ = IPSJ symposium series ; vol. 2024 no. 1). 情報処理学会, 2024.12

ポスター

About

NDL古典籍OCR-Liteのアプリケーションのリポジトリ(ソースコードを含む)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages