【最短5分】PythonとOCRでPDFや画像から文字認識をする方法

【最短5分】PythonとOCRでPDFや画像から文字認識をする方法

 

★悩み★
・PythonでOCR(文字認識)するためのライブラリってあるのかな?
・OCR(文字認識)ソフトであるTesseractをPythonで使える?
・PythonとOCRでPDFや画像から文字認識する方法を知りたい。



こういった「悩み」に答えます。
 

★本記事の内容★
① OCRとは?
② PythonでOCR(文字認識)ができるライブラリ
③ PythonとPyOCR(文字認識ライブラリ)のインストール
④ PythonのPyOCR(文字認識ライブラリ)で画像やPDFを文字認識する手順



これからご紹介する「【最短5分】PythonとOCRでPDFや画像から文字認識をする方法」を実践したことで、筆者は5分以内でPythonからTesseractを使って「画像の文字認識」や「PDFの文字認識」をできました。
 

記事の前半では「OCRとは?」や「PythonでOCR(文字認識)できるライブラリ」をご紹介します。
記事の後半では「PythonのPyOCRという文字認識ライブラリを使って、画像やPDFを文字認識する手順」をご紹介します。
 

この記事を読み終えることで、「Pythonで画像やPDFを文字認識できる」状態になります。
 

OCRとは?【画像内のテキストを読み取る技術です】

OCRとは?【画像内のテキストを読み取る技術です】


「OCRとは?」に関してご紹介します。
 

最近よく耳にする「OCR」ですが、「どういった技術なのか」や「どういった場面で利用されるのか」を簡単に説明しますね。



OCRとは、以下のように定義されています。
 

★OCRとは★
OCRとは、Optical character recognition(光学文字認識)の略称です。
活字や手書きテキストの画像を文字コードの列に変換するソフトウェアです。
参照:OCRとは?(Wikipedia)



また、OCRは、以下のような場面で利用されています。
 

★OCRの利用場面★
・名刺情報から連絡先情報の抽出
・印刷された楽譜を読み取る楽譜OCR
・空港における、パスポートの認識と情報抽出
・印刷された文書の電子画像を検索可能にする(例:Googleブックス)
・ビジネス文書のデータ入力(小切手、パスポート、請求書、領収書など)
参照:OCRの応用分野(Wikipedia)



以上が、「OCRとは?」となります。
 

PDFや画像内のテキストをパソコンが読み取れる文字に変換したい場合、OCR(光学文字認識)の利用を検討してみてください。


 

PythonでOCRができるライブラリ

Tesseractとは?【無料で使えるOCRソフトウェアです】


「PythonでOCRができるライブラリ」に関してご紹介します。
 

★PythonでOCRができるライブラリに関するご紹介事項★
・PythonでOCRができるライブラリ一覧
・Tesseractとは?【無料で使えるOCRソフトウェアです】



以降で、上記「PythonでOCRができるライブラリに関するご紹介事項」の各項目に関して説明します。
 

PythonでOCRができるライブラリ一覧

「PythonでOCRができるライブラリ一覧」に関してご紹介します。
 

OCR(文字認識)ができるPythonライブラリをご紹介しますね。



OCR(文字認識)できるPythonライブラリとして、以下があります。
 

★PythonでOCRができるライブラリ一覧★
pyocr
keras-ocr
pytesseract
ocrmypdf
easyocr
参照:Pythonで利用できるOCRライブラリ一覧



以上が、「PythonでOCRができるライブラリ一覧」となります。
 

以降では、比較的使いやすいpyocrライブラリをご紹介します。
pyocrライブラリ内では、TesseractというOCRソフトウェアを使われています。
以降で、Tesseractに関して簡単に説明しますね。
 

Tesseractとは?【無料で使えるOCRソフトウェアです】

「Tesseractとは?」に関してご紹介します。
 

Tesseractとはどのようなものなのか?に関して説明しますね。



Tesseractの概要を以下に記載します。
 

★Tesseractとは★
Tesseractは、Google社が開発しているオープンソースの光学式文字認識ソフトウェアです。
Tesseractを使うことで「無料で画像内の文字認識」ができます。
メリット/デメリットや事例に関しては、以下の記事をご覧ください。
>> 【要点】Tesseractとはを解消!初心者向けに特徴から使い方を図解



Tesseractのライセンスに関して以下に記載します。
 

★Tesseractのライセンスについて★
Tesseractのライセンスは、Apache License 2.0(2022年4月23日時点)です。
特に制限なく、無料でTesseractを使えます。
参照:Apache License 2.0とは(Wikipedia)



また、Tesseractの「直近でどのぐらい活発に開発されているか?」に関する情報は、以下のサイトから確認できます。
参照:Tesseractの開発頻度(GitHub)
 

