Kerasを使ってμ's(2年生)の分類(1)
概要
スマートフォンアプリ「スクールアイドルフェスティバル(以下「スクフェス」)」のカードから学習データの作成を行いニューラルネットワークでの学習を行う.
今回はその中で学習データの作成を行った.
学習データ
今回作成したデータはスクショが面倒だったため2年生の3人のみを対象とした.
- スクショにより得られた枚数
- 高坂穂乃果:45枚
- 南ことり:32枚
- 園田海未:55枚
ニューラルネットワークでの学習を行うにあたり,これでは学習データが少なすぎると考えられるためDataAugmentationを行うことにした.
DataAugmentation
DataAugmentationとは画像の回転や拡大・縮小,左右反転を行うことによりデータの拡張を行うものである.
KerasではImageDataGeneratorクラスを使うことによりDataAugmentationを行うことができる.
実装
import numpy as np
import glob
from keras.preprocessing import image
from keras.preprocessing.image import img_to_array, load_img, array_to_img, ImageDataGenerator
#ディレクトリ内の画像を読み込み
files = glob.glob("読み込むディレクトリ" + "/*.PNG")
for i,file in enumerate(files):
#画像をPIL形式で読み込み
img = load_img(file,target_size=(2436,1125))
#PIL形式をnumpyのndarray形式に変換
x = img_to_array(img)
#ImageDataGeneratorクラスがndarray形式の4次元配列を要求するため
x = x.reshape((1,) + x.shape)
#クラス生成
datagen = ImageDataGenerator(
rotation_range=25,#画像の回転
fill_mode='constant',#境界周りの埋め方の指定
width_shift_range=0.2,#水平シフト
height_shift_range=0.2,#垂直シフト
horizontal_flip=True,#水平方向にランダムに反転
vertical_flip=True)#垂直方向にランダムに反転
#画像を生成して保存
aug_img = datagen.flow(x, batch_size = 1, save_to_dir = "生成した画像を保存するディレクトリ", save_prefix = "umi", save_format = "jpg")
#作成する画像の数だけループ
for i in range(10):
batch = aug_img.next()
生成結果
上記のソースの処理の結果以下に示す「生成画像の例」のような画像が生成できた
- 生成後の画像の枚数
- 高坂穂乃果:483枚
- 南ことり:349枚
- 園田海未:598枚
まとめ
今回はスクフェスのカードからスクショにより学習データを作成しDataAugmentationを行った.
次回は(気力があれば)今回作成したデータを使いニューラルネットワークでの学習を行いたい.
参考
Author And Source
この問題について(Kerasを使ってμ's(2年生)の分類(1)), 我々は、より多くの情報をここで見つけました https://qiita.com/mtk_0315/items/8cb3a3eabfd6e56483ad著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .