ml.preprocessing --- ML Preprocessing

Module ml.preprocessing chứa các lớp để tiền xử lý ảnh dùng với các mô hình học máy.

class Normalization -- Image Normalization

Đối tượng Normalization chuyển đổi các đối tượng image.Image thành các tensor đầu vào ndarray để dùng với ml.Model.predict(). Nó được tạo tự động bởi đối tượng ml.Model khi một ảnh được truyền vào ml.Model.predict(), nhưng có thể được khởi tạo thủ công để kiểm soát quá trình chuyển đổi (tỷ lệ, 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)

Tạo một đối tượng Normalization.

scale là phạm vi giá trị (min, max) mà các tensor đầu vào dấu phẩy động mong đợi sau khi chuẩn hóa (ví dụ: (0.0, 1.0) hoặc (-1.0, 1.0)). Bị bỏ qua đối với các tensor đầu vào uint8int8.

mean là giá trị mean theo từng kênh (R, G, B) được trừ từ ảnh sau khi tỷ lệ hóa. Đối với các tensor thang xám, mean được rút gọn thành một giá trị luma đơn bằng 0.299*R + 0.587*G + 0.114*B. Bị bỏ qua đối với các tensor đầu vào uint8int8.

stdev là độ lệch chuẩn theo từng kênh (R, G, B) mà ảnh được chia cho sau khi trừ mean. Đối với các tensor thang xám, stdev được rút gọn thành một giá trị luma đơn bằng 0.299*R + 0.587*G + 0.114*B. Bị bỏ qua đối với các tensor đầu vào uint8int8.

roi là vùng quan tâm (ROI) (x, y, w, h) tùy chọn trong ảnh đầu vào để cắt. Nếu None, toàn bộ ảnh sẽ được sử dụng. Vùng cắt được căn giữa, tỷ lệ hóa tuyến tính (giữ nguyên tỷ lệ khung hình với phần đệm màu đen) theo kích thước tensor đầu vào của mô hình.

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

Khi được gọi với một đối số image.Image duy nhất, trả về một đối tượng Normalization mới được gắn với ảnh đó. Đối tượng đã gắn là thứ mà ml.Model.predict() gọi nội bộ để điền vào tensor đầu vào. Nếu roi chưa được đặt trên đối tượng gốc, nó sẽ được khởi tạo theo kích thước ảnh đầy đủ.

Khi được gọi với (buffer, shape, dtype), điền buffer tại chỗ với tensor đầu vào đã chuẩn hóa cho ảnh đã được gắn trước đó. shape phải là (1, H, W, C) với C bằng 1 (thang xám) hoặc 3 (RGB). dtype là mã kiểu numpy của ulab (ví dụ: ord('f') cho float32, ord('b') cho int8, ord('B') cho uint8). Các tensor số thực áp dụng scale, meanstdev; các tensor số nguyên được ghi trực tiếp (với offset cho int8).