0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【読解】clDice - a Novel Topology-Preserving Loss Function for Tubular Structure Segmentation

0
Last updated at Posted at 2026-06-29

以下の論文を読解してみました。
https://arxiv.org/abs/2003.07311

読むモチベとしては、

  • 色々な評価指標を調査中
  • ネットワークを形成し、検出の難易度が異なる物体が同一ラベルで存在しているデータセットを扱っており、簡単な部分だけに注目してしまう問題を解決したい

概要

血管、神経、道路といった管状でネットワーク状の構造物を正確にセグメンテーションしたい。
評価指標のcenterlineDice(clDice)と、損失関数soft-clDiceを提案する。
検証として血管、神経、道路を含む公開データセットから評価を行った。

  • 対象物が「局所的には管状構造であり、大局的にはネットワークを形成している」という大半のセグメンテーション問題において、最も重要な特徴は大局的なネットワークトポロジーが維持できているかである。(トポロジー: 接続性)
  • 脳血管系の解析を挙げると、セグメンテーションマスク内で血管の断片が1箇所でも欠落していると、病理学的に脳卒中と解釈されたり、血流の大局的なシミュレーションに劇的な変化をもたらしたりする可能性がある。その一方で、血管の半径が多少過剰または過少にセグメンテーションされてしまうことについては、臨床的な診断に影響を及ぼさないため、許容される傾向にある

image.png
上記は、左の画像の白い部分をセグメンテーションした結果である。
赤と紫でdiceの評価は同じだが、トポロジーの観点では赤が好まれる。


大局的に平均化された指標では、太・中・細半径の管状構造が等しく重み付けされていない。
動脈(半径30 µm)から毛細血管(半径5 µm)まで幅広い半径の血管が存在する実際の血管データセットにおいて、大局的に平均化された損失関数で学習を行うと、体積の大きい太い血管のセグメンテーションに対して強いバイアスが生じてしまう。

私の実験でも似たようなデータセットを扱っているのですが、データ不均衡の対策(focal loss等)だけでは、細い部分まで改善しきれませんでした。

こうした背景から、最終的に正確なネットワーク抽出を可能にする、トポロジーを考慮した画像セグメンテーションを行いたい。そこで、私たちは以下の研究問いを設定します。

  • Q1
    ネットワークトポロジーの保存を保証しつつ、管状およびそれに関連する線状・曲線状の構造のセグメンテーションにおいて、評価するための画素単位の指標を示すことはできないか
  • Q2
    既存の文献ではまだ存在しない、この改良された指標をニューラルネットワークの損失関数として利用することは可能か

評価指標: clDice(centerlineDice), 損失関数: soft-clDiceを提案する

評価指標: cldiceについて

$$T_{prec}(S_P, V_L) = \frac{|S_P \cap V_L|}{|S_P|}; \quad T_{sens}(S_L, V_P) = \frac{|S_L \cap V_P|}{|S_L|}$$

$$\text{clDice}(V_P, V_L) = 2 \times \frac{T_{prec}(S_P, V_L) \times T_{sens}(S_L, V_P)}{T_{prec}(S_P, V_L) + T_{sens}(S_L, V_P)}$$

正解マスク($V_L$)
セグメンテーションマスク($V_P$)
正解骨格($S_L$)
セグメンテーション骨格($S_P$)

  • $T_{prec}(S_P, V_L)$ : トポロジーの適合率
    セグメンテーション骨格と被る正解マスク。予測をもとに作成した骨格が、正解のマスクにどれほど適合しているかを見る。
    偽陽性(過剰検出)の影響を受けやすい。
    モデルが骨格を正解マスク以外で作成した場合(誤って陽と判断)、値が落ちる。

  • $T_{sens}(S_L, V_P)$ :トポロジーの感度
    正解骨格と重なるセグメンテーションマスク。予測セグメンテーションが、正解マスクから作成した骨格にちゃんと重なるか。
    偽陰性(見落とし)の影響を受けやすい。
    モデルが正解骨格をセグメンテーション出来なかった時(誤って陰性と判断)、値が落ちる。

式中で注目する対象をどれとするかで、目的が変わる

clDice: これらの調和平均をとることで、双方を最大化する指標を示した。

調和平均は、平均と異なり、低い方に引っ張れる値を示す。相加平均は5割出すためには、0, 1とすれば良いが、調和平均だとそれは成り立たない。(0)。指標として機能するように調和平均を取り入れてるのだと考察します。

「私たちが定義したルール上では、血管や背景のトポロジーの正しさは、『ちぎれずに繋がっているか(連結)』と『網目の数が合っているか』の2点が仮定された上でcldiceが証明されている。

自身のデータが、トポロジーを確保できていない場合は、以下の証明を確保できない可能性がありそうです。

評価指標

まず、以下を示します。
$L_A$:正解の骨格
$A$:正解のマスク
$L_B$:予測の骨格
$B$:予測のマスク
この時、

①
($L_A \subseteq B \subseteq A$)
これは、正解の骨格が予測マスクに収まっている事を示します。正解の骨格は$L_A$は正解マスクAに含まれます。
この条件が成り立つとき、正解のマスクと骨格に挟まれている予測マスクは、穴や欠損、マスクから外れた予測がされていない事を示します。

②
($L_B \subseteq A \subseteq B$)
予測の骨格が正解マスクに含まれていることを示しています。
予測マスクが正解マスクを完全に含むことを示しています。

