Pipeline OCR untuk invoice yang andal tidak berhenti di “baca teks”—kuncinya justru pada layout detection dan post-processing berbasis aturan bisnis agar data benar-benar siap pakai.
Gambaran Umum Pipeline
- Intake: unggah PDF/JPG → ekstrak halaman.
- Pre-processing: deskew, denoise, binarisasi adaptif.
- Layout detection: temukan header, tabel item, total, tax, dst.
- OCR: ekstraksi teks per blok/region.
- Post-processing: normalisasi angka/tanggal, regex, fuzzy match.
- Validasi: cross-check ke master data/vendor/PO.
- Output: JSON terstruktur + confidence per field.
- Monitoring: metrik akurasi & anomali untuk perbaikan.
Pre-processing Gambar
- Deskew & crop margin agar teks lurus & rapat.
- Adaptive threshold untuk latar tidak rata.
- Morphology (open/close) untuk mengikis noise.
- Sharpen ringan bila huruf tampak “bleeding”.
- Resize ke DPI cukup (mis. 300) agar karakter jelas.
Deteksi Layout & Field
Invoice berbeda-beda. Gunakan model layout/segmentasi atau rule heuristik untuk memetakan:
- Header (nomor invoice, tanggal, vendor),
- Tabel item (deskripsi, qty, price, amount),
- Subtotal, pajak, total, mata uang.
Hasil layout membatasi area OCR sehingga lebih akurat dan cepat.
Memilih Engine OCR
- Dukungan bahasa (ID/EN) & variasi font.
- Kualitas tabel & pemisahan kolom.
- Kecepatan dan konsumsi memori (edge vs server).
- Confidence per token/field untuk penanganan fallback.
Praktiknya, gabungkan text-OCR + layout model untuk hasil yang stabil.
Post-processing & Validasi
- Normalisasi: format tanggal, desimal, mata uang.
- Regex untuk nomor invoice, NPWP, kode vendor.
- Fuzzy match nama vendor ke master data.
- Rekonsiliasi: jumlah baris tabel = subtotal + pajak = total.
- Confidence threshold & rules untuk flag manual review.
Metrik Akurasi
- Character/word accuracy (level global).
- Field-level accuracy (per key field: nomor, tanggal, total).
- Table extraction accuracy (jumlah baris/kolom, angka tepat).
- Operasional: latensi, throughput, dan % manual review.
Targetkan metrik yang terkait langsung ke KPI bisnis (waktu input ↓, error ↓).
Integrasi & Operasional
- API (REST/gRPC) untuk submit file & ambil JSON hasil.
- Queue untuk beban tinggi + retry & dead-letter.
- Observabilitas: log, metrics, tracing, alert.
- Keamanan: enkripsi at-rest/in-transit, retensi, masking PII.
- Loop perbaikan: active learning dari kasus gagal.
FAQ Singkat
PDF digital vs hasil scan? PDF digital bisa diekstrak teksnya langsung; scan butuh OCR penuh—pre-processing makin penting.
Seberapa banyak data dibutuhkan? Mulai dari ratusan contoh per vendor utama; tambahkan saat menemukan variasi baru.
Apakah perlu GPU? Tergantung model layout/ocr. Untuk throughput tinggi atau model besar, GPU membantu; untuk beban ringan, CPU cukup.