Gradio 및 Hugging Face를 사용하여 줄 아래 Python 코드로 텍스트 추출기 앱 구축

Susan Sarandon
풀어 주다: 2024-11-01 11:20:02
원래의
317명이 탐색했습니다.

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 Spaces로 이동: Hugging Face에 로그인하고 "Spaces" 섹션으로 이동합니다.
  2. 새 공간 만들기:
    • '새 스페이스'를 클릭하세요.
    • 공간 이름을 지정하세요(예: 이미지-텍스트-추출기).
    • 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단계: 모든 파일을 허깅 페이스 스페이스로 푸시

모든 파일이 생성되면 Hugging Face Space로 푸시하세요

위 내용은 Gradio 및 Hugging Face를 사용하여 줄 아래 Python 코드로 텍스트 추출기 앱 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!