augment_transform
data.transform.augmentation.augment_transform
Implement ImageTransform classes for image augmentation.
BaseTransform
Transform의 기본 interface를 정의합니다.
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
get_params_from_data
get_params_from_data(data_for_params: ParamsType) -> ParamsType
이 함수는 input으로부터 parameter들을 뽑을 때 사용됩니다.
Parameters:
-
data_for_params(ParamsType) –params을 추출할 데이터를 입력으로 갖습니다.
Returns:
-
ParamsType(ParamsType) –params로 쓰일 데이터를 반환합니다.
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
ImageTransform
Bases: BaseTransform
Image와 라벨에 적용되는 Transform 입니다.
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
ImageSizeParams
ToNumpy
ToPil
VerticalFlip
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
HorizontalFlip
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
Rotate
Rotate(angle_limit: Optional[List[float]] = None, interpolation: int = cv2.INTER_LINEAR, border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0, mask_value: Union[int, float] = 0, crop_border: bool = False, **kwargs)
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
RandomRotate90
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
ColorJitter
ColorJitter(brightness_limit: Optional[List[float]] = None, contrast_limit: Optional[List[float]] = None, saturation_limit: Optional[List[float]] = None, hue_limit: Optional[List[float]] = None, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
Blur
GaussianBlur
GaussianBlur(ksize_limit: Optional[List[int]] = None, sigma_limit: Optional[List[float]] = None, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
AdjustBrightness
AdjustContrast
AdjustHue
AdjustSaturation
AdjustGamma
AdjustBrightnessContrast
AdjustBrightnessContrast(brightness_limit: Optional[List[float]] = None, contrast_limit: Optional[List[float]] = None, brightness_by_max: bool = True, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
IsoNoise
IsoNoise(color_shift_limit: Optional[List[float]] = None, intensity_limit: Optional[List[float]] = None, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
JpegCompression
Sharpen
Sharpen(alpha_limit: Optional[List[int]] = None, lightness_limit: Optional[List[int]] = None, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
MultiplicativeNoise
RatioJitter
RatioJitter(proportion_limit: Optional[Union[List[float], int, float]] = None, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0, mask_value: Union[int, float] = 0, **kwargs)
Bases: ImageSizeParams, ImageTransform
crop, pad, and resize to original image size
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
Zoom
Zoom(ratio_limit: Optional[List[float]] = None, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0, mask_value: Union[int, float] = 0, **kwargs)
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
RandomResizedCrop
RandomResizedCrop(scale_limit: Optional[List[float]] = None, aspect_ratio_limit: Optional[List[float]] = None, resampling: str = 'bilinear', **kwargs)
Bases: ImageSizeParams, ImageTransform
Crop a random part of the input and rescale it to original size
Parameters:
-
scale_limit(Optional[List[float]], default:None) –range of size of the origin size cropped. Defaults to [0.45, 1.00].
-
aspect_ratio_limit(Optional[List[float]], default:None) –range of aspect ratio of the origin aspect ratio cropped. Defaults to [0.50, 2.00].
-
resampling(str, default:'bilinear') –interpolation method. Defaults to "bilinear".
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
RandomResizedCropAndPad
RandomResizedCropAndPad(scale_limit: Optional[List[float]] = None, aspect_ratio_limit: Optional[List[float]] = None, height: Optional[int] = None, width: Optional[int] = None, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0, mask_value: Union[int, float] = 0, **kwargs)
Bases: ImageSizeParams, ImageTransform
pad, crop and resize to original image size
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
LightReflect
PerspectiveTransform
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
RandomErasing
RandomErasing(scale: Tuple[float, float] = (0.02, 0.33), ratio: Tuple[float, float] = (0.2, 3.3), value: Union[int, Tuple[int, int, int], str] = 0, randomly_select_values: bool = False, **kwargs)
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
_get_random_erase_params
This is modified version of get_params of random erasing see: https://pytorch.org/vision/main/_modules/torchvision/transforms/transforms.html#RandomErasing.forward
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
Grayscale
to_numpy
Source code in SaigeToolkit/data/transform/image_function.py
to_pil
Source code in SaigeToolkit/data/transform/image_function.py
read_image_size
read_image_size(image: Union[Image, Tensor, ndarray]) -> ImageSizeType
image size: (W, H)
Source code in SaigeToolkit/data/transform/image_function.py
vertical_flip
horizontal_flip
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
rotate
rotate(image: Union[ImageType, MaskType], angle: float = 0, interpolation: int = cv2.INTER_LINEAR, border_mode: int = cv2.BORDER_REFLECT_101, value: Union[int, float, List[int], List[float]] = 0, crop_border: bool = False) -> Union[ImageType, MaskType]
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
random_rotate90
color_jitter
color_jitter(image: ImageType, brightness: float = 1.0, contrast: float = 1.0, saturation: float = 1.0, hue: float = 0, order: List[int] = [0, 1, 2, 3]) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
blur
gaussian_blur
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
adjust_brightness
adjust_brightness(image: ImageType, brightness: float = 0.0, brightness_by_max: bool = True) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
adjust_contrast
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
adjust_hue
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
adjust_saturation
adjust_saturation
Parameters:
-
image(ImageType) –입력 이미지
-
saturation(float, default:0.0) –변형 강도, [-1.0, 1.0] 범위, Defaults to 0.0.
Returns:
-
ImageType(ImageType) –결과 이미지
Note
Ablumentation의 AF.shift_hsv()와 다른 알고리즘을 사용합니다. AF.shift_hsv()의 경우 색이 없는 픽셀을 붉은 색으로 변형합니다. 이 함수의 경우 색이 없는 픽셀은 변형하지 않습니다.
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
adjust_gamma
adjust_brightness_contrast
adjust_brightness_contrast(image: ImageType, brightness: float = 0.0, contrast: float = 0.0, brightness_by_max: bool = True) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
iso_noise
iso_noise(image: ImageType, color_shift: float = 0.05, intensity: float = 0.5, random_state: Optional[int] = None) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
image_compression
sharpen
multiplicative_noise
ratio_jitter
ratio_jitter(image: ImageType, proportion_left: float = 0.0, proportion_right: float = 0.0, proportion_top: float = 0.0, proportion_bottom: float = 0.0, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0) -> Union[ImageType, MaskType]
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
zoom
zoom(image: ImageType, ratio: float = 1.0, h_start: float = 0.0, w_start: float = 0.0, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0) -> Union[ImageType, MaskType]
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
random_resized_crop
random_resized_crop(image: ImageType, h_scale: float = 1.0, w_scale: float = 1.0, h_start: float = 0.0, w_start: float = 0.0, resampling: str = 'bilinear') -> Union[ImageType, MaskType]
Crop the given image to given scale and then resize it to original size.
Parameters:
-
image(ImageType) –original image
-
h_scale(float, default:1.0) –crop height scale. Defaults to 1.0.
-
w_scale(float, default:1.0) –crop width scale. Defaults to 1.0.
-
h_start(float, default:0.0) –crop height start ratio. Defaults to 0.0.
-
w_start(float, default:0.0) –crop width start ratio. Defaults to 0.0.
-
resampling(str, default:'bilinear') –interpolation method. Defaults to "bilinear".
Returns:
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
random_resized_crop_and_pad
random_resized_crop_and_pad(image: ImageType, scale: float = 1.0, aspect_ratio: float = 1.0, h_start: float = 0.0, w_start: float = 0.0, height: Optional[int] = None, width: Optional[int] = None, resampling: str = 'bilinear', border_mode: int = cv2.BORDER_CONSTANT, value: Union[int, float, List[int], List[float]] = 0) -> Union[ImageType, MaskType]
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
light_reflect
light_reflect(image: ImageType, xc: float, yc: float, x_radius: float, y_radius: float, angle: float) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
perspective_transform
perspective_transform(image: ImageType, offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType, interpolate_method: str = 'nearest')
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
erase
erase(image: ImageType, x: int, y: int, w: int, h: int, v: ndarray)
grayscale
grayscale(image: ImageType) -> ndarray
check_range
check_range(data: Union[Sequence[int], Sequence[float]], min_value: Union[int, float], max_value: Union[int, float])
Source code in SaigeToolkit/data/transform/function_util.py
box_function
calculate_transform_matrix
calculate_transform_matrix(width: int, height: int, offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType) -> ndarray
Calculates the perspective transformation matrix using the given width, height, and corner points of a rectangle.
Parameters:
-
width(int) –Width of the original image.
-
height(int) –Height of the original image.
-
offset_top_left(OffsetType) – -
offset_bottom_right(OffsetType) – -
offset_top_right(OffsetType) –The offset ratio of the top-left corner point.
-
offset_bottom_left(OffsetType) –The offset ratio of the bottom-left corner point.
Returns:
-
ndarray–np.ndarray: The 4x3 perspective transform matrix.
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
preserve_coordinates
Box augmentation이 (left, top, right, bottom) coordinate system을 기반으로 구현 되어있기 때문에, input bboxes의 coordinate system을 확인하고 augmentation에 맞는 coordinate system으로 변환하고, augmentation이 끝나면 다시 기존 coordinate system으로 변경하여 출력합니다.
-
np.ndarray의 경우 coordinate system을 체크할 수 없기 때문에 (left, top, right, bottom) coordinate system이라고 가정합니다.
-
NumpyBBoxes의 경우 NumpyBBoxes 내부 변수 coordinate과 내부 함수 convert_coordinate를 활용하여 구현됩니다.
Source code in SaigeToolkit/data/transform/box_function.py
resize_box
resize_box(bboxes: BBoxesType, image_size: Tuple[int], tw: int, th: int) -> BBoxesType
bbox resize from (w, h) to (tw, th)
Source code in SaigeToolkit/data/transform/box_function.py
crop_box
crop_box(bboxes: BBoxesType, cropping_box: Union[ndarray, List[int]]) -> BBoxesType
bbox crop. An image is cropped at (new_left, new_top, new_right, new_bottom)
Source code in SaigeToolkit/data/transform/box_function.py
polygon_function
calculate_transform_matrix
calculate_transform_matrix(width: int, height: int, offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType) -> ndarray
Calculates the perspective transformation matrix using the given width, height, and corner points of a rectangle.
Parameters:
-
width(int) –Width of the original image.
-
height(int) –Height of the original image.
-
offset_top_left(OffsetType) – -
offset_bottom_right(OffsetType) – -
offset_top_right(OffsetType) –The offset ratio of the top-left corner point.
-
offset_bottom_left(OffsetType) –The offset ratio of the bottom-left corner point.
Returns:
-
ndarray–np.ndarray: The 4x3 perspective transform matrix.
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
resize_polygon
resize_polygon(polygons: PolygonType, image_size: Tuple[int], tw: int, th: int) -> PolygonType
Resize polygon from (w, h) to (tw, th)
Source code in SaigeToolkit/data/transform/polygon_function.py
translate_polygon
translate_polygon(polygons: PolygonType, offset: Tuple[int]) -> PolygonType
Translate polyfon from [(x1, y1), ... ] to [(x1 - x_offset), (y1 - y_offset), ...]