【pyocr】tesseract-ocr 日本語やロシア語など多言語を簡単にインストールする

 

 

どうもNSZ山本です。今日はpython文字認識です。

旅行先で取った看板をブログに引用する時に使う事が有るんですが、文字に起こすのめんどくないですか。

 

 

これはブルガリアで撮影した写真です。でも英語です。

引用するのに手打ちしても良いんですが、今後の人生の事を考えると同じ事を何度もするのは効率的ではありません。

これを解決する最も早い方法はwebサービスを利用することです。極論わざわざ自分で作る必要はあんまないです。

 

ocr websiteでググると以下のサイトが出てきます。。

Free Online OCR – convert PDF to Word or Image to text

 

しかし勉強がてらやってみます。

pythonは画像処理が楽という事なのでやってみます。

 

 

今回使うのは tesseract-ocrです。

 

 

環境

 

mint

python3.7~

pycharm 3.Apr.2019

あとでよく見たら何故かインタプリタがpython3.6だったけど行けてた。

 

 

準備

 

tesseract-ocr インストール

 

Installing pyocr on Debian · Cogs and Levers

このサイトは、install pyocr とtesseractを教えてくれるサイトの中では有能でわかりやすいです。

英語だけどもその辺の日本語のサイトよりもスラっとわかります。

 

 

上のサイトの中で必要な物の内、既にインストール済のもの以外を実行していけば良いです。

最悪上から片っ端から入れていっても問題ないと思う。僕みたいな技術力の低い人は。

「もうインストールされてるわよ」って言われるとは思います。

 

今回の肝のtesseract-ocr のインストール部分は以下のコマンドです。

英語がインストールされます。

 

 

日本語やロシア語など多言語のインストール方法

 

英語だけだと寂しいので他言語をインストールします。

 

にすると日本語も追加されました。

anacondaでこんな感じで入れます。上のsudo apt-get install tesseract-ocr tesseract-ocr-ja ではできません。jaはありません。 jpnが正しいです。

 

ロシア語の場合は、sudo apt-get install tesseract-ocr tesseract-ocr-rusです。

 

他言語は、最後の3文字を変えていけばいいだけです。

ほか

全て一気に入れる all

スペイン語 spa

フィンランド語 fin

ポーランド語 pol

デンマーク語 dan

アフリカーンス afr

ドイツ語 deu

ハンガリー語 hun

イタリア語 ita

フランス語 fra

ウクライナ語 ukr

ヘブライ語 heb

クロアチア語 hrv 

中国語繁体 chi-tra

中国語簡体 chi-sim

韓国語 kor

 

などいろんな言語を入れたい人はこれ。挙げるときりがないのでリンク先をどうぞ。

言語一覧↓

https://askubuntu.com/questions/793634/how-do-i-install-a-new-language-pack-for-tesseract-on-16-04

 

 

 

アナコンダでインストールしたのに、エラーが出る場合は

  • クイックフィックス
  • インタプリタが違う?
  • pycharm最新化してみたらいいんじゃね?(投げやり)

 

 

 

ocr可能か確認

 

pyocrやteseractをイストール後それが使えるか確認用コードで確認します。

 

https://qiita.com/it__ssei/items/fd804dcb10997566593b

Qittaに落ちてたヤツです。元ネタはpyocr公式のgithubです。

 

こんな感じでOKが出たら実際に読み込んでみましょう。(jpnを入れたら,Available language: に jpn が追加されます。)

 

 

実際にやってみた

 

ソースコード

 

PythonでOCR – Qiita

ソースコードはここから頂きました。

 

 

 

言語を変えるには、下から5行目のeng をjpnとかrusにすればOKです。

 

 

英語スキャン

 

目当ての写真をスキャンします。

流石に元の画像では無理に決まっているので、明度とコントラストを上げて認識しやすいようにします。

 

画像形式は

pngもjpgも通ります。

 

流石に無理ですね。

ATTENTIONをxTTENTION と読んでますし、

CHILDREN’S をCHiLDREN’ 5 と読んでいる所も見えます。

 

傾いた写真では綺麗に読み取ることは難しいようです。

 

ペイントソフトで変形しトリミングもして再度実行します。

僕はsai先生が大好きです。

 

 

流石にこれなら行けるでしょ。

 

 

綺麗な読み込みになりました。

ごくまれに小文字と大文字を認識し切れてないのはありますが、許容範囲ですかね。

☑の部分が、日本語の⑦として認識されてる点と、草の絵を文字としてなんとかして読もうとpyocrが努力をしているのが笑えますね。

 

これで打ち込む手間が省けますし、看板を引用したいなら楽できます。

 

 

 

ロシア語

 

これが

 

こうじゃ。

 

看板の汚れが = イコールとして認識している以外は大体大丈夫です。

 

 

 

 

以上です。

ocr使ってみたかったですし、ロシア語なんて絶対自力ではタイプ出来ないので、嬉しいです。

 

 

 

参考サイト

 

tesseractを使ってみよう(初心者編) – Qiita

 

 

 

これも読んでみませんか