Menggunakan CLI
RustO! dilengkapi dengan aplikasi baris perintah (command line interface / CLI) berkinerja tinggi untuk pemindaian OCR desktop, alur kerja terminal, dan automasi pipeline CI.
Instalasi & Kompilasi
Kompilasi CLI langsung dari kode sumber dengan profil optimasi Release:
cargo build --release
Biner hasil kompilasi akan berada di target/release/rusto. Anda juga dapat memasangnya ke $PATH sistem:
cargo install --path .
1. Pemanggilan Dasar CLI
rusto --det-model models/det.rten --rec-model models/rec.rten --dict models/dict.txt receipt.jpg
2. Referensi Opsi & Flag CLI
| Opsi | Flag | Tipe | Default | Deskripsi |
|---|---|---|---|---|
| Model Deteksi | --det-model | Path | Wajib | Path ke berkas model deteksi (.rten atau .onnx) DBNet. |
| Model Pengenalan | --rec-model | Path | Wajib | Path ke berkas model pengenalan (.rten atau .onnx) CTC. |
| Kamus Karakter | --dict | Path | Wajib | Path ke berkas teks kamus kosakata karakter. |
| Format Keluaran | -f, --format | Enum | json | Mode keluaran (json, text, tsv, markdown, text-ordered). |
| Orientasi | --enable-orient | Flag | false | Aktifkan deteksi orientasi halaman penuh. |
| Model Orientasi | --orient-model | Path | None | Path ke berkas model orientasi (.rten atau .onnx) LCNet. |
3. Format Keluaran dengan Contoh Nyata
1. JSON Terstruktur (--format json)
Menghasilkan JSON terstruktur dengan titik-titik koordinat poligon dan frame kotak batas:
rusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format json receipt.jpg
[
{
"text": "KEDAI KOPI",
"score": 0.992,
"box_points": [
[95.0, 30.0],
[275.0, 30.0],
[275.0, 55.0],
[95.0, 55.0]
],
"frame": {
"left": 95.0,
"top": 30.0,
"width": 180.0,
"height": 25.0
}
},
{
"text": "Total Rp95.000",
"score": 0.988,
"box_points": [
[40.0, 245.0],
[320.0, 245.0],
[320.0, 265.0],
[40.0, 265.0]
],
"frame": {
"left": 40.0,
"top": 245.0,
"width": 280.0,
"height": 20.0
}
}
]
2. Tata Letak Spasial Terformat (--format text-ordered)
Mempertahankan perataan kolom tabel, baris struk, dan indentasi dokumen:
rusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format text-ordered invoice.jpg
Deskripsi Barang Jumlah Harga Total
Keyboard Mekanikal 1 Rp1.200.000 Rp1.200.000
Mouse Nirkabel 2 Rp450.000 Rp900.000
Hub USB-C 1 Rp350.000 Rp350.000
──────────────────────────────────────────────────────────────
Total Pembayaran: Rp2.450.000
3. Nilai Dipisahkan Tab (--format tsv)
Ideal untuk pemrosesan skrip bash atau impor spreadsheet:
rusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format tsv receipt.jpg
KEDAI KOPI 0.992 95.0,30.0,275.0,30.0,275.0,55.0,95.0,55.0
2026-08-20 0.981 40.0,70.0,140.0,70.0,140.0,90.0,40.0,90.0
Total Rp95.000 0.988 40.0,245.0,320.0,245.0,320.0,265.0,40.0,265.0
4. Teks Blok Markdown (--format markdown)
rusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format markdown receipt.jpg
KEDAI KOPI 2026-08-20 12:30 Espresso Double Rp25.000 Total Rp95.000
4. Integrasi Skrip Shell & Pemrosesan Batch
Menyalurkan Keluaran ke jq untuk Pemfilteran
Ambil teks dengan tingkat kepercayaan di atas 95%:
rusto --det-model det.rten --rec-model rec.rten --dict dict.txt receipt.jpg | \
jq -r '.[] | select(.score > 0.95) | "\(.text) (\(.score * 100 | round)%)"'
Pemindaian Batch Seluruh Direktori
Pindai semua gambar .jpg dan .png secara paralel menggunakan xargs:
find ./scans -type f \( -name "*.jpg" -o -name "*.png" \) | \
xargs -I {} -P 4 rusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format text-ordered {}