【Python】tesseractとPyOCR文字認識と商用利用

当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク
本記事を読むと以下の実行ができます

画像の文字をOCR技術で出力する。

OCR(Optical Character Recognition)、日本語で「光学文字認識」と呼ばれる技術は、
手書きの文字や印刷された書類の活字をスキャナーやカメラなどで画像化し、
その画像の文字を認識して、テキストのデジタルデータへと変換する技術のことをいいます。

ビジネスや日常生活でデジタル化が進む現代で、
書類や書籍など印刷されたアナログ情報をデータ化するニーズが高まっていて、
OCRの需要が今後さらに拡大していきます。

本記事では、Pythonを使って、画像の文字を認識する方法を紹介します。

本記事は次の人におすすめ
  • Pythonを使う人
  • OCRに興味がある人
  • Tesseractのインストールをしたい人
  • Pythonで画像から文字認識をしたい人
  • 業務を効率化したい人
スポンサーリンク

Tesseract

Tesseractは、ヒューレット・パッカード(HP)が開発を進め、
Googleが後援している光学式文字認識エンジンです。

Windows、Linux、macOSなどのオペレーティングシステムで利用できます。
Tesseractは、多数の言語に対応しており、日本語も使用可能です。

Tesseractのインストール(windowsの場合)

Tesseractはコマンドプロンプトでインストールするのではなく、
外部からexeファイルをインストールする必要があります。

Tesseract at UB Mannheim-GitHub」にアクセスをして、
最新版のパッケージをインストールしてください。

ダウンロードしたインストーラーの指示に従い、インストールをします。
※画像は、ライセンスの確認です。

「Next」・「I agree」を進めていき、「Choose Components」までたどり着いたら、
ここから操作が必要です。

Additional script data (download)」の「+」を押して展開してください。
項目の中から日本語(Japanese~)にチェックを入れてください。

同様に「Additional language data (download)」項目の中から、
日本語(Japanese~)にチェックを入れてください。

これらが完了したら、次に進み、インストールを完了させてください。

macOSで使用する場合

macの場合は、Homebrewを使用してTesseractをインストールすることができます。

brew install tesseract

Windowsでは、exeファイルをインストールしなければいけませんでしたが、Macの場合は、たったのこれだけです。

クリエイターのMac離れを言われていますが、OCRは、Macの方が手際よくできそうです。

Tesseractは商用利用可能か

Tesseract OCR は、Apache License 2.0 の下で公開されているオープンソースであるため、
商用利用が可能です。

Apache License 2.0は、ソフトウェアを自由に使用、改変、配布することが許可されており、
商用利用も含まれます。

しかし商用利用可能でも、著作権は開発者に属するので、節度が必要です。

ビジネスで使用する際は、必ずライセンスを一読し詳細をご確認ください。

PyOCR

Tesseractをインストールしたので使用しているPCで、
紙に印刷された文字をPCに起こすことができるようになりました。

次に、PythonでOCRを起動させるようにPyOCRを使えるようにします。

PyOCRは、OCRエンジンと統合するPythonラッパーライブラリであり、
先ほどインストールしたTesseractをはじめ一般的なOCRエンジンと連携できます。

連携によってPyOCRを使用してさまざまなテキスト認識プロジェクトを実行できます。

PyOCRを使用するためには、OCRエンジンをインストールし、
Pythonコードを使用して統合したOCRタスクを実行できます。

PyOCRはPillowのサポートによって、jpeg, png, gif, bmpなど様々な画像形式に対応しています。

pillowを使って、QRコードを作成できます。

Pythonでは、画像の形式(拡張子)を変更することができます。

フォルダー内の画像の拡張子を一括で変換する方法を紹介しています。

PyOCRのインストール

ターミナルまたはコマンドプロンプトを開き、
以下のコマンドを実行してPyOCRをインストールします。

pip install pyocr

PyOCRは商用利用可能か

PyOCRは、オープンソースのOCR(Optical Character Recognition)ライブラリで、
Apache License 2.0のもとで提供されています。
ゆえに、商用利用も含めて許可されていますが、いくつかの条件があります。

