ディープラーニングで画像認識 実装(2)、画像の前処理
index:
概要
前回は、keras で画像認識の学習、検証(画像認識の判定結果出力)等、
一連の流れを記載しましたが。
ディープラーニングで画像認識で、認識精度を向上させる為に、
学習画像数を増やしたり、前処理での作業を追加する場合がありそうですので、
ImageDataGeneratorを使用して、前処理(画像の水増し)を実施する内容です
・水増し処理なしで、十分な画像を準備できて、
認識精度も予想値以上に、向上している場合は。
不要な処理になりそうですので、精度向上面等で必用な場合は参考頂ければ
と思います。
環境
keras : 2.1.3
tensorflow : 1.4
python : 3.5.2
コード
前回のpushに含まれていますが。
before_proc.py
https://github.com/kuc-arc-f/img_data_test/blob/master/before_proc.py
・ImageDataGenerator の定義、
元の画像の指定(水増しする元画像)
# datagen = ImageDataGenerator( rotation_range=40, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest') img = load_img('neko_13.jpg')
.flow を使用して、ループ処理
指定回数で、処理を抜けます
save_to_dir: 保存先のフォルダ
save_prefix: ヘッダ文字
# img_num = 20 i = 0 #for batch in datagen.flow(x, batch_size=1, # save_to_dir='preview', save_prefix='tori', save_format='jpg'): for batch in datagen.flow(x, batch_size=1, save_to_dir='data/train/cat', save_prefix='neko_13', save_format='jpg'): i += 1 if i > img_num: break
実行結果
水増し画像が追加されました。
前回の、画像の学習用データも。
同様の手法で作成した形となります
まとめ
上記の画像処理も、比較的カンタンに実装できて
kerase ImageDataGeneratorを使うと、前処理含めて
画像の学習処理ができそうです。