2024-01-04 機械学習勉強会
U-Net: Convolutional Networks for Biomedical Image Segmentation
MICCAI2015
- MICCAI(Medical Image Computing and Computer Assisted Intervention)
- http://www.miccai.org/
- 医療画像コンピューティングとコンピューター支援介入の分野のトップカンファレンス
- 医学やCSはもちろん、ロボット工学や物理学などの分野も。
サマリー
- 医療画像の(セマンティック)セグメンテーションタスク(CTスキャンの画像から臓器の位置を特定するなど)などにおいて高い性能を示す、畳み込みニューラルネットワークを利用したエンコーダーデコーダー形式のモデルU-Netを発表
- セグメンテーションタスク:画像内の各ピクセルがどのクラスに属するかを予測するタスク
モデルアーキテクチャ
概要
- U-NetはFCNの発展版という位置付けの、エンコーダーデコーダー形式のモデル
- FCN(fully convolution network): 一般的なCNNの全結合層を畳み込み層に置き換えたもの。
- FCNでは「画像の物体が何か」を当てていたが、「物体がどこにあるか」の情報が欠落していた。
- 畳み込みを行いプーリングをかけて画像サイズが小さくする際に、位置情報を正確には保持しないから。
- 画像サイズを戻す作業を単純に行なっても、失われた位置に関する情報は戻らない。
- U-Netではskip-connectionの仕組みで位置情報を取り戻す。
- 畳み込み処理を行なった際の特徴マップを保持しておき、画像サイズを戻す逆畳み込み処理の際に、(基本的に)同じ位置に情報を足し合わせる。
- アーキテクチャが「U字」なのでU-Net
skip-connection
- オリジナルの論文ではプーリングの際にパディングを設けていないため、画像サイズが落ちすぎている。
- そのため画像をcropして端の情報を捨てて帳尻を合わせている。
Loss Weight
- ピクセルごとのLossの重みを調整する。
- 以下の図(d)のように、物体の境界のピクセルほど重みを大きくする。
- d_nはn番目に近い境界との距離。
Data Augmentation
- データセットが小さいタスクが多く、重要であるという主張。特に医療系のデータセット(細胞とか)に相性が良いという。
- elastic deformations
- 3x3のグリッド上でランダムな変位ベクトルを与え、バイキュービック補間を用いてその間のピクセルの変位を計算する
発展モデル
- U-Net++(Nested U-Net)
- エンコーダーとデコーダーのつながりが密に
- R2U-Net
- Residual構造と再帰構造を追加
- 3D U-Net
- U-Netを3次元に
- MRI画像などの3次元画像に対応するモチベーション
- 3次元畳み込みを利用するくらい?
- Diffusion Model
- reverse process(ノイズから元画像を推定するプロセス)におけるパラメタ推定に利用
- https://data-analytics.fun/2022/08/27/diffusion-model-pytorch-2-unet/
- 同じ
- ダウンサンプリングしてからサップサンプリングするという構造
- ダウンサンプリング時の隠れ層の値をアップサンプリング時に利用する
- 違い
- 時点情報の埋め込み表現を計算し、各ブロックに追加する。(Pos Emb)
- ResNetも利用
- down → up 部分だけでなく、down, upそれぞれの中でも残差結合
- attentionも利用
- SegNetとの違い?
- SegNetもEncoderのみであったFCNにDecoderを追加することでセマンティックセグメンテーションを解くようにした。
- U-Netではアップサンプリングに際して(学習可能な)逆畳み込みを行い、プーリングと逆の「解像度を2倍にする」操作を行う。SegNetではunpooling(poolingの逆操作)を行う。
- SegNetではスキップ接続後に特徴マップどうしを加算して合成するが、U-Netではスキップ接続して加算せず、両者を結合する。
- SegNetの「前半ブロックで最大プーリングした座標インデックスを後半ブロックのUnpoolingでサイズ拡大時に使用する仕組み」はU-Netには無い。U-Netでは代わりに、単純に同じ空間スケール同士をskip-connectionでつなぐ(従ってU-Netのほうが実装的にも構造理解的にもシンプルに済む)。