CoolFace
Apppublic

frknuzn/ocr-poc

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
App README

PaddleOCR Receipt Extractor (MVP)

Tek görselden (ör: samples/receipt_01.jpg) PaddleOCR ile metni çıkarır, basit regex ve anahtar kelime ile temel alanları JSON olarak döndürür.

Kurulum

1) Python 3.10+ ile sanal ortam önerilir

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\\Scripts\\activate

2) Bağımlılıklar (PDF’siz, sorunsuz kurulum)

pip install -U pip wheel setuptools
# 1) PaddleOCR'u bağımlılıkları olmadan kur (PDF bağımlılığını devre dışı bırakır)
pip install "paddleocr==2.7.0.3" --no-deps
# 2) Proje ve çekirdek bağımlılıkları kur (paddleocr bu listede YOK)
pip install -r requirements.txt

Eğer daha önce `paddleocr` 3.x kurduysanız (veya `paddlex` uyarısı aldıysanız):

pip uninstall -y paddleocr paddlex PyMuPDF pymupdf pip install "paddleocr==2.7.0.3" --no-deps pip install -r requirements.txt

Not: PaddleOCR, paddlepaddle gerektirebilir. Platformunuza uygun kurulum için resmi dokümana bakın.
Not 2: Bu proje PDF okumaz; PyMuPDF gerektirmez. Görseller (.jpg/.png) için yeterlidir. --no-deps adımı PDF bağımlılığını tamamen devre dışı bırakır. requirements.txt artık paddleocr içermez; iki adımı sırasıyla uygulayın.

Kullanım

Örnek görseli samples/receipt_01.jpg olarak yerleştirin ve çalıştırın:

python -m src.cli --image samples/receipt_01.jpg --out out.json

Komut sonunda hem out.json yazılır hem de JSON stdout'a basılır.

Üretilen Alanlar

  • —merchant_name
  • —merchant_address
  • —date (YYYY-MM-DD)
  • —time (HH:MM:SS)
  • —receipt_no
  • —vat_total (float)
  • —grand_total (float)
  • —raw_lines (debug)

Hata Yönetimi

  • —Eksik bağımlılık/OCR hatası: anlamlı mesajla çıkış (exit(1)).

Test

Minimal test örneği tests/test_extract_minimal.py içinde. Basit python ile çalıştırılabilir.

python tests/test_extract_minimal.py

Notlar

  • —MVP sade ve toleranslı regex kullanır; layout/ROI gerektirmez.
  • —Geliştirme fikirleri todo.md içinde. --- title: PaddleOCR Receipt Extractor emoji: 🧾 colorFrom: teal colorTo: slate sdk: gradio sdkversion: "3.50.2" appfile: app.py pinned: false ---