はじめに
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)
準備
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.
参考
- How to use OCR from the command line in Linux? https://unix.stackexchange.com/questions/377359/how-to-use-ocr-from-the-command-line-in-linux
おわりに
あまり期待はできなかったけど、このコマンドのOCRの精度はそこまで高くないようだった。
他の方法もあり、PDFにして pdftotext
をするという方法もあるようだが、それも同じくらいの精度になりそう。
最近、GPT-4が出たので、どうやらそれの画像認識はかなり精度が高いみたい。
有料会員じゃないので試せないけど、API提供が来たら画像入れて試してみようかな。