①だけでは、正解骨格を最低限含む細いマスクが成り立ってしまいます。
②も含めることで、それを許さない関係になります。

上記二つが成り立つとき、cldiceは1となります。

抜け穴としては、正解マスク内に予測マスクが含まれており、予測骨格も同様であれば良いので、骨格を保ったまま太く予測する事でも、cldiceが1になります。
完全に重なったときから、太くなっても1となるという訳です。
ですので、重なり具合を評価する際はdiceが必要です。
(ですが、複雑にトポロジーが絡むとき、その付近では、この抜け穴は成り立ちにくいです。)

損失関数

では、損失関数としてはどのように使用するか。
反復的なMinプーリングおよびMaxプーリングを適用する「ソフトスケルトン化」を行う。
image.png

Min, Maxプーリング操作によって、骨格が形成される。
つまり、細い方から形成される。

私の直感的な理解は以下です。

# image
0   0   0   0   0
0.5 0.7 0.5 0.7 0.7
1   1   1   1   1  
0.7 0.5 0.7 0.7 0.5
0   0   0   0   0

↓ Min pooling
0   0   0   0   0
0   0   0   0   0
0.5 0.7 0.5 0.7 0.5
0   0   0   0   0
0   0   0   0   0

↓  Max pooling
0   0   0   0   0
0.7 0.7 0.7 0.7 0.7
0.7 0.7 0.7 0.7 0.7
0.7 0.7 0.7 0.7 0.7
0   0   0   0   0

↓ imageとの差分
0   0   0   0   0
-0.2 0 -0.2 -0.2 0
0.3 0.3 0.3 0.3 0.3
0 -0.2  0   0 -0.2
0   0   0   0   0

↓ Relu
0   0   0   0   0
0   0   0   0   0
0.3 0.3 0.3 0.3 0.3
0   0   0   0   0
0   0   0   0   0

cldiceと違うのは、予測した骨格が正解のマスクの中に含まれており、かつ、予測マスク内に正解骨格が含まれていれば、細かなズレがあってもclDiceは1になる。
ハイパーパラメータiter_は骨格抽出計算回数を表し、観察される最大の半径以上である必要がある。

自身のデータセットを確認し、何回この操作が必要かを考慮し、iter_を設定する必要があります。大きくしすぎる弊害は計算効率の低下です。

image.png

このプーリングを使用するロジックでは、評価指標のclDiceとは異なり、輪郭部分を気にしない。
そこに気を使いたい場合は、他のLossを含める必要がある。
輪郭部分を気にしない良い部分としては、アノテーションする場合、輪郭部分が人の手の震えで変わる可能性がある。ここに引っ張られない特性がある。

セグメンテーションの目的によって、ここに注目するかどうかはプロジェクトごとな気がします。

評価

骨格という概念を上記で示しました。
これが実際にセグメンテーションタスクにおいて有効であるか検証。

  • 2Dおよび3DのU-Net
  • 2Dおよび3Dの完全結合ネットワーク(FCN)

使用する損失関数は以下。
$$Lc = (1 − α)(1 − softDice) + α(1 − softclDice) \quad (3)$$

diceを含める理由は、cldiceにはトポロジーを監督する機能はあるが、セグメンテーションに注目するわけではないため。
セグメンテーションタスク上で有用性を示すために、diceを加えての損失関数とする。
ベースラインとしてsoft-Diceを用いてネットワークを訓練し、それらを、$\alpha$ の値を0.1から0.5まで変化させることによって精度の変化を観察する。

比較に使用した評価指標

  • Dice: 1 - $\frac{2TP}{2TP + FP + FN}$
  • Accuracy: $\frac{TP + TN}{TP + TN + FP + FN}$
    背景も含めて計算されていることに注意。
  • トポロジーベース、グラフベースでトポロジー度や構造の正確性を見ているそうです
    →扱ったことの無い指標でした。この二つの調査記事も書いてみたいです...

結果
image.png
image.png

上記のdataset以外にもroadsやcremiに関する表もありましたが、画像サイズが大きいので、ここでは一つだけ抜粋して掲載します。

いかなる割合であれsoft-clDiceを含めることが、すべての2Dおよび3Dデータセットにおいてトポロジー、体積、およびグラフの類似性の向上につながった。
また、データセットごとに最適なαの値が異なることから、データセットごとに調整可能なハイパーパラメータという事がわかった。

表を見るとハイパラを最適化させればdiceだけを監督した場合と異なり、各精度で向上が見られました。

image.png
提案する損失項を用いて訓練された私たちのネットワークは、soft-Dice損失で訓練されたときには偽陰性となっていた接続を復元している。

極めて興味深いことに、実際の3D血管データセットにおいて、soft-Dice損失は血管を過剰に領域分割し、偽陽性(誤検出)の接続を引き起こしている。私たちが提案する損失関数を使用した場合にはこのようなことは起きておらず、これはそのトポロジー保持という性質によるものであると考える。

計算負荷

反復回数(iter_)の数だけ、骨格抽出の計算をする必要があるので、$O(kn^2)$となる。
従来のトポロジー手法よりも高い計算効率をもつが、反復回数が実行速度に影響があることは考慮に入れておく。
RTX-8000というGPUを使用し、高解像度な $1024 \times 1024$ の画像をバッチサイズ4で処理した場合の数値を見ると、

  • soft-Diceのみ:平均 1.24秒 / バッチ
  • soft-clDice:平均 1.35秒 / バッチ
    となっている。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?