tesseractを使って画像から文字を取得する

はじめに

tesseractを使って画像から文字列を取得したい場面があったので試してみる。
いわゆるOCR

OCRとは

OCR(Optical character recognition)とは光学文字認識のこと。

光学文字認識(こうがくもじにんしき、英: Optical character recognition)は、活字、手書きテキストの画像を文字コードの列に変換するソフトウェアである。画像はイメージスキャナーや写真で取り込まれた文書、風景写真(風景内の看板の文字など)、画像内の字幕(テレビ放送画像内など)が使われる[1]。

Wikipediaより引用 (https://ja.wikipedia.org/wiki/%E5%85%89%E5%AD%A6%E6%96%87%E5%AD%97%E8%AA%8D%E8%AD%98)

準備

OCRする画像を用意してみた。これはできるのか… mail-for-ocr

tesseractのインストール

sudo apt-get install tesseract-ocr

tesseractを使う

tesseract mail-for-ocr.png output.txt

↓こんなのがでてきた…。日本語はそもそも対応していないようね。
URL の部分だけそれっぽいけど、それでも間違えてるな。

°C ALAR! [BOMBA A-Y | TD RUS!
HWEONGIL -ARBATGSC. Yayt—-EBt1 TANF yAR ERS RIMES
ABO (SRBHS) WHRL—-ATT!

 

O00ZARIT AES |

 

VID hU-i82 5505 (48168 (B) 178ET)
hitps://www clubjranet jra.go jp!

WEVA DNB
3268 (8) Ste:
45 28 (B) AIRE (GD)
45 98 (B) #728 (GD
48168 (8) S88 (Gl)

(cb

 

VERT
(AB) Say+—-BS912A 010m FVer 7-4 NLA (REBE (F4-T1D/ Ob / OSE) . RB (LIT —-GL/ REE) J
- (AB) BAS—-E-BREBBQUOD—RIDTU—bIa hI (500Rx1188)
+ (AB) SQGCHEHBSQUOA— K2AY b (1,000F39~24)
+ (AR) FLuRSSRERL—AtYTD
+ (AB) SNGIEBSSLIS—2iBty bh (LR Dx F LRH)
+ (BE) JRAVANROZ MIROD AD
+ (CH) BOCHEBSAUOA— K2iRey b (60028)
(08) SQGKEHSAUOA—K (5009x198)
BHonEaeie EEURLA O CRERB< EAU.

 


参考

おわりに

あまり期待はできなかったけど、このコマンドのOCRの精度はそこまで高くないようだった。
他の方法もあり、PDFにして pdftotext をするという方法もあるようだが、それも同じくらいの精度になりそう。
最近、GPT-4が出たので、どうやらそれの画像認識はかなり精度が高いみたい。
有料会員じゃないので試せないけど、API提供が来たら画像入れて試してみようかな。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。