Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bina Apl Pengekstrak Teks dengan Kod Python Di Bawah Garis Menggunakan Gradio dan Muka Memeluk

Bina Apl Pengekstrak Teks dengan Kod Python Di Bawah Garis Menggunakan Gradio dan Muka Memeluk

Susan Sarandon
Susan Sarandonasal
2024-11-01 11:20:02304semak imbas

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

siaran asal: https://baxin.netlify.app/build-text-extractor-python-under-30-lines/

Mengekstrak teks daripada imej, yang dikenali sebagai Pengecaman Aksara Optik (OCR), ialah ciri berharga untuk aplikasi dalam pemprosesan dokumen, pengekstrakan data dan kebolehaksesan. Dalam panduan ini, kami akan mencipta aplikasi OCR menggunakan perpustakaan Python seperti pytesseract untuk OCR, Bantal untuk pemprosesan imej dan Gradio untuk membina UI interaktif. Kami akan menggunakan apl ini pada Memeluk Face Spaces.

Prasyarat

Sebelum bermula, anda memerlukan akaun Hugging Face dan kebiasaan asas dengan Docker.

Panduan Langkah demi Langkah

Langkah 1: Cipta Ruang Muka Memeluk

  1. Navigasi ke Ruang Memeluk Wajah: Log masuk ke Muka Memeluk dan pergi ke bahagian "Ruang".
  2. Buat Ruang Baharu:
    • Klik pada "Ruang Baharu."
    • Namakan ruang anda (cth., image-text-extractor).
    • Pilih Gradio sebagai SDK dan tetapkan keterlihatan (awam atau peribadi).
    • Klik "Buat Ruang."

Langkah 2: Buat fail Docker

Untuk digunakan pada Memeluk Face Spaces dengan kebergantungan sistem yang diperlukan, seperti Tesseract untuk OCR, kami memerlukan Fail Docker yang mengkonfigurasi persekitaran.

Buat fail Docker dengan kandungan berikut:

# 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"]

Langkah 3: Cipta Aplikasi OCR

  1. Buat fail bernama app.py dengan kandungan berikut:
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. Buat fail requirements.txt untuk menentukan kebergantungan:
gradio
pytesseract
Pillow

Persediaan ini termasuk:

  • Muat Naik Imej: gr.Image(type="filepath") membenarkan pengguna memuat naik imej sebagai laluan fail, yang diproses oleh pytesseract.
  • Pengeluaran Teks: pytesseract.image_to_string mengekstrak teks daripada imej.
  • Antara Muka Pengguna: Gradio menjana UI mudah untuk pengguna memuat naik imej dan melihat teks yang diekstrak.

Langkah 4: Tolak Semua Fail ke Ruang Wajah Memeluk

Dengan semua fail dibuat, tolaknya ke Ruang Wajah Memeluk anda

Atas ialah kandungan terperinci Bina Apl Pengekstrak Teks dengan Kod Python Di Bawah Garis Menggunakan Gradio dan Muka Memeluk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn