How To

Menggunakan CLI

Penggunaan antarmuka baris perintah (CLI), pemrosesan batch, dan opsi pemformatan keluaran untuk RustO!.

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

OpsiFlagTipeDefaultDeskripsi
Model Deteksi--det-modelPathWajibPath ke berkas model deteksi (.rten atau .onnx) DBNet.
Model Pengenalan--rec-modelPathWajibPath ke berkas model pengenalan (.rten atau .onnx) CTC.
Kamus Karakter--dictPathWajibPath ke berkas teks kamus kosakata karakter.
Format Keluaran-f, --formatEnumjsonMode keluaran (json, text, tsv, markdown, text-ordered).
Orientasi--enable-orientFlagfalseAktifkan deteksi orientasi halaman penuh.
Model Orientasi--orient-modelPathNonePath 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 {}