672. RSNA Intracranial Aneurysm Detection | rsna-intracranial-aneurysm-detection
衷心感谢 RSNA 和 Kaggle 举办此次比赛。
我把这次挑战当作速通来做,因为当我开始时比赛只剩下 14 天了,这远远不足以覆盖在这个数据集上能做的一切。这个数据集非常酷,而我仅仅触及了表面。我在 8 天内成功进入了金牌线。
终于成为 GM 了,耶!
我开始训练一个分割模型……但在我尝试的短时间内,它无法学习到超过 0.6 的 Dice 分数,这远远不足以让我对这个方法有信心。
我转向了一个 ViT (dinov3) 模型,该模型输入每个患者等距的 48 个切片,输入形状为:48x1x128x128 体积,并预测 x1, x2, y1, y2 值,即患者级别分割掩膜裁剪边界的位置。这个模型对于 ROI 裁剪更加可靠和高效。
原始图像:
ROI 裁剪:
我保持 ROI 相对较大,因为我不想漏掉动脉瘤。我测试了坐标数据,在这种配置下,我可以保持 95% 以上的动脉瘤位置在裁剪区域内。
我从 train_localizer csv 文件中取了约 2.2k 个样本,以及所有阴性患者的样本,这给了我一个数据集:
我找到了一种管道组合,即使在这种高度不平衡的情况下,模型也能开始学习(加权采样没有帮助)。
我的整个解决方案就是这个分类模型,以下是我如何提高它的分数(一旦基线开始学习,方法非常简单):
我的基线超参数:
| 方法 | 交叉验证 (CV) | 公共/私有排行榜 |
|---|---|---|
| ROI 裁剪上的 CoaT-Lite-Medium | 0.805 | 0.78/0.78 |
| + 旋转 (-25, 25) | 0.83 | 0.8/0.81 |
| + 2.5D (-2, 0, +2) | 0.86 | 0.86/0.83 |
| + 对剩余 500k 潜在阳性样本进行软伪蒸馏 | 0.89 | 0.86/0.84 |
| 与 MaxViT + CoaT 集成 | 0.896 | 0.87/0.84 |
在推理时,模型预测每个患者的每张图像,最终预测结果 simply 取最大聚合。
感谢阅读!