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 Servicesで利用可能になったため、Microsoft Document IntelligenceまたはOCRが現在では最良であると考えられます
最終更新 - 2025年1月8日: 最近、Andrew Ng氏から新しいLinkedIn投稿がありました。こちらもご覧ください。