トピックス プログラム、シミュレーション 研修

画像内文字を「文字起こし」

投稿日:

写真等の画像内にある文字をテキストにすることを「文字起こし」と言います。 昔からOCRと言うソフトはありましたが、印刷物しか文字起こししてくれませんでした。 最近は文字認識力が上がってきましたね。 今回は、「Tesseract OCR」及びPythonpyocrというライブラリを用いて「文字起こし」を試してみました。 いろいろなWebsiteの情報を基に実施しました。

先ず、「Tesseract OCR」をダウンロードします。手順はこちら → https://qiita.com/henjiganai/items/7a5e871f652b32b41a18

遷移先のページ」をクリック → https://qiita.com/henjiganai/items/7a5e871f652b32b41a18

tesseract-ocr-w〇〇-setup-・・・」の32bitあるいは64bitの内、ご使用のパソコンに合わせて選びクリック後、Website記載の手順でインストールしてください。 環境変数の編集を忘れずに追加しておいてください。 これをやらなかったため、OCRを認識されずに時間を費やしてしまいました。

②日本語の訓練データをダウンロードします。 手順はこちら → https://qiita.com/mczkzk/items/393abc70836b9bde2f60

「Tesseract-OCR」のフォルダ内の「tessdata」フォルダ内に保存してください。

コマンドプロンプトで、「pip install pyocr」及び「pip install PIL」を行い、pythonのライブラリインストールしてください

文字が入った画像を「〇〇.png」としてpythonのプログラムが入っているフォルダ内に保存しておきます

pythonのエディタに以下のプログラムを入れてRUNします。

上述の環境変数の追加は以下資料のp.1~2にまとめました。

資料はこちら → OCR

p.3~5 実施例です。 OCR結果1はスマホで撮った本の裏表紙の画像から「文字起こし」した結果です。文字化けありますが、結構上手くできています。 OCR結果2は、プロジェクタで映したパワーポイント資料です。 これも結構読み込んでいます。昔のOCRであれば文字起こしできなかったと思います。 OCR結果3ホワイドボードに書いたものですが、文字起こし不能でした。 OCR4ホワイトボードのOCR結果です。 人が書いたものはまだまだ文字起こしは難しいようです。AIで学習すればもう少し精度は上がりそうです。上手くできるようになったら、後日報告します。 これができたら研修生も楽になりますね。

[プログラム例] ○○のところは保存した画像のファイル名を入れてください。 半角アルファベットのファイル名の方が良いと思います。

from PIL import Image
import sys
sys.path.append('/path/to/dir')

import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))

txt = tool.image_to_string(
Image.open('〇〇.png'),
lang='jpn',
builder=pyocr.builders.TextBuilder()
)
print(txt)

 

-トピックス, プログラム、シミュレーション, 研修

Copyright© 進化するガラクタ , 2019 All Rights Reserved Powered by STINGER.