--- 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.