Spaces:
Sleeping
A newer version of the Gradio SDK is available: 6.20.0
title: Receipt Entity Extractor
emoji: 🧾
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
pinned: false
license: mit
short_description: Receipt key-info extraction with PaddleOCR + LayoutLMv3
Receipt Entity Extractor
Key-information extraction from receipts, built with PaddleOCR + LayoutLMv3 fine-tuned on the SROIE dataset (Malaysian receipts).
Macro F1 (fuzzy): 0.81 on 347 unseen receipts Macro F1 (exact): 0.42 Strongest field: Address (fuzzy 0.91) · Most improved: Date (regex fallback)
This demo lets you upload a receipt and see:
- The four extracted fields: company, date, address, and total
- Per-stage processing time (OCR vs. model)
- A downloadable JSON of the result
⚠️ Note
This is a portfolio/research demonstration trained on SROIE-style Malaysian and English receipts. It is not a validated commercial extraction system. Inference is OCR-bound; large images are downscaled to 1600px, and the first request after inactivity takes 1–2 minutes (cold start).
Why this project is different
An OCR-only baseline revealed that the model was under-tagging dates — so a regex date fallback was added in post-processing, recovering date exact-F1 from 0.23 to 0.60 without retraining. Every field is reported with both exact and fuzzy F1, because exact-match on OCR output is bounded by OCR noise in the data itself (address fuzzy-F1 is 0.91 despite a low exact score).
Built with
- PaddleOCR — text detection and recognition
- LayoutLMv3 (
microsoft/layoutlmv3-base), fine-tuned for token classification - Hugging Face Transformers + Gradio
Author
Tanishq Arya — GitHub
Full project details, training code, and analysis on the GitHub repository. Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference