Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【PyOCR】画像から日本語の文字データを抽出する

More than 1 year has passed since last update.

Tesseract OCR 導入

https://github.com/tesseract-ocr/tesseract

OCR = 光学文字認識 (Optical Character Recognition)
Tesseract OCRは、Google製のOCRエンジン

各環境への導入の仕方(本記事はMac環境)
https://github.com/tesseract-ocr/tesseract/wiki

日本語の訓練データの取得

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
こちらからtesseract-ocr-3.02.jpn.tar.gzを取得する

解凍するとjpn.traineddataが得られるので、
/usr/local/Cellar/tesseract/3.05.01/share/tessdataへ移動
ここにはeng.traineddataなど、各言語の訓練データが格納されている

PyOCR 導入

現在 GitHub のリポジトリはアーカイブされており、GitLab に移行した。

PyOCRは、PythonでOCRを使えるようにするライブラリ

インストールする

$ sudo pip3 install pyocr

anacondaの場合
https://anaconda.org/auto/pyocr

サンプル実行

画像から文字データを抽出する

https://github.com/openpaperwork/pyocr

image2text.py
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('test.png'),
    lang='jpn',
    builder=pyocr.builders.TextBuilder()
)
print(txt)

test.png

↑こちらのヤフーニュースのスクショを解析すると...

動画 鵬 ニユ一ス ー 経済

エン夕メ 〉 スポ一$



。時ー9分更新
・ 日報 問題文書と思わず未報告楓

・西部さん自殺ほう助 2人逮捕塵
・AT小型二輪の教習 最短2日に
・明石大橋20年 震災無傷の技術趣剛
・女性市長 土俵ぁいさっ断られ趣
・cc社 買収受け入れの方針】
・栄氏が伊調にパヮハラ 認定〔
・鬼奴あきれ顔 借金激減を訂正趣剛

もっと見る トピックス一覧

まあ、読めなくもないけど人間が手動で校正する必要はある。
手書きや飾り文字は壊滅。
デザイン性のないただ文字が羅列しているだけの画像には有効。

参考
OCRツール「Tesseract OCR」をインストールしてPythonで使う
tesseract-ocrをMacで使ってみた

mczkzk
読ませる記事よりも公開メモやスニペットの投稿が多め。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away