takuroooのブログ

勉強したこととか

U-Net: Convolutional Networks for Biomedical Image Segmentation

SemanticSegmention関連の論文メモ
図は論文からの引用

目次

概要

コンテキスト情報を抽出するcontracting pathとアップサンプリングを行うexpansive pathを持ち、contracting pathの特徴マップを対応するexpansive pathにスキップ結合することでコンテキスト情報を抽出しつつ、正確な位置情報を伝播するU構造のネットワークの提案。

論文リンク

https://arxiv.org/pdf/1505.04597.pdf

著者

  • University of Freiburg
    • Olaf Ronneberger
    • Philipp Fischer
    • Thomas Brox

提案手法

f:id:takuroooooo:20190428004411p:plain

U-Net

特徴抽出を行うcontracting pathと画像を拡大するexpansive pathをもつU-Netを提案。

  • contracting path
    • 3x3 conv(paddingなし) + ReLUを2回 + 2x2 max pooling(stride2) のセットを繰り返すことでダウンサンプリングをしつつ特徴抽出を行っていく。
  • expansive path
    • 2x2 convによってチャネル数を半分にし画像の縦横をそれぞれ2倍にアップサンプリングする。
    • 対応するcontracting pathからの特徴マップをcropしてアップサンプリングされた特徴マップと結合する。これによりダウンサンプリングによって失われた位置情報が伝播される。
    • 結合した特徴マップを3x3 conv + ReLUで処理する。
  • final layer
    • 最後に1x1 convでch数を任意の数に調整する。

結果

f:id:takuroooooo:20190428013407p:plain 医療画像タスクの結果

実装

Keras
github.com

PyTorch
github.com

動画

www.youtube.com

メモ

  • 医療画像タスクはデータが少ない。そのためデータ拡張が重要になってくる。
  • 医療画像タスクは同じクラスが密接しているため(細胞とか)オブジェクトを分離することが難しい。本論文では細胞の境界のロスを大きくさせることで境界部分を分離して検出できるように工夫した。
  • 画面の端で畳み込みをする場合は、ミラーリングすることで画素がない領域を埋めるようにした。(Overlap-tile strategy )
  • FCNとの違い
    • スキップ結合するときにFCNは加算だがU-Netはconcatした後に畳み込みをする。
    • FCNは、中間のアップサンプリングは(bilinear upsamplingで初期化された) 学習可能なdconvolution filterで最終層のアップサンプリングは、学習不可なbilinear interpolation。U-Netは同様にdconvolutionを使うが初期値については特に指定されていない。