返回列表

22nd Place Solution

639. CZII - CryoET Object Identification | czii-cryo-et-object-identification

开始: 2024-11-06 结束: 2025-02-05 医学影像分析 数据算法赛
第 22 名解决方案 - Moyashii

第 22 名解决方案

作者: Moyashii | 发布时间: 2025-02-06 | 排名: 22

流程

  1. 2D-3D 语义分割
  2. 使用 cc3d 估算粒子质心坐标
  3. 使用基于 WBF 的后处理合并多个模型的粒子坐标
  4. 使用 Minislab 进行 2D 假阳性抑制(脱铁铁蛋白,核糖体)

模型

我使用了 @hengck23 优秀的 2D-3D 语义分割模型 的稍定制版本。

  • 输入:48×352×352 或 48×320×320
  • 输出:6×d×h×w
  • 损失函数:BCE + 2×TverskyLoss

最佳单模型得分为 0.737 / 0.730

数据

我在 DS-10441 上进行了预训练,然后在 DS-10440 上进行了微调。虽然预训练并没有提高排行榜分数,但它有助于减少微调的训练时间。

分割标签的半径设置对准确率有显著影响。我对每个粒子使用了 0.5 倍或 0.6 倍的粒子半径。

半径 CV
粒子半径 × 0.9 0.6484
粒子半径 × 0.8 0.7340
粒子半径 × 0.7 0.7645
粒子半径 × 0.6 0.7807
粒子半径 × 0.5 0.7727
粒子半径 × 0.4 0.7675

后处理

  • 使用基于 WBF 的 NMS 合并每个模型的粒子质心坐标(+0.003 到 +0.005)。
  • 围绕每个预测的粒子坐标创建"minislab",应用 2D 分类来确定粒子与噪声,并去除假阳性(+0.003 到 +0.005)。

Minislab 示例:

image = volume[z_start:z_end, y_start:y_end, x_start:x_end]
image = image.mean(axis=0)

计算资源

  • RTX 3090 × 1.2(偶尔借用 Vast AI)。

推理代码

https://www.kaggle.com/code/akinosora/czii2024-22nd-place-inference-code/notebook

同比赛其他方案