④ 이미지 수집 & 데이터 불리기
이미지 수집 & 데이터 불리기
수집해야하는 이미지는 옥수수 이미지로 Gray leaf spot, Northern leaf blight, Common rust라는 질병의 데이터 셋입니다.
1) Kaggle Datasets
Kaggle Datasets에서 이미지 수집(https://www.kaggle.com/emmarex/plantdisease)
해당 Github로 바로가기(https://github.com/spMohanty/PlantVillage-Dataset)
옥수수 이미지 2690장 사용했습니다.
데이터셋의 이미지는 아래와 같습니다.
▲ Gray leaf spot ▲ Northern leaf blight ▲ Common rust
2) Google 검색
Google 검색으로 이미지 수집
옥수수 이미지 159장 수집 augumentation을 통해 636장의 이미지를 만들었습니다.
수집한 이미지는 아래와 같습니다.
< Gray leaf spot > < Northern leaf blight > < Common rust >
▲ 원본 ▲ 원본 ▲ 원본
▲ 증가한 데이터 ▲ 증가한 데이터 ▲ 증가한 데이터
이미지 증가할 때 사용한 파라미터는 이미지 회전, 이미지 밀림, 수평뒤집기, 수직 뒤집기입니다.
제공하는 파라미터는 아래의 표와 같습니다.
이미지 증가 코드
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 | import numpy as np import os from os import listdir from os.path import isfile, join from PIL import Image 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=15, shear_range=0.5, # width_shift_range=0.1, # height_shift_range=0.1, horizontal_flip=True, vertical_flip=True, fill_mode='nearest') filename_in_dir = [] for root, dirs, files in os.walk('/Users/ijeongmin/Capstone_2019/data_latest/s'): 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='/Users/ijeongmin/Capstone_2019/data_latest/s_au', save_prefix='corn_au', save_format='jpg'): i += 1 if i > 6: break | cs |
※ 이미지는 총 3326장을 사용했습니다.
Training/Validation/Test = 80/10/10로 나누어 사용했습니다.
Training(2660장) |
Validation(333장) |
Test(333장) |
추가적으로 건강한 옥수수를 이상 옥수수로 분류하는 경우가 없는지 확인하기 위해 건강한 옥수수 이미지 55장을 수집했습니다.