Ahmed et al. 2025 / Modified U-Net

LumbarSeg: 腰椎MRIを4クラスに自動分割する研究

MRI画像から背景・椎体・脊柱管・椎間板をピクセル単位で分類する。論文の核心は、前処理、U-Net改良、Combined Lossを組み合わせて高精度なセグメンテーションを実現した点にある。

T2 SPACE segmentation workflow
MRI入力
Modified U-Net softmax 4 classes
予測マスク
椎体 Vertebrae 脊柱管 Spinal Canal 椎間板 IVDs

論文PDFとリンク

メイン論文PDFをページ内で確認できるようにし、ScienceDirectの論文ページとSPIDERデータセット論文もすぐ開けるようにした。

重要情報

発表で最初に押さえるべき数字と主張。論文の価値は高解像度データで高精度なだけでなく、前処理で学習しやすい問題に変換した点にもある。

Dataset 218

SPIDERの患者数。4病院から収集された腰椎MRI。

Series 447

T1、T2、T2 SPACEを含むMRIシリーズ数。

Classes 4

背景、椎体、脊柱管、椎間板に統合。

Best Dice 0.97

T2 SPACEで最も高い精度を達成。

データと前処理

元データは3D MHA形式。論文では2Dスライスに変換し、ラベルを4クラスへ統合してから学習に使う。

1

3D MHAから2Dスライス抽出

GPUメモリを抑え、2D U-Netで扱いやすい512×640画像にする。

2

16クラス相当のラベルを4クラスへ統合

個別の椎体番号や椎間板番号ではなく、構造の種類を予測する問題に変換する。

3

不均衡なスライスを除外

背景ばかり、または一部構造が欠ける画像を減らし、学習を安定させる。

4

T1 / T2 / T2 SPACEごとに比較

T2 SPACEは高解像度で境界が見えやすく、最も良い結果が出ている。

SPIDERラベルの統合

0 背景 Background
1-99 椎体 Vertebrae
100 脊柱管 Spinal Canal
200+ 椎間板 Intervertebral Discs

ポイントは、解剖学的な個体番号を当てるのではなく、臨床的に見たい構造カテゴリを正確に塗り分けること。

モデルとアルゴリズム

ベースはU-Net。Encoderで特徴を圧縮し、Decoderで元の画像サイズへ戻しながらピクセルごとのクラスを予測する。

Encoder

Conv、BatchNorm、Leaky ReLU、MaxPoolで局所特徴から抽象特徴へ変換する。

Bottleneck

512チャネル層で複雑な形状や境界情報を保持する。

Skip Connection

細かい位置情報をDecoderへ渡し、境界のぼやけを抑える。

Decoder

Conv2DTransposeで解像度を戻し、構造ごとのマスクを復元する。

Softmax

各ピクセルを4クラスの確率として出力する。

Combined Loss = 0.6 × Focal Loss + 0.4 × Dice Loss

Leaky ReLU

負の入力でも小さな勾配を残し、dying ReLU問題を避ける。

Glorot初期化

重みの初期値を安定させ、深いネットワークの学習を始めやすくする。

Focal + Dice

難しいピクセルと領域の重なりを同時に重視する。

ベースライン実験ビューア

FastGS のプロジェクトページを参考に、処理段階をタブで切り替えながら、実装した CLI の流れを確認できるようにした。

Preprocess

MHA volume to 2D baseline slices

SPIDER の 3D MHA を sagittal 2D slice に展開し、18相当のラベルを4クラスへ統合する。

  • sagittal axis inference
  • 512 x 640 resize
  • 4-class label map
  • 55% foreground filter
python preprocess.py --sequences T2_SPACE
Train

Modified U-Net training run

Leaky ReLU、Glorot 初期化、512ch bottleneck を持つ U-Net を Combined Loss で学習する。

  • batch size 8
  • 100 epochs
  • Adam lr=1e-4
  • checkpoint by val Mean IoU
python train.py --batch_size 8 --epochs 100
Evaluate

Class-wise segmentation metrics

Validation slice で Dice、IoU、Precision、Recall、F1 を構造別に出力する。

  • Background
  • Vertebrae
  • Spinal Canal
  • IVDs
python evaluate.py --model_path checkpoints/best_model.keras

Paper target vs current baseline

IVDs 0.9688 pending
Vertebrae 0.9712 pending
Spinal Canal 0.9671 pending

精度の説明

主指標はDice。1に近いほど予測マスクと正解マスクの重なりが大きい。T2 SPACEでは各構造で約0.97を達成している。

構造 Dice IoU 意味
椎間板 IVDs 0.9688 0.9476 薄く小さい構造でも高精度に抽出。
椎体 Vertebrae 0.9712 0.9461 大きな骨構造の領域が安定して一致。
脊柱管 Spinal Canal 0.9671 0.9501 細長い管状構造も高い重なりを維持。

Dice

予測と正解の重なり。セグメンテーションで最も説明しやすい主指標。

IoU

共通部分を和集合で割った値。Diceより厳しめに出る。

ASD / NSD

境界の距離を見る指標。形状のズレを評価する時に重要。

発表での注意: Dice 0.97は非常に高いが、論文の結果は主にValidationでの報告。非公開Testで同等に出るか、前処理差がどれだけ効いたかは慎重に話す。

難しい単語

検索欄に入力すると用語だけ絞り込める。発表前に自分の言葉で説明できるか確認する場所。

セグメンテーション

画像の各ピクセルにラベルを付ける処理。今回なら椎体、脊柱管、椎間板、背景に分類する。

U-Net

医用画像でよく使われるEncoder-Decoder型ネットワーク。Skip Connectionで細部を復元しやすい。

T2 SPACE

T2強調の3D高解像度MRI。境界が明瞭なため、本論文では最高精度になった。

Dice係数

予測マスクと正解マスクの重なりを示す。1に近いほど良い。

IoU

重なった部分を、予測と正解を合わせた領域で割る指標。Diceより数値は低くなりやすい。

Focal Loss

簡単なピクセルより、間違いやすいピクセルに強く学習を向ける損失関数。

Dice Loss

領域の重なりそのものを最大化する方向に学習させる損失関数。

Leaky ReLU

ReLUの改良版。負の値でも少しだけ勾配を流し、学習しないニューロンを減らす。

Glorot / Xavier初期化

層の入力数と出力数に合わせて初期重みを決め、勾配の不安定化を抑える方法。

クラス不均衡

背景ピクセルが多すぎるなど、クラスの量に偏りがある状態。医用画像ではよく問題になる。

卒研メモ

この論文を自分の研究として発展させる時の流れ。まず再現、次に改良、最後に失敗ケースの分析まで行うと卒研として強くなる。

論文再現

SPIDERデータ、4クラス変換、Modified U-Net、Combined Lossを実装し、Dice 0.95以上を目標にする。

改良実験

Attention U-Net、U-Net++、Boundary Loss、Tversky Loss、データ拡張を比較する。

可視化と考察

MRI画像に予測マスクを重ね、どの構造・どの撮像条件で失敗しやすいかを説明する。

発表用まとめ

臨床的意義、技術的工夫、再現結果、論文との差分、自分の改良点を整理する。