Showing
4 changed files
with
94 additions
and
0 deletions
This file is too large to display.
This file is too large to display.
Code/editimage.py
0 → 100644
| 1 | +import numpy as np | ||
| 2 | +import os | ||
| 3 | + | ||
| 4 | +np.random.seed(3) | ||
| 5 | + | ||
| 6 | +from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img | ||
| 7 | +# 원본 위 | ||
| 8 | +optInputPath = '~/yoga/' | ||
| 9 | +# 저장될 위치 | ||
| 10 | +optOutputPath = '~/preview/' | ||
| 11 | + | ||
| 12 | +# 이미지 크기 조정 비율 | ||
| 13 | +optRescale = 1./255 | ||
| 14 | +# 이미지 회전 | ||
| 15 | +optRotationRange=10 | ||
| 16 | +# 이미지 수평 이동 | ||
| 17 | +optWidthShiftRange=0.2 | ||
| 18 | +# 이미지 수직 이동 | ||
| 19 | +optHeightShiftRange=0.2 | ||
| 20 | +# 이미지 밀림 강도 | ||
| 21 | +optShearRange=0.5 | ||
| 22 | +# 이미지 확대/ 축소 | ||
| 23 | +optZoomRange=[0.9,2.2] | ||
| 24 | +# 이미지 수평 뒤집기 | ||
| 25 | +optHorizontalFlip = True | ||
| 26 | +# 이미지 수직 뒤집기 | ||
| 27 | +optVerticalFlip = False | ||
| 28 | +optFillMode='nearest' | ||
| 29 | +# 이미지당 늘리는 갯수 | ||
| 30 | +optNbrOfIncreasePerPic = 3 | ||
| 31 | +# 배치 수 | ||
| 32 | +optNbrOfBatchPerPic = 2 | ||
| 33 | + | ||
| 34 | +train_datagen = ImageDataGenerator(rescale=optRescale, | ||
| 35 | + rotation_range=optRotationRange, | ||
| 36 | + width_shift_range=optWidthShiftRange, | ||
| 37 | + height_shift_range=optHeightShiftRange, | ||
| 38 | + shear_range=optShearRange, | ||
| 39 | + zoom_range=optZoomRange, | ||
| 40 | + horizontal_flip=optHorizontalFlip, | ||
| 41 | + vertical_flip=optVerticalFlip, | ||
| 42 | + fill_mode=optFillMode) | ||
| 43 | + | ||
| 44 | +def checkFoler(path): | ||
| 45 | + try: | ||
| 46 | + if not(os.path.isdir(path)): | ||
| 47 | + os.makedirs(os.path.join(path)) | ||
| 48 | + except OSError as e: | ||
| 49 | + if e.errno != errno.EEXIST: | ||
| 50 | + raise | ||
| 51 | + | ||
| 52 | +def increaseImage(path ,folder): | ||
| 53 | + for index in range(0,optNbrOfIncreasePerPic): | ||
| 54 | + img = load_img(path) | ||
| 55 | + x = img_to_array(img) | ||
| 56 | + x = x.reshape((1,) + x.shape) | ||
| 57 | + i = 0 | ||
| 58 | + checkFoler(optOutputPath+folder) | ||
| 59 | + print('index : ' + str(index)) | ||
| 60 | + for batch in train_datagen.flow(x, batch_size=1, save_to_dir=optOutputPath+folder, save_prefix='tri', save_format='jpg'): | ||
| 61 | + i += 1 | ||
| 62 | + print(folder + " " + str(i)) | ||
| 63 | + if i >= optNbrOfBatchPerPic: | ||
| 64 | + break | ||
| 65 | + | ||
| 66 | +def generator(dirName): | ||
| 67 | + checkFoler(optOutputPath) | ||
| 68 | + try: | ||
| 69 | + fileNames = os.listdir(dirName) | ||
| 70 | + for fileName in fileNames: | ||
| 71 | + fullFileName = os.path.join(dirName, fileName) | ||
| 72 | + if os.path.isdir(fullFileName): | ||
| 73 | + generator(fullFileName) | ||
| 74 | + else: | ||
| 75 | + ext = os.path.splitext(fullFileName)[-1] | ||
| 76 | + folderName = os.path.splitext(fullFileName)[0].split('/')[-2] | ||
| 77 | + if(ext == '.jpg'): | ||
| 78 | + increaseImage(fullFileName, folderName) | ||
| 79 | + | ||
| 80 | + except PermissionError: | ||
| 81 | + pass | ||
| 82 | + | ||
| 83 | +if __name__ == "__main__": | ||
| 84 | + generator(optInputPath) |
Code/tores.py
0 → 100644
| 1 | +import mxnet as mx | ||
| 2 | +import os | ||
| 3 | + | ||
| 4 | +MXNET_HOME="/home/eraser/mxnet" | ||
| 5 | + | ||
| 6 | +os.system('python3 %s/tools/im2rec.py /home/eraser/train /home/eraser/yoga_data/train --recursive --list --num-thread 8'%MXNET_HOME) | ||
| 7 | +os.system('python3 %s/tools/im2rec.py /home/eraser/validation /home/eraser/yoga_data/validation --recursive --list --num-thread 8'%MXNET_HOME) | ||
| 8 | + | ||
| 9 | +os.system('python3 %s/tools/im2rec.py /home/eraser/train /home/eraser/yoga_data/train --recursive --pass-through --pack-label --num-thread 8'%MXNET_HOME) | ||
| 10 | +os.system('python3 %s/tools/im2rec.py /home/eraser/validation /home/eraser/yoga_data/validation --recursive --pass-through --pack-label --num-thread 8'%MXNET_HOME) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment