
Pythonを業務に活用したいなら、Pythonで画像データからテキストデータを取り出すことができます。
Pythonを使って、画像データからテキストデータを取り出す方法を紹介します。
画像データからテキストデータを取り出すことは、オープンソースソフトを使えば、無料で実現できます。
画像データからテキストデータを取り出すことができれば、
・客先から送られて来たPDFファイルから資料を作成する場合にテキストデータを取り出すことで、資料の作成時間を大幅に減らすことができます。
・スマホで撮影したお客さんの名刺から、顧客リストを作成する
・雑誌で気になるページをスマホカメラで撮影して、この記事をテキストデータとして管理する(資料作成の元データにする)
画像データからテキストデータを取り出すには、Tesseract-OCR、PyOCRを使用します。
Tesseract-OCRとは
Tesseract-OCRというのは、Googleが開発したOCR用のソフトウェアです。
このソフトは各言語毎に訓練データを使って文字認識をしています。
PyOCRとは
「PyOCR」はPython用のOCRツールラッパーです。PythonプログラムからさまざまなOCRツールを使用できます。
現在サポートされているOCRツールは以下の3種類。
・Libtesseract
・Tesseract
・Cuneiform
環境構築
今回は、Windows PCにインストールする方法を紹介します。
Tesseract-OCRのインストール
Tesseract-OCRのインストール方法は、以下のサイトがわかりやすく書かれていますので、こちらを参照してください。
PyOCRのインストール
コマンド プロンプトを開いて、以下のコマンドを実行してください。実行すると、PyOCRのインストールが始まります。
pip install pyocr
テスト画像の用意
使用する画像は、なんでもいいですが、なるべくテキストのみが書かれている画像の方が認識率が高いので、下図を保存して、使用してください。(図の上で右クリックして、「名前を付けて、画像を保存」)


サンプルコード
#!usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import Image
import pyocr
import pyocr.builders
# Tesseractのパスを通す
path_tesseract = "C:\\Program Files\\Tesseract-OCR"
if path_tesseract not in os.environ["PATH"].split(os.pathsep):
os.environ["PATH"] += os.pathsep + path_tesseract
# OCRエンジンの選択
tools = pyocr.get_available_tools() # OCRエンジンのリストを取得
tool = tools[0] # OCRエンジンのリストの中から、使用したいエンジンを選択
# 画像の読み込み
img = Image.open("ocr-test.png")
# OCR実行
builder = pyocr.builders.TextBuilder(tesseract_layout=6)
result = tool.image_to_string(
img, # 読み取り対象
lang="jpn", # 読み取り対象の言語
builder=builder # オプション
)
# 結果を表示
print(result)
上記サンプルコードと対象となる画像データは同じフォルダに入れてください。
サンプルコード内にオプションを指定する部分がありますが、オプションは、以下となります。
pagesegmode values are:
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
pagesegmodeの値は次のとおりです。
0 =方向とスクリプト検出(OSD)のみ。
1 = OSDによる自動ページセグメンテーション。
2 =自動ページセグメンテーション、ただしOSDなし、またはOCR
3 =完全自動のページセグメンテーション。ただし、OSDなし。 (デフォルト)
4 =可変サイズのテキストの単一列を想定します。
5 =垂直に配置されたテキストの単一の均一なブロックを想定します。
6 =単一の均一なテキストブロックを想定します。
7 =画像を単一のテキスト行として扱います。
8 =画像を1つの単語として扱います。
9 =画像を円の中の1つの単語として扱います。
10 =画像を単一の文字として扱います。
実行
上記サンプルコードと対象となる画像データは同じフォルダに入れてください。
コマンドプロンプトを開いて、以下のコマンドを実行してください。
python app.py
実行すると、コマンドプロンプトに、以下が表示されると思います。
目次[閉じる]
1. ごの記事で解決できること
2. 今回、作るアプリ
3. 準備
4. 構成
5. ラズバイとM5Stackをケーブルでつなぐ
1. M5Stack側
1. M5GOの場合
2. ラズバイ便
3. M5Stackとラズバイのつなぎ方
6. M5Stack側の設定
1.サンプルコード
7. ラズバイ側の設定
1.サンプルコード
8. 動かし方
1. M5Stack
2. Raspberry Pi
9. まとめ
10. 参考
なかなか高い認識率です。これなら、いろんなことに使えそうです。
まとめ
今回は、画像データからテキストデータを取り出す方法として、Python、Tesseract-OCR、PyOCRを使用した方法を紹介しました。
Pythonでプログラムを作るのなら、ラズパイが安くて、環境構築も楽で、おすすめです。
Raspberry Pi は、Raspberry Pi Foundationによって開発された低価格で小型のシングルボードコンピュータです。最初は教育目的で2012年にリリースされましたが、その手頃な価格と高性能により、教育用にとどまらず、さまざまなプロジェクトやプロトタイピングのプラットフォームとして広く利用されています。Raspberry Piは、LinuxベースのOSを主に使用し、簡単にカスタマイズ可能であるため、プログラミングやエレクトロニクスの教育、IoTデバイス、ホームオートメーション、メディアセンターなどに活用されています。
デイトラは総受講者数30,000人超の、Webスキルを学べる国内最大規模のオンラインスクールです。
動画コンテンツを見ながら自習を行い、わからないところをチャットツールで質問を行うという形式で学習を行います。そのため、時間・場所を選ばず自分のペースで学習できます。
デイトラ最大の特徴はフリーランスや副業を意識したコースを中心としていることです。Web系フリーランスに必要なスキルを学べるコースを備えており、実際に多数の受講生がフリーランスとなっています。
<オススメポイント>
1. フリーランス/副業を意識したカリキュラム
デイトラは運営陣が全員元フリーランスで、フリーランス向けメディア「東京フリーランス」の運営も行っています。そのためフリーランスに求められるスキル感や現在の流行、そして案件獲得の方法にまで精通しており、カリキュラムにもそのノウハウを反映しています。
「何かを作れるようになる」といった漠然としたゴールではなく、「実際に仕事を受けられるレベルに達する」ことをゴールとしているため、カリキュラムは非常にハイレベルです。
■提供中のコース一覧
・Web制作コース
・Webアプリ開発コース
・Webデザインコース
・Shopifyコース
・動画制作コース
・Pythonコース
・Webマーケティングコース
・AIライティングコース
・Javaコース
2. 受講生による好意的な口コミ
デイトラはTwitter・ブログともに受講生による好意的な口コミが非常に多いです。
カリキュラムやウェビナーなどのサービスの質に満足する声や、実際に案件を獲得できた・転職に成功したなどの成果報告が多数見られます。実際に受講した方の満足する声が多いからこそ、それを見た人が安心して受講に踏み切られています。
デイトラが一年間で8000人以上から受講してもらえたのも、口コミで人が人を呼ぶ構造になっているのが最大の要因です。
3. 圧倒的なコストパフォーマンス
デイトラは一年間のサポート付きで99,800円と格安でサービスを提供しています(例:Web制作コース)。一般的なプログラミングスクールが数十万円の受講料でサポート期間も三ヵ月ほどであることが多いため、それらに比べて非常に安価な価格設定となっています。
さらに、卒業後はカリキュラムの閲覧が不可になるスクールも多い中、デイトラは一度受講したらその後もカリキュラムを見放題です。カリキュラムは随時アップデートされるため、「常に最新の情報を提供してくれる教材」として活用される方も多いです。
デイトラは完全オンラインで教室を持たないスクールで、受講生の口コミによる集客が中心となっています。そのため固定費・広告費を抑え、格安でサービス提供を行えています。
デイトラ



- 【PythonでGUIアプリ入門】PySimpleGUI、Pyperclip を使った クリップボードアプリ の作り方
- 【PythonでGUIアプリ入門】PySimpleGUI を使った タイマーストップアプリ の作り方
- 【Python(PySimpleGUI)でGUIアプリ入門】Pythonアプリを起動するランチャソフトの作り方
- 【Python(PyAutoGUI)で作る業務自動化アプリ入門】PyAutoGUI関数まとめ。
- 【Python(PyAutoGUI)で作る業務自動化アプリ入門】スクリーンショット自動化、画像検索機能を使ってみる
- 【Python(PyAutoGUI)で作る業務自動化アプリ入門】キーボード操作を自動化する
コメント