Advance Guide

Klasifikasi & Orientasi

Cara mengonfigurasi pengklasifikasi arah baris teks (CLS) dan pengoreksi sudut rotasi halaman dokumen.

Foto kamera ponsel dan hasil pemindaian sering kali memiliki kemiringan sudut, posisi dokumen terbalik, atau arah teks yang beragam.

RustO! menyediakan dua tahapan koreksi orientasi yang terpisah:

Rendering diagram...

1. Pengklasifikasi Arah Baris Teks (CLS)

Model CLS mengevaluasi setiap potongan gambar kotak teks yang dihasilkan oleh detektor DBNet. Jika baris teks terdeteksi terbalik (rotasi 180°), model akan memutarnya kembali ke posisi tegak sebelum diserahkan ke pengenal teks CTC.

!NOTE Klasifikasi arah baris teks (cls.rten) didukung pada model PP-OCRv4 dan PP-OCRv5. Model PP-OCRv6 telah menggunakan jaringan pengenalan yang kebal terhadap variasi orientasi.

Konfigurasi Inisialisasi

use rusto::InitializeConfig;

// Inisialisasi mesin dan sertakan model CLS dengan ambang kepercayaan 0.9
let config = InitializeConfig::ppv5("models/det.rten", "models/rec.rten", "models/dict.txt")
    .with_cls_threshold("models/cls.rten", 0.9);

let mut ocr = RustO::initialize(config)?;

Aktivasi per Permintaan

Aktifkan evaluasi CLS untuk pemindaian tertentu via OcrRunOptions:

let options = OcrRunOptions {
    classification: Some(true), // Mengaktifkan evaluasi CLS untuk pemindaian ini
    ..Default::default()
};

2. Pengklasifikasi Orientasi Halaman Penuh

Untuk dokumen yang difoto miring ke samping (90° / 270°) atau terbalik sepenuhnya (180°):

let config = InitializeConfig::ppv5("models/det.rten", "models/rec.rten", "models/dict.txt")
    .with_orientation_threshold("models/orient.rten", 0.85);

let mut ocr = RustO::initialize(config)?;

Aktivasi per Permintaan

let options = OcrRunOptions {
    orientation: Some(true), // Mengklasifikasi & memutar seluruh halaman sebelum deteksi
    ..Default::default()
};

📱 Contoh Lintas Platform (React Native)

import { detectText, initialize } from '@rustors/react-native';

// Inisialisasi dengan referensi model
await initialize({
  preset: 'ppv5',
  models: {
    detection: 'det.rten',
    recognition: 'rec.rten',
    dictionary: 'dict.txt',
    classification: 'cls.rten',
    orientation: 'orient.rten',
  },
});

// Aktifkan koreksi orientasi saat dibutuhkan
const results = await detectText(
  { uri: 'file:///path/to/sideways_document.jpg' },
  {
    orientation: true, // Memperbaiki rotasi 90°/270° halaman penuh
    classification: true, // Memperbaiki baris teks terbalik 180°
  }
);