ゲームAI備忘録

ゲームAIに使えそうな知識を備忘録として書き留める

人助けと思って何卒インストールをば! 詰碁/ アルコネ/ 五目並べ

TensorFlow - 画像を加工してみる.

TensorFlowには画像を加工するための様々な関数が用意されています.
CIFAR-10のチュートリアルでも色々と適用しているので画像加工部分のみ切り出してみました.
tensorflow/models/image/cifar10/cifar10_input.py - tensorflow - Git at Google

加えた処理
  • 画像の切り取り(ランダムに適用)
  • 明るさの変更(ランダムに適用)
  • コントラストの変更(ランダムに適用)
  • 白色化
コード
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from sklearn.datasets import load_sample_images
import matplotlib.pyplot as plt
import tensorflow as tf

def main(args):
    original_image = load_sample_images().images[0] / 255.0
    img = tf.placeholder(tf.float32, shape=[427, 640, 3])
    # 画像の切り取り
    height, width = 400, 400
    crop_img = tf.image.random_crop(img, [height, width])
    # 明るさをランダムに変更
    brightness_img = tf.image.random_brightness(img, max_delta=63)
    # コントラストをランダムに変更
    contrast_img = tf.image.random_contrast(img, lower=0.2, upper=1.8)
    # 白色化
    whitening_img = tf.image.per_image_whitening(img)
    with tf.Session() as sess:
        imgs = [original_image] + sess.run([crop_img, brightness_img, contrast_img, whitening_img], feed_dict={img: original_image})
        for i, (image, title) in enumerate(zip(imgs, ["original", "crop", "brightness", "contrast", "whitening"])):
            plt.subplot(231 + i)
            plt.imshow(image)
            plt.title(title)
        plt.show()

if __name__  == "__main__":
    tf.app.run()

結果

f:id:namakemono_srm:20160210094311p:plain