Skip to main content

Augmentationer

Augmentationer는 이미지와 해당 라벨을 다양한 방식으로 증강하는 파이썬 라이브러리입니다.

주요 기능

  • 이미지 회전
  • 가우시안 노이즈 추가
  • 블러 효과 적용
  • 그레이스케일 변환
  • 랜덤 크롭
  • 투시 변환
  • 대비 조정
  • 소금-후추 노이즈 추가
  • 이미지 좌우 반전
  • 밝기 조정
  • 색상 지터링
  • 채널 셔플

설치 방법

pip install augmentationer

사용 방법

기본 사용법

from augmentationer import augmentationer
from augmentationer.function import *

# 증강 함수 정의
augmentation_functions = [
    lambda img, lbl: rotate_image_and_labels(img, lbl, 30, 0.3),
    lambda img, lbl: (add_gaussian_noise(img)),
    lambda img, lbl: (apply_blur(img)),
    lambda img, lbl: (convert_color(img)),
    lambda img, lbl: apply_random_crop(img, lbl, 0.8),
    lambda img, lbl: apply_perspective_transform(img, lbl, 0.2),
    lambda img, lbl: (change_contrast(img)),
    lambda img, lbl: (add_salt_pepper_noise(img)),
    lambda img, lbl: (flip_image_and_labels(img, lbl)),
    lambda img, lbl: (adjust_brightness(img)),
    lambda img, lbl: (color_jitter(img)),
    lambda img, lbl: (channel_shuffle(img)),
]

# augmentationer 실행
augmentationer("images", "labels", "output", augmentation_functions, "aug_prefix")

멀티 사용법

여러 가지 증강 설정을 적용하려면 다음과 같이 사용할 수 있습니다:

from augmentationer import augmentationer
from augmentationer.function import *

# 증강 함수 세트 정의
augmentation_functions_1 = [
    lambda img, lbl: rotate_image_and_labels(img, lbl, 30, 0.3),
    lambda img, lbl: (add_gaussian_noise(img)),
    lambda img, lbl: (apply_blur(img)),
    lambda img, lbl: (convert_color(img)),
    lambda img, lbl: apply_random_crop(img, lbl, 0.8),
    lambda img, lbl: apply_perspective_transform(img, lbl, 0.2),
]

augmentation_functions_2 = [
    lambda img, lbl: (change_contrast(img)),
    lambda img, lbl: (add_salt_pepper_noise(img)),
    lambda img, lbl: (flip_image_and_labels(img, lbl)),
    lambda img, lbl: (adjust_brightness(img)),
    lambda img, lbl: (color_jitter(img)),
    lambda img, lbl: (channel_shuffle(img)),
]

augmentation_functions_3 = [
    lambda img, lbl: (add_gaussian_noise(img)),
    lambda img, lbl: (apply_blur(img)),
    lambda img, lbl: (convert_color(img)),
    lambda img, lbl: apply_random_crop(img, lbl, 0.8),
    lambda img, lbl: apply_perspective_transform(img, lbl, 0.2),
]

# 여러 증강 설정 적용
augmentationer("images", "labels", "output", augmentation_functions_1, "augmentation_1")
augmentationer("images", "labels", "output", augmentation_functions_2, "augmentation_2")
augmentationer("images", "labels", "output", augmentation_functions_3, "augmentation_3")

이 방법을 사용하면 여러 가지 증강 설정을 독립적으로 적용할 수 있으며, 각 설정에 대해 접두사가 붙은 이름의 파일이 생성됩니다.

Visualizer 사용법

증강된 이미지와 라벨을 시각화하려면 다음과 같이 visualizer 함수를 사용할 수 있습니다:

from augmentationer import visualizer

# 이미지와 라벨 파일 경로 지정
image_path = 'output/images/image2_augmentation_3.jpg'
label_path = 'output/labels/image2_augmentation_3.txt'

# visualizer 실행 (class_colors 지정은 선택. 선택 안할 시 랜덤으로 컬러 지정됨.)
visualizer(image_path, label_path, target_class_ids=[0,1], text=False, class_colors={0: (255, 0, 0), 1: (0, 255, 0)})

