본문 바로가기

컴퓨터비전63

[딥러닝] Albumentations의 데이터 증강 이해 Albumentations의 데이터 증강 albumentations는 이미지 데이터 증강 라이브러리입니다. 이미지를 좌, 우, 회전, 색변환, 노이즈 등등 넣어서 다양한 데이터를 모델이 학습시킬 수 있게 변환해주는 것입니다. 코드를 보면서 어떻게 사용하는지 확인하겠습니다. import numpy as np import pandas as pd import os import cv2 import matplotlib.pyplot as plt image = cv2.cvtColor(cv2.imread('test.jpg'), cv2.COLOR_BGR2RGB) plt.imshow(image) 여기 원본 강아지사진 한 장이 있습니다. albumentations은 함수마다 확률 값을 줘서 작동을 확률 값으로 하는 것입니다.. 2022. 3. 17.
[딥러닝] Kears의 전처리와 데이터 로딩의 이해 Keras의 전처리와 데이터 로딩 위 사진을 보면 왼쪽은 화질이 좋은 강아지 사진이 있고 오른쪽은 화질이 좀 떨어지는 고양이 사진이 있습니다. 이 두 사진은 np.array로 표현하면, 각각 (2000 x 1640 x 3), (320 x 240 x 3) 입니다. 왼쪽의 이미지는 너무 값이 크니까 오른쪽 고양이와 같은 사진이 50000장 있다고 가정해 봅시다. 이 메타데이터들을 한 번에 np.array로 변환시켜 CPU에 올리면 320 x 240 x 50000 = 3,840,000,000KB 대략 3.8TB입니다. RAM이 3.8TB나 되는 사람은 없겠지요.... 그래서 나온 방법이 메타데이터 즉. jpg 사진들을 Batch Size만큼 CPU가 np.array로 바꾸고 또 GPU가 받을 수 있게 tens.. 2022. 3. 16.
[딥러닝] 전이 학습(Transfer Learning) 전이 학습이란? 일반적으로 CNN 기반의 딥러닝 모델을 제대로 훈련시키려면 많은 수의 데이터가 필요합니다. 근데 그것은 쉽지 않은 일이지요. 방법도 어려울뿐더러 시간의 제약도 많이 있습니다. 이러한 현실적인 문제를 해결한 것이 전이학습입니다. 전이학습이란 이미 충분한 데이터와 여러 연구와 실험으로 만들어진 모델을 학습한 가중치를 가지고와 우리 모델에 맞게 재보정해서 사용하는 것입니다. 이 글에서는 Keras Applications으로 예시를 들건데 사용 가능한 Pretrained 모델은 대부분 ImageNet 데이터 셋으로 사전 훈련된 모델입니다. ImageNet은 1000개의 class들에 대한 이미지를 분류합니다. 최종 Classification layer가 1000개의 unit의 softmax형태로.. 2022. 3. 15.
[딥러닝] 데이터 증강(Data Augmentation) 데이터 증강(Data Augmentation)이해 CNN 모델의 성능을 높이고 오버피팅을 극복할 수 있는 가장 좋은 방법은 다양한 유형의 학습 이미지 데이터 양을 늘리는 것입니다. 하지만 이미지 데이터의 경우 학습 데이터 량을 늘리는 것은 쉽지가 않습니다. 데이터 증강(Data Augmentation)은 학습 이미지의 개수를 늘리는 것이 아니고 학습 시 마다 개별 원본 이미지를 변형해서 학습하는 것입니다. ImageDataGenerator(Keras) import cv2 import matplotlib.pyplot as plt from tensorflow.keras.preprocessing.image import ImageDataGenerator #cv2.imread는 이미지를 RGB가 아닌 BGR로 받.. 2022. 3. 14.