본문 바로가기
AI/딥러닝

[AI 부트캠프] DAY 97 - 트랙학습 CV 11

by HOHHOH 2023. 12. 7.

[오늘의 일지]

트랙학습 녹화 강의 - Data augmentation

[상세 내용]

Data augmentation

- Data augmentation이미지, 텍스트, 음성 등 다양한 데이터 유형에서 적용될 수 있습니다. 이미지의 경우, 회전, 반전, 크기 조절, 확대/축소, 색상 조절 등의 변형을 통해 새로운 학습 샘플을 생성합니다. 텍스트의 경우, 문장 구조 변경, 동의어 대체, 문법 수정 등이 사용될 수 있습니다. 이러한 다양한 변형을 통해 모델은 더 많은 패턴과 다양성을 학습하게 되며, 실제 상황에서의 성능을 향상시킬 수 있습니다. 데이터 증강은 특히 작은 규모의 데이터셋에서 유용하며, 과적합(overfitting)을 방지하고 모델의 일반화 성능을 개선하는 데 도움이 됩니다.

 

방법

이미지 데이터 증강

  • 회전(Rotation): 이미지를 특정 각도로 회전시킴
  • 반전(Flip): 이미지를 수평 또는 수직으로 뒤집음
  • 크기 조절(Scaling): 이미지 크기를 조절함
  • 이동(Translation): 이미지를 수평 또는 수직으로 이동시킴
  • 클리핑(Clipping): 이미지에서 일부 영역을 잘라내거나 확대함
  • 색상 조절(Color Adjustments): 밝기, 대비, 채도 등을 변경함

텍스트 데이터 증강

  • 동의어 대체(Synonym Replacement): 단어를 동의어로 대체함
  • 문장 구조 변경(Sentence Restructuring): 문장의 구조를 변경함
  • 의미적 오류 삽입(Semantic Error Injection): 문장에 의미적 오류를 삽입함

음성 데이터 증강

  • 속도 조절(Speed Variation): 음성의 재생 속도를 변경함
  • 노이즈 추가(Noise Injection): 음성에 노이즈를 추가함
  • 시간 뒤집기(Time Reversal): 음성을 시간적으로 뒤집음

시계열 데이터 증강

  • 이동 및 스케일 조절(Movement and Scaling): 데이터의 시간 축을 따라 이동하거나 스케일을 변경함
  • 노이즈 추가(Noise Injection): 시계열 데이터에 노이즈를 추가함

예시 코드

- 크기 조절과 색변환이 포함되어 있습니다.

IMAGE_SIZE = 448

transformer = A.Compose([
        A.ShiftScaleRotate(rotate_limit=15, border_mode=cv2.BORDER_CONSTANT, value=(127,127,127), p=0.5),
        A.RandomSizedBBoxSafeCrop(height=IMAGE_SIZE, width=IMAGE_SIZE),
        A.HorizontalFlip(p=0.5),
        A.RGBShift(r_shift_limit=20, g_shift_limit=20, b_shift_limit=20, p=1),
        A.RandomBrightnessContrast(p=0.3),
        A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
        ToTensorV2(),
    ],
    bbox_params=A.BboxParams(format='yolo', label_fields=['class_ids']),
)

 

[마무리]

 오늘은 object detection이나 다른 텍스트 분류 등에서 데이터가 부족할 때 사용하는 기법인 augmentation에 대해서 공부했습니다. 이미지 데이터의 경우에는 데이터의 양이 부족한 경우가 많은데 이 기법을 사용하여 여러 가지 형태로 데이터를 늘려서 오버피팅을 방지할 수 있다는 점에서 매우 유용할 거 같습니다.

반응형

댓글