[2023-06-07] Data Labeling
Data Labeling
- 원시 데이터(Raw Data)를 유의미한 작업에 사용하도록 데이터를 만드는 작업
- Computer Vision에서는 주로 이미지에 필요한 작업(Classification, Detection, …)에 대해 결과를 미리 입력하는 작업
- Classification에서는 이미지에 해당하는 클래스 정보를 입력
- Detection에서는 이미지에 대상 객체의 Bbox와 클래스 정보를 입력
- Computer Vision에서는 주로 이미지에 필요한 작업(Classification, Detection, …)에 대해 결과를 미리 입력하는 작업
- Labeling = Annotation = Tagging
- Data Labeling을 통해 만들어진 데이터는 모델이 만들어낼 수 있는 최대 검출/분류 성능이 될 수 있고 또 다른 데이터를 만들어내는 재료가 됨
- 데이터를 잘 만드는 것은 매우 중요한 일이고 잘못된 데이터를 사용하면, 잘못된 모델을 선택하는 것 보다 결과에 미치는 영향이 큼
- 정확한 데이터를 만드는 작업은 단순 반복 작업이고 데이터와 관련된 작업을 수행하는데 대부분의 시간을 소비함
- 현실에서는 다양한 이유로 학습 데이터를 직접 만들 수 밖에 없음
- 각 회사마다 풀어야하는 문제가 다름
- 공개된 데이터셋에 없는 세부적인 객체가 필요한 경우
- 주어진 환경과 조건이 다름
- 공개된 데이터셋과 다른 환경에서 문제를 풀어야 하는 경우
- 환경이 늘 변화함
- 시간, 날씨, 데이터 취득 환경과 실제 적용 환경, 대상이 변하는 경우
- 각 회사마다 풀어야하는 문제가 다름
- 화창한 여름 도심지 데이터를 학습한 모델이 눈 내리는 겨울 저녁 도심지 환경에서 사람을 잘 검출할 수 있을까?
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/
- Data Augmentation을 사용하면 성능이 향상함
색 공간 변형
이미지 변형
- 기하학적 형태 변형할 수 있음
- Data Augmentation으로 다양한 형태의 데이터를 만들 수 있음
Data Augmentation이 적용된 Detection 및 Segmentation
- Data Augmentation으로 변형된 이미지에서도 Detection 및 Segmentation이 반영됨
-
Data Augmentation은 추가적인 데이터 제작 없이 모델 성능을 확보할 수 있는 방법 중 하나이지만, 사용하는데 주의가 필요함
e.g. 신호등 처럼 색상을 활용하는 데이터에 GrayScale이나 ChannelShuffle을 사용하면, 성능을 저하시킴
- 같은 빨간색이지만, Data Augmentation의 색 공간 변형으로 인해 어떤 데이터에서는 GO, 어떤 데이터에서는 STOP으로 인식할 수 있음
-
데이터 증강 기법들을 사 검토 없이 무작정 사용하면, 성능이 낮아질 수 있으므로 보유한 데이터와 모델의 목적을 고려하 적절한 데이터 증강 기법을 선택하여 적용해야 함