調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

tesseract-OCRでレシートを読み込ませたらギャル文字みたいになった件

経緯

・奥様の家計簿作業が非常にめんどくさそう(レシート改修して、電卓ぱちぱち。写メって一撃がいいなぁと)
・画像認識って簡単にできるんか?の興味

先に、結果・・・

全然ダメ。 設定が悪いのか、ギャル文字みたいになる。
家計簿にはぶち込めない。

とりあえずググってみると・・・

https://techacademy.jp/magazine/18992
読み込むぐらいならだれかしらやってくれてるんだ。そうだとおもった。
OCRの最新バージョンを入れるとどうにも動かないので、記載の通りoldの3.02をインストールするのをお勧めします。
 どうやら最新のラーニングデータが壊れているようで・・・

ひとまずそのまま写経コーディングでぶち込んでいく。

from PIL import Image
import sys

import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("Ocr tool Not Found")
    sys.exit(1)
# The tools are returned in the recommended order of usage

tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex; Will use tool 'libtesseract'

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))
# Ex: Will use lang 'fla'
# Note that languages are NOT sorted in any way. please refer
# to the system locale settings for the default language
# to use.

txt = tool.image_to_string(
    Image.open('test.png'),
    lang=lang,
    builder=pyocr.builders.TextBuilder()
)
# txt is a Python string

print(txt)

読み込んだレシートはこちら。
ダイレックス
f:id:couraeg:20190930005031j:plain

うえをtest.pngとして同階層に配置。これで動くはずなんじゃ。

実行結果が以下


11sFJ aim$MB4
v171(8?3E) m4 um)
T as ?IbS.’<' fiaiiil ‘em
¥1u(wfi) use (am)
T 01 $3 Lmxfi

muynsa
ééaf

mfinm

359

asafitl
7201-01-9180-5481170fl

どうやら言語がよくないらしく、デフォルトではjpnランゲージはないらしい。
f:id:couraeg:20190930005849p:plain

バージョンが違うので画面が違ってわかりにくいが、
https://qiita.com/henjiganai/items/7a5e871f652b32b41a18
を参考に、日本語のラーニングデータを入れて、コードも一部改変
そのまま使うと「eng」が採用されるので・・・

txt = tool.image_to_string(
    Image.open('test.png'),
    lang=lang,
    builder=pyocr.builders.TextBuilder()
)
# txt is a Python string

ここを

txt = tool.image_to_string(
    Image.open('test.png'),
    lang='jpn',
    builder=pyocr.builders.TextBuilder()
)
# txt is a Python string

こうする(脳死べた書き)

実行結果はこうなる


ーー SFJ おぇヵ丶き帖B4
\ー7ー(税抜) \ーa縄 (税込)
T ug マ丿レミヤ 麻襲豆鷹 甘ロ
\ー47(税抜) \ー5g (挽込)
T 0ー ゃさしし丶憂茶

720ー一0ー一gーgD一5縄8ーー70霞 寶「 譬

ギャル文字爆誕
おしぃ。とくにマノレミヤのとこ。十分麻婆豆腐に見えるけども・・・

もう少しオプションで調整、ラーニングデータもチューニングできるようなので、
もうちょっとましな精度出せそうだけど、いったんここでギブ。
都合がつけば続きをやるかもしれない。