基盤モデルなどを使いながら、文章をOCRするメモ
24/11/5 提供頂いた情報を少し追記しました。
はじめに
最近は専門的な領域に強い大規模言語モデルのシステム構築を検討しています。
推論性能向上の鍵となるのが、専門的な文章のデータ活用です。
専門的なテキストを電子的に入手できればベストなのですが、紙面などでしか入手できないケースも多いです。
そこで本記事では、大規模言語モデルなども活用しながら、専門的な書籍をOCRして適切にテキスト抽出する手段を探ってみます。
タスク設計
通常の著作物だと、記事にしづらいので、今回はwikipediaの記事をOCRしてみることにします。
ページを一度、プリンタで印刷し、スキャンし直すことにしました。
![](https://assets.st-note.com/img/1730710454-wETtKmybqLxz3BW2ZX56DI1u.png)
書籍には、不規則に図表などが入っていたりすることがあります。
また、レイアウトが乱れたりすることもよくあります。
このあたりの整理をいい感じにしてくれるシステムを見つけるのが、今回のミッションです。
結果
結果一覧です。
いまのところ、「OCRソフトでの文字認識 + GPT-4oでの修正」がベストでした。
次点として、「OCRソフトでの文字認識+軽量モデルでの修正」となりました。
基盤モデルでそのままOCRするのはだめでした。
![](https://assets.st-note.com/img/1730714332-siTudV5ewmg9xlJFP0OW4p72.png?width=1200)
手法1 OCRによる文字認識+大規模言語モデルによる修正
OCRの標準的な文字認識機能でテキストを生成した後、大規模言語モデルで破綻した箇所を修正するアプローチを試してみます。
1. 標準的なOCRのみを使う → ×
筆者は、以下のスキャナーで専門書、数百冊以上を自炊した経験があります。
このスキャナーには、標準的な文字起こし機能がついていますので、まずはこれで文字起こしをしてみました。
結果は以下の通り。
![](https://assets.st-note.com/img/1730710923-Em50qLkeR1h4b3gpsPaDWf6w.png?width=1200)
文章が途中で途切れたり、誤認識が多かったりしますので、流石にこのままでは使えません。
1a GPT-4oに修正させる → ×
以下のようなプロンプトを与えて、OCRの文章を修正させることにしました。
![](https://assets.st-note.com/img/1730711162-DESZjm0nhGPld21tAgLpwOk4.png?width=1200)
結果は以下の通り。
アセトン
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アセトン(acetone)は有機溶媒として広く用いられる化合物で、もっとも単純な構造のケトンである。IUPAC命名法ではプロパン-2-オン(propan-2-one)、あるいは単にプロパノンと呼ばれる。無色の液体で、水、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂も溶かすことができる。蒸気圧が20 kPaと高く、常温で高い揮発性を有し、引火性が強い。
別名: ジメチルケトン
IUPAC名: プロパノン、プロパン-2-オン(優先IUPAC名)
識別情報
CAS登録番号: 67-64-1
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトン-ブタノール-エタノール発酵によって生成されるほか、人体でも正常な代謝プロセスの結果としてケトン体から自然に生成され排出される物質である。生殖毒性試験では、生殖に関する問題を引き起こす可能性が低いことが明らかになっている。エネルギー必要量が高く、体内の脂肪の利用が高まるとアセトンの生成レベルも高くなり、妊婦、授乳中の母親、小児の体内アセトンレベルは自然と上昇する。糖尿病患者が糖尿病性ケトアシドーシスに陥った際には、大量に生成され、呼気がアセトン臭を呈することがある。また、難治性てんかんの乳児や小児のてんかん発作を減少させるために、体内のケトン体を増加させるケトン食療法が行われるが、アセトンの薬理効果を期待したものではない。
物理的特性
化学式: C₃H₆O
示性式: CH₃COCH₃ または (CH₃)₂CO
外観: 無色液体
密度: 0.788 g/cm³(25℃)
融点: -94℃
沸点: 56.5℃
水への溶解度: 任意に混和する
酸解離定数 (pKa): 約20(水中)
屈折率 (nD): 1.3591(20℃, D線)
関連法規
消防法: 危険物第四類(第一石油類 危険等級2、水溶性)に指定されており、指定数量以上の貯蔵・取り扱いには市町村長等の許可が、指定数量の1/5以上の貯蔵・取り扱いには消防署への届出が必要で、取り扱うには乙四類または甲種免許所持者でなければならない。
麻薬向精神薬原料対象物質
有機溶剤中毒予防規則: 第二種有機溶剤に指定
レイアウト情報などは失われましたが、RAG用のデータとしては、十分なクオリティのテキストが得られました。
1b GPT-4o-miniに修正させる → △
GPT-4o-miniでも遜色ない文章が得られました。
ただし、「すべての情報を網羅しろ」と指示しても、一部の情報を省略してしまうことが分かりました。
![](https://assets.st-note.com/img/1730711684-83Bwo50M9knYK1WFUXeHGEmh.png?width=1200)
アセトン
出典: フリー百科事典『ウィキペディア (Wikipedia)』
アセトン(acetone)は有機溶媒として広く用いられる化合物で、最も単純な構造のケトンである。IUPAC命名法ではプロパン-2-オン(propan-2-one)または単にプロパノンと呼ばれる。両親媒性の無色の液体であり、水、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂もよく溶かすことができる。蒸気圧が20 kPaと高く、常温で高い揮発性を有し、強い引火性がある。
識別情報
CAS登録番号: 67-64-1
化学式: C₃H₆O
モル質量: 58.08 g/mol
示性式: CH₃COCH₃ または (CH₃)₂CO
外観: 無色液体
密度: 0.788 g/cm³ (25℃)
融点: -94℃
沸点: 56.5℃
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトン-ブタノール-エタノール発酵によって生成するほか、人間の体でも正常な代謝プロセスの結果としてケトン体から自然に生成され、排出される物質である。生殖毒性試験では、生殖問題を起こす可能性が低いことが明らかになっている。実際に、エネルギー必要量が高く体内の脂肪の利用が高まると、アセトンの生成レベルも高くなることから、妊婦、授乳中の母親、および小児の体内アセトンのレベルは自然と上昇する。糖尿病患者が糖尿病性ケトアシドーシスに陥った時には大量に生成し、呼気がアセトン臭を呈する。
難治性てんかんを患う乳児や小児のてんかん発作を減少させるため、体内のケトン体を増加させるケトン食療法が行われているが、アセトンの薬理効果を期待したものではない。
関連法規
アセトンは消防法により危険物第四類(第一石油類危険等級2水溶性)に指定されている。指定数量以上の貯蔵・取扱には市町村長等の許可が必要であり、指定数量の1/5以上の貯蔵・取扱には消防署への届出が必要である。取り扱いには乙四類か甲種免許所持者でなければならない。また、有機溶剤中毒予防規則により第二種有機溶剤に指定されている。
特記
特記なき場合、データは常温(25℃)・常圧(100 kPa)におけるものである。
(「ジメチルケトンとも表記される」という表現を勝手に省略してます)
1c calm3-22bに修正させる → △
ローカルモデルの方が推論コストが安く、高速にデータ処理が可能です。
そこで、calm-3-22bに修正させてみました。
GPT-4o-miniと同様、情報を省略するなと指示をしたのですが、こちらもminiと同様、「ジメチルケトンとも表記される」という表現を勝手に省略していました。
アセトン
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アセトン(acetone)は有機溶媒として広く使用される化合物であり、最も単純な構造のケトンである。IUPAC命名法ではプロパン-2-オン(propan-2-one)とも呼ばれる。また、単にプロパノンと呼ばれることもある。両親媒性の無色の液体で、水に、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂もよく溶かす。蒸気圧が約20 kPaと高く、常温で高い揮発性を持つ。
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトン-ブタノール-エタノール発酵によって生成されるほか、人体の正常な代謝プロセスの結果としてもケトン体から自然に生成され排出される物質である。生殖毒性試験では、生殖問題を引き起こす可能性が低いことが明らかにされている。実際、エネルギー必要量が高まり体内の脂肪の利用が増加するとアセトンの生成レベルも上がるため、妊婦、授乳中の母親、および小児の体内アセトンのレベルは自然に上昇する。糖尿病患者が糖尿病性ケトアシドーシスを起こすと、アセトンが大量に発生し呼気がアセトン臭を呈することがある。
難治性てんかんを患う乳児や小児のてんかん発作を減少させるために、体内のケトン体を増加させるケトン食療法が行われることがあるが、アセトン自体の薬理効果は期待されていない。
アセトンの物理的性質は以下の通りである:
化学式: CH₃COCH₃ または (CH₃)₂CO
モル質量: 58.08 g/mol
無色液体
密度: 0.788 g/cm³(25℃)
外観: 無色
融点: -94.5℃
沸点: 56.5℃ [1]
水への溶解度: 任意に混和
酸解離定数: pKa = 20(水中)
屈折率: nD = 1.3591(20℃, D)
アセトンは、消防法により危険物第四類(第一石油類危険等級2)に指定されており、指定数量以上の貯蔵・取扱いには市町村長の許可が必要である。また、特定の条件下では消防署への届出も必要となる。さらに、有機溶剤中毒予防規則により第二種有機溶剤にも指定されている。
これで情報が漏れなく記載された状態になりました。
1d Llama-3.1-70bに修正させる → ×
もう少し大きめのローカルモデルに作業をさせてみました。
以下のサイトのchatを使いました。
結果としては、かなりの情報が省略されてしまったので、使い物になりませんでした。
アセトン(acetone)は有機溶媒として広く用いられる化合物で、もっとも単純な構造のケトンである。
IUPAC命名法ではプロパン-2-オン(propan-2-one)または単にプロパノン。
両親媒性の無色の液体で、水、アルコール類、クロロホルム、エーテル類によく溶け、さらに24.7倍の油脂もよく溶かすことができる。
蒸気圧が20 kPaと高く、強い引火性がある。
常温で高い揮発性を有し、一酸化炭素とも表記されるIUPAC名プロパノン、プロパン-2-オン(優先IUPAC名)である。 アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトンヴュタノールエタノール発酵によって生成するほか、人体でも正常な代謝プロセスの結果としてケトン体から自然に生成され排出される物質で、生殖毒性試験では生殖問題を起こす可能性が低いことが明らかになっている。
実際に、エネルギー必要量が高く体内の脂肪の利用が高まるとアセトンの生成レベルも高くなることから、妊婦、授乳中の母親、および小児の体内アセトンのレベルは自然と上昇する。
糖尿病患者が糖尿病性ケトアシドーシスに陥った時には大量に生成して、呼気がアセトン臭を呈する。難治性てんかんを患う乳児や小児のてんかん発作を減少させるため、体内のケトン体を増加させるケトン食療法が行われているが、アセトンの薬理効果を期したものではない。
アセトンは、ロ消防法により危険物第四類(第一石油類危険等級2水溶性)に指定されている。
指定数量以上の貯蔵・取扱には市町村長等の許可が、指定数量の1/5以上指定数量未満の貯蔵・取扱には消防署への届出が必要で、指定数量以降の取扱者は乙四類か、甲種免許所持者でなければならない。
有機溶剤中毒予防規則により第二種有機溶剤に指定されている。
1e Qwen-2.5-72bに修正させる → △
Qwen-2.5-72bもGPT-4o-miniと同程度の品質でした。
以下は、OCRで読み取られた文章の修正版です。可能な限り情報の漏れがないように修正しました。
アセトン
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アセトン(acetone)は、有機溶媒として広く用いられる化合物で、最も単純な構造のケトンである。IUPAC命名法ではプロパン-2-オン(propan-2-one)または単にプロパノンとも呼ばれる。両親媒性の無色の液体で、水、アルコール類、クロロホルム、エーテル類などによく溶け、ほとんどの油脂もよく溶かすことができる。蒸気圧が20 kPaと高く、常温で高い揮発性を有するため、強い引火性がある。
IUPAC名
プロパノン、プロパン-2-オン(優先IUPAC名)
識別情報
CAS登録番号: 67-64-1
KEGG DO2311: https://www.kegg.jp/entry/DO2311
解説
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトン-ブタノール-エタノール発酵によって生成するほか、人間の体内でも正常な代謝プロセスの結果としてケトン体から自然に生成され、排出される物質である。生殖毒性試験では、生殖問題を起こす可能性が低いことが明らかになっている。実際に、エネルギー必要量が高く体内の脂肪の利用が高まるとアセトンの生成レベルも高くなることから、妊婦、授乳中の母親、および小児の体内アセトンのレベルは自然と上昇する。糖尿病患者が糖尿病性ケトアシドーシスに陥った時には大量に生成して、呼気がアセトン臭を呈する。難治性てんかんを患う乳児や小児のてんかん発作を減少させるため、体内のケトン体を増加させるケトン食療法が行われているが、これはアセトンの薬理効果を目的としたものではない。
特性
化学式: C3H6O
示性式: CH3COCH3 または (CH3)2CO
外観: 無色液体
密度: 0.788 g/cm³ (25℃)
融点: -94℃
沸点: 56.5℃
水への溶解度: 任意に混和する
酸解離定数 (水中): 20
pH: 7
屈折率 (nD): 1.3591 (20℃, D)
関連法規
消防法: 危険物第四類(第一石油類危険等級2)に指定されている。指定数量以上の貯蔵・取扱いには市町村長等の許可が必要であり、指定数量の1/5以上指定数量未満の貯蔵・取扱いには消防署への届出が必要である。指定数量以上の取扱いには危険物取扱者乙四類または甲種免許所持者でなければならない。
麻薬向精神薬原料対象物質: 有機溶剤中毒予防規則により第二種有機溶剤に指定されている。
特記なき場合、データは常温(25℃)・常圧(100 kPa)におけるものである。
2. マルチモーダルモデルにOCRさせる
マルチモーダルモデルにスキャンデータをそのまま読み込ませてみます。
2a GPT4oに読ませる → ×
GPT-4oのマルチモーダル機能でテキストを抽出させます。
![](https://assets.st-note.com/img/1730712567-MW3bw5hfdqTEt6loLUZVx9FI.png)
結果は以下の通り。
Here is the text extracted from the image:
アセトン
出典: フリー百科事典『ウィキペディア (Wikipedia)』
アセトン (acetone) は有機溶媒として広く用いられる有機化合物で、もっとも単純なケトン分子でもある。IUPAC命名法では「プロパン-2-オン (propan-2-one)」あるいは単に「プロパン-オン」
無機性の無色の液体で、 水、 アルコール類、クロロホルム、エーテル類に良く溶け、「ほとんどの脂肪および樹脂をもよく溶かす。沸点圧が20 ℃において24.7 kPaと高いことから、常温で高い揮発性を有し、常温で水にもややミセルがある。メチルケトンとも表記される[2]。
解説
アセトンは、アドバイ糖の糖原発酵の一つであるアセトン・ブタノール・エタノール発酵によって生成するほか、人体でも蓄積代謝異常が生じてケトン体に多く含まれる。アセトンは非常に揮発性が高い性質をもち、自然環境中にも存在している。生物性にも試験で生産される。天然では、微量が人間など生物の代謝反応により利用される。医療分野においては皮膚疾患の診断において使われることがあるが、薬剤暴露の防止により濃厚アセトンを医療処方に使う場合が増加している。また、麻酔剤、鎮静剤として利用されることがあるが、内服薬は厳しく管理されている。
識別情報
CAS登録番号 67-64-1
KEGG D02311 (https://www.kegg.jp/entry/D02311)
性質
化学式 C₃H₆O
分子量 58.08
示性式 CH₃COCH₃
別名 2-プロパンオン (CH₃)₂CO
融点 −94 ℃
密度 0.788 (25 ℃)
沸点 56.5 ℃
水への融解度 不溶
pK_a 20.0
粘性 (粘度) 1.3591 (20 ℃)
関連法規
消防法により危険物第四類 (第二石油類 危険等級2 水溶性) に指定されている。指定数量以上の貯蔵・取扱には市町村長等の許可が、指定数量の1/5以上運送する場合の貯蔵、取扱には消防署への届出が必要で、指定数量以上の取扱いには危険物取扱者資格を持った者でなければならない。
麻薬取締役法関係対象物質
ブドウ糖をアドバイ糖を読み違えたり、ジメチルケトンをメチルケトンと夜見違えるなどのミスがありました。
これは許容できないミスです。
2b Qwen2-VL-Instructに読ませる → ×
OCRで定評のあるQwen系のモデルに読ませてみます。
72Bモデルは以下のサイトから使えます。
指示は、「文章を忠実に抽出して」です。
(「テキストを忠実に抽出して」でも似たような結果でした)
2Bの結果
以下は抽出した文章の一部です:
---
ウィキペディア
ウィキペディア
アセトン
出典: フリー百科事典『ウィキペディア (Wikipedia)』
アセトン (acetone) は有機溶媒として広く用いられる有機化合物で、もっとも単純な構造のケトンである。IUPAC 命名法ではプロパン-2-オーン (propan-2-one) [2] あるいは単にプロパンノン。両親媒性の無色の液体で、水、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂もよく溶かすことができる。蒸気圧が 20℃において 44.7 kPa と高いことから、常温で高い揮発性を有し、強い引火性がある。ジメチルケトンとも表記される [3]。
---
この文章は、アセトンについての情報が記載されています。
7Bの結果
以下は、文章を忠実に抽出したものです。
---
**アセトン**
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アセトン (acetone) は有機溶媒として広く用いられる有機化合物で、もっとも単純な構造のケトンである。IUPAC 命名法では プロパン-2-オーン (propan-2-one) [2]あるいは単にプロパンオーン。両親媒性の無色の液体で、水、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂もよく溶かすことができる。蒸気圧が20 ℃において24.7 kPaと高いことから、常温で高い揮発性を有し、強い引火性がある。ジメチルケトンとも表記される [3]。
**解説**
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトン・プタノール・エタノール発酵によって生成するほか、人体でも正常な代謝プロセスの結果としてケトン体から自然に生成され排出される物質で、生殖毒性試験では生殖問題を起こす可能性が明らかになっている。実際に、エネルギー必要量が高く体内的脂肪の利用が高まるとアセトンの生成レベルも高くなることから、妊娠、授乳中の母親、および小児の体内アセトンのレベルは自然と上昇する。糖尿病患者が糖尿病性ケトアシドーシスに陥った時には大量に生成して、呼気がアセトンを呈する。難治性てんかんを患う乳児や小児のてんかん発作を減少させるため、体内的ケトン体を増加させるケトン食療法が行われているが、アセトンの薬理効果を期待したものではない。
**関連法規**
- 消防法により危険物第四類(第一石油類 危険等級2 水溶性)に指定されている。指定数量以上の貯蔵・取扱には市町村長等の許可が必要で、指定数量の1/5以上指定数量未満の貯蔵・取扱には消防署への届出が必要で、指定数量以上の取り扱いは危険物取扱者乙四類か、甲種免許所持者でなければならない。
- 麻薬向精神薬原料対象物質
- 有機溶剤中毒予防規則により第二種有機溶剤に指定されている。
---
この文章は、アセトンについての情報を提供しています。アセトンは有機溶媒であり、無色の液体で、揮発性が高く、強い引火性があります。また、アセトンはブドウ糖の嫌気的発酵によって生成され、人体でも正常な代謝プロセスの結果として生成されます。アセトンは、糖尿病患者や妊娠中の母親、授乳中の母親、および小児の体内で自然に生成され、呼気中にアセトンが検出されることがあります。アセトンは難治性てんかんの治療に用いられるケトン食療法の一部として使用されます。
72Bの結果
ウィキペディア
フリー百科事典
ウィキペディア
出典: フリー百科事典『ウィキペディア(Wikipedia)』
アセトン (acetone) は有機溶媒として広く用いられる有機化合物で、もっとも単純な構造のケトンである。IUPAC命名法ではプロパン-2-オン (propan-2-one) [2]あるいは単にプロパノン。両親性の無色の液体で、水、アルコール類、クロロホルム、エーテル類によく溶け、ほとんどの油脂ともよく溶けることができる。蒸気圧が20℃において24.7 kPaと高いことから、常温で高い揮発性を有し、強い引火性がある。ジェメチルケトンとも表記される[3]。
解説
アセトンは、ブドウ糖の嫌気的発酵の一つであるアセトシンプタノールエタノール発酵によって生成するほか、人体でも正常な代謝プロセスの結果としてケトン体から自然に生成され排出される物質で、生殖毒性試験では生殖器系を起こす可能性が低いことが明らかになっている。実際に、エネルギー必要量が高く体内の脂肪の利用が高まるとアセトンの生成レベルも高くなることから、妊娠、授乳中の母親、および小児の体内アセトンのレベルは自然と上昇する。糖尿病患者が糖尿病性ケトアシドーシスに陥った時には大量に生成して、呼気がアセトン臭を呈する。難治性てんかんを患う乳児や小児のてんかん発作を減少させるため、体内のケトン体を増加させるケトン食療法が行われているが、アセトンの薬理効果を期待したものではない。
関連法規
・ 消防法により危険物第四類(第一石油類 危険等級2 水溶性)に指定されている。指定数量以上の貯蔵・取扱には市町村長等の許可が、指定数量の1/5以上指定数量未満の貯蔵・取扱には消防署への届出が必要で、指定数量以上の取り扱いには危険物取扱者乙四類か、甲種免許所持者でなければならない。
・ 麻薬向精神薬原料対象物質
・ 有機溶剤中毒予防規則により第二種有機溶剤に指定されている。
2Bでは、かなり情報が省略されてしまいました。
7Bでは、表関連の情報が省略されてしまいました。
7Bと72Bでは結果が殆ど同じでした。
GPT-4oと異なり、読み間違いが少ないのは利点です。
3. 専用システムを使う (一部未検証)
専用のOCR関連のツールを使っていきます。
Xで情報提供頂いたりしたものです。
3a docling → ×
仕組みはあまり良くわかってないんですが、doclingなる変換ツールがあったので、使ってみます。
Docling
— ぬこぬこ (@schroneko) November 3, 2024
OSS の文書変換ツール。PDF/DOCX/PPTX/画像/HTML などを Markdown/JSON に変換。レイアウトや表構造も認識(Table Transformer)。メタデータの抽出も。LlamaIndex/LangChain 統合。そのまま RAG/QA にも。OCR は EasyOCR/Tesseract に対応。スキャン済み PDF にも対応。uv… pic.twitter.com/74RnMV2BGZ
!pip install docling
from docling.document_converter import DocumentConverter
source = "wiki.pdf" # document per local path or URL
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown()) # output: "## Docling Technical Report[...]"
残念ながら、結果は文字化けでした。日本語は非対応なのかもしれません。
## アセトン
命名法ではプロパン-2-オン(propan-2-one)回あるいは
IUPAC名
<!-- image -->
IUPAC名) - JOJCJ> JO)(>-2-3> (124
出典:フリ-百科事典『ウイキペデイア(Wikipedia)』 oCに おいて24.7 kPaと高いこ し、強い引火件がある。 [2]。 とから、常温で高い揮発性を有 - ジメチルケトンとも表記される 7+ F > (acetone) I+HïMìt# 2 L ZIÉ < HJv' 5n 3 #M {KaYJ€. * 2 2 % 4íí~ts #llìio 7 } > €b 3 IUPAC = \_)f. ) P Ej) Z. I\_J)diC & < 4W . If 2
## 解説
侍したものではない。 7 + | > It . 7 F > #liø#lk5ííJgH*0 \_90* %7 + F Y-7 ' ) \_)-I7 ) \_)gÉl#lz & 2 Ulk ; 3I5* X {4 € 4 JE#ts f##t7 1 + 7054 2 L €' } > {ah 6 Él ssIE 'EJR # n#F# # n 3 4j Pf € . 'tinNstus €l3 47ui FHi *#2 < + uJíÉl4hš {4 v > < 2 #š[f] 6 *IC ts 9 Zv 3 0 #K*I . IÀ)#- %y#h*3 < #pjølhlJj 0 RIJFF] b*1 # 3 2 7 + F > 0 hk L ~ ) % 1 < ts % < 2 h 6 . #I: #3. ###L#øg*. * }$ J JEokp]7 + F '01 <) I+H4u 2 15+ 3 . #ibRspj#% #s#iJRspsME' }7>F = >7 I2 [f 2 tH#Iz It*#IFÈ l Z. MS/š7+ F > 5 *5+ 30 ##ìhH€ h h h * # 5 #LJEPøJE0 €h hh gé{F * ìd /J # + 3 t % . {kpjø/ } > {k* #M JJl] # + % 7 F > #lìJ#šíjbn €v 3 #š 7 + F > 0 #fsJju * H]
## 関連法規
...
3b ndlocr →△?
国会図書館の方々が構築されたOCRのようです。
個人的な経験からは、ndlocrの精度は、tesseractより優秀だと思います。無料で(ローカルで)利用できます。ただし、nvidiaのcuda対応のGPUが必要など、tesseractよりは利用する条件があったり、構築に手間がかかります。
— fortune (@WoF_twitt) November 4, 2024
今回のPDFをndlocrでスキャンしてみた結果はこんな感じです。 pic.twitter.com/hj0Zus9mWT
Colabで動かすためのscriptが公開されていたので、これを使います。
→ OCR時に、ModuleNotFoundError: No module named 'cli.core'というエラーが発生してしまいました。
検証していただいた画像を見る限り、scansnapに付属のOCRと同等レベルの読み取り精度のようです。
3e tesseract →×?
かなり歴史のある、オープンソースのOCRのようです。あまりうまくいかなかったdoclingの中でも動いているようです。日本語は苦手?
他に良い方法が思いついたら、追記します。
Azure AI Document Intelligence → ?
高性能とのことです。
ただ、いまのところ、azureのapiを使っていないのと、高額らしいので、見送りました。
11/6追記 ハイブリッド
本番のOCRでは、Scansnapで読み取ったテキストをプロンプトに乗せながら、スキャン画像をGPT-4oで読み取るというハイブリッドアプローチを採用しました。
精度は未検証ですが、これが一番うまく行く気がしています。
![](https://assets.st-note.com/img/1730877486-6F2R0pswC7Ya1q4fBjoOgzce.png?width=1200)
まとめ
レイアウトがややトリッキーなデータをOCRするための手法について、調べました。
マルチモーダル基盤モデルは、変則的なレイアウトのデータの読み取りに強そうですが、まだ精度が完璧ではない雰囲気でした。
コストも含め、最も手堅そうなのは、scansnapなどの市販のスキャナーに付属しているOCRで読み取った後に、GPT-4oや軽量版モデルで成形加工するアプローチ、という印象でした。
今後、マルチモーダル基盤モデル + 専用OCRのような、完成度の高いパッケージが登場するような気がしました。