【Keras】ImageDataGeneratorクラスを継承して前処理の種類を追加する方法

スポンサーリンク
python
スポンサーリンク
スポンサーリンク

はじめに

KerasのImageDataGeneratorを使うことで画像に対し任意の前処理を加えて、水増しをすることができます。チュートリアルはこちらです。

画像の前処理 – Keras Documentation-

Kerasユーザーにとって ImageDataGenerator を使うのが、最も簡単にAugmentationできる方法だと思います。

しかし、「ノイズ」や「ぼかし」といった画像処理をさらに追加したいと思うこともあると思います。

そこで、今回は、 ImageDataGenerator クラスを継承して、 Augmentationの種類を追加する方法を解説します。

ノイズを追加してみる

ここでは、ImageDataGeneratorを継承して、CustomImageDataGeneratorというクラスを新たに作成しています。

さらに、random_transformをオーバーライドして、ガウシアンノイズを付加する処理を追加しています。

ImageDataGeneratorの継承とガウシアンノイズの追加に関して参考にしたサイトはこちらです。

addGaussianNoiseのところを任意の画像処理を行う処理に変えることで、好きなAugmentationを加えることができるので試してみてください。

画像の表示

まず、元画像を表示してみます。

次に、Augmentationを加えます。ここで、追加している処理は以下の通りです。

  • horizontal_flip(引数に指定)
  • rescale(引数に指定)
  • ガウシアンノイズ(新しくメソッドを追加)

ImageDataGeneratorにもとからある処理に加え、新しく追加したノイズ付加の処理も実行できました。

タイトルとURLをコピーしました