Data Labeling

  • 원시 데이터(Raw Data)를 유의미한 작업에 사용하도록 데이터를 만드는 작업
    • Computer Vision에서는 주로 이미지에 필요한 작업(Classification, Detection, …)에 대해 결과를 미리 입력하는 작업
      • Classification에서는 이미지에 해당하는 클래스 정보를 입력
      • Detection에서는 이미지에 대상 객체의 Bbox와 클래스 정보를 입력
  • Labeling = Annotation = Tagging

image

  • Data Labeling을 통해 만들어진 데이터는 모델이 만들어낼 수 있는 최대 검출/분류 성능이 될 수 있고 또 다른 데이터를 만들어내는 재료가 됨
  • 데이터를 잘 만드는 것은 매우 중요한 일이고 잘못된 데이터를 사용하면, 잘못된 모델을 선택하는 것 보다 결과에 미치는 영향이 큼
  • 정확한 데이터를 만드는 작업은 단순 반복 작업이고 데이터와 관련된 작업을 수행하는데 대부분의 시간을 소비함

image

  • 현실에서는 다양한 이유로 학습 데이터를 직접 만들 수 밖에 없음
    • 각 회사마다 풀어야하는 문제가 다름
      • 공개된 데이터셋에 없는 세부적인 객체가 필요한 경우
    • 주어진 환경조건이 다름
      • 공개된 데이터셋과 다른 환경에서 문제를 풀어야 하는 경우
    • 환경이 늘 변화
      • 시간, 날씨, 데이터 취득 환경과 실제 적용 환경, 대상이 변하는 경우
  • 화창한 여름 도심지 데이터를 학습한 모델이 눈 내리는 겨울 저녁 도심지 환경에서 사람을 잘 검출할 수 있을까?

Data Labeling Tools

  • CVAT, labelme, labelmg 등

CVAT

  • https://openvinotoolkit.github.io/cvat/docs/administration/basics/installation/

Data Augmentation

  • 데이터 증강
  • 데이터가 가지고 있는 고유한 특징/특성에 추가, 변경, 제거 등을 통해 새로운 이미지를 만듬
  • 유용한 데이터 증강 라이브러리
    • imgaug : https://github.com/aleju/imgaug
    • Albumentations : https://albumentations.ai/

image

  • Data Augmentation을 사용하면 성능이 향상함

image

색 공간 변형

image

이미지 변형

  • 기하학적 형태 변형할 수 있음

image

image

  • Data Augmentation으로 다양한 형태의 데이터를 만들 수 있음

image

Data Augmentation이 적용된 Detection 및 Segmentation

  • Data Augmentation으로 변형된 이미지에서도 Detection 및 Segmentation이 반영됨

image

  • Data Augmentation은 추가적인 데이터 제작 없이 모델 성능을 확보할 수 있는 방법 중 하나이지만, 사용하는데 주의가 필요함

    e.g. 신호등 처럼 색상을 활용하는 데이터에 GrayScale이나 ChannelShuffle을 사용하면, 성능을 저하시킴

    • 같은 빨간색이지만, Data Augmentation의 색 공간 변형으로 인해 어떤 데이터에서는 GO, 어떤 데이터에서는 STOP으로 인식할 수 있음
  • 데이터 증강 기법들을 사 검토 없이 무작정 사용하면, 성능이 낮아질 수 있으므로 보유한 데이터와 모델의 목적을 고려하 적절한 데이터 증강 기법을 선택하여 적용해야 함