ml.preprocessing — ML 전처리¶
ml.preprocessing 모듈은 머신 러닝 모델과 함께 사용하기 위해 이미지를 전처리하는 클래스를 포함합니다.
class Normalization – 이미지 정규화¶
Normalization 객체는 image.Image 객체를 ml.Model.predict() 와 함께 사용할 ndarray 입력 텐서로 변환합니다. 이 객체는 ml.Model.predict() 에 이미지가 전달될 때 ml.Model 객체에 의해 자동으로 생성되지만, 변환(스케일, 평균/표준편차, 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는C가1(그레이스케일) 또는3(RGB)과 같은(1, H, W, C)여야 합니다.dtype은 ulab numpy 타입 코드입니다(예: float32의 경우ord('f'), int8의 경우ord('b'), uint8의 경우ord('B')). Float 텐서는scale,mean,stdev을 적용합니다. 정수 텐서는 직접 기록됩니다(int8의 경우 오프셋과 함께).