PyOCRを使うための条件
  • 著作権表示の維持: ソースコードや関連するドキュメントに元の著作権表示やライセンス通知を残す必要があります。
  • 責任免除: ライセンス提供者は、使用に伴う責任を負いません。ソフトウェアは「現状のまま」提供されます。
  • 同じライセンスの維持: 変更したコードを再配布する場合、同じApache License 2.0で提供するか、互換性のあるライセンスを使用する必要があります。

詳細は、公式サイトで各自確認してください。

Pythonで画像の文字を表示する

TesseractとPyocrの導入後、画像の文字の認識が可能になります。

ここでは、次の画像を使用します。

TesseractとPyocrで、画像の文字認識

以下のコードはPythonを使用してOCRを実行し、
指定した画像ファイルからテキストを抽出するためのものです。

ソースコード

import pyocr
from PIL import Image

#pyocrにTesseractを指定する。
pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
tools = pyocr.get_available_tools()
tool = tools[0]

image =Image.open('test01.png')   #画像ファイルを読み込む
text = tool.image_to_string(image, lang="jpn", builder=pyocr.builders.TextBuilder())    #画像の文字を抽出

print(text) # 抽出したテキストを表示

UdemyでPythonを学習

Udemyは、オンデマンド式の学習講座です。
趣味から実務まで使えるおすすめの講座を紹介します。

ビックセール開催中(10月25日まで)
対象のコースが1800円から(最大95%OFF)

多彩な講座から自分に合った講座を探そう!

最大94%OFF

終了まで

時間

解説

pyocrライブラリはPythonのOCRツールのラッパーライブラリで、
テキストを画像から抽出するために使用します。
PILライブラリはPython Imaging Libraryの略で、画像処理に使用します。

import pyocr
from PIL import Image

Tesseract OCRエンジンの実行ファイルのパスを指定し、
Tesseractをコマンドラインから呼び出すために必要です。

また、pyocr.get_available_tools() を使用して、利用可能なOCRツールを取得、
そのうちの最初のツールを選択しています。

一般的に、Tesseractが最初に利用可能なツールとしてリストに表示されます。

pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
tools = pyocr.get_available_tools()
tool = tools[0]

PILライブラリを使用し、指定されたファイルパスにある画像ファイル(’test01.png’)を開きます

tool.image_to_string() メソッドを使用して、指定された画像からテキストを抽出します。
また、本メソッドの引数は、「image」、「lang」、「builder」です。

  • image: OCRを実行する対象の画像。
  • lang=”jpn”: OCRの言語設定。ここでは、日本語を指定しています。
  • builder=pyocr.builders.TextBuilder(): 抽出されたテキストを加工するためのビルダーオブジェクトを指定しています。ここでは、テキストを生のテキストとして取得します。

最後に抽出されたテキストをコンソールに表示します。

image =Image.open('test01.png')   #画像ファイルを読み込む
text = tool.image_to_string(image, lang="jpn", builder=pyocr.builders.TextBuilder())    #画像の文字を抽出

実演

それでは、紹介したコードを実行します。

VScodeでスクリプトを実行すると冒頭のような処理ができます。

日本語で設定していましたが、
ローマ字もしっかりと認識できるので、英語もコンソールに抽出されます。

まとめ

OCR(光学文字認識)は、画像の文字を認識して、テキストのデジタルデータへと変換する技術のことをいいます。

書類や書籍などアナログ情報をデータ化するニーズが高まっていて、OCRの需要は拡大していきます。

自分のPCでOCRを使用するには、ヒューレット・パッカード(HP)が開発を進め、Googleが後援している光学式文字認識エンジンTesseractのインストールが必要です。

Windowsの場合は、exeファイル。Macの場合は、Homebrewを使用してTesseractを導入します。

また、Pythonで使う場合は、OCRエンジンと統合するPythonラッパーライブラリPyOCRのインストールが必要です。

この記事を書いた人

プロフィール

アリッシア

                 

大学4年間で何か胸を張れるスキルを身に着けたくて当サイト運営を始めました。
現在、大学院に進学するか就職するか迷いながら勉強しています。
詳しいプロフィールはこちら

Contact icon

contact

X icon

X

Instagram icon

Instagram

Note icon

Note

スポンサーリンク
Python
フォローする
タイトルとURLをコピーしました