3DSlicerによるDice係数, Hausdorff distanceの求め方

Ubuntu 20.04, 3DSlicer Version: 4.11.20210226 (Extension SlicerRT)

3DSlicerでDice係数, HDを求める方法を説明します. ただし, 計算するには3DSlicerのExtensionのSlicerRTが必要となります. インストールの方法は「3DSlicerによるDIR: Install」をご覧ください.

前提として, 2つの輪郭セットがSceneに読みこまれている, もしくはDIR後であればhardeningされた状態であることが必要です.

Dice係数, Housdorff Distanceを求める

両係数の計算にはSlicerRTの「Segment comparison」を使用します. 下図のよう「Radiotherapy」モジュールから「Segment comparison」を選択してください.

「Segment comparison」モジュールの画面は下のようになります. ここで操作するのは「Input」の項目のみとなります.

「Input」のしたの「Reference segment」が基準となり, 「Compare segment」が比較するsegmentになります. ここでは,propagationの説明で作成した「ct1roi」と「ct2roi Copy」をReference Segment, Compare segmentとしました.

ここで指定したSegment(vtkMRMLSegmentNodeとなるもの)は輪郭のセットを表すので, 治療計画データを開いていれば複数の輪郭が含まれています. そのため, さらにどの輪郭を対象とするか選ぶ必要があります. Reference segment, Compare segmentそれぞれの下にさらに「segment」という選択項目がありますので, そこで対象の輪郭を指定します. 今回データは適当に開いたので, 一番似かよってそうなそれぞれのpatient輪郭を計算対象として選びました.

この計算対象輪郭は何も別なvtkMRMLSegmentNodeである必要もなく, 同じvtkMRMLSegmentNode(例えばct1roi)の中から別な輪郭を選んだり, 同じ輪郭を選んだりすることも出来ます(もちろんその際DICE係数は1となります).

計算対象の輪郭が設定し終えたら, 後は「Compute Housdorff distance」もしくは「Compute Dice metrics」ボタンをクリックするだけです. 計算はしばらくかかります. どちらかを計算すれば, もう片方はすぐに終わります.

結果は, それぞれの表の一番上の値となります. 下の図ではHDは62.1898, Diceは0.893319です.

これらの値の正しさは確認していないので, 使う際には各自で確認してください.