② 이미지 부풀리기 (Image augumentation)
199개의 이미지를 849개로 증가시키겠습니다.
모델의 성능을 높이기 위해 데이터를 부풀리겠습니다.
keras에서 데이터를 부풀리기 위한 함수를 제공하기 때문에 이를 사용해보겠습니다.
저희 훈련셋(training set)입니다.
총 199장 입니다.
이 중 첫번째 사진을 가지고 데이터 부풀리기를 해보겠습니다.
▲ 원본 이미지 (320*270)
≫사용한 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import numpy as np import os from os import listdir from os.path import isfile, join from PIL import Image np.random.seed(3) from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img data_datagen = ImageDataGenerator(rescale=1./255) data_datagen = ImageDataGenerator(rescale=1./255, rotation_range=30, shear_range=5.5, # width_shift_range=0.1, # height_shift_range=0.1, zoom_range=0., horizontal_flip=True, vertical_flip=True, fill_mode='nearest') filename_in_dir = [] for root, dirs, files in os.walk('./spider'): for fname in files: full_fname = os.path.join(root, fname) filename_in_dir.append(full_fname) for file_image in filename_in_dir: print file_image img = load_img(file_image) x = img_to_array(img) x = x.reshape((1,) + x.shape) i = 0 for batch in data_datagen.flow(x,save_to_dir='./augumentation', save_prefix='spider', save_format='jpg'): i += 1 if i > 3: break | cs |
keras ImageDataGenerator 함수를 사용했습니다.
더 자세한 사항은 Keras Documentation을 확인하면 됩니다.
이미지가 있는 폴더에서 경로와 파일 이름을 filename_in_dir에 저장을 하고,
이를 이미지를 불러올 때 사용하였습니다.
그리고 변형된 이미지를 augumentation 폴더에 jpg형태로 저장했습니다.
파라미터가 어떤 역할을 하는지 보겠습니다.
그 중 저는 rotation_range, shear_range, zoom_range, horizontal_flip, vertical_filp을 사용했습니다.
이렇게 해 한 장당 4장씩 뽑았고 + 원본 이미지 총 5장으로 199*5=995장으로 데이터를 부풀렸습니다.
▲ 증가시킨 이미지
사진을 보면 상하좌우로 뒤집히고 각도도 변형되어 있음을 알 수 있습니다.
하지만 증가시킨 이미지중에서 거미의 형상이 짤려있게 뽑힌 이미지는 삭제해 총 849개의 이미지를 추출했습니다.
다음은 이 이미지들을 가지고 YOLO 알고리즘을 가지고 학습해보겠습니다.
'Capstone > 2018-2 Capstone' 카테고리의 다른 글
⑥ Yolov3 on raspberry pi 3 B+ (3) | 2018.12.23 |
---|---|
⑤ Yolo_mark (0) | 2018.12.22 |
④ YOLO Custom (0) | 2018.12.14 |
③ YOLO란? (0) | 2018.12.14 |
① 이미지 크롤링 (0) | 2018.12.01 |