Créez une application d'extraction de texte avec du code Python sous les lignes en utilisant Gradio et Hugging Face

Susan Sarandon
Libérer: 2024-11-01 11:20:02
original
303 Les gens l'ont consulté

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

message original : https://baxin.netlify.app/build-text-extractor-python-under-30-lines/

L'extraction de texte à partir d'images, connue sous le nom de reconnaissance optique de caractères (OCR), est une fonctionnalité précieuse pour les applications de traitement de documents, d'extraction de données et d'accessibilité. Dans ce guide, nous allons créer une application OCR à l'aide de bibliothèques Python telles que pytesseract pour l'OCR, Pillow pour le traitement d'images et Gradio pour créer une interface utilisateur interactive. Nous déploierons cette application sur Hugging Face Spaces.

Conditions préalables

Avant de commencer, vous aurez besoin d'un compte Hugging Face et d'une connaissance de base de Docker.

Guide étape par étape

Étape 1 : Créez un espace pour le visage câlin

  1. Accédez aux espaces Hugging Face : connectez-vous à Hugging Face et accédez à la section « Espaces ».
  2. Créer un nouvel espace :
    • Cliquez sur "Nouvel espace".
    • Nommez votre espace (par exemple, image-text-extracteur).
    • Choisissez Gradio comme SDK et définissez la visibilité (publique ou privée).
    • Cliquez sur « Créer un espace ».

Étape 2 : Créer un fichier Docker

Pour déployer sur Hugging Face Spaces avec les dépendances système requises, telles que Tesseract pour OCR, nous avons besoin d'un Dockerfile qui configure l'environnement.

Créez un Dockerfile avec le contenu suivant :

# 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"]
Copier après la connexion

Étape 3 : Créer l'application OCR

  1. Créez un fichier appelé app.py avec le contenu suivant :
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)
Copier après la connexion
  1. Créez un fichier exigences.txt pour spécifier les dépendances :
gradio
pytesseract
Pillow
Copier après la connexion

Cette configuration comprend :

  • Téléchargement d'images : gr.Image(type="filepath") permet aux utilisateurs de télécharger des images sous forme de chemins de fichiers, traités par pytesseract.
  • Extraction de texte : pytesseract.image_to_string extrait le texte de l'image.
  • Interface utilisateur : Gradio génère une interface utilisateur simple permettant aux utilisateurs de télécharger une image et d'afficher le texte extrait.

Étape 4 : poussez tous les fichiers vers les espaces de visage étreints

Une fois tous les fichiers créés, transférez-les vers votre Hugging Face Space

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!