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

Kaggle RSNA Intracranial Aneurysm Detectionコンペ 反省会

Avatar for monnu monnu
November 13, 2025
3

Kaggle RSNA Intracranial Aneurysm Detectionコンペ 反省会

社内の技術共有会での発表資料です。Kaggle RSNA Intracranial Aneurysm Detectionコンペの振り返りにです。脳動脈瘤の検出タスクにおける、コンペ概要や上位陣の解法などご紹介します。

Avatar for monnu

monnu

November 13, 2025
Tweet

Transcript

  1. 6 • 背景 ◦ 脳動脈瘤は世界人口の約3%に影響 ◦ 破裂後の診断が最大50%、重度の病気や死亡につながる • 課題 ◦

    多様な種類の医用画像(CT,MRI等)から動脈瘤を検知 • データの特徴: ◦ 複数の施設、スキャナー、撮影方法を含むデータ ◦ モデルの汎化能力(多様な環境への適応力)が試される コンペ概要 : タスク設定 医用画像から脳動脈瘤の有無を検出するタスク https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/discussion/591648
  2. 7 コンペ概要:データ ▪ 主な提供データ ▪ 3D画像 : 約4000シリーズ ▪ 多種なモダリティ(CT,MRIなど)

    ▪ 動脈瘤の有無に関するラベル ▪ 特定の位置(13箇所)+ 全体の有無 ▪ 動脈瘤の位置座標 ▪ 血管セグメンテーション(約200シリーズのみ) ▪ trainの一部のみ提供。13クラス。 学習用に約4000シリーズの3D画像、動脈瘤有無ラベル、位置座標が提供 さらに一部のシリーズには、血管セグメンテーションも提供 https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/discussion/591648
  3. 8 コンペ概要:評価 ▪ 評価指標 : 重み付けROC-AUC ▪ 全体での動脈瘤有無、および13位置での有無を判定(合計14ラベル) ▪ 全体での分類は重み大

    ▪ テストデータ : 約2500シリーズ ▪ 評価システム ▪ kaggle_evaluation APIを使用 ▪ テストセットが一度に1シリーズずつ、ランダムな順序で提供 評価はテストデータ約2500シリーズに対し、重み付けROC-AUCで計算
  4. 9 2.5DCNN(推論コードのみ公開) • 前処理 ◦ 読み込み : 複数DICOMファイルをz座標でソート ◦ 正規化

    : CTとMRそれぞれ実施 ◦ リサイズ : 3D画像を固定サイズ(32x384x384)へ • モデル : EfficientNetV2-S • 入力 : 32チャンネル(深さ = チャネル) • 出力 : 14クラスのバイナリ分類 ベースラインの解法 : 公開Notebook シンプルな2.5DCNNによる解法が公開Notebookで最高精度 https://www.kaggle.com/code/yosukeyama/rsna2025-32ch-img-infer-lb-0-69-share
  5. 10 2DCNN + LSTM • 前処理 ◦ 基本的に公開Notebookと同様。30x512x512にリサイズ • 特徴抽出

    : 2DCNN(EfficientNet-b0) ◦ 30フレームを3枚ずつgroup化して3ch x 10 フレームで処理 • 分類 : 2DCNNの特徴ベクトルをLSTM + 平均pooling + headで処理 • 補助タスク : 動脈瘤座標を補助タスクとして予測 • セグメンテーション : 活用失敗.... ベースラインの解法 : 銀メダル解法(筆者) 筆者は2DCNNとLSTMによる解法で45位の銀メダル
  6. 12 1位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/1st-place-solution ▪ 概要 ▪ 複数stageのパイプライン ▪ 1st

    stage: 血管セグメンテーションと関心領域(ROI)抽出 ▪ 2nd stage: 詳細な血管マスクを入力する3D分類モデル ▪ 低解像度から高解像度へ ▪ 低解像度で全体から候補領域を見つけた後、高解像度で処理 ▪ 構造ガイドとしてのセグメンテーション ▪ 分類モデルに血管マスク提供し、動脈瘤判定に集中させる ▪ nnU-Netをフル活用 ▪ セグメンテーションフレームワーク。後述
  7. 13 • nnU-Netとは? ◦ OSSのセグメンテーションフレームワーク ◦ 特定のデータに自動適応する汎用的なモデルの学習、推論が可能 • 特徴 ◦

    自動最適化 : データセットの特性(画像サイズ、ボクセル間隔等)に応じて多く のハイパーパラメータを自動的に決定。 ▪ ネットワーク構造、バッチサイズなど ◦ 高い汎用性 : 2D,3Dともに対応。特に医療画像コンペで高い性能を発揮 脱線 : nnU-Netについて https://github.com/MIC-DKFZ/nnUNet
  8. 14 ▪ 1st stage : 血管セグメンテーション ▪ 3つの3D nnU-Netモデルを利用 ▪

    最初に大まかなROIを特定、次に詳細な血管セグメンテーション生成 1位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/1st-place-solution
  9. 15 ▪ 2nd stage : ROI分類(13クラス + 動脈瘤有無) ▪ セグメンテーションで事前学習されたnnU-Netバックボーンを使用

    ▪ デコーダの出力と血管セグメンテーションを結合してプーリング ▪ 補助タスクとして動脈瘤の位置もセグメンテーションとして検出 1位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/1st-place-solution
  10. 16 ▪ その他 ▪ 異常シリーズ除外 : スライス間隔異常など約60シリーズを学習から削除 ▪ 分類デコーダの簡素化 :

    デコーダの最終ブロック削除し、効率化 ▪ 2つの血管セグメンテーションモデル : 通常版 + Recall重視モデル ▪ Location-Aware Transformer : 抽出された13の位置ごとの特徴ベクト ルを入力とし、異なる血管位置間の関係を学習 ▪ 補助タスクの損失関数 : 動脈瘤位置にはBalanced BCEと Focal-Tversky++ Lossの組み合わせを採用(スパースなtarget対策) 1位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/1st-place-solution
  11. 17 ▪ 概要 ▪ 1位と同じくマルチステージパイプライン ▪ 1st stage : 2D

    nnU-Netで血管領域の3軸ROIを抽出 ▪ 血管領域を効率的にクロップ ▪ 2nd stage : 3D nnU-Netに基づく3Dマルチタスク学習 ▪ 血管・動脈瘤のセグメンテーションとクラス分類を同時学習 2位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/2nd-place-solution
  12. 18 ▪ 1st stage: 血管領域の抽出 ▪ 各軸から計9フレーム抽出 ▪ 2D画像から血管領域をセ グメンテーション

    ▪ モデルは2D nnU-Net使用 ▪ 推論した血管領域をCrop し後段のモデルへ 2位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/2nd-place-solution
  13. 19 ▪ 2nd stage: 3Dマルチタスク学習 ▪ モデル : 3D nnU-Netアーキテクチャ

    ▪ タスク: 以下の3つのタスクを同時学習 ▪ 血管セグメンテーション ▪ 動脈瘤セグメンテーション ▪ クラス分類 2位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/2nd-place-solution
  14. 20 ▪ その他 ▪ Cross-Attention Pooling: 平均プーリングよりも速い収束。 ▪ Modality(CT,MRI等)分類ヘッド: 学習の安定性を向上。

    ▪ ターゲットオーバーサンプリング: 稀少な動脈瘤クラスに重点 ▪ TTA : 8倍のTTA(左右反転とラベルスワップを含む) ▪ 外部データの活用 : TopCoW,TopBrain ▪ ラベルミス修正 : いくつかのラベルミスは手動修正 2位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/2nd-place-solution
  15. 21 • 概要 ◦ 他と同じくマルチス テージパイプライン • 1st stage ◦

    YOLOで血管領域抽出 • 2nd stage ◦ 3DCNNで分類 3位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/3rd-place-solution
  16. 22 • 1st stage : 血管領域検出 ◦ 2軸方向(矢状面/冠状面)の MIP(最大値投影)画像生成 ◦

    2D YOLOv8n/mでBBOX検出 ▪ [email protected] : 0.95以上 ◦ 推論結果を統合し、固定サイ ズ3D ROIをクロップ 3位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/3rd-place-solution
  17. 23 • 2nd stage : 3D ROI分類 ◦ モデル :

    3D ResNet-18バックボーン使用 ◦ 各特徴マップに分類ヘッドをつけ、Wighted BCEで最適化 ▪ 最終予測は空間全体でスコアを並び替え上位N個を平均 ◦ strideを調整して特徴マップのサイズを拡大して改善 3位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/3rd-place-solution
  18. 24 • その他 ◦ DICOMタグへの欠損対応 ▪ テストデータにボクセル間隔を示すDICOMタグの欠損 ▪ 2.5D EfficientNet-v2sで回帰モデルを構築し推定

    ▪ LBスコアが0.84→0.85に改善 ◦ アンサンブル ▪ 異なるクロップサイズ、解像度、Stride間隔などを含む11種類の3D ResNet-18モデルをアンサンブル 3位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/3rd-place-solution
  19. 25 • 概要 ◦ 他と同じくマルチステージパイプライン ◦ 1st stage : ROI領域を絞り込むための座標予測

    ◦ 2nd stage: クロップ画像に対する2Dモデルによるクラス分類 • 短期間での参加で上位入賞 ◦ コンペ終盤の14日前から参加😳 ◦ はじめは血管セグメンテーションを試みるが失敗。その後上記パイプラ インを構築したとのこと。 4位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/4th-place-solution
  20. 26 • 1st stage : ROIクロップ座標予測モデル ◦ 動脈瘤が存在する血管領域をcropするため、対象領域の座標を予測 ◦ モデル

    : ViT (dinov3) ◦ 入力 : 等間隔にスライスした48枚のスライス(128x128) ◦ 効果 : ROIを大きく取ることで95%以上の動脈瘤がクロップ領域内に 4位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/4th-place-solution
  21. 27 • 2nd stage : 分類モデル ◦ クロップされたROI画像を、フレーム毎に2D CNNで14ラベル分類 ◦

    モデル: CoaT-Lite-Medium (Transformerベース) ◦ 入力サイズ: 384 x 384 ◦ データセット: 約54.5万サンプル(陽性サンプル約2,200)を使用 • 工夫 ◦ 回転augmentation ◦ 2.5D入力 : 単一スライスだけでなく前後スライス(-2,0,+2)も入力 ◦ 重み付サンプリングはなし : 極度の不均衡データ(陽性率1/250)でも 学習可能 4位解法 : https://www.kaggle.com/competitions/rsna-intracranial-aneurysm-detection/writeups/4th-place-solution
  22. 28 • 基本的には関心領域(ROI)の抽出とクラス分類のマルチステージを採用 • ROIの取り方はチームによって様々 ◦ 2D or 3D セグメンテーション、物体検出、回帰で座標予測等

    • nnU-Netがセグメンテーションの強力なフレームワーク ◦ 最上位2チームが活用。医療系タスクの定番かも? • 血管そのもののセグメンテーションは必須ではない ◦ 何らかの手段で血管の領域(クロップすべきROI)さえ検知できればOK 上位解法まとめ