ml.preprocessing --- ML Preprocessing

Modul ml.preprocessing berisi kelas untuk praproses citra agar dapat digunakan dengan model machine learning.

class Normalization -- Image Normalization

Objek Normalization mengonversi objek image.Image menjadi tensor input ndarray untuk digunakan dengan ml.Model.predict(). Ini dibuat secara otomatis oleh objek ml.Model saat citra diteruskan ke ml.Model.predict(), tetapi dapat diinstansiasi secara manual untuk mengontrol konversi (skala, mean/stdev, ROI).

class ml.preprocessing.Normalization(scale: tuple[float, float] = (0.0, 1.0), mean: tuple[float, float, float] = (0.0, 0.0, 0.0), stdev: tuple[float, float, float] = (1.0, 1.0, 1.0), roi: tuple[int, int, int, int] = None)

Membuat objek Normalization.

scale adalah rentang nilai (min, max) yang diharapkan oleh tensor input floating-point setelah normalisasi (misalnya (0.0, 1.0) atau (-1.0, 1.0)). Diabaikan untuk tensor input uint8 dan int8.

mean adalah mean per-saluran (R, G, B) yang dikurangkan dari citra setelah penskalaan. Untuk tensor skala abu-abu, mean direduksi menjadi nilai luma tunggal menggunakan 0.299*R + 0.587*G + 0.114*B. Diabaikan untuk tensor input uint8 dan int8.

stdev adalah deviasi standar per-saluran (R, G, B) yang membagi citra setelah mean dikurangkan. Untuk tensor skala abu-abu, stdev direduksi menjadi nilai luma tunggal menggunakan 0.299*R + 0.587*G + 0.114*B. Diabaikan untuk tensor input uint8 dan int8.

roi adalah wilayah yang diminati (ROI) (x, y, w, h) opsional dalam citra input untuk dipotong. Jika None, seluruh citra digunakan. Wilayah yang dipotong dipusatkan, diskalakan secara bilinear (mempertahankan rasio aspek dengan padding hitam) ke dimensi tensor input model.

__call__(image: image.Image) Normalization
__call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None

Ketika dipanggil dengan satu argumen image.Image, mengembalikan objek Normalization baru yang terikat pada citra tersebut. Objek yang terikat inilah yang dipanggil oleh ml.Model.predict() secara internal untuk mengisi tensor input. Jika roi tidak ditetapkan pada instance asli, ini diinisialisasi ke ukuran penuh citra.

Ketika dipanggil dengan (buffer, shape, dtype), mengisi buffer secara in-place dengan tensor input yang dinormalisasi untuk citra yang sebelumnya terikat. shape harus berupa (1, H, W, C) dengan C sama dengan 1 (skala abu-abu) atau 3 (RGB). dtype adalah kode tipe numpy ulab (misalnya ord('f') untuk float32, ord('b') untuk int8, ord('B') untuk uint8). Tensor float menerapkan scale, mean, dan stdev; tensor integer ditulis langsung (dengan offset untuk int8).