Albumentation에서 ColorJitter를 적용시키려 다음과 같이 세팅한 후 실행을 하였더니 오류가 발생하였다.

transform = A.Compose([
    # A.HorizontalFlip(),
    # A.VerticalFlip(),
    # A.Rotate(limit=(-180, 180), p=0.5),
    A.ColorJitter(brightness=0,contrast=(1,5),saturation=0,hue=0) 
    ], is_check_shapes=False
)

 

 File "/opt/conda/lib/python3.10/site-packages/albumentations/augmentations/functional.py", line 1223, in adjust_contrast_torchvision
    MAX_VALUES_BY_DTYPE[img.dtype],
KeyError: dtype('int16')

 

 

ColorJitter 연산에서 지원되는 데이터 타입이 int16, float64와 같은 자료형이 적용되지 않기 떄문이다.

 

 

input_img = input_img.astype(np.float32)

단순히 입력이미지를 float 타입으로 바꾸는 것으로 해결이 가능하다. 아니면 uint8이어도 괜찮다. np.float32로 변환하게 되면 기본 정수값뒤에 .0이 붙을 뿐, 값이 손실되는 상황은 생기지 않으므로 괜찮다.

 

즉, 보통 정규화 전 augmentation을 수행하는데 이 단계에서도 float32로 입력 이미지 타입을 바꾸는 것은 큰 문제가 되는 것처럼 보이지 않는다.