[Data Augmentation] 2. Image Augmentation Tool : albumentations

happy_quokka·2024년 1월 10일
0

자율주행 Perception

목록 보기
9/19

albumentations 설치

  • 아래의 명령어로 간단하게 설치할 수 있다
# pip install -U albumentations

간단한 transform

1. 이미지 불러오기

  • opencv의 경우 이미지가 BGR 형식이기 때문에 RGB로 변환해주어야한다
  • 또한 opencv로 이미지를 show할때는 다시 BGR 형식으로 변환해주어야 제대로 나온다

2. HorizontalFlip

  • A.HorizontalFlip(p=0.5)
    : p : 확률값 (0이면 적용안되고 1이면 100% 적용된다)
  • random.seed(7)
    • 랜덤 변환을 일관된 방식으로 실행하기 위해 초기값 설정
    • 같은 시드를 사용하면 동일한 랜덤 시퀀스가 발생하여 같은 이미지에 대해 동일한 변환을 적용한다


3. ShiftScaleRotate

  • A.ShiftScaleRotate(p=0.5)
  • 빈공간에도 이미지를 채워주는 기능이 포함되어있다


4. compose

  • 여러 변환을 한번에 적용하는 방법
  • A.Compose()안에 리스트[ ]로 원하는 변환들을 넣으면 된다
    • A.CLAHE() : 대비를 향상시키기 위해 히스토그램 균일화를 수행
    • A.RandomRotate90() : 0, 90, 180, 270 중에 무작위로 회전시킨다
    • A.Transpose() : 대각선을 따라 뒤집는다
    • A.ShiftScaleRotate() : 이동, 회전, 크기조정
    • A.Blur() : blur 효과 추가
    • A.OpticalDistortion() : Optical Distortion을 통해 이미지를 왜곡한다 (흐물흐물하게)
    • A.GridDistortion() : grid 왜곡
    • A.HueSaturationValue() : 색조, 채도, 명도를 무작위로 조절하여 색감 변경

  • 결과

그 외의 여러 transform

  • A.OneOf([]) : 리스트 안에 있는 여러 변환 중 하나를 선택하여 적용
  • A.RandomSizedCrop() : 무작위 크기로 이미지를 자른다
  • A.PadIfNeeded() : 이미지에 패딩을 추가한다
  • A.VerticalFlip() : 이미지를 수직으로 뒤집는다
  • A.ElasticTransform() : 이미지에 탄성을 주어 변형시킨다 (구불구불하게)
  • A.GridDistortion() : grid 왜곡을 적용한다
  • A.OpticalDistortion() : 광학 왜곡을 적용한다
  • A.CLAHE() : 히스토그램 평활화를 통해 이미지의 대비를 향상시킨다
  • A.RandomBrightnessContrast() : 이미지의 밝기와 대비를 random으로 조절한다
  • A.RandomGamma() : 이미지의 gamma를 조절하여 이미지의 밝기를 변경한다

0개의 댓글