Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RSNA STR Pulmonary Embolism Detection Solution Overview

Inoichan
December 01, 2020

RSNA STR Pulmonary Embolism Detection Solution Overview

2020 RSNA STR Pulmonary Embolism Detection SolutionのOverview
Competition link: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection

Inoichan

December 01, 2020
Tweet

More Decks by Inoichan

Other Decks in Technology

Transcript

  1. Data • 1Tに近いデータセットのサイズ • 形式はDICOM • Trainデータ ◦ 画像の数:1,790,594枚 ◦

    患者の数:7,279人 ◦ 患者あたりの平均画像数:245枚 • Publicデータ (28%) ◦ 画像の数:146,853枚 ◦ 患者の数:650人 ◦ 患者あたりの平均画像数:226枚 Train data Test data
  2. High Scoring Kernel High scoring kernelからPost processingなくしたらPrivate 0.208で銀メダル...\(^ o ^)/

    B0 Image level pretrain B0 Exam level retrain GRU Image level prediction Exam level prediction Post processing for label consistenct
  3. 画像サイズが大きいほど精度が向上。 Lung localizerを作成し、Lung領域を特定して拡大す ることで効率よく解像度の高い画像を作成。 Bounding Boxはハンドラベルで作成。 1st place solution Discussion:

    https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/194145 Github: https://github.com/GuanshuoXu/RSNA-STR-Pulmonary-Embolism-Detection B0 Regression (x_min, y_min, x_max, y_max)
  4. Step 1: Feature Extraction 前後の画像をStackして真ん中のラベルを予測。 (RV/LV ratioはターゲットから除外) 2nd place solution

    Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe
  5. Step 2: Sequence Modeling CNNで特徴抽出したSequenceに対してTransformer で学習。必要に応じてResize(zoom)とPadding。 Negative examはスコアに加算されないので、 Positive examのみで学習。さらにPositive

    PEの画像 の割合に応じてLossを重み付けした。 2nd place solution Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe
  6. Step 3: Time-Distributed CNN 多様な予測をするためにCNN+Transformerを組み合 わせたモデルをEnd-to-Endで学習した。 データはPEの確率が高い画像を30%使用。PEの確率 の順番に並べて、32枚サンプリングしてCNNに入れ た。 パラメータはStep

    1とStep 2でpretrainされたものを使 用した。 2nd place solution Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe
  7. Step 4: Heart Slice Prediction RV/LV ratioを予測するためのPipeline。 心臓の有無で1,000枚ハンドラベル。1番下と1番上の心 臓の場所がわかれば真ん中は全部心臓。 EfficientNetB1

    pruned 256x256 -> crop 224x224 ⇒ AUC 0.998 2nd place solution Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe
  8. Step 5: RV/LV 3D CNN Positive Examの中から心臓が含まれた画像を使い RV/LV ratioのラベルを学習。InstagramのVideoで pretrainされた101-layer

    channel separated network(arXive, Github)を使用。この段階ではあまりloss は下がってない(0.44~0.48)。 Right PE、Left PEの情報はRV/LV ratioを予測する上でと ても重要な情報なので、Step 2のPE labelを上記モデル の中間層の特徴量を組み合わせて線形モデルで学習。 Lossは0.22 ~ 0.25に。 2nd place solution Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe
  9. 最終モデル -2x ResNeSt50 feature extractors -6x exam transformers (3 for

    each extractor) -6x slice transformers -5x ResNeSt50 TD-CNN -1x EfficientNet-B1 pruned heart slice classifier -5x ip-CSN-101 3D CNN RV/LV feature extractor -5x RV/LV linear model 2nd place solution Discussion: https://www.kaggle.com/c/rsna-str-pulmonary-embolism-detection/discussion/193401 Github: https://github.com/i-pan/kaggle-rsna-pe