minminの備忘録

フルスタックになりたいエンジニアの備忘録 → https://zuminblog.com/ へ引越し中

kerasで簡単に画像データの拡張を行う

画像データを水増しするときに、kerasのImageDataGeneratorとやらを使うと以下のような感じで簡単に水増しできたので、今回はそれについて紹介していきます

画像の読み込み

まずは画像の読み込みを行います

今回はopencvを使って読み込みを行いました

load image with opencv



注意点としては、opencvはデフォルトのままだとBGR形式で読み込まれるので、RGB形式にする必要があります
以下、BGRとRGBの比較

compare loaded image

データ拡張

つづいて、kerasのImageDataGeneratorを使って拡張を行っていきます

ImageDataGeneratorのインスタンスを作成してflowという関数を実行するだけという、超簡単に画像データを拡張できます  

以下のコードでは、ImageDataGeneratorの引数を見ればわかると思いますが、回転や水平方向の反転などは行わずに水平方向・垂直方向の移動だけ行っています

augment data with keras



datagen.flownumpy.ndarray のfloat型で返してくるので、pyplotで表示する際にはint型に変換しています

学習データとして使用する場合は、 そのままで大丈夫です

もう少し遊んでみる

rotation_range を変えると画像の回転もできます

augment data rotation



brightness_range を list もしくは tuple で指定してあげると、画像の明るさも変更できます

augment data brightness

参考