画像からのテキスト抽出、すなわち光学文字認識(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

2. Amazon Textract

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投稿がありました。こちらもご覧ください。