TensorFlowで画像の水増し時のパラーメタの検討方法
TensorFlowで学習時に画像を水増しする、というおなじみの手法。
画像の水増し方法をTensorFlowのコードから学ぶ - Qiita
TensorFlowを使った画像の水増しレシピまとめ
↑このあたりを見るとどのパラメータをいじるとどういう風に画像が変わるか、というのがざっとわかる。
自分がデータセットに使おうとするpng画像があるとして、それを水増し用処理した画像を表示するコードを紹介。
(1)読み込んだ画像がアルファチャンネルを持っている場合に3chになるような処理をしている。というのもTensorFlowの水増し処理は3chでないとダメなのがあるため。

↑実行すると別ウインドウで画像が表示される。
おまけ
保存して確認する場合は↓こんな感じで。
TensorFlow 1.7.0-rc1
Python 3.5.2
macOS 10.14.6
画像の水増し方法をTensorFlowのコードから学ぶ - Qiita
TensorFlowを使った画像の水増しレシピまとめ
↑このあたりを見るとどのパラメータをいじるとどういう風に画像が変わるか、というのがざっとわかる。
自分がデータセットに使おうとするpng画像があるとして、それを水増し用処理した画像を表示するコードを紹介。
import tensorflow as tf
import numpy as np
from PIL import Image
def img_show(img) :
pil_img = Image.fromarray(np.uint8(img))
pil_img.show()
srcImg = Image.open(“lena.png")
img_show(srcImg)
if srcImg.mode == 'RGBA' :
# srcが4chの場合3chにする — (1)
rgbImg = Image.new('RGB', srcImg.size, (255, 255, 255))
rgbImg.paste(srcImg, mask=srcImg.split()[3])
elif srcImg.mode == 'RGB' :
rgbImg = srcImg
npArray = np.asarray(rgbImg)/255.0
with tf.Session() as sess :
tfImage = tf.convert_to_tensor(npArray, np.float32)
# いろいろな水増し処理
#tfImage = tf.image.adjust_brightness(tfImage, 0.4)
#tfImage = tf.image.adjust_contrast(tfImage, 1.4)
tfImage = tf.image.adjust_hue(tfImage, 0.25)
#tfImage = tf.image.adjust_saturation(tfImage, 2.0)
newNpArray = 255.0*tfImage.eval()
newNpArray = np.clip(newNpArray, 0, 255.0)
img_show(newNpArray)
(1)読み込んだ画像がアルファチャンネルを持っている場合に3chになるような処理をしている。というのもTensorFlowの水増し処理は3chでないとダメなのがあるため。

↑実行すると別ウインドウで画像が表示される。
おまけ
保存して確認する場合は↓こんな感じで。
saveImg = Image.fromarray(np.uint8(newNpArray))
saveImg.save(filePath)
TensorFlow 1.7.0-rc1
Python 3.5.2
macOS 10.14.6
スポンサーサイト