ml.preprocessing — Попередня обробка МН¶
Модуль ml.preprocessing містить класи для попередньої обробки зображень для використання з моделями машинного навчання.
class Normalization – Нормалізація зображення¶
Об’єкт Normalization перетворює об’єкти image.Image у вхідні тензори ndarray для використання з ml.Model.predict(). Він автоматично створюється об’єктом ml.Model, коли зображення передається до ml.Model.predict(), але може бути створений вручну для керування перетворенням (масштаб, середнє/стандартне відхилення, 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)¶
Створює об’єкт
Normalization.scale— діапазон значень(min, max), які очікують тензори з рухомою комою після нормалізації (наприклад,(0.0, 1.0)або(-1.0, 1.0)). Ігнорується для вхідних тензорівuint8таint8.mean— поканальне середнє(R, G, B), що віднімається від зображення після масштабування. Для тензорів у відтінках сірого середнє зводиться до єдиного значення яскравості за формулою0.299*R + 0.587*G + 0.114*B. Ігнорується для вхідних тензорівuint8таint8.stdev— поканальне стандартне відхилення(R, G, B), на яке ділиться зображення після віднімання середнього. Для тензорів у відтінках сірого стандартне відхилення зводиться до єдиного значення яскравості за формулою0.299*R + 0.587*G + 0.114*B. Ігнорується для вхідних тензорівuint8таint8.roi— необов’язкова область інтересу(x, y, w, h)у вхідному зображенні для обрізання. ЯкщоNone, використовується повне зображення. Обрізана область центрується, масштабується білінійно (зі збереженням пропорцій та чорним відступом) до розмірів вхідного тензора моделі.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
При виклику з одним аргументом
image.Imageповертає новий об’єктNormalization, прив’язаний до цього зображення. Прив’язаний об’єкт є тим, щоml.Model.predict()викликає внутрішньо для заповнення вхідного тензора. Якщоroiне було встановлено у вихідному екземплярі, воно ініціалізується розміром повного зображення.При виклику з
(buffer, shape, dtype)заповнюєbufferна місці нормалізованим вхідним тензором для раніше прив’язаного зображення.shapeмає бути(1, H, W, C)зCрівним1(відтінки сірого) або3(RGB).dtype— код типу numpy ulab (наприклад,ord('f')для float32,ord('b')для int8,ord('B')для uint8). Тензори з рухомою комою застосовуютьscale,meanтаstdev; цілочисельні тензори записуються безпосередньо (зі зміщенням дляint8).