[컴퓨터 비전의 모든 것] Data Augmentation
2024. 12. 20. 01:44ㆍMOOC
1. 데이터의 중요성과 편향(bias)
- Neural Network와 데이터:
- 신경망은 데이터를 학습하여 내부의 weight(가중치)로 정보를 압축하는 모델이다.
- 모델의 성능은 데이터의 질에 크게 좌우된다.
- 데이터 편향의 문제:
- 데이터는 대개 현실 세계(real data distribution)에서 일부만 샘플링한 것이며, 대부분 bias(편향)을 포함한다.
- 예: 인터넷에서 수집된 이미지 데이터는 사람이 보기 좋은 구도로 촬영되어 특정 패턴이 반복될 가능성이 크다.
- 편향된 데이터는 현실의 다양한 상황을 충분히 반영하지 못하기 때문에, 테스트 시 새로운 조건(예: 어두운 이미지)에서 성능이 저하될 수 있다.
2. 문제 해결: Data Augmentation (데이터 증강)
- 정의:
- 데이터를 인위적으로 변환하여 학습 데이터의 다양성을 증가시키는 기법이다.
- 현실적으로 데이터를 추가 확보하지 않고도 모델의 성능을 개선할 수 있는 효과적인 방법이다.
- 예시 기법:
- 이미지 회전: 이미지를 특정 각도로 회전.
- 밝기 조절: RGB 값을 조정하여 이미지 밝기를 변화.
- 크롭(Crop): 이미지의 일부분을 잘라내서 새로운 데이터를 생성.
- Affine 변환: 선의 평행 관계와 길이 비율을 유지하면서 이미지를 변환.
- CutMix: 두 개 이상의 이미지 일부를 합성하고 레이블을 합성 비율에 맞게 조정.
- 조합 적용: 여러 augmentation 기법을 결합하여 적용(예: 회전 후 크롭).
3. RandAugment: 최적의 데이터 증강 탐색
- 문제점: 다양한 Data Augmentation 기법을 조합하여 최적의 조합을 찾는 것은 시간과 비용이 많이 든다.
- RandAugment:
- 사전에 설정한 augmentation 옵션 리스트에서 랜덤으로 샘플링하여 조합(policy)을 자동 탐색.
- 각 조합의 성능을 평가해 최적의 증강 방법을 찾을 수 있다.
4. Data Augmentation의 효과
- 장점:
- 데이터 다양성 증가 → 모델이 더 일반화된 학습 가능.
- 과적합(overfitting) 방지.
- 현실 세계의 다양한 상황에 대비한 강건한 모델 구축.
- 활용 사례:
- 이미지 분류, 객체 탐지, 세분화 등 다양한 컴퓨터 비전 작업에서 사용.
1. Brightness Augmentation 코드
- brightness_augmentation(img) 함수는 이미지의 RGB 채널 값을 100씩 증가시키는 밝기 증강 기법을 보여준다.
- RGB 값이 255를 초과하지 않도록 제한(clipping)하는 과정도 포함되어 있다.
- numpy 배열로 처리하며, 밝기를 조절하여 데이터 다양성을 확보하는 방법을 보여준다.
2. 회전 및 반전
- OpenCV를 사용하여 이미지를 90도 시계 방향으로 회전(cv2.ROTATE_90_CLOCKWISE)하거나, 180도로 뒤집는(cv2.ROTATE_180) 변환 기법을 보여준다.
- 이미지 데이터를 회전 및 반전시켜 다양한 데이터 증강 사례를 보여준다.
3. 이미지 크롭
- 이미지의 일부를 잘라내는 크롭(crop) 작업을 보여준다.
- 크롭 시작 좌표(x_start, y_start)와 크기(crop_x_size, crop_y_size)를 지정하여 원하는 영역을 추출한다.
- 크롭된 이미지는 데이터 증강과 객체 탐지에서 활용될 수 있다.
4. Affine Transformation
- Affine 변환은 이미지를 기하학적으로 변형시키는 기법을 보여준다.
- 세 개의 변환 전후 대응 점(pts1, pts2)을 설정하여 변환 행렬을 계산하고 OpenCV의 cv2.warpAffine 함수로 변환을 적용한다.
- 변환 후에도 선의 평행 관계와 길이 비율이 유지된다.
5. CutMix Augmentation
- 두 개의 이미지를 합성하여 새로운 이미지를 생성하는 CutMix 기법을 설명한다.
- 원본 이미지(x1, x2)를 잘라 합성된 이미지(xnew)를 생성하며, 레이블(y1, y2)도 합성 비율에 맞게 조정(ynew)된다.
- 데이터 증강에서 레이블까지 고려한 기법으로 모델 일반화를 높이는 데 도움을 준다.
'MOOC' 카테고리의 다른 글
[컴퓨터 비전의 모든 것] Image Classification (2) : 대표 모델 (0) | 2024.12.20 |
---|---|
[컴퓨터 비전의 모든것] Annotation Efficient Learning (0) | 2024.12.20 |
[컴퓨터 비전의 모든 것]Image Classification (1) : 개념 (0) | 2024.12.20 |
[컴퓨터 비전의 모든 것] Computer Vision 이란? (2) | 2024.12.19 |
[Mooc] 부스트코스 Mooc 강의 수료증 (0) | 2024.11.03 |