日本語特化OCR&文章画像解析エンジン「YomiToku」解説!日本語ポスターや漫画を解析してみた
2024/11/26、日本語対応のOCR Pythonパッケージがリリースされました!
「YomiToku」は日本語特化のAI文章画像解析エンジンになります。指定した画像内の文字をOCRで読み取り、テキストや図表を認識・抽出・変換をするというパッケージです。
- 日本語特化のOCR
- 独自に学習されたAIを活用
- VRAM 8GB 以内で動作
YomiToku以外にもOCRでテキストを読み取るものはありますが、日本語特化のOCRは初めてなのではないでしょうか。本記事ではYomiTokuがどういったものなのか、google colaboratoryでどのように実装するのかをお伝えします。
また、OCRの精度も検討してみたいと思いますので、ぜひ最後までお読みください!
YomiTokuの概要
近年、OCRや文章画像解析技術に関連するサービスが続々とリリースされていますが、その背景にはRAGの普及が考えられます。
RAGは、OCRによってスキャンされた文書や画像内の文章をテキスト化し、それを知識データベースや検索インデックスとして利用したり、OCRで取得したテキストをRAGシステムに統合することで、画像内の文章を含む文書データを検索可能にします。
近年リリースされたOCR・文章画像解析技術として、LINE Worksが2024年9月にリリースしたCREPEは複数のOCRモデルを使わずに単一モデルで画像からテキストおよび座標情報を取得しています。
そのほかにもSmartReadやAIReadなどがあります。
YomiTokuも文章画像解析技術ですが、日本語特化としているのはYomiTokuがはじめてではないでしょうか。
YomiTokuはローカルサーバーで実行可能であり、ただ文字起こしをするだけではなく、文章内のレイアウトや図表の解析なども行うことができます。
YomiTokuの機能は3つです。
- AI-OCR
- レイアウト解析
- エクスポート
AI-OCR
AI-OCRは、文章画像に対し、全文のOCRを実施、文章画像からテキストの位置と認識結果の取得が可能です。
搭載されているモデルは、開発者が独自に構築したデータセットで学習をしたAIモデルが使われており、最新論文や学会情報などライセンスの制約を考慮した上で内部モデルの選定が行われています。
さらに、YomiTokuのAI-OCRは、約7000種類の文字識別に対応しており、横書きだけでなく縦書きにも適用しています。PDFファイル以外にもカメラで撮影した文章の読み取りもでき、日本語特化ではありまずが、英語にも対応しています。
レイアウト解析
レイアウト解析では、読み込んだ文章画像のレイアウトを解析します。
文章内の段落などテキストのまとまりを予測したり、文章内に含まれている図や表、画像抽出、表の構造解析などができます。また、文章に含まれている文章の読み順推定をヒューリスティックなアルゴリズムを用いて解析。
ここで活用されているAIモデルも開発者が独自に構築したデータセットで学習したAIモデルが使われています。
また、罫線がない表や、日本語を多く含む複雑なセル結合を含む表の解析も可能です。
エクスポート機能
YomiTokuで解析した結果は、JSON、CVS、HTML、Markdownなどのファイルとしてエクスポートができます。
また、解析した図や画像を切り取り、別のファイルとして保存することやHTMLとMarkdownであれば、画像情報をファイル内に埋め込んで、出力することも可能です。
YomiTokuのライセンス
YomiTokuのライセンスはCC BY-NC-SA 4.0です。
CC BY-NC-SA 4.0は、非商用での個人利用が中心です。そのため、商用目的で利用する場合には別途商用ライセンスの取得が必要となります。開発者に問い合わせをすれば、商用ライセンスを取得できます。
利用用途 | 可否 |
---|---|
商用利用 | ❌ |
改変 | ⭕️ |
配布 | ⭕️(条件付き) |
特許使用 | 不明 |
私的使用 | ⭕️ |
また、CC BY-NC-SA 4.0では配布は許可されていますが、次の条件を守る必要があります。
- 帰属表示: 著作権者の名前や作品情報、ライセンス情報を記載する。
- 非商用:商用目的で配布してはいけない。
- 継承:配布する場合も同じCC BY-NC-SA 4.0ライセンスを適用する。
なお、洗練されたUIのオープンRAGシステムについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
YomiTokuの使い方
それでは実際にYomiTokuを実装します。技術に関してはGitHubに掲載されているのでそちらを参考に実装します。
またCPUでもYomiTokuは使えるようですが、処理速度が遅くなるため、おすすめされていません。GPUの利用量はそこまで大きくないので、無料のgoogle colaboratoryでも十分実装可能です。
◼︎Pythonバージョン
Python3.8以上
◼︎システム RAM
1.1 / 12.7 GB
◼︎GPU RAM
0.0 / 15.0 GB
◼︎ディスク
33.3 / 112.6 GB
google colaboratoryでのYomiTokuの実装
まずはライブラリをインストールします。
!pip install yomitoku
pytorch はCUDAのバージョンにあったものをインストール。デフォルトではCUDA12.4以上に対応したものがインストールされます。
pytorch は2.5以上のバージョンに対応。その関係でCUDA11.8以上のバージョンが必要になります。対応できない場合は、リポジトリ内のDockerfileを利用してください。
インストールが終了したらあとは実行するだけです。
yomitoku ${path_data} -f md -o results -v --figure
「${path_data}」に解析したいPDFや画像パス名を入力すれば良く、解析結果は「Results」フォルダが作られ、その中に保存されます。
赤矢印で示されているのは、読み順推定になります。
YomiTokuのオプション設定
- ${path_data} :解析対象の画像が含まれたディレクトリか画像ファイルのパスを直接して指定。(ディレクトリを対象とした場合はディレクトリのサブディレクトリ内の画像も含めて処理を実行します。)
- -f, –format:出力形式のファイルフォーマットを指定。(json, csv, html, md をサポート)
- -o, –outdir:出力先のディレクトリ名を指定。存在しない場合は新規で作成されます。
- -v, –vis:指定すると解析結果を可視化した画像を出力します。
- -d, –device:モデルを実行するためのデバイスを指定。gpu が利用できない場合は cpu で推論が実行されます。(デフォルト: cuda)
- –ignore_line_break:画像の改行位置を無視して、段落内の文章を連結して返します。(デフォルト:画像通りの改行位置位置で改行します。)
- –figure_letter:検出した図表に含まれる文字も出力ファイルにエクスポートします。
- –figure:検出した図、画像を出力ファイルにエクスポートします。(html と markdown のみ)
分かりやすいようにいくつか例を提示します。まずは単一画像ファイルの解析です。
!yomitoku input_image.jpg -f md -o results -v --figure
次がディレクトリ内のすべての画像を解析。
!yomitoku ./images/ -f json -o results --figure
CPUでの解析。
!yomitoku input_image.jpg -f csv -o results -d cpu
改行を無視して解析。
!yomitoku input_image.jpg -f html -o results --ignore_line_break
YomiToku使用上の注意
YomiTokuはCPUでも実行可能ですが、CPUは最適化されておらず処理時間が長くなります。また、活字のみをサポートしており、読み取れる場合もありますが手書き文字はサポートしていません。
AI-OCRの精度を高めるためには、入力画像の解像度が重要なので、最低でも短辺720px以上の画像で推論することがおすすめされています。
YomiTokuのOCR精度を検証
YomiTokuのOCR精度がどれくらいのものなのかを下記3つのタスクから検証したいと思います。
- 日本語のポスター
- 日本の漫画のワンシーン
- 日本語論文
ポスター解析
解析するポスターはこちらのポスターを解析します。
また、ポスターを解析した結果得られたマークダウンのテキスト情報をChatGPTに教えた場合と教えなかった場合で、ChatGPTで画像の解釈に齟齬が生まれるかを検証します。
読み込ませた後に質問する内容は、次の2つです。
このポスターでは何を募集していますか?
ポスター内で工夫した点について言及されていますか?されていれば、何を工夫していますか?
ポスター解析のマークダウンの結果はこちら
村の抜本的な治安回復のための
鬼ヶ島道中での遠征隊強化と鬼退治
桃太郎(村出身)
’04年度 第213回 村会議
目的-鬼ヶ島に遠征隊を派遣し、村への今後の鬼の襲来を抑制する
背景·村は窮地に立たされつつも、状況打開の好機を掴んでいる
窮地!鬼襲来への抜本的対策が必要
好機!鬼の本拠は油断中
鬼ヶ島の位置が特定!
[田吾作,'02]
問題- 村の単独遠征ではむしろ状況を悪化させる
問題2
復讐の恐れ
村だけ目立つと
後で怖い
方法-道中で登用した動物に活躍させたら虚勢を張って素早く撤収
工夫1
道中での動物登用
動物が好む匂いを強烈に発する
団子を持って村を出発。団子で
釣って森の動物を味方に。
→遠征戦力不足解消!
期待される結果–村人被害なしに次回襲来までの時間を稼げる
村 森
遠征なし ×被害大が継続 △被害小が継続
遠征成功 ◎当面被害なし ◎当面被害なし
遠征失敗 △遠征隊のみ被害 ×被害増大(国子で許してもらう)
嘘の猛獣戦力による牽制効果
森への恐れが襲来の抑止力となる。
実際には森に猛獣守備隊はいないた
め、いずれは効果が消える。
それまでの期間をどのように生かす
かが課題。
まとめ-遠征隊派遣は好機 少人数でも団子があればうまくやれる
匂いのよい団子募集中
presented by Hisashi Ishihara
マークダウン情報ありでのChtGPT解析の結果1はこちら
このポスターでは、「匂いのよい団子」を募集しています。団子は、遠征の道中で動物を味方に引き入れるために必要とされるアイテムとして記載されています。ポスター全体の文脈から、団子が遠征隊の成功に重要な役割を果たすとされています。
マークダウン情報ありでのChtGPT解析の結果2はこちら
はい、ポスター内では工夫した点について言及されています。具体的には以下の内容が挙げられています:
### 工夫1: **道中での動物登用**
- 遠征中に「動物が好む匂いを強烈に発する団子」を持参し、動物を味方に引き入れる方法が提案されています。
- この工夫により、遠征戦力の不足を解消しようとしています。
### 工夫2: **森の動物主体の奇襲**
- 鬼ヶ島に到達後は、森の動物を活用して奇襲を行い、村の遠征隊は最小限の負担で目的を達成する計画です。
- この工夫で復讐対象を分散し、村の被害を抑える狙いがあります。
### 工夫3: **大戦力だと虚勢を張る**
- 少数の遠征隊でも虚勢を張り、団子による匂いで混乱を引き起こして鬼に圧倒的な準備体制があると誤認させます。
- 実際には「嘘の猛獣戦力」を示すことで、鬼の襲来を抑止しようというアイデアです。
これらの工夫はすべて、少人数でも効率的に遠征を成功させ、村を守るという目的に寄与しています。
マークダウン情報なしでのChtGPT解析の結果1はこちら
このポスターは、「村の抜本的な治安回復」を目的として、**団子を持った遠征隊員**を募集しています。ポスターの最後に「少人数でも団子があればうまくやれる」と記載されており、「匂いのよい団子募集集中」と明記されています。団子は、鬼退治や遠征成功のために重要な役割を果たすアイテムとして描かれています。
マークダウン情報なしでのChtGPT解析の結果2はこちら
このポスターでは、鬼退治や遠征隊の派遣に関して、具体的な方法や工夫がいくつか言及されています。以下にその工夫点をまとめます:
1. **道中で登用した動物の活用(工夫①)**
- 動物が好む匂いの強い団子を活用して、動物を引き寄せて村を助ける仕組みを作り、遠征隊の不足を補っています。
- この工夫により、動物の力を活かして効率的に鬼退治を進めることが目的とされています。
2. **森の動物主体の奇襲(工夫②)**
- 森で鬼を待ち伏せし、動物を活用して効率的に鬼退治を行う戦略です。これにより、復讐対象が村に集中することを防ぐ効果が期待されています。
3. **大戦力だと見せかけての虚勢(工夫③)**
- 少数の遠征隊でも大戦力を装い、虚勢を張ることで鬼を混乱させ、被害を最小限に抑える工夫がされています。これにより、次回の襲来までの時間稼ぎを可能にしています。
これらの工夫は、「少人数でも効果的に鬼退治を行う」ことをテーマにした戦略としてポスター内で強調されています。
下記の動画ではマークダウンの結果のテキスト情報の有無でChatGPTの解釈に違いが生まれるかを検証しています。
検証した結果、齟齬は生まれませんでした。
漫画の解析
漫画の解析では、日本の漫画のワンシーンを解析します。
しかし、マークダウン出力がエラーになってしまい、画像のみ出力されました。OCRや読み順推定は適切に行われています。
日本語論文の解析
最後は日本語の論文を解析してもらいます。解析する論文はこちらです。
論文では特に図表の読み取りが重要になりますので、図表を適切に読み取り、図表のみで画像を保存してもらいます。
マークダウンの結果はこちら
572
人工知能学会誌 25巻4号(2010年7月)
解説
転 学 習
Transfer Learning
神鳥 敏弘
産業技術総合研究所
National Institute of Advanced Industrial Science and Technology (AIST).
Toshihiro Kamishima
mail@kamishima.net, http://www\.kamishima\.net/
Keywords: transfer learning, inductive transfer, domain adaptation, multitask learning, semi-supervi
learning.
1. は じ め に
転移学習 (transfer learning) という語は、かなり幅
広い機械学習の枠組みに対して使われており、統一され
た形式的定義を与えることは難しい. だが、形式的では
ない定義としては、転移学習のワークショップの論文募
集 [TT 05] 中の,次のものが広く受け入れられるだろう.
the problem of retaining and applying the knowledge
learned in one or more tasks to efficiently develop an
effective hypothesis for a new task
新規タスクの効果的な仮説を効率的に見つけ出すた
めに、一つ以上の別のタスクで学習された知識を得
て、それを適用する問題
すなわち、ある問題を効果的かつ効率的に解くために、
別の関連した問題のデータや学習結果を再利用するのが
転移学習である.
例えば、コンピュータ雑誌の記事中の単語の品詞を
特定する問題を考えよう. 品詞を分類する規則は、それ
に含まれる各単語の品詞を示した文書を集めた、コーパ
スと呼ばれるデータから、機械学習の手法によって獲得
する. コンピュータ雑誌記事のコーパスでは, CPU も
monitor という単語も名詞であることが多く、これらの
単語が現れたら名詞という規則が獲得される. 一般に,
このコーパス中の文書数が多いと、より正確に品詞を分
類できる. ところが、コンピュータ雑誌記事データは全
部使ってしまい、経済関係の新聞記事のコーパスしかな
いとしよう. それでも、こうした新聞記事も,同じ言語
で書かれているので品詞の推定に役立つと予測できるが,
単純に二つのコーパスを混ぜたデータから学習すると問
題が起きる. 例えば, CPU という単語は新聞記事でも名
詞として現れるが, monitor という語は『監視する』と
いった意味で動詞として新聞記事では現れる. こうした.
二つのデータの違いをうまく捉え, CPU のような場合だ
けに新聞記事のデータを利用して、コンピュータ雑誌記
事の品詞を特定する規則を獲得したい. このように、関
連しているが異なる部分もあるデータから、目的の問題
にも利用できる情報·知識だけを取り込んで、 より予測
精度の高い規則を得るのが転移学習の目標である.
現在では, Web などから大量のテキストデータはかな
り容易に収集できるようになったため、教示情報が不要な
教師なし学習で獲得できる言語モデルなどは格段に精度が
向上した. 一方,音声認識の音響モデルや,文書分類のモ
デルなどはそれほど向上していない. その理由として、こ
れらのタスクには、教示情報付きの学習データが必要であ
り,その情報は人手で与えなければならないことがあげら
れる. しかし、こうした教示情報を大量に与えるのは、 費
用,人的資源,時間などの制約から、一般には困難だとい
う問題がある. この問題に対処するための機械学習の方針
は三つあるだろう. 一つ目は、少数のラベルありデータ
を準備し、多数のラベルなしデータを活用して予測精度
を向上させる半教師あり学習 (semi-supervised learning)
[Chapelle 06] である. 二つ目は、より効率的な分類がで
きるように選んだ事例に対して、教示情報を与えさせる能
動学習[中村 97,渡辺 05] である. そして、最後がこの転
移学習であり、上記のような需要に応えるため、転移学習
に関する研究は活発になっている.
転移学習の考えはかなり以前からあり,1995年の
NIPS のワークショップ [LtL 95] から,機械学習の一分
野として認識されるようになった. 転移学習の呼び方が
定着しつつあるようなので、この呼び方を本稿では採用
するが, 10 数年にわたっていろいろな呼び方をされてき
た. 例えば、帰納転移(inductive transfer), ドメイン適
応(domain adaptation), マルチタスク学習(multitask
learning), knowledge transfer, learning to learn, lifetime
learning などである. さらに、共変量シフト (covariate
shift) [Shimodaira 00, 杉山 06], 標本選択バイアス
[Heckman 79,星野 09],音声認識分野の話者適応なども,
転移学習のより限定された分野ともみなせる.
Pan & Yang の転移学習のサーベイ [Pan 08b] では,
体系的な議論が試みられている. また、自然言語処理
で、この転移学習に取り組んでいる Daume は、ブログ
[Daume III] で、転移学習に対する考えを示している.
論文の内容をマークダウンで出力してもらいましたが、適切に出力ができていましたし、図表の切り出しも問題なく行えました。精度はかなり高いと言えます。
なお、Claudeが全てのアプリと繋がるModel Context Protocolについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
まとめ
本記事ではYomiTokuについて解説をしました。日本語特化のOCRはこれまではありませんでした。今回YomiTokuの検証してマークダウン形式で出力したテキストは精度がかなり高く、図表の読み取りも問題なく行えました。
今後はOCR機能を活用してテキストの前処理→RAG構築といった実装が可能になりそうですね。
ぜひ本記事を参考にYoimTokuを使ってみてください!
最後に
いかがだったでしょうか?
AI-OCRで煩雑な紙ベースの処理を一気にデジタル化し、戦略的な業務に集中できる環境を実現しましょう。
株式会社WEELは、自社・業務特化の効果が出るAIプロダクト開発が強みです!
開発実績として、
・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。