1. ホーム
  2. image

[解決済み] 平均像減算の仕組みは?

2022-03-10 10:05:27

質問

前置きが長くなりましたが、私はML/CVの分野では初心者で、現在Caffeを使ってカスタムConvネットを学習している最中です。

学習用画像の基本的なデータ正規化を実現するために、平均画像減算に興味があります。しかし、平均値の減算がどのように機能するのか、また、どのような利点があるのか混乱しています。

トレーニングセットから平均画像を計算し、それをトレーニングセット、検証セット、テストセットから差し引くことで、背景や明るさの違いに対するネットワークの感度を低くすることができることは知っています。

これは、各画像の全画素の平均を計算し、それを平均化するということでしょうか。それとも、各ピクセル座標の値をセット内の全画像で平均化するのでしょうか(例:全画像の位置(1,1)のピクセルの平均値)?この場合、すべての画像が同じサイズであることが必要かもしれません...

また、カラー画像(3チャンネル)の場合、各チャンネルの値は個別に平均化されているのでしょうか?

分かりやすく教えてください。

解決方法は?

ディープラーニングでは、平均画像の引き算の仕方について、実は様々なやり方があります。

平均画像の引き算

最初の方法は、@lejlot が説明したように、平均画像を差し引くことです。しかし、データセット画像のサイズが異なる場合、問題があります。この方法を使うには、すべてのデータセット画像が同じサイズであることを確認する必要があります(例えば、元画像をリサイズして、元画像から同じサイズのパッチを切り出すなど)。この方法は、ResNetの原著論文で使われています。 参考文献はこちら .

チャンネル毎の平均を引く

2つ目の方法は、元画像からチャンネル毎の平均値を引く方法で、よりポピュラーな方法です。この方法では、元画像をリサイズしたり、トリミングしたりする必要はありません。トレーニングセットからチャンネルごとの平均を計算すればよいのです。これはディープラーニング、例えばCaffeで広く使われています。 こちら こちら . Keras こちら . PyTorch: こちら . (PyTorchはチャンネル毎の値も標準偏差で割っています).