Vision & OCR on-device
Pengenalan teks dan objek dari kamera atau berkas gambar. Seluruh inferensi berjalan di sisi klien; citra pengguna tidak dikirim ke server mana pun. Dipakai untuk digitalisasi naskah, pembacaan aksara, dan pencatatan lapangan tanpa jaringan.
- Kerangka kerja
- Tesseract.js 5 di atas WebAssembly untuk pengenalan teks; TensorFlow.js 4 dengan backend WebGL dan fallback WASM untuk klasifikasi objek. Prapemrosesan: koreksi perspektif empat titik, deskew berbasis transformasi Hough, normalisasi kontras adaptif, binarisasi Otsu.
- Format model
- model.json + shard .bin (TF.js GraphModel) · aksara .traineddata
- Ukuran terkirim
- 6,1 MB setelah kuantisasi INT8; acuan FP32 22,6 MB. Latensi p95 terukur 412 ms.
- Perangkat target
- Peramban desktop modern dan Android kelas menengah dengan RAM 4 GB. Luring penuh setelah unduhan pertama melalui service worker.
- Metrik evaluasi
- Character Error Rate dan Word Error Rate untuk teks; presisi, recall, dan F1 per kelas untuk deteksi objek. Terukur 91,4% pada ukuran 1 − CER.
- Keluaran
- Modul inferensi, berkas model, himpunan uji beranotasi, dan laporan akurasi per kelas beserta daftar kegagalan yang diketahui.
import { createWorker } from "tesseract.js";
// Bobot dan data aksara dimuat sekali, lalu disimpan di Cache Storage.
const worker = await createWorker("jav", 1, {
workerPath: "/wasm/tesseract-worker.min.js",
langPath: "/model/traineddata",
});
await worker.setParameters({ tessedit_pageseg_mode: "6" });
const { data } = await worker.recognize(await deskew(kanvas));
render(data.text, data.confidence);