ml.preprocessing — Przetwarzanie wstępne ML

Moduł ml.preprocessing zawiera klasy do przetwarzania wstępnego obrazów do użytku z modelami uczenia maszynowego.

klasa Normalization – Normalizacja obrazu

Obiekt Normalization konwertuje obiekty image.Image na tensory wejściowe ndarray do użytku z ml.Model.predict(). Jest automatycznie tworzony przez obiekt ml.Model, gdy obraz zostanie przekazany do ml.Model.predict(), ale może być utworzony ręcznie w celu kontrolowania konwersji (skala, średnia/odchylenie standardowe, 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)

Tworzy obiekt Normalization.

scale to zakres (min, max) wartości, których oczekują zmiennoprzecinkowe tensory wejściowe po normalizacji (np. (0.0, 1.0) lub (-1.0, 1.0)). Ignorowane dla tensorów wejściowych uint8 i int8.

mean to średnia (R, G, B) dla każdego kanału, odejmowana od obrazu po skalowaniu. Dla tensorów w skali szarości średnia jest redukowana do pojedynczej wartości luminancji przy użyciu 0.299*R + 0.587*G + 0.114*B. Ignorowane dla tensorów wejściowych uint8 i int8.

stdev to odchylenie standardowe (R, G, B) dla każdego kanału, przez które obraz jest dzielony po odjęciu średniej. Dla tensorów w skali szarości odchylenie standardowe jest redukowane do pojedynczej wartości luminancji przy użyciu 0.299*R + 0.587*G + 0.114*B. Ignorowane dla tensorów wejściowych uint8 i int8.

roi to opcjonalny obszar zainteresowania (x, y, w, h) w obrazie wejściowym do przycięcia. Jeśli None, używany jest cały obraz. Przycięty obszar jest wyśrodkowywany, skalowany dwuliniowo (z zachowaniem proporcji i czarnym dopełnieniem) do wymiarów tensora wejściowego modelu.

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

Wywołany z pojedynczym argumentem image.Image, zwraca nowy obiekt Normalization powiązany z tym obrazem. Powiązany obiekt jest tym, co ml.Model.predict() wywołuje wewnętrznie, aby wypełnić tensor wejściowy. Jeśli roi nie zostało ustawione na oryginalnej instancji, jest inicjowane do pełnego rozmiaru obrazu.

Wywołany z (buffer, shape, dtype), wypełnia buffer w miejscu znormalizowanym tensorem wejściowym dla wcześniej powiązanego obrazu. shape musi mieć postać (1, H, W, C), gdzie C jest równe 1 (skala szarości) lub 3 (RGB). dtype to kod typu numpy ulab (np. ord('f') dla float32, ord('b') dla int8, ord('B') dla uint8). Tensory zmiennoprzecinkowe stosują scale, mean i stdev; tensory całkowitoliczbowe są zapisywane bezpośrednio (z przesunięciem dla int8).