728x90
반응형
1. 사용할 패키지 불러오기.
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds
from tensorflow.keras import layers
from tensorflow.keras.datasets import mnist
import를 활용하여 사용할 패키지를 불어왔습니다.
2. 데이터 불러오기.
이번 실습에서 사용할 데이터는 꽃 사진입니다.
(train_ds, val_ds, test_ds), metadata = tfds.load(
'tf_flowers',
split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'],
with_info=True,
as_supervised=True,
)
위에서 처럼 데이터를 불러올 때, split 인자를 활용해서 Train, Validation, Test 데이터 셋으로 분할 할 수 있습니다.
그리고 metadata를 같이 불러옴으로써, 데이터셋에대한 information을 불러올 수 있습니다.
get_label_name = metadata.features['label'].int2str
image, label = next(iter(train_ds))
_ = plt.imshow(image)
_ = plt.title(get_label_name(label))
우리는 위의 튤립 사진을 통해 Image augmentation을 수행하겠습니다.
def visualize(original, augmented):
fig = plt.figure()
plt.subplot(1,2,1)
plt.title('Original image')
plt.imshow(original)
plt.subplot(1,2,2)
plt.title('Augmented image')
plt.imshow(augmented)
위 함수는 Original 이미지와 Augmentation이 수행된 이미지의 차이를 시각적으로 비교해주는 함수입니다.
3. 이미지 증강
(1) 이미지 뒤집기
flipped = tf.image.flip_left_right(image)
visualize(image, flipped)
(2) 이미지를 회색조로 만들기
grayscaled = tf.image.rgb_to_grayscale(image)
visualize(image, tf.squeeze(grayscaled))
_ = plt.colorbar()
(3) 이미지 채도 계수 포화시키기
saturated = tf.image.adjust_saturation(image, 3)
visualize(image, saturated)
(4) 이미지 밝기 변화시키기
bright = tf.image.adjust_brightness(image, 0.4)
visualize(image, bright)
(5) 이미지 중앙 자르기 (Cropping)
cropped = tf.image.central_crop(image, central_fraction=0.5)
visualize(image,cropped)
(6) 이미지 회전시키기
rotated = tf.image.rot90(image)
visualize(image, rotated)
반응형
'데이터 다루기 > Vision (Tensorflow)' 카테고리의 다른 글
[Vision] Image Segmentation (이미지 분할) (0) | 2021.04.21 |
---|---|
[Vision] Transfer Learning + Fine Tuning (0) | 2021.04.20 |
[Vision] CNN을 통한 이미지 분류 (2) | 2021.03.19 |
[Vision] 이미지 분류 (0) | 2021.03.13 |
[Vision] 이미지 불러오기 (0) | 2021.03.13 |