augmentation
Module diagram
classDiagram
class augmentation {
}
class api {
}
class augment_function {
}
class augment_transform {
}
class base_transform {
}
class builder {
}
class compose {
}
class base_compose {
}
class builder {
}
class compose {
}
augmentation --> builder
api --> augment_function
augment_transform --> augment_function
augment_transform --> base_transform
builder --> augment_transform
builder --> builder
builder --> compose
compose --> base_compose
data.transform.augmentation
Data augmentation을 위한 기본 BaseTransform 클래스 및 Transform 구현, 그리고 여러 Data Transform들을 하나로 묶어서 관리해주는 기본 BaseCompose 클래스 및 Compose 구현을 제공합니다.
build_augmentation
build_augmentation(config: Dict) -> Augmentation
Source code in SaigeToolkit/data/transform/augmentation/builder.py
api
Image Augmentation Preview를 위한 API를 제공합니다.
ImageProcessor 클래스를 통해 각 augmentation들이 특정 파라미터 값에 대해 이미지를 어떻게 변형 시키는지 확인할 수 있습니다.
_APIDecorator
ImageProcessor에서 정의된 함수들을 decorate 해주는 헬퍼입니다.
staticmethod 와 decorator를 함께 사용할 경우 Cythonize시 제대로 동작하지 않는 이슈를 해결하기 위한 패치입니다. 참고: https://github.com/cython/cython/issues/1434
ImageProcessor의 각 함수에 다음과 같은 decorator를 씌우는 것과 동일한 역할을 합니다.
@staticmethod
@error_handler
@support_multi_image
@support_3dim_gray_image
def image_processor_function(image: np.ndarray, ...):
...
__init_subclass__
Source code in SaigeToolkit/data/transform/augmentation/api.py
support_3dim_gray_image
staticmethod
Source code in SaigeToolkit/data/transform/augmentation/api.py
support_multi_image
staticmethod
Source code in SaigeToolkit/data/transform/augmentation/api.py
ImageProcessor
Bases: _APIDecorator
Image Augmentation Preview를 위한 API 입니다. 각 augmentation들이 특정 파라미터 값에 대해 이미지를 어떻게 변형 시키는지 확인할 수 있습니다.
Note1
일반적으로 학습 시에는 파라미터를 특정 값이 아닌 범위로 설정하여 해당 범위에서 매번 랜덤한 값을 선택해 이미지에 적용합니다.
따라서 preview API의 입력 파라미터와 학습 시 넘겨주는 파라미터는 대부분 값 vs 범위의 차이를 가지게 됩니다.
예를 들어 preview API에서 rotate의 경우 angle (float) 값을 받지만, 학습 config에서는 angle_limit (List[float]) 범위를 받게됩니다.
각 augmentation을 학습에 사용시 필요한 config는 각 함수 설명의 Trainer Config 섹션을 참고하세요.
Note2
API 기획상, augmentation의 실제 자유도보다, 유저가 설정할 수 있는 파라미터가 적은 경우가 있습니다. (각 변 혹은 꼭짓점 마다 독립적으로 적용되는 ratio_jitter나 perspective_transform의 경우) 이러한 augmentation들은 api 호출 시, '값'을 입력 받아서, 이 '값'으로 부터 정의된 '범위'에서 필요한 값들을 랜덤하게 샘플링하게 됩니다. 이러한 augmentation들의 preview 함수를 정의할 때는, 인풋에 fixed_aug_params를 받을 수 있도록 해주어야합니다. (ImageProcessor.ratio_jitter 참고)
Usage
rotate augmentation preview 예제입니다. 상세 설명은 각 함수 설명 참고.
vertical_flip
image를 상하로 뒤집습니다.
Parameters:
-
image(ndarray) –
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
horizontal_flip
image를 좌우로 뒤집습니다.
Parameters:
-
image(ndarray) –
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
rotate
image를 angle만큼 회전시킵니다.
Parameters:
-
image(ndarray) – -
angle(float, default:0.0) –회전하는 각도 입니다. 유효 범위는 다음과 같습니다. [-360.0, 360.0]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
random_rotate90
image를 [0, 90, 180, 270] 중 랜덤한 각도만큼 회전시킵니다.
NOTE
- 모든 이미지 픽셀은 유지되며, 회전 후 이미지 크기가 변경될 수 있습니다.
- 예시: factor가 1일 경우 90도 회전하며, 이미지 사이즈는 (W, H) -> (H, W)로 변경됩니다.
Parameters:
-
image(ndarray) – -
factor(int, default:0) –회전하는 각도 입니다. factor에 90을 곱한 값만큼 회전합니다. (ex. factor가 1일 경우 90도) 유효범위는 다음과 같습니다 [0, 3]. Defaults to 0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
color_jitter
color_jitter(image: ndarray, brightness: float = 1.0, contrast: float = 1.0, saturation: float = 1.0, hue: float = 0.0) -> Tuple[ndarray, None]
image의 밝기 (brightness), 대비 (contrast), 채도 (saturation), 색상 (hue)을 변경합니다.
Parameters:
-
image(ndarray) – -
brightness(float, default:1.0) –밝기를 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [0.01, 10.00]. Defaults to 1.0.
-
contrast(float, default:1.0) –대비를 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [0.01, 10.00]. Defaults to 1.0.
-
saturation(float, default:1.0) –채도를 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [0.01, 10.00]. Defaults to 1.0.
-
hue(float, default:0.0) –색상을 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [-0.50, 0.50]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Example
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
blur
image에 averaging blur를 적용합니다.
Parameters:
-
image(ndarray) – -
ksize(int, default:1) –blur kernel의 크기 입니다. 유효 범위는 다음과 같습니다. [1, 100]. Defaults to 1.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
gaussian_blur
image에 gaussian blur를 적용합니다.
Parameters:
-
image(ndarray) – -
ksize(int, default:1) –blur kernel의 크기 입니다. 유효 범위는 다음과 같습니다. [1, 100]. Defaults to 1.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_brightness
image의 밝기 (brightness)를 변경합니다.
Parameters:
-
image(ndarray) – -
brightness(float, default:0.0) –밝기를 변화 강도입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_contrast
image의 대비 (contrast)를 변경합니다.
Parameters:
-
image(ndarray) – -
contrast(float, default:0.0) –대비 변화 강도입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_hue
image의 색조 (hue)를 변경합니다.
Parameters:
-
image(ndarray) – -
hue(float, default:0.0) –색조 변화 강도입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_saturation
image의 채도 (saturation)를 변경합니다.
Parameters:
-
image(ndarray) – -
saturation(float, default:0.0) –채도 변화 강도입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_gamma
image의 gamma를 조절하여 밝기를 변화시킵니다.
Parameters:
-
image(ndarray) – -
gamma(float, default:0.0) –조절할 gamma value 입니다. 유효 범위는 다음과 같습니다. [-1.0, 1.0]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
adjust_brightness_contrast
adjust_brightness_contrast(image: ndarray, brightness: float = 0.0, contrast: float = 0.0) -> Tuple[ndarray, None]
image의 밝기 (brightness), 대비 (contrast)를 변경합니다.
Parameters:
-
image(ndarray) – -
brightness(float, default:0.0) –밝기를 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
-
contrast(float, default:0.0) –대비를 담당하는 요소입니다. 유효 범위는 다음과 같습니다. [-1.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Example
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
iso_noise
Apply camera sensor noise.
Parameters:
-
image(ndarray) – -
color_shift(float, default:0.0) –variance range for color hue change. Measured as a fraction of 360 degree Hue angle in HLS colorspace. 유효 범위는 다음과 같습니다. [0.00, 1.00]. Defaults to 0.0.
-
intensity(float, default:0.0) –Multiplicative factor that control strength of color and luminace noise. 유효 범위는 다음과 같습니다. [0.00, 2.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Example
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
ratio_jitter
ratio_jitter(image: ndarray, proportion: Optional[int] = 0, fixed_aug_params: Optional[Dict] = None) -> Tuple[ndarray, Dict]
image에 random하게 padding과 crop을 한 뒤, 원래 size로 resize 하는 과정을 통해 image의 가로 세로 비율을 변경합니다. NOTE: 프리뷰에서는 네변에 각각 [0, proportion] 범위에서 crop 혹은 padding한 예시를 보여줍니다.
Parameters:
-
image(ndarray) – -
proportion(int, default:0) –padding 혹은 crop을 할 비율(단위: 백분율)입니다. 유효 범위는 다음과 같습니다. [0, 50]. Defaults to 0. (
fixed_aug_params=None일 때만 작동합니다.) -
fixed_aug_params(Dict, default:None) –각 변에 대해서 고정된 crop 혹은 padding을 직접 정해주고자 할 때 사용합니다.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
Dict(Dict) –
각 변에 대해 crop 혹은 padding할 비율을 직접 설정
각 변에 [-proportion, proportion] 범위에서 랜덤하게 crop 혹은 padding 적용
Source code in SaigeToolkit/data/transform/augmentation/api.py
645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 | |
zoom
image에 zoom in/out 효과를 줍니다.
Parameters:
-
image(ndarray) – -
ratio(float, default:1.0) –zoom in/out 할 비율입니다. 1보다 크면 zoom in을 1보다 작으면 zoom out을 합니다. 유효 범위는 다음과 같습니다. [0.01, 100.00]. Defaults to 1.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
random_resized_crop_and_pad
random_resized_crop_and_pad(image: ndarray, scale: float = 1.0, aspect_ratio: float = 1.0, height: Optional[int] = None, width: Optional[int] = None) -> Tuple[ndarray, None]
원본 image의 scale 비율의 면적을 가지면서 가로 세로 비가 aspect_ratio인 image를 random하게 crop 한 뒤, (crop image가 원본 image 보다 커지는 경우 padding을 통해 해결합니다.) 크기가 (height, width)가 되도록 resize를 합니다.
Parameters:
-
image(ndarray) – -
scale(float, default:1.0) –crop할 image의 면적을 나타내는 값입니다. 실제 면적은 [원본 이미지의 면적 * scale] 입니다. 유효 범위는 다음과 같습니다. [0.01, 1.00]. Defaults to 1.0.
-
aspect_ratio(float, default:1.0) –crop할 image의 가로 세로 비를 나타내는 값입니다. 유효 범위는 다음과 같습니다. [0.10, 10.00]. Defaults to 1.0.
-
height(int, default:None) –crop image를 resize할 height 입니다. None인 경우 입력 이미지의 원본 height를 사용합니다.
-
width(int, default:None) –crop image를 resize할 width 입니다. None인 경우 입력 이미지의 원본 width를 사용합니다.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Example
Trainer Config
{
"_target_": "random_resized_crop_and_pad",
"scale_limit": List[float], # scale 최소 최대 범위
"aspect_ratio_limit": List[float], # aspect_ratio 최소 최대 범위
"height": Optional[int], # crop 후 resize할 이미지 height (None인 경우 원본 height 사용)
"width": Optional[int], # crop 후 resize할 이미지 width (None인 경우 원본 width 사용)
}
Source code in SaigeToolkit/data/transform/augmentation/api.py
light_reflect
image에 원형 빛을 비춘 것 같은 효과를 줍니다.
Parameters:
-
image(ndarray) – -
radius(float, default:0.0) –원형 빛의 반지름 크기 입니다. 유효 범위는 다음과 같습니다. [0.00, 1.00]. Defaults to 0.0.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
NoneType(None) –None
Source code in SaigeToolkit/data/transform/augmentation/api.py
perspective_transform
perspective_transform(image: ndarray, intensity: Optional[int] = 0, fixed_aug_params: Optional[Dict] = None) -> Tuple[ndarray, Dict]
이미지를 투영 변환(Perspective Transform)합니다. image를 다른 각도(시점)에서 바라본 형태로 변환합니다. Perspective Transform 을 위한 네개의 도착점의 좌표 (offset)은 다음과 같이 샘플링됩니다. offset_top_left: 원본 이미지의 좌측 상단 모서리를 얼마만큼 중심부로 이동시킬 지에 대한 실수 값이 들어있습니다. 즉, Perspective Transform 의 좌측 상단점의 도착점은 아래와 같이 계산할 수 있습니다.
```
x` = 0 + width * offset_top_left[0]
y` = 0 + height * offset_top_left[1]
point_dst = (x`, y`)
```
offset_bottom_right
offset_top_left 와 동일하되 우측 하단 점을 나타냅니다.
Perspective Transform 의 우측 하단점의 도착점은 아래와 같이 계산할 수 있습니다.
offset_top_right: offset_top_left 와 동일하되 우측 상단 점을 나타냅니다.
offset_bottom_left: offset_top_left 와 동일하되 좌측 하단 점을 나타냅니다.
Parameters:
-
image(ndarray) – -
intensity(int, default:0) –perspective transform 을 적용 강도(단위: 백분율)입니다. intensity 범위 내에서 랜덤한 값으로 샘플된 네개의 offset 을 이용해 perspective transform 을 수행합니다. 유효 범위는 [0, 49] 로, 각 도착지 점들은 이미지의 중간 선을 지나칠 수 없습니다. 이를 통해 이미지가 반전되는 정도의 왜곡을 방지합니다. Defaults to 0. (
fixed_aug_params=None일 때만 작동합니다.) -
fixed_aug_params(Dict, default:None) –각 꼭짓점에 대해서 offset 비율을 직접 정해주고자 할 때 사용합니다.
Returns:
-
ndarray–np.ndarray: augmentation이 적용된 image 입니다.
-
Dict(Dict) –
각 꼭짓점의 offset 비율을 직접 설정
각 꼭짓점에 [0, intensity] 범위에서 랜덤하게 offset 비율을 적용
Trainer Config
Source code in SaigeToolkit/data/transform/augmentation/api.py
871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 | |
augment_function
INTERPOLATE_METHOD_CV2
module-attribute
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_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
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
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_in
_zoom_in(image: ImageType, ratio: float = 1.0, h_start: float = 0.0, w_start: float = 0.0, resampling: str = 'bilinear') -> Union[ImageType, MaskType]
Source code in SaigeToolkit/data/transform/augmentation/augment_function.py
_zoom_out
_zoom_out(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
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
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
erase
erase(image: ImageType, x: int, y: int, w: int, h: int, v: ndarray)
augment_transform
Implement ImageTransform classes for image augmentation.
ImageTransform
Bases: BaseTransform
Image와 라벨에 적용되는 Transform 입니다.
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
apply_to_image
apply_to_mask
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, **params) -> BBoxesType
apply_to_polygons
apply_to_polygons(polygons: PolygonType, **params) -> PolygonType
ImageSizeParams
get_params_from_data
get_params_from_data(data_for_params: ParamsType) -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
ToNumpy
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
apply_to_image
ToPil
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
apply_to_image
VerticalFlip
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
apply_to_image
apply_to_mask
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], **params) -> BBoxesType
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], **params) -> PolygonType
HorizontalFlip
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
apply_to_image
apply_to_mask
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], **params) -> BBoxesType
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], angle: float = 0, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, angle: float, image_size: Tuple[int], **params) -> PolygonType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
RandomRotate90
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
apply_to_mask
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], factor: int = 0, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], factor: int = 0, **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, brightness: float = 1.0, contrast: float = 1.0, saturation: float = 1.0, hue: float = 0, order: List[int] = [0, 1, 2, 3], **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
Blur
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
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
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
AdjustBrightness
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
AdjustContrast
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
AdjustHue
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
AdjustSaturation
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
AdjustGamma
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
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
get_apply_params
get_apply_params() -> ParamsType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
JpegCompression
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
apply_to_image
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
_generate_sharpening_matrix
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
MultiplicativeNoise
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
_generate_multiplier
_generate_multiplier(image: ImageType, multiplier: ndarray, random_seed: int) -> ndarray
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, proportion_left: float, proportion_right: float, proportion_top: float, proportion_bottom: float, **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
apply_to_mask(mask: MaskType, proportion_left: float, proportion_right: float, proportion_top: float, proportion_bottom: float, **params) -> MaskType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], proportion_left: float, proportion_right: float, proportion_top: float, proportion_bottom: float, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], proportion_left: float, proportion_right: float, proportion_top: float, proportion_bottom: float, **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, ratio: float, h_start: float, w_start: float, **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], ratio: float, h_start: float, w_start: float, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], ratio: float, h_start: float, w_start: float, **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, h_scale: float, w_scale: float, h_start: float, w_start: float, **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
apply_to_mask(mask: MaskType, h_scale: float, w_scale: float, h_start: float, w_start: float, **params) -> MaskType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, **params) -> BBoxesType
apply_to_polygons
apply_to_polygons(polygons: PolygonType, **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, scale: float, aspect_ratio: float, h_start: float, w_start: float, **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
apply_to_mask(mask: MaskType, scale: float, aspect_ratio: float, h_start: float, w_start: float, **params) -> MaskType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], scale: float, aspect_ratio: float, h_start: float, w_start: float, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], scale: float, aspect_ratio: float, h_start: float, w_start: float, **params) -> PolygonType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
LightReflect
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
PerspectiveTransform
Bases: ImageSizeParams, ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType, **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_mask
apply_to_mask(mask: MaskType, offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType, **params) -> MaskType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_bboxes
apply_to_bboxes(bboxes: BBoxesType, image_size: Tuple[int], offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType, **params) -> BBoxesType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_polygons
apply_to_polygons(polygons: PolygonType, image_size: Tuple[int], offset_top_left: OffsetType, offset_top_right: OffsetType, offset_bottom_right: OffsetType, offset_bottom_left: OffsetType, **params) -> PolygonType
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
get_apply_params
get_apply_params() -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
apply_to_image
apply_to_image(image: ImageType, x_in_ratio: float, y_in_ratio: float, h_in_ratio: float, w_in_ratio: float, value: Union[int, Tuple[int, int, int], str], **params) -> ImageType
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
Grayscale
Bases: ImageTransform
Source code in SaigeToolkit/data/transform/augmentation/augment_transform.py
base_transform
Data augmentation을 위한 기본 Transform의 interface를 정의합니다.
BaseTransform
Transform의 기본 interface를 정의합니다.
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
__call__
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
get_apply_params
get_apply_params() -> ParamsType
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
apply_with_params
apply_with_params(params: ParamsType, **data) -> ParamsType
Source code in SaigeToolkit/data/transform/augmentation/base_transform.py
builder
_types
module-attribute
_types = {None: {__name__: _u1ELfor _type in _types}, None: {pascal_to_snake(__name__): _LpWafor _type in _types}}
Augmentation
Source code in SaigeToolkit/data/transform/augmentation/builder.py
__call__
Source code in SaigeToolkit/data/transform/augmentation/builder.py
build_augmentation
build_augmentation(config: Dict) -> Augmentation
Source code in SaigeToolkit/data/transform/augmentation/builder.py
compose
여러 Data Transform들을 하나로 묶어서 관리해주는 기본 BaseCompose 클래스 및 Compose 구현을 제공합니다.
base_compose
Data augmentation을 위한 기본 Compose의 interface를 정의합니다.
BaseCompose
BaseCompose(transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0)
여러 Data Transform들을 하나로 묶어서 관리해주는 Compose의 기본 interface를 정의합니다.
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
__call__
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
apply
__len__
__getitem__
__getitem__(index: int) -> Union[BaseTransform, BaseCompose]
builder
_types
module-attribute
_types = {None: {__name__: _v4sKfor _type in _types}, None: {pascal_to_snake(__name__): _s9B7for _type in _types}}
build_compose
build_compose(_target_: str, transforms: List[BaseTransform], **config) -> BaseCompose
compose
Compose
Compose(transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0)
Bases: BaseCompose
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
SomeOf
Bases: BaseCompose