ホームページ  >  記事  >  バックエンド開発  >  Gradio と Hugging Face を使用して、線の下に Python コードを使用してテキスト抽出アプリを構築する

Gradio と Hugging Face を使用して、線の下に Python コードを使用してテキスト抽出アプリを構築する

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 11:20:02304ブラウズ

Build a Text Extractor App with Python Code Under Lines Using Gradio and Hugging Face

元の投稿: https://baxin.netlify.app/build-text-extractor-python-under-30-lines/

光学式文字認識 (OCR) として知られる画像からのテキストの抽出は、文書処理、データ抽出、およびアクセシビリティのアプリケーションにとって貴重な機能です。このガイドでは、OCR 用の pytesseract、画像処理用の Pillow、インタラクティブ UI 構築用の Gradio などの Python ライブラリを使用して OCR アプリを作成します。このアプリを Hugging Face Spaces にデプロイします。

前提条件

始める前に、Hugging Face アカウントと Docker の基本的な知識が必要です。

ステップバイステップガイド

ステップ 1: ハグフェイススペースを作成する

  1. Hugging Face スペースに移動します: Hugging Face にログインし、「スペース」セクションに移動します。
  2. 新しいスペースを作成します:
    • 「新しいスペース」をクリックします。
    • スペースに名前を付けます (例: image-text-extractor)。
    • SDK として Gradio を選択し、公開設定 (パブリックまたはプライベート) を設定します。
    • 「スペースを作成」をクリックします。

ステップ 2: Dockerfile を作成する

OCR 用の Tesseract など、必要なシステム依存関係を持つ Hugging Face Spaces にデプロイするには、環境を構成する Dockerfile が必要です。

次の内容を含む Dockerfile を作成します:

# Use an official Python runtime as a parent image
FROM python:3.12
ENV PIP_ROOT_USER_ACTION=ignore

# Set the working directory in the container
WORKDIR $HOME/app

# Install system dependencies
RUN apt-get update && apt-get install -y
RUN apt-get install -y tesseract-ocr
RUN apt-get install -y libtesseract-dev
RUN apt-get install -y libgl1-mesa-glx
RUN apt-get install -y libglib2.0-0
RUN pip install --upgrade pip

# Copy requirements and install dependencies
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Copy the app code
COPY app.py ./

# Expose the port for Gradio
EXPOSE 7860

# Run the application
CMD ["python", "app.py"]

ステップ 3: OCR アプリケーションを作成する

  1. 次の内容を含む app.py というファイルを作成します。
import gradio as gr
import pytesseract
from PIL import Image
import os

def extract_text(image_path):
    if not image_path:
        return "No image uploaded. Please upload an image."

    if not os.path.exists(image_path):
        return f"Error: File not found at {image_path}"

    try:
        img = Image.open(image_path)
        text = pytesseract.image_to_string(img)
        return text if text.strip() else "No text detected in the image."
    except Exception as e:
        return f"An error occurred: {str(e)}"

iface = gr.Interface(
    fn=extract_text,
    inputs=gr.Image(type="filepath", label="Upload an image"),
    outputs=gr.Textbox(label="Extracted Text"),
    title="Image Text Extractor",
    description="Upload an image and extract text from it using OCR."
)

iface.launch(server_name="0.0.0.0", server_port=7860)
  1. requirements.txt ファイルを作成して依存関係を指定します。
gradio
pytesseract
Pillow

このセットアップには以下が含まれます:

  • 画像のアップロード: gr.Image(type="filepath") を使用すると、ユーザーは画像をファイル パスとしてアップロードでき、pytesseract が処理します。
  • テキスト抽出: pytesseract.image_to_string は画像からテキストを抽出します。
  • ユーザー インターフェイス: Gradio は、ユーザーが画像をアップロードし、抽出されたテキストを表示するためのシンプルな UI を生成します。

ステップ 4: すべてのファイルをハグフェイス スペースにプッシュする

すべてのファイルを作成したら、ハグフェイススペースにプッシュします

以上がGradio と Hugging Face を使用して、線の下に Python コードを使用してテキスト抽出アプリを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。