インポートデータセットに関する問題は私を狂わせるでしょう。Keras-SegNetはImageDataGeneratorとfitまたはfit_generatorを使用します
これは私のsegnetコードの一部です。
画像&のマスクデータのインポートに関する質問に焦点を当てます。
print("CNN Model created.")
###training data
data_gen_args = dict()
image_datagen = ImageDataGenerator(**data_gen_args)
mask_datagen = ImageDataGenerator(**data_gen_args)
seed1 = 1
image_datagen.fit(images, augment=True, seed=seed1)
mask_datagen.fit(masks, augment=True, seed=seed1)
train_image_generator = image_datagen.flow_from_directory(TRAIN_im,target_size=(500, 500),batch_size=BATCH_SIZE, class_mode = None)
train_mask_generator = mask_datagen.flow_from_directory(TRAIN_mask,target_size=(500, 500),batch_size=BATCH_SIZE, class_mode = None)
train_generator = zip(train_image_generator,train_mask_generator)
###validation data
valid_gen_args = dict()
val_image_datagen = ImageDataGenerator(**valid_gen_args)
val_mask_datagen = ImageDataGenerator(**valid_gen_args)
seed2 = 5
val_image_datagen.fit(val_images, augment=True, seed=seed2)
val_mask_datagen.fit(val_masks, augment=True, seed=seed2)
val_image_generator = val_image_datagen.flow_from_directory(VAL_im,target_size=(500, 500),batch_size=BATCH_SIZE, class_mode = None)
val_mask_generator = val_mask_datagen.flow_from_directory(VAL_mask,target_size=(500, 500),batch_size=BATCH_SIZE, class_mode = None)
val_generator = zip(val_image_generator,val_mask_generator)
###
model.fit_generator(
train_generator,steps_per_epoch=nb_train_samples//BATCH_SIZE,epochs=EPOCHS,validation_data=val_generator,validation_steps=nb_validation_samples//BATCH_SIZE)
私の質問は:
私は500 * 500に入力サイズを変更するので、私はプールとアップサンプル層の大きさを調整します。これは達成可能ですか? さらに、古典的なネット(AlexNet、VGG、Segnet ...のような)は、プーリングとアップサンプルレイヤのサイズとフィルタ番号を調整することで任意の入力イメージサイズを受け入れることができますか?この部分はKeras公式のチュートリアルからである(ANS
image_datagen.fit(images, augment=True, seed=seed1) mask_datagen.fit(masks, augment=True, seed=seed1)
::。今、私は知っている彼らは両方私は、変数「画像」と「マスク」のデータ型が何であるかを知りたいのです
numpy配列です)。
上記の質問によると、どうやってそれらを派生させることができるの?
以下のmnist.load_data()のような関数を書くべきですか?
私はいくつかの例が必要です。私はそれが自分で のように「mnist.load_dataを()」関数を定義する必要はありません意味しています、と私は得るためにそれを使用することができます
flow_from_directory
機能を使用
(x_train_image, y_train_label), (x_test_image, y_test_label) = mnist.load_data()
私のディレクトリ構造からデータを直接(バッチ、シャッフル)しますか?
これは私のディレクトリ構造です:
Dataset -training----------images----"many images"
| |
| |-----mask-----"ground truth images(mask)"
|
|
validation----------val_images----"many images"
| |
| |------val_mask------"ground truth images(mask)"
|
|
testing---------------test images (no ground truth)
どうもありがとう!
ImageDataGeneratorをセグメンテーションの問題で実際に使用することはできますか?私の知る限りでは、ディレクトリから画像をランダムに読み込みますが、もちろん画像とマスクのペアが必要です。 – pietz
@pietz Kerasオフィシャルチュートリアル:https://keras.io/preprocessing/image/ 「イメージとマスクを一緒に変換する例」というキーワードを検索できます。ページの 私はそれができると思います。 私はgithubでいくつかのkeras segnetの例を見ました。 –
ImageDataGeneratorの経験はあまりありませんが、ドキュメントを見ると 'fit'メソッドは画像正規化のサンプル統計を計算するために必要です。これは 'featurewise_center'、' featurewise_std_normalization'または 'zca_whitening'を使用している場合にのみ必要です。あなたですか?その場合、画像とマスクは、統計を計算するためのサンプルデータです。 – filippo