こんにちはkzyです。

今回は文字認識ライブラリのPyOCRとTesseractを使って画像からテキストを抽出したいと思います。

環境構築含めpythonでの文字認識のやり方を簡潔に説明できればと思います。



pythonで文字認識は数行のコードでできるよ!

目次

この記事は以下のような方を対象者としています。

本記事の対象者

  • python初学者の方
  • pythonで文字認識のやり方を探している方
  • コピペでいいからpythonの文字認識を試したい方


前置き:文字認識ライブラリTesseractとPyOCRとは?

Tranquilpeak
まずは今回使うライブラリの概要について1行で説明します。

Tesseract…GoogleとHPが共同開発したオープンソースの文字認識用ライブラリ。

PyOCR….Python用のOCR(光学的文字認識)ライブラリ。

Pythonで文字認識:環境構築をしよう

まずはPythonで文字認識を行うための準備をしましょう。

実際に私が環境構築した時の手順を説明します。

下記が私のPCのPythonのライブラリのバージョンです。

※これらコマンドはターミナル上で実行しています。

1
2
3
4
5
実行コマンド:
python --version

出力結果:
Python 2.7.15

ちなみに私はMacを使うため本記事もMacでの環境構築を前提として解説します。

Windowsでも基本の流れは同じです!

Pythonで文字認識 環境構築手順その1:PyOCRのインストール

まずは下記コマンドでPyOCRライブラリのインストールをしましょう。

1
2
3
4
5
6
7
実行コマンド:
sudo pip install pyocr

出力結果:
Successfully built pyocr
Installing collected packages: Pillow, pyocr
Successfully installed Pillow-8.0.1 pyocr-0.7.2

Pythonの画像ライブラリであるPillowもPyOCRに併せてインストールされます。

Pythonで文字認識 環境構築手順その2 : Tesseractのインストール

続いて文字認識を行う上で必須となるTesseractライブラリをインストールしましょう。

1
2
3
4
5
6
7
8
9
10
11
実行コマンド:
brew install tesseract

出力結果:
Successfully installed的な文言が表示されていればOKです。

参考までに私のMacにインストールされたTesseractのバージョンは下記の通りです。

実行コマンド:tesseract --version
出力結果:
tesseract 4.0.0

Pythonで文字認識 環境構築手順その3 : 日本語モデルのダウンロード

上記手順にてpythonの文字認識で必要なライブラリのインストールが完了しました。

しかし、今のままだと英語しか文字認識ができないです。

日本語で文字認識をしたい場合は日本語の学習モデルのダウンロードが必要です。

下記URLより日本語モデルデータをダウンロードしてください。

Tesseract 日本語モデル ダウンロード用URL
https://github.com/tesseract-ocr/tessdata/blob/master/jpn.traineddata


英語以外にも多くの言語がサポートされてるようです!

Pythonで文字認識 環境構築手順その4 : 日本語モデルファイルをtessdataフォルダ配下に配置

上記URLより日本語モデル(ファイル名:jpn.traineddata)のダウンロードが完了したら、下記所定の位置に配置してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
/usr/local/Cellar/tesseract/tesseractのバージョン名/share/tessdata/

注意点 : tesseractのバージョン名はインストールしたtesseractのバージョン名で置き換えてください。
例:4.0.0_1

ちなみにtessdataフォルダ内には下記ファイルが格納されていました。
実行コマンド : ls -la /usr/local/Cellar/tesseract/4.0.0_1/share/tessdata/
- configs
- eng.traineddata
- osd.traineddata
- pdf.ttf
- snum.traineddata
- tessconfigs

これでPyOCR&Tesseractでの文字認識のための環境構築が完了しました。

Pythonで文字認識 : 実行スクリプトを用意

続いて文字認識を行うためのスクリプトを用意しましょう。

サンプルコードはnabechi6011さんのコードを参考にさせていただきました。

detect.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
from PIL import Image
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()))

txt = tool.image_to_string(
    #文字認識対象の画像image.pngを用意する
    Image.open("./image.png"),
    lang="jpn",
    builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)

print( txt )

僕のフォルダ構成は下記の通りです。

detectText/
- detect.py
- image.png

Pythonで文字認識 : 文字認識スクリプトを実行

お疲れ様でした。

それでは最後に前ステップで用意したスクリプトを実行しましょう。

ちなみに僕が用意した画像はドラえもんのwikipediaからスクショしたものです。

1
2
3
4
5
実行コマンド : python detect.py
実行結果 : 

本 作 品 は 、②② 世 紀 の 未 来 か ら や っ て き た ネ コ 型 ロ ボ ッ ト ・ ド ラ え も ん と 、 勉 強 も ス ポ ー ツ も 苦 手 な 小 学 生 ・ 野 比 の び 太 が 繰 り 広 げ る 少 し 不 思 議 (SF) な 日
常 生 活 を 描 い た 作 品 で あ る 。 基 本 的 に は 一 話 完 結 型 の 連 載 漫 画 で あ る が 、 一 方 で ス ト ー リ ー 漫 画 形 式 と な っ て 日 常 生 活 を 離 れ た 冒 険 を す る と い う 映 画 版 の

成功した場合は画像に書かれているテキストが標準出力されるはずです。

ちなみに画像の解像度が低かったり、極端にテキストの大きさが小さいと正確に文字認識ができない場合があります。

エクセルに出力したり、色々応用できそうですね!

さいごに

ここまでお読みいただきありがとうございました。

僕のブログサイト「kzy.tech〜日本脱出のための教科書〜」どのようなサービスで作られているかが気になる方は以下別記事にてご説明していますので、ご覧いただけますと小躍りして喜びます💃

