[Data Augmentation] 1. Data Augmentation

happy_quokka·2024년 1월 8일
0

자율주행 Perception

목록 보기
8/19

Data Augmentation의 필요성

  • data labeling은 중요한 작업이지만 많은 비용과 노력이 들어간다
  • data augmentation은 이를 도와주는 방법이 될 수 있다
  • 데이터는 많을수록 좋고 환경은 변화하기 때문에 새로운 데이터가 필요하지만 이 모든 것을 data labeling만으로 해결할 수 없다
  • 따라서 data labeling을 최소화하면서 보다 효과적인 data augmentation 방법들이 제안되고 있다
  • data augmentation을 사용했을 때
    • 모델 성능이 더 좋아진다
    • noise를 추가하는 경우도 있기 때문에 inference 성능이 좋아진다

Data Augmentation이란?

  • data augmentation의 기본 개념은 데이터가 가지고 있는 고유한 특징, 특성에 추가/변경/제거를 통해 새로운 이미지를 만드는 것

색공간 변형


기하학적 변형

왜곡

  • distortion : grid의 비율을 다르게 조절

그 외

  • 그 외에도 이미지 왜곡, 노이즈, 가림 등 다양한 data augmentation 기법을 적용할 수 있다


Model에 Data Augmentaion 적용

  • 이미지 데이터에 augmentation을 적용하여 이미지로 가지고 있을 수도 있지만 그렇게 되면 디스크 용량도 많이 차지하고 파일도 많아진다
  • 따라서 모델 학습 단계에서 데이터를 불러온 후 train에 input을 넣어주는 사이에 augmentation을 적용하는 경우가 많다
  • 이때 epoch을 신경써야한다
  • 원래 1 epoch에 1000장의 이미지를 사용했다면,
    • case 1. augmentation을 통해 이미지 데이터 개수를 60배로 늘린 경우
      : 1 epoch당 6만장의 이미지 데이터 사용
    • case 2. data를 불러온 후 train의 input 전에 augmentation을 적용한 경우
      : 1 epoch 당 그대로 1000장
  • data augmentation의 경우 원래 이미지가 가장 많은 정보를 담고 있다
  • 따라서 train 전에 augmentation을 수행한다면 epoch의 횟수를 늘리는 것이 좋다

Data Augmentation의 주의점

  • data augmentation은 추가적인 데이터 제작없이 모델 성능을 확보할 수 있는 방법 중 하나이지만 사용하는데 주의가 필요하다
  • 보유한 데이터와 모델의 목적을 고려하여 적절한 data augmentation 기법을 적용해야한다

신호등의 경우

  • 자율주행의 경우 신호등 데이터를 사용할 때 주의가 필요하다
  • 신호등의 경우 색공간 정보(res, yellow, green)과 불빛의 위치 정보를 사용한다
  • augmentation을 통해 grayscale로 변환되거나 channel이 바뀌게 된다면 문제가 발생한다
  • 이미지가 잘려서 하나의 신호등 부분만 보이게 된다면 어떤 신호인지 알 수 없을 수 있다

Data Augmentation 라이브러리

0개의 댓글