# 클래스 지정없이 시각화 (기본 값 : 랜덤 컬러 지정, 모든 클래스 표시, 텍스트 표시)
visualizer(image_path, label_path)

이 함수는 지정된 이미지를 열고, 해당하는 라벨 정보를 이미지 위에 표시합니다. 각 객체는 녹색 폴리곤으로 표시되며, 클래스 ID도 함께 표시됩니다.

주요 함수 설명

augmentationer(image_folder, txt_folder, output_folder, augmentation_functions, aug_prefix)

주어진 이미지 폴더와 라벨 폴더에서 이미지를 읽어와 다양한 증강 함수를 적용한 후, 증강된 이미지와 라벨을 출력 폴더에 저장합니다.

매개변수:

  • image_folder (str 또는 PathLike): 원본 이미지 파일들이 저장된 폴더 경로
  • txt_folder (str 또는 PathLike): 원본 라벨 파일들이 저장된 폴더 경로
  • output_folder (str 또는 PathLike): 증강된 이미지와 라벨 파일들을 저장할 출력 폴더 경로
  • augmentation_functions (List[Callable]): 이미지와 라벨에 적용할 증강 함수들의 리스트
  • aug_prefix (str): 증강된 파일 이름에 추가할 접두사 (예: "aug_1", "aug_2" 등, 증강된 파일 구분을 위해 사용)

rotate_image_and_labels(image, labels, angle, padding_ratio=0.1)

이미지를 회전시키고 라벨을 조정합니다.

add_gaussian_noise(image, mean=0, std=25, weight=0.25)

이미지에 가우시안 노이즈를 추가합니다.

apply_blur(image, kernel_size=(5, 5), sigma=0)

이미지에 블러 효과를 적용합니다.

convert_color(image)

이미지를 그레이스케일로 변환한 후 다시 컬러로 변환합니다.

apply_random_crop(image, labels, crop_ratio=0.8)

이미지를 랜덤하게 자르고 라벨을 조정합니다.

apply_perspective_transform(image, labels, strength=0.05)

이미지에 투시 변환을 적용하고 라벨을 조정합니다.

change_contrast(image, alpha=1.5, beta=0)

이미지의 대비를 조정합니다.

add_salt_pepper_noise(image, salt_vs_pepper=0.2, amount=0.004)

이미지에 소금과 후추 노이즈를 추가합니다.

flip_image_and_labels(image, labels)

이미지를 수평으로 뒤집고 라벨을 조정합니다.

adjust_brightness(image, brightness_range=(0.7, 1.3))

이미지의 밝기를 조정합니다.

color_jitter(image, hue_shift=0.1, saturation_shift=0.3, value_shift=0.3)

이미지의 색조, 채도, 명도를 무작위로 변경합니다.

channel_shuffle(image)

이미지의 색상 채널을 무작위로 섞습니다.

라이선스

이 프로젝트는 MIT 라이선스 하에 있습니다.

Metadata

Release files for augmentationer 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for augmentationer 0.4.2
File Size Uploaded
augmentationer-0.4.2.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for augmentationer 0.4.2
File Interpreter ABI Platform
augmentationer-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / augmentationer-0.4.2.tar.gz

Download URL augmentationer-0.4.2.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
63738cd7f86a497e769cb02e8a7adc9f028ae7b50cd5de2e0b860d56f031b6b8
BLAKE2b-256 checksum
How to use checksums
2863fb275367627ed6e652ecbe5e89c820e3186382716ebdf3b8ee4c0a139e61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.2 Windows/10

Release files / augmentationer-0.4.2-py3-none-any.whl

Download URL augmentationer-0.4.2-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9aa8f21520b1f8d63dbd5c0fd454187cddf3831ba350029ee14b199bf011a21
BLAKE2b-256 checksum
How to use checksums
22b127a5b2d23a452db690e991a0c467a6970a486cfc5648fc296ae46787cda9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.12.2 Windows/10

Release history Release notifications | RSS feed

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page