【コピペOK】HUGOでアフィリエイト用ブログサイトを作ろう

手間暇かけずにサクッとアフィリエイト用のブログサイトを作りたいという方向け。

ある程度自由にカスタマイズできる、かつコマンド一つで 記事の自動生成ができる静的サイトジェネレータ「HUGO」についてまとめました。

また、海外移住の 英語とプログラミングを習得することを推奨しています。
これは私の経験則から言えることですが、上記二つのスキルがあれば海外移住は絶対に実現できます

以下に僕が実際に使って効率よくプログラミング学習ができるおすすめサービスを載せます😌

速習!おすすめプログラミング勉強法【Udemy】

いくつかプログラミング学習サービスを利用しましたが、一番効率よく勉強できると感じたのはUdemyでした。

Udemyでは動画での説明や解説等もあり親切で、学習教材も豊富にあることから プログラミング初学者の方が短期間でエンジニアを目指したいのであれば、非常に良い教材だと思います。

ちなみに私は文系卒で社会人になってから独学でudemyを使ってプログラミングの勉強をして、実際にエンジニアとして採用されました

Udemyのコースは1つ1,000円ほどなので、ITの参考本を一冊(3,000円)を買うよりもUdemyのコースを購入する方が安い上により効率的にプログラミングを勉強できると思います。
世界最大級のオンライン学習サイトUdemy

また、別記事にてダナンでの生活やIT関連についても記事を書いていますのでクリックいただけると嬉しくて踊ります💃

【Udemy】未経験から始める格安プログラミング講座4選

未経験だけどプログラミングを学んでエンジニアになりたい、社会人だから時間もそれほど多く無いので効率よく勉強したい。 私もその内の一人でした。今回の記事で最短でエンジニアになるためのおすすめUdemy講座4選をご紹介したいと思います。

【IT資格は無意味】未経験エンジニアがIT資格の勉強をおすすめしない4つの理由とは?

プログラミングを勉強し始めてIT資格を取ろうか悩んでいる方向け。 プログラミング未経験の方が資格勉強をされることは僕の経験上おすすめしません。 なぜ資格の勉強がプログラミング学習において、エンジニアの就活においてNGかこの記事で解説します。

【個人開発】副業でアプリを作りたいならサーバーは契約しない方がいい理由

個人で副業のためにアプリ開発をしてみたいと考えている方向け。 iOS/Androidの個人アプリ開発の場合データのやりとりを行うため、サーバを契約する人が多いです。 しかし、考えなしにサーバを契約するのは非常に大きなデメリットがあるため、私はあまりオススメしません。 ではどの様にしてお金をかけずにアプリ作りができるか、なぜFirebaseを使うべきなのかこの記事で解説していきます。

【海外にもある!?】海外就活でブラック企業を回避する方法

海外での就活を考えている方向けの記事です。 ブラック企業は日本企業のイメージがありますが、そんなことはありません。 日本の就活とは違う点、また海外の就活で失敗しないために事前に知っておいた方が良い情報を本記事にてまとめていきます。

【ダナンの物価】ダナン在住者が伝える2020年ベトナム最新状況!

最近観光地として人気が高まっているダナンですが、近年物価の変動が大きくなっていっているように感じます。 2019年〜2020年でのダナンの物価はどのようなものなのか、ダナン在住者として現地の声をお届けできればと思います

【残業大国】日本の異常な労働環境をベトナムで働いてみて実感した件

日本ってやっぱり「働く」ことに関しては異常ですよ。 「お客様は神様」精神、残業を美徳とする文化、過労死という言葉を作り出してしまう労働環境。 今回は日本の異常な労働環境をベトナムの労働環境と比較しながら説明したいと思います😱

【海外移住】ベトナムに移住したら日本の8億倍住みやすかった件

海外移住を始めて2年ほどが経過しました、日本に住んでいた時と今ベトナムに移住してからとでどのように生活が変わったのかをこちらの記事にまとめていこうと思います。

【ダナンの家賃】日本相場の半額以下!?ベトナム家賃相場調査!

ベトナム・ダナンへ移住を考えている方向け。 海外移住をする上で家賃相場を事前に知っておくことは生活費がどれくらいかかるのか計算ができるので非常に重要です。 こちらの記事で家賃相場、賃貸契約の流れ、賃貸契約時のトラブルについて解説していきます。

【おすすめ】Udemy講座でAWS ソリューションアーキテクト アソシエイトを一発合格できた件

AWS ソリューションアーキテクトの勉強をしている方向け。
Udemyでのおすすめ講座、一発合格のための勉強方法から受験の手順まで本記事でまとめました。
認定試験の受験を考えている方には必見です。

【python】文字認識で画像からテキストを出力するやり方をわかりやすく【Tesseract&PyOCR】

こんにちはkzyです。 今回は文字認識ライブラリのPyOCRとTesseractを使って画像からテキストを抽出したいと思います。 環境構築含めpythonでの文字認識のやり方を簡潔に説明できればと思います。

【コピペOK】flutterのSizedBoxとExpandedの違いをわかりやすく

flutterでオブジェクトのサイズ調整の理解が曖昧な方向け。 flutterでアプリ開発を行う際に頻出する項目の一つのため、この記事でなるべくわかりやすく解説します。

【python】文字認識したテキストをエクセルに出力するやり方をわかりやすく【PyOCR + XlsxWriter】

こんにちはkzyです。 今回はPyOCRで文字認識したテキストをエクセルに出力する方法を解説します。 具体的にはXlsxWriterというライブラリを使用してPythonスクリプトからエクセル操作を行います。