0524 Data Augmentation

이나겸·2022년 5월 24일
0
post-thumbnail

1. 학습내용

Data Augmentation

가지고 있는 데이터셋을 여러방법으로 augment 하여 실질적인 학습 데이터셋의 규모를 키우는 방법이다.
사람이 일일이 사진을 찍을 수 없으니까 그것과 흡사하게 만들어서 학습을 하면 되지않을까? 에서 창안되었다.

Augmentation을 왜 쓰는가?

균일한 결과가 나와야 학습이 잘 되고 있는 것인데,
train 데이터가 많아질수록 안정적으로 학습되는 것을 확인할 수 있다.
데이터 수집에는 변수도 많고 한계가 있다.

예를 들어 산업 폐기물 데이터가 필요해서 찾아보면 잘 안 나오는 경우가 많다.
그러면 보통 사진촬영을 하는데 최소 분류학습을 위해서는 100개 이상이 필요하다.
그것보다 작으면 성능이 잘 안나온다. 엉뚱한 분류결과가 나온다.
해변에 사람 사진만 넣어놓고 학습시킨 뒤 해변의 자동차 사진을 넣으면
해변 사진 때문에 무조건 사람이 있다고 생각하고 자동차를 사람으로 분류할 수 있다.

다양한 데이터를 넣어서 학습해야 한다.
비슷한 이미지를 거의 안 넣고 조금씩 다른 이미지를 넣는다.
augmentation은 validation이나 test에는 사용하지 않는다.
augmentation은 랜덤하게 들어갈 경우가 많다.
평가하는 단계에서 집어넣으면 변형되어서 평가 자체에 모순이 생긴다.

Image Augmentation 방법

  1. Flipping
    거울 반전처럼 이미지를 좌우 또는 상하로 반전시키는 방법이다.

    문제점
    손글씨의 경우 플리핑을 하면 다른 글자로 인식될 수 있다.
    이미지를 잡고 늘이는 경우, 원으로 된 공을 늘여서 타원형으로 변형되면
    테스트에 원을 넣었는데 타원으로 나온다던가 하는 문제가 생긴다.
    augmentation 하기 전에 어떻게 반응하는 지 확인하고 해야한다.

  2. Image 처리
    이미지 같은 경우에는 3가지 채널 R, G, B로 변환하는 기법을 사용한다.
    이미지의 색조, 채도, 명도를 건들여서 이미지를 선명하게 하거나 똑같은 이미지지만 색조가 바껴서 이미지상의 값들이 변경되어 컴퓨터는 다른 이미지라고 인식할 수 있다.
    offset을 주면 선명하게 바꾸는 방법이 있다.
    sharpening으로 이미지를 선명하게 해서 이미지의 feature를 잘 잡게 할 수 있다.
    다양하게 사용할 수 있는데, 어떤 이미지인가에 따라 Image 처리도 달라진다.

  3. 많이 사용되는 것

  • 이미지 뒤집기
  • 이미지 밝기 (아침부터 새벽까지 다양한 시간대의 이미지가 필요함)
  • 합성 : 원래 이미지가 10장일 때 다양한 이미지 배경을 구하고 합성을 한다.
  • 회전

2. 중요내용

과제를 수행하면서 PIL의 Image module만 사용하다가
밝기를 사용하고 싶어서 검색해보니 ImageEnhance를 사용해서 한 것을 찾을 수 있었다.
고민하다가 PILLOW 공식문서에서 Brightness, Color, Contrast를 사용했다.
패키지를 사용할 때 관련 공식문서 보는 것에 익숙해져야겠다.

3. 학습소감

PILLOW 패키지와 torch, albumentation의 augmentation 처리하는 것을 학습했다.
어제 배운 크롤링으로 이미지를 가져와서 쓸 수 있는 이미지와 아닌 이미지를 분류했었는데,
이 부분을 자동화할 수 있으면 편리하겠다는 생각이 들었다.
자동화가 어렵긴 하지만, 이 부분에 대해서 좀 더 고민해봐야겠다는 생각이 들었다.

0개의 댓글