c-ResNetの論文を読んでいて、そもそもU-Netって何?となったので、U-netやセグメンテーションに使われている演算のゆるーいイメージを残しておく。
U-Netとは
u-netは、画像を高速かつ正確にセグメンテーションするためのCNNアーキテクチャ。
図1.U-net architecture (example for 32x32 pixels in the lowest resolution). Each blue box corresponds to a multi-channel feature map. The number of channels is denoted on top of the box. The x-y-size is provided at the lower left edge of the box. White boxes represent copied feature maps. The arrows denote the different operations.
U-Net: Convolutional Networks for Biomedical Image Segmentationより
主な計算手法
U-Netでは大きく分けて四つの演算を用いています。
それぞれ
- Convolution
- Max Pooling
- Upconvolution
- Copy and Crop この四つの演算についてのゆるーい頭の中のイメージを忘れないように図で描いておく。
Convolution
max pooling
-
Upconvolution
Upconvolutionは- Transpose Convolution(転置畳み込み)
- Franctionally strided convolution
- Backward strided convolution
図6.3×3 Upconvolution, stride=2, pad=1の例
図7.2×2 Upconvolution, stride=2, no-paddingの例
Copy and Crop
最も基本的なConvolutionのイメージ
図2.フィルターが3×3、stride=2, no-paddingのConvolutionの例
図3.フィルターサイズが3×3、stride=2, no-paddingのConvolutionの例
基本的にConvolutionの図を用いた説明はこの上の二つのどれかだと思いますが、腑に落ちなかったので、以下のような図で腑に落とした。
図4.図3のConvolutionを別の表現であらわしたもの
図5.2×2のmax poolingの例
下図にもあるように、ここの部分で何が起きているのか理解しづらい。
ただ、わかっているのはDownsamplingで失われた位置情報をここで取り戻しているということ。
図8.U-NetモデルのCopy and Cropが使用されている箇所
図9.図8を自分流に描き替えたもの