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.
Avant de commencer, vous aurez besoin d'un compte Hugging Face et d'une connaissance de base de 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"]
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)
gradio pytesseract Pillow
Cette configuration comprend :
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!