\ はエスケープが必要な文字なので、'C:\programing\test.jpg'
または文字リテラル r'C:\programing\test.jpg'
とします。
画像データの拡張とは、明るさを変えたりしてデータを水増しする Data Augmentation のことでしょうか?
だとしたら、通常は手作業で画像編集して増やすのではなく、PIL、OpenCV または Keras の関数で機械的に増やすものですよ。
Keras の ImageDataGenerator を使用した Data Augmentation の例
自作してもいいですが、Keras の ImageDataGenerator を使うと簡単に水増しできます。
ImageDataGenerator の使い方全般及び水増しのパラメータの効果は Keras の ImageDataGenerator を使って学習画像を増やす を参考にしてください。
python
1import os
2import glob
3
4from PIL import Image
5import numpy as np
6import matplotlib.pyplot as plt
7from keras.preprocessing import image
8
9# 画像を読み込む。
10img_paths = 'images/*.jpg'
11x = []
12for img_path in glob.glob(img_paths):
13 img = Image.open(img_path) # 画像を読み込む。
14 img = img.resize((256, 256)) # ネットワークの入力サイズでリサイズする。
15 x.append(np.array(img))
16x = np.array(x)
17print(x.shape) #
18
19# 保存ディレクトリを作成する。
20save_path = 'output'
21os.makedirs(save_path, exist_ok=True)
22
23# データ生成器を作成する。
24params = {
25 'rotation_range': 20, # [-20, 20] 度の範囲でランダムに回転する。
26 'horizontal_flip': True, # ランダムに左右反転する。
27 'height_shift_range': 0.2, # ランダムに上下並行移動する。
28 'width_shift_range': 0.2, # ランダムに左右平行移動する。
29 'channel_shift_range': 5., # [-5.0, 5.0] の範囲でランダムに画素値に値を足す。
30}
31datagen = image.ImageDataGenerator(**params)
32
33# ミニバッチを生成するジェネレーターを作成する。
34gen = datagen.flow(x, batch_size=16, save_to_dir=save_path,
35 save_prefix='generated', save_format='png')
36
37# ジェネレーターで生成する。
38num_iterations = 9
39for i in range(num_iterations):
40 # ミニバッチを生成したタイミングでディレクトリに画像が保存される。
41 next(gen)
学習ライブラリに Keras を使う場合は、ディスクに保存しなくても ImageDataGenerator でリアルタイムに生成した画像をそのままネットワークに流すことができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/27 03:03
2018/09/27 03:32
2018/09/27 03:55
2018/09/27 04:52
2018/09/27 05:31
2018/09/27 05:37 編集
2018/09/28 01:56 編集
2018/09/27 06:24