LoginSignup
9
6

More than 5 years have passed since last update.

[Survey] Kaggle - Data Science Bowl 2017, 2位解法

Last updated at Posted at 2017-08-25

Kaggleの肺がん検出コンペData Science Bowl 20171(以下DSB2017と表記)の2位解法の調査です.

DSB2017とは

  • 肺がんの検出コンテスト
  • 症例ごとの有無の検出のみで可(位置を特定する必要はない)

検出の流れとしてはCT画像には肺結節2と呼ばれる白っぽい塊があって,悪性だったりすると肺がんがあったりします.
そのため,コンピュータに肺がんを検出させるためには,

  1. 結節影を検出する
  2. 肺がんかどうかを判定する

という二段階の判定で検出するアプローチを取る方式が多いみたいです.

外部データセット

  • LUNA163
  • LIDC-IDRI4

LUNA16

  • 肺結節のデータセット(悪性腫瘍かどうかは不明)
  • 888件のCTデータ
  • 肺結節に対して,「なし」,「3mm以下」,「3mm以上」の3パターンでラベル付け
  • スライス厚が2.mm以上のCTは除外
  • LIDCやIDRIといった大規模データセットに対する肺結節の自動検出が課題
  • 4名の放射線科医の診断結果が記載されている.

LIDC-IDRI

  • 肺画像のデータセット
  • 1018件のCTデータ
  • 肺結節については「なし」,「3mm以下」,「3mm以上」の3パターンでラベル付け
  • 悪性腫瘍に関する情報もある.

lidc_idrc_table.png

Julian

環境

  • GTX-980
  • Keras
  • Windows(64bit)

アプローチ

  • LIDCの医師のラベル付きの悪性腫瘍を利用
  • LUNA16の陰性ラベル(正常な患者)を利用(LUNA16は肺結節情報のみで悪性かどうかのデータセットはないため,正例データは今回のコンテストには使えない.)
  • 1ボクセル1mmに等方位ボクセル変換
  • 境界部分にある肺結節も見逃さないようにするために,肺野のみ抽出したデータではなく元の画像で学習
  • 座標が0〜1に収まるようスケール変換
  • 正例と負例が,本当に正しいか自作ビューワーで確認

ラベル

  • 医師の誰か一人でもpositiveと判定した箇所は全てpositive扱いにした(4人の放射線技師での判定をLUNA16では行っている)
  • LUNA16では3cm以上の肺結節はラベル付(セグメンテーション?)されていなかったため,LUNA16の3cm以上の結節があるデータは除外.

モデル

  • 32x32x32の3D ConvNetで肺結節の検出と悪性かどうかの判断を同時に行う.(Danielは2段階に分けた)
  • VGG風のC3D5構造
  • ネットワークのパラメータ最適化には時間を使っていない.
  • positive:negative = 1:20になるようpositiveをアップサンプリング(元々はpositive:negative = 1:200)
  • 大きな結節を検出できるようにするため,3種類のズームレベル(1.0, 1.5, 2.0mm/voxel)を使用
  • LUNA16利用データ:
    • 候補点数: 400,000
      • 非肺組織: 100,000
      • 偽陽性: 10,000(肺結節だが悪性ではない)
      • LIDC陽性: 2,000
  • NDSBには悪性腫瘍の場所が記載されていないので,自分で該当箇所にマーク付けを行った.
  • LUNA16には3cm以上の肺結節は取り扱っていなかったため,ネットワークが混乱することを割けるためにデータセットから除外
  • 12mm間隔にCT画像を区切って悪性腫瘍がないか判定.
    • 悪性腫瘍度の最大値とz座標のみを最終予測の特徴量として利用
    • つまり240x240x240のCTデータだと20x20x20=8000件の予測
  • 3段階のズームレベル(1.0, 1.5mm, 2.0mm/voxel)で大きな肺結節も検出できるようにした

変な組織(strange tissue)検出

  • 3D ConvNetでの判定とは別に変な組織の検出も試みる.
  • 訓練データに10箇所ぐらい変な組織があって,その半分が悪性腫瘍だったため.
  • どういう定義で"strange tissue"といっているのかは不明.

最終的な判定

  • Xgboost6
    • 3段階のズームレベルでの悪性腫瘍度の最大値
    • z座標
    • min_child_weight: 60 (過学習を防ぐため)
  • Danielsの解との平均で提出

Daniels

アプローチ

  • 64x64x64のResNet風の3D ConvNetを使用
  • LIDCの悪性腫瘍と結節情報を使用
  • 疑わしい領域の抽出にU-Net7を利用

References

9
6
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
9
6