frknuzn/ocr-poc
0
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\\activate2) 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;PyMuPDFgerektirmez. Görseller (.jpg/.png) için yeterlidir.--no-depsadımı PDF bağımlılığını tamamen devre dışı bırakır.requirements.txtartıkpaddleocriç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.jsonKomut 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.pyNotlar
- MVP sade ve toleranslı regex kullanır; layout/ROI gerektirmez.
- Geliştirme fikirleri
todo.mdiçinde. --- title: PaddleOCR Receipt Extractor emoji: 🧾 colorFrom: teal colorTo: slate sdk: gradio sdkversion: "3.50.2" appfile: app.py pinned: false ---
