原文:https://baxin.netlify.app/build-text-extractor-python-under-30-lines/
從圖像中提取文本,稱為光學字元辨識 (OCR),對於文件處理、資料擷取和可訪問性應用程式來說是一項很有價值的功能。在本指南中,我們將使用 Python 函式庫建立一個 OCR 應用程序,例如用於 OCR 的 pytesseract、用於映像處理的 Pillow 以及用於建立互動式 UI 的 Gradio。我們將在 Hugging Face Spaces 上部署此應用程式。
在開始之前,您需要一個 Hugging Face 帳戶並對 Docker 有基本的了解。
要在具有所需系統依賴項的 Hugging Face Spaces 上部署(例如用於 OCR 的 Tesseract),我們需要一個用於配置環境的 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"]
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
此設定包括:
建立所有檔案後,將它們推送到您的擁抱空間
以上是使用 Gradio 和 Hugging Face 在 Lines 下使用 Python 程式碼建立文字擷取器應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!