knowwell-livewellの日記

knowwell-livewellの日記

好きなこととかもろもろ書きます

セマンティックセグメンテーションで利用されるloss関数(損失関数)について⑤

本記事は連載5回目になります。

1回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について① - knowwell-livewellの日記

2回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について② - knowwell-livewellの日記

3回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について③ - knowwell-livewellの日記

4回目:
セマンティックセグメンテーションで利用されるloss関数(損失関数)について④ - knowwell-livewellの日記

f:id:knowwell-livewell:20220130221411p:plain
https://github.com/JunMa11/SegLossより引用

前回に引き続き、Boundary-based LossのHD Lossについて紹介します。

b. Morphological Erosion-based
前回紹介したDistance Transform(DT)に基づく方法は、(One-Sidedバージョンでも)計算コストが高いため、モルフォロジー変換を利用してHDを算出しよう、というのがMorphological Erosion-basedの方法です。下図から分かるように、 HD(\delta q, \delta p)は、 \bar{p} \triangle \bar{q}の領域(図(b))での最も厚い部分に(おおよそ)関係があるはずなので、モルフォロジー収縮処理でHDの近似を得ることを考えます。

f:id:knowwell-livewell:20220211230020p:plain
https://arxiv.org/pdf/1904.10030v1.pdfより引用

筆者らは半径 rカーネル B_rと表記した際に、以下でHDを近似することを提案しています。

f:id:knowwell-livewell:20220211232054p:plain
HDのモルフォロジーによる近似

これは \bar{p} \triangle \bar{q}の領域をカーネル B_rで収縮処理( \ominus)した際に、 \bar{p} \triangle \bar{q}の領域が無くなるような rの最小値の2倍(直径)です(なのでおよそカーネルサイズだと言ってもよいような気がします)。このように近似したHDを基に、HD Lossを以下のように設計しています。

f:id:knowwell-livewell:20220212042142p:plain
HD Lossの定義③

 \ominus_{k}はk回収縮処理を行うことを意味します。 Kは10、 \alphaは2.0に設定しているようです。モルフォロジー処理は畳み込み処理で実現できるので、以前紹介したDTベースの手法よりも効率良く求めることが出来ます。

個人的には、このHD Lossの定義はあまり腑に落ちないです。というのも、1回モルフォロジーかけた結果残っている画素数の和、2回モルフォロジーかけた結果残っている画素数の和、3回、、、のK回分のすべての和ってこれHDではないように思います(厳密には多値なので画素数の和にはならないですが)。初めのHDの近似は納得できるのですが...。論文中では実際のHDとの相関が高いから理にかなっていると述べています。確かに相関は高くなりそうですし、それで良いならこれでいいのかもしれません。あくまで近似したHDに基づいて設計したLoss関数であるので実際のHDと相関が高いのであればこれで良いですね。)

c. Circuluar Kernels-based
最後の近似方法は、円形の畳み込みカーネル閾値処理を活用する方法です。半径 rの円形カーネル B_rと表現すると、HDは以下の式で計算することができます。

f:id:knowwell-livewell:20220212013233p:plain
HDの円形カーネルの畳み込みによる近似

ここで \bar{p}^C 1 - \bar{p}で、 f_hは1より小さい値を0にする処理をします。図で考えることにすると、 r_1は緑境界の外側領域( \bar{p}^C)に対して円形カーネル B_r)を畳み込みこんだ結果(の1より小さい値を0とした)において、赤領域内の最大値が正である(0でない)ような rの最大値です。多分これだと分からないですね。ポイントは、「カーネルの要素は合計で1になっていることと、 \bar{p}^Cおよび \bar{p}が0と1で成り立っていることから、カーネル内に0の領域が含まれた時点で、閾値処理により0になってしまう」ということです。 r_1で考えると、赤領域内で畳み込んだ結果が正になる(つまりカーネルが緑境界内に入らない) rで最大になるのは図の黒点の位置に対して黒の円のときになります。

f:id:knowwell-livewell:20220212013732p:plain
https://arxiv.org/pdf/1904.10030v1.pdfより引用(一部改変)

このように近似したHDを基に以下のLoss関数を提案しています。

f:id:knowwell-livewell:20220212032202p:plain
HD Lossの定義④

論文中では、 R = \{3,6,...18\}としていて、 \alphaは2.0としているようです。それぞれの半径のカーネルで畳み込んだ結果の対象領域内の和を加算しているので、このLoss関数もb. Morphological Erosion-basedと同じようなイメージですね。

以上3つのHD Lossを紹介しましたが、論文中ではDice Lossと組み合わせて精度評価をしており、以下3つのことを述べています:(1)評価指標Dice係数では3つに有意な差は見られなかった、(2)評価指標HDではa. Distance Transform-basedとc. Circuluar Kernels-basedが精度として似ており、Dice Lossのみとb. Morphological Erosion-basedよりも有意に良い精度となった、(3)評価指標HDにおいて、b. Morphological Erosion-basedを入れた場合、Dice Lossのみに比べて有意に良い精度となった。


続きます...
(間違っていたらコメントでお教えいただけますと助かります。)