본문 바로가기

Capstone/2018-2 Capstone

② 이미지 부풀리기

② 이미지 부풀리기 (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