Open zerebom opened 4 years ago
Kits19のデータセットを使って、腎臓がんの自動識別をEncoder-Decoderモデルで行った論文。 コンペ終了時SOTAになった論文
従来の3D-UNetにプラスして、Residual,pre-activation residual blockを追加して精度向上を図った。
腎臓がんは発生者が毎年40万人を超える重大な病気である。主に対処として外科が用いられるが、術後の負担を軽減するには早期発見が必要になる。 今まで腹部のCT画像のオープンデータは広く公開されていたが、腎臓についてアノテーションされたものはなかった。 Kits2019は300人の腎臓がん患者のCT画像とそのラベルを公開することで、腎臓がんに関するNNアーキテクチャの構築を推進する目的で始まったコンペティションであった。
本論文では医療領域で幅広く使用されている、3D-UNetと、2D-UNetとの相性がいいResidual block,dense connectionなどをかけ合わせてモデルの向上を図っていく。
CT画像のSpacing sizeを小さくすると、細かい違いがわかる一方、データの容量が大きくなってしまい、Batch sizeが小さくなってしまう。このトレードオフを検証した結果、今回は 3.22x1.62x1.62mmで128x248x248のVoxelにすると良い精度が得られることがわかった。
また、使用したCT領域はお医者さんがよく使うWindowサイズの[-79,304]で、 これに101を引いて76.9で割った。(なんで?)
3D UNet,Residual-3D UNet,pre-activation residual UNetの3つを作成した。
それぞれ、conv-instnorm-LReLuで構成した3D ConvをEncoder-Decoder機構に使用した。
Input Sizeは普通のが(30x80x160x160),Residualの方は(24x80x160x160)とした。
Batch sizeは2 でstochastic gradient descentを使用した。 1epochは250バッチを回すことと定義し、1000epoch回した。 12GBの Nvidia Titan Xp で5日かかる。 実装はPyTorchで、nnU-Netに準拠して学習した。 Augmentationは scaling,rotations,brightness,contrast,gamma,Gaussian noiseを加える。
ID 23,68,125は取り除く。 ID 15,37は運営に問い合わせた後に、目で見て修正した。
5foldsでCV切って測定。
ほとんどアーキテクチャによる違いはなく、むしろ実験のハイパーパラメータが重要ということがわかった。 特にスペーシング、Windowサイズなどが他チームとの違いだと考える。 今後はこれらがどういう値だと良い精度になるか等を理論的に説明できるように実験を進めていく必要がある
cross-entropy + dice loss
src:https://arxiv.org/abs/1908.02182
Composit dice:91.23