kerasで簡単に画像データの拡張を行う
画像データを水増しするときに、kerasのImageDataGeneratorとやらを使うと以下のような感じで簡単に水増しできたので、今回はそれについて紹介していきます
画像の読み込み
まずは画像の読み込みを行います
今回はopencvを使って読み込みを行いました
注意点としては、opencvはデフォルトのままだとBGR形式で読み込まれるので、RGB形式にする必要があります
以下、BGRとRGBの比較
データ拡張
つづいて、kerasのImageDataGeneratorを使って拡張を行っていきます
ImageDataGeneratorのインスタンスを作成してflowという関数を実行するだけという、超簡単に画像データを拡張できます
以下のコードでは、ImageDataGeneratorの引数を見ればわかると思いますが、回転や水平方向の反転などは行わずに水平方向・垂直方向の移動だけ行っています
datagen.flow
は numpy.ndarray
のfloat型で返してくるので、pyplotで表示する際にはint型に変換しています
学習データとして使用する場合は、 そのままで大丈夫です
もう少し遊んでみる
rotation_range
を変えると画像の回転もできます
brightness_range
を list もしくは tuple で指定してあげると、画像の明るさも変更できます