notepay-models / README.md
NeoCode77's picture
docs: update model card
d54a5a0 verified
---
license: mit
tags:
- ocr
- receipt
- object-detection
- yolov8
- tensorflow
- keras
- text-recognition
- expense-classification
language:
- id
---
# NotePay β€” Receipt OCR Models
Model AI untuk pipeline OCR struk belanja otomatis.
Bagian dari project **NotePay** (Coding Camp 2026 β€” DBS Foundation).
## Pipeline
```
Foto Struk
β†’ [1] YOLOv8n-OBB : deteksi 4 region (nama_toko, line_item, tanggal_waktu, total_belanja)
β†’ [2] CRNN + CTC : text recognition per crop (TensorFlow/Keras)
β†’ [3] Classifier : klasifikasi kategori pengeluaran tiap line item
β†’ JSON terstruktur
```
## Model Files
| File | Deskripsi |
|---|---|
| `yolo/best.pt` | YOLOv8n-OBB β€” deteksi region struk |
| `crnn/inference_model.keras` | CRNN+CTC β€” baca teks dari crop |
| `classifier/classifier_model.keras` | Text classifier β€” kategori pengeluaran |
## Expense Categories (Classifier)
| ID | Kategori |
|---|---|
| 0 | Makanan & Minuman |
| 1 | Kebersihan & Perawatan |
| 2 | Rumah Tangga |
| 3 | Kesehatan & Farmasi |
| 4 | Elektronik & Pulsa |
| 5 | Pakaian & Aksesori |
| 6 | Lain-lain |
## Usage
```python
from huggingface_hub import hf_hub_download
# Download semua model
yolo_path = hf_hub_download("NeoCode77/notepay-models", "yolo/best.pt")
crnn_path = hf_hub_download("NeoCode77/notepay-models", "crnn/inference_model.keras")
classifier_path = hf_hub_download("NeoCode77/notepay-models", "classifier/classifier_model.keras")
# Load
from ultralytics import YOLO
import keras
yolo = YOLO(yolo_path)
crnn = keras.models.load_model(crnn_path, compile=False, safe_mode=False)
classifier = keras.models.load_model(classifier_path, compile=False)
```
Atau gunakan `ai/model_loader.py` dari repo ini yang sudah handle caching & GPU setup.