入力画像データと教師画像データに対して、同時に共通の変形処理をする方法について。

88 views
Skip to first unread message

すぐる

unread,
Jun 13, 2024, 9:51:33 PM6/13/24
to Neural Network Console Users (JP)
入力画像として640x480のRGBデータ、教師画像として640x480の単一輝度データ、を使用しての学習を考えております。そして画像に対して、拡大/縮小/回転/反転/切り出し(例えば300x300サイズの切り出し)のような変形をして学習したいと考えております。

入力画像に対しては「ImageAugmentationX」というレイヤーを通すことで、上記処理ができそうだと考えています。このとき、入力画像に対するこのレイヤーでの変形処理は、対応する教師データに対しても自動的に共通処理として実行されるのでしょうか?

また、「ImageAugmentationX」の「Shape」で設定した出力画像サイズは、入力画像の解像度はそのままで、画像中のランダムな領域として切り出し出力されるのでしょうか?それとも、入力画像を設定サイズに圧縮(平均化など)して出力するのでしょうか?

Tomonobu Tsujikawa

unread,
Jun 14, 2024, 2:04:15 AM6/14/24
to Neural Network Console Users (JP)

Image Augmentationの解説はこちらの動画が分かりやすいかと思います。

この動画の中でSquaredErrorだけを接続してImageAugmentationの出力を見てみるという例が出ていますが、
最新のNNC v3.10ではうまく動きません。
が、次のようにすることで確認することができます。

1.動画と同様にInput / ImageAugmentation / SquaredError (datasetはxにする) のグラフを構築する
2.1のグラフの左上に"Main"があるので、その隣にある"+"をクリックしてMainRuntimeネットワークを作る
3.MainのInputとImageAugmentationをMainRuntimeにコピペする(SuqaredErrorはコピーしない)
4.コンフィグの左ペインにあるExecutorのNetworkがMainRuntimeになっていることを確認する
5.学習を実行、評価を実行する

ImageAugmentationの設定値を変更する時はMainとMainRuntime両方のネットワークを変更してください。
また何かうまく動かなくなった時にはProject作成からやり直してみてください。

2024年6月14日金曜日 10:51:33 UTC+9 すぐる:

すぐる

unread,
Jun 14, 2024, 11:14:24 PM6/14/24
to Neural Network Console Users (JP)
ご回答いただきありがとうございます。
実行してみました結果、下記のように考えられました。
認識は合っておりますでしょうか?

● 「ImageAugmentationX」の「Shape」で設定した出力画像サイズは、画像内でランダムな領域を切り出している。
● 「ImageAugmentationX」は入力データ「x」に対して処理されるが、教師データ「y」に対して処理されていないので、
 入力データと教師データが共に画像データの場合に、「ImageAugmentationX」を使うことはできない。

img.png
2024年6月14日金曜日 15:04:15 UTC+9 tomonobu....@gmail.com:
Reply all
Reply to author
Forward
0 new messages