Tesseractの開発頻度



ちなみに、Tesseractは、以下の言語で開発されています。
参照:Tesseractの開発言語(GitHub)
 

Tesseractの開発言語


 

以上が、「Tesseractとは?」となります。
 

PythonのPyOCRという文字認識ライブラリを使うことで、無料で画像やPDFのOCR(文字認識)できます。


 

PythonとPyOCR(文字認識ライブラリ)のインストール

PythonとPyOCR(文字認識ライブラリ)のインストール


「PythonとPyOCR(文字認識ライブラリ)のインストール」に関してご紹介します。
 

★PythonとPyOCR(文字認識ライブラリ)インストールするための準備★
手順1:OCR(文字認識)ソフトであるTesseractをインストール
手順2:Pythonをインストール
手順3:Pythonの「PyOCR」ライブラリをインストール
手順4:Tesseractで日本語を文字認識(OCR)するためのセットアップ
手順5:Tesseractで文字認識したい画像をダウンロード



上記の流れで、「PythonとPyOCR(文字認識ライブラリ)をインストールするための準備」ができます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
Tesseractのバージョン:4.1.1-rc2-20-g01fb
動作確認済み日時:2022年4月23日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)



以降で、上記「PythonとPyOCR(文字認識ライブラリ)をインストールするための準備」の各手順に関してご説明します。
 

手順1:OCR(文字認識)ソフトであるTesseractをインストール

「手順1:OCR(文字認識)ソフトであるTesseractをインストール」に関して解説します。
 

Pythonで画像をOCR(文字認識)するために、OCR(文字認識)ソフトウェアであるTesseractをインストールしましょう。



「Tesseractのインストール手順」に関しては、以下の記事をご覧ください。
 


 

既にTesseractをインストールされている方は、本手順を省略してください。



以上で、「手順1:OCR(文字認識)ソフトであるTesseractをインストール」は完了です。
 

手順2:Pythonをインストール【PyOCRの利用に必要】

「手順2:Pythonをインストール」に関してご説明します。
 

PyOCRライブラリをインストールするためにもPythonをインストールしましょう。



以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール

 

既にPythonをインストールされている方は、本手順を省略してください。



以上で、「手順2:Pythonをインストール」は完了です。
 

手順3:Pythonの「PyOCR」ライブラリをインストール

「手順3:Pythonの「PyOCR」ライブラリをインストール」に関してご説明します。
 

PythonでTesseractを使うために、PyOCRライブラリをインストールしましょう。



Pythonの「PyOCR」ライブラリをインストールするために、「端末」または「コマンドプロンプト」を起動し、以下のコマンドを順に実行しましょう。

# pip install pyocr
# pip list | grep pyocr
pyocr (0.8)
# pip install wheel
# pip list | grep wheel
wheel (0.37.0)
# pip install pdf2image
pdf2image (1.16.0)



コマンンド実行後、「pyocr(バージョン)」と「wheel (バージョン)」「pdf2image(バージョン)」が表示された場合、「正常にPyOCRライブラリをインストールできた」と判断できます。
 

pdf2imageは、PDFを画像に変換する際に利用します。PDFを文字認識する必要がない方は、pdf2imageをインストールする必要はないです。



以上で、「手順3:Pythonの「PyOCR」ライブラリをインストール」は完了です。
 

手順4:Tesseractで日本語を文字認識(OCR)するためのセットアップ

「手順4:Tesseractで日本語を文字認識(OCR)するためのセットアップ」に関して解説します。
 

PythonのPyOCRで日本語を文字認識(OCR)したい場合、Tesseractで日本語を文字認識(OCR)するためのセットアップが必要です。



「Tesseractで日本語を文字認識(OCR)するためのセットアップ手順」に関しては、以下の記事をご覧ください。
 


 

PythonのPyOCRで日本語を文字認識(OCR)する必要性がない方は、本手順を省略してください。



以上で、「手順4:Tesseractで日本語を文字認識(OCR)するためのセットアップ」は完了です。
 

手順5:Tesseractで文字認識したい画像をダウンロード

「手順5:Tesseractで文字認識したい画像をダウンロード」に関して解説します。
 

PythonでTesseractを使ったOCR(文字認識)をしたい画像をダウンロードしましょう。



以降では、下の画像とPDFを用いたOCRを解説します。
 

手順5:Tesseractで文字認識したい画像をダウンロード

 



以上で、「手順5:Tesseractで文字認識したい画像をダウンロード」は完了です。
 

上記の流れで、Python(PyOCR)でTesseractを使ったOCR(文字認識)するための準備ができました。


 

PythonのPyOCR(文字認識ライブラリ)で画像やPDFを文字認識する手順

PythonのPyOCR(文字認識ライブラリ)で画像やPDFを文字認識する手順


「PythonのPyOCR(文字認識ライブラリ)で画像やPDFを文字認識する手順」に関してご紹介します。
 

★PythonのPyOCRで画像やPDFを文字認識のご紹介事項★
・PythonのPyOCR(文字認識ライブラリ)で画像を文字認識
・PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識



以降で、上記「PythonのPyOCRで画像やPDFを文字認識する流れ」の各手順に関してご説明します。
  

上記の各項目は、以下の日時と環境で動作確認済みです。
Tesseractのバージョン:4.1.1-rc2-20-g01fb
動作確認済み日時:2022年4月23日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)


 

PythonのPyOCR(文字認識ライブラリ)で画像を文字認識

「PythonのPyOCR(文字認識ライブラリ)で画像を文字認識」に関して解説します。
 

PythonのPyOCRで画像を文字認識してみましょう。



「PythonのPyOCR(文字認識ライブラリ)で画像を文字認識する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import os
from PIL import Image
import pyocr
 
# pyocrが利用するOCRエンジンをTesseractに設定
tools = pyocr.get_available_tools()
tool = tools[0]
 
# OCR(文字認識)させた画像ファイルを読み込み
ocr_image_file_path = "<OCR(文字認識)させたい画像のファイルPath(適宜変更)>"
img = Image.open(ocr_image_file_path)
 
# OCR(文字認識)の実施
builder = pyocr.builders.TextBuilder(tesseract_layout=6)
text = tool.image_to_string(img, lang="eng", builder=builder)

# ↓↓ 日本語が記載された画像をOCR(文字認識)したい場合は、以下のコメントを外す ↓↓
#text = tool.image_to_string(img, lang="jpn", builder=builder)
 
print(text)



上記のプログラムを「python-pyocr-tesseract.py」というファイル名で保存しましょう。
   

保存した「python-pyocr-tesseract.py」を実行するために、以下のコマンドを実行してください。

# python python-pyocr-tesseract.py
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of
computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each
offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect
and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which
may be prone to failures.



コマンド実行後、「OCR(文字認識)した結果」が表示された場合、「正常にPythonのPyOCRでTesseractを使ったOCR(文字認識)ができた」と判断できます。
 


正解データと突き合わせたところ、間違いなく英数字の文字認識(OCR)ができていました。
 

上記プログラムを実行した際に「IndexError: list index out of range」が発生した場合は、以下の記事をご覧ください。

>> 【5分で解決】pyocr.get_available_toolsのout of rangeエラー
 

以上が、「PythonのPyOCR(文字認識ライブラリ)で画像を文字認識」となります。
 

PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識

「PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識」に関して解説します。
 

PythonのPyOCRでPDFを文字認識してみましょう。



「PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import os
from PIL import Image
import pyocr
import pdf2image

# pyocrが利用するOCRエンジンをTesseractに設定
tools = pyocr.get_available_tools()
tool = tools[0]
 
# OCR(文字認識)させたいPDFをjpg(画像)へ変換
ocr_pdf_file_path = "<OCR(文字認識)させたい画像のファイルPath(適宜変更)>"
images = pdf2image.convert_from_path(ocr_pdf_file_path, dpi=200, fmt='jpg')
 
# OCR(文字認識)の実施
builder = pyocr.builders.TextBuilder(tesseract_layout=6)
for image in images:
  text = tool.image_to_string(image, lang="jpn", builder=builder)
  print(text)



上記のプログラムを「python-pyocr-tesseract-pdf.py」というファイル名で保存しましょう。
   

保存した「python-pyocr-tesseract-pdf.py」を実行するために、以下のコマンドを実行してください。

# python python-pyocr-tesseract-pdf.py
表示確認用サンブル PDF



コマンド実行後、「OCR(文字認識)した結果」が表示された場合、「PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識」と判断できます。
 

以上が、「PythonのPyOCR(文字認識ライブラリ)でPDFを文字認識」となります。
 

以上のようにして、PythonのPyOCR(文字認識ライブラリ)で画像やPDFを文字認識できました。


 

【まとめ】PythonとOCRでPDFや画像から文字認識をする方法

【まとめ】PythonとOCRでPDFや画像から文字認識をする方法


いかがでしたでしょうか?
「OCRやTesseractとは何か?」「PythonでOCRができるライブラリ」「PyOCRで画像とPDFを文字認識する方法」を解説し、以下の悩みを解決しました。 
  

★悩み★
・PythonでOCR(文字認識)するためのライブラリってあるのかな?
・OCR(文字認識)ソフトであるTesseractをPythonで使える?
・PythonとOCRでPDFや画像から文字認識する方法を知りたい。



ぜひあなたも本記事を参考に「PythonとOCRでPDFや画像から文字認識」してみてください。

タイトルとURLをコピーしました