Python を使用した画像からのテキスト抽出方法
By hientd, at: 2024年4月5日20:17
Estimated Reading Time: __READING_TIME__ minutes


画像からのテキスト抽出 ― 光学文字認識(OCR)として知られるプロセス ― は、印刷された文書のデジタル化からリアルタイムでの道路標識の処理まで、数多くの用途があります。
Pythonは、豊富なライブラリとAPIのエコシステムにより、OCRタスクのためのいくつかのソリューションを提供します。この記事では、画像からのテキスト抽出のための4つの一般的なPythonライブラリと4つのクラウドAPIについて探ります。
OCR用Pythonライブラリ
1. pytesseract
- 説明: GoogleのTesseract-OCRエンジンのラッパーです。
- コードスニペット: まずインストールを実行する必要があります
pip install pytesseract
from PIL import Image
import pytesseract
text = pytesseract.image_to_string(Image.open('image.jpg'))
print(text) - 長所: 無料でオープンソース、複数の言語をサポート。
- 短所: 複雑なレイアウトを含む画像では苦労することがあります。
2. easyOCR
- 説明: 40以上の言語をサポートし、シンプルさを重視して設計された比較的新しいライブラリです。
- コードスニペット:
pip install easyocr
でインストール
import easyocr
reader = easyocr.Reader(['en'])
results = reader.readtext('image.jpg')
print(results)
- 長所: 使用が簡単、様々な画像タイプで良好なパフォーマンス。
- 短所: 深層学習モデルのためにサイズが大きくなります。
3. OCRopus
- 説明: 歴史的な文書認識に重点を置いた、Pythonで書かれたOCRスイートです。
- コードスニペット:
# OCRopusはコマンドラインを使用するため、擬似コードです
ocropus-rpred 'image.jpg'
- 長所: 歴史的な文書に適している、オープンソース。
- 短所: 最新のテキストレイアウトにはあまり効果的ではない、コマンドラインベース。
OCR用クラウドAPI
1. Microsoft OCR
- 説明: ドキュメントからの情報の理解、処理、抽出を目的としたAzure AIの一部です。
- SDK: https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/quickstarts/get-started-sdks-rest-api?view=doc-intel-4.0.0&preserve-view=true&pivots=programming-language-python
- 長所: 他のMicrosoftサービスとの深い統合。
- 短所: 初心者にとっては設定が複雑になる可能性があります。
2. Amazon Textract
- 説明: 機械学習を使用して、スキャンされた文書からテキストとデータを取り出します。
- SDK: https://docs.aws.amazon.com/code-library/latest/ug/python_3_textract_code_examples.html
- 長所: 大量の文書を処理できる、フォームと表をサポート。
- 短所: 大規模なアプリケーションでは使用コストが高くなる可能性があります。
3. Google Cloud Vision API
- 説明: テキスト検出を含む強力な画像分析機能を提供します。
- SDK: https://cloud.google.com/python/docs/reference/vision/latest
- 長所: 高精度、他のGoogleサービスとの容易な統合。
- 短所: 大量のユーザーにとっては価格が問題になる可能性があります。
結論
結論として、Python OCRは、単純なテキスト抽出から複雑なドキュメント分析まで、幅広いユースケースに対応する、それぞれ長所と短所を持つ多様なツールとクラウドAPIを提供します。歴史的な写本でも最新の文書でも、適切なソリューションがあります。ただし、適切なツールまたはAPIの選択は、精度、言語サポート、コスト、統合の容易さなど、特定のニーズによって異なります。
ChatGPTがAzureサービスで使用できるため、現在ではMicrosoft Document IntelligenceまたはOCRが最適な選択肢と言えるでしょう