tesseractでOCR@Windows7
OCRに興味があったので試してみた.
tesseract
OCRエンジンのオープンソース.
https://github.com/tesseract-ocr/tesseract
tesseractのインストール
Windows7でtesseractを使えるようにした.
まず, https://github.com/parrot-office/tesseract/releases/tag/3.5.1 からtesseract-Win64.zipをダウンロードした.
ダウンロードしたらディレクトリ(C:\Program Files\Tesseract-OCR)を作成して, zipファイルをC:\Program Files\Tesseract-OCRに展開した.
辞書データの準備
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files のeng.traineddata, jpn.traineddataをダウンロードする.
ディレクトリ(C:\Program Files\Tesseract-OCR\tessdata)を作成して, eng.traineddata, jpn.traineddataを置く.
環境変数の設定
変数 | 値 |
---|---|
Path | C:\Program Files\Tesseract-OCR |
TESSDATA_PREFIX | C:\Program Files\Tesseract-OCR\tessdata |
tesseractを試す
コマンドプロンプトでtesseractを実行する.
sample.pngをtesseractでテキストにしてみる.
tesseract sample.png result -l jpn
画像
結果
何言つてんだよ! !
その崖っぷちが最髙のチヤンスなんだぜ ! !
まつおかしゅうぞう
ちゃんとテキスト化できた(笑)
pyocr
tesseractをpythonから使えるようにしたラッパー.
https://gitlab.gnome.org/World/OpenPaperwork/pyocr
pyocrのインストール
環境はanaconda@windows7.
pyocr用に仮想環境を作ってpyocrをインストールする.
> conda create -n ocr python=3.6
> conda info -e
# conda environments:
#
base * c:\tools\Anaconda3
ocr c:\tools\Anaconda3\envs\ocr
> activate ocr
(ocr)> pip install pyocr
pyocrからtesseractを呼び出せるか確認
https://gitlab.gnome.org/World/OpenPaperwork/pyocr のUsage Initializationで検証する.
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool 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 'fra'
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.
(ocr)> python test.py
Will use tool 'Tesseract (sh)'
Available languages: eng, jpn
Will use lang 'eng'
tesseractが正しく認識されているようだ.
pyocrを使ってみる
from PIL import Image
import sys
sys.path.append('/path/to/dir')
import codecs
import pyocr
import pyocr.builders
tool = pyocr.get_available_tools()[0]
builder = pyocr.builders.TextBuilder()
# 画像から文字列を取得する
txt = tool.image_to_string(
Image.open('sample2.png'),
lang='jpn',
builder=builder
)
# 文字列を書き出す
with codecs.open("result2.txt", 'w', encoding='utf-8') as file_descriptor:
builder.write_file(file_descriptor, txt)
(ocr)> python img_to_txt.py
画像
結果
ー番になるつていつたよな?
日本ーなるつつつたよな!
ぬるま湯なんかつかつてんじゃねぇよお前! !
まつおかしゆうぞう
アツイ言葉が画像から読み取れた(笑)
今後
とりあえず軽く試してみて思った以上に使えそうなことが分かった.
次は手書きの文字でもちゃんと認識できるのか試したい.
Author And Source
この問題について(tesseractでOCR@Windows7), 我々は、より多くの情報をここで見つけました https://qiita.com/maitake9116/items/bcf0e519b06e846f0baf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .