639. CZII - CryoET Object Identification | czii-cryo-et-object-identification
我们 sincerely 感谢 Kaggle 和竞赛组织者提供这次宝贵的机会。我们也向 @hengck23 和 @fnands 表示感激,感谢他们的重大贡献。fnands 的 notebook 和 hengck23 的讨论 为我们的方法提供了坚实的基础。最后,我感谢我的队友 @luoziqian 的出色合作。
我们的方法基于多个轻量级分割模型的集成,参数量范围从 873K 到 14.2M。分割后,我们使用 CC3D 计算粒子质心,并根据体素计数统计过滤小簇。
整体流程如下图所示:
我们最初使用 MONAI UNet 基线模型进行实验。在整个试验过程中,我们观察到参数量大的模型容易过拟合,并且表现往往不如轻量级模型。因此,我们选择了轻量级架构,如 UNet3D、VoxResNet、VoxHRNet、SegResNet、DynUNet 和 DenseVNet。
然而,在尝试 VoxResNet、VoxHRNet 和 DenseVNet 时,我们遇到了稳定性问题,包括性能波动和收敛困难。经过进一步分析,我们发现 MONAI UNet 使用了 InstanceNorm3d 和 PReLU。通过相应地修改归一化和激活层,我们实现了更稳定的模型性能。
MONAI UNet 的模型架构如下所示:
下图比较了 5 次实验中带有 InstanceNorm3d 和 PReLU 的 MONAI UNet 与带有 BatchNorm3d 和 ReLU 的训练性能,表明使用 InstanceNorm3d 和 PReLU 可以带来更稳定的训练。
对于最终集成,我们根据公共排行榜得分选择了以下模型:
我们的训练配置旨在确保稳定性和最佳性能。我们发现分割掩膜半径、损失函数和数据增强策略在获得可靠结果方面起着至关重要的作用。
我们为每个粒子应用了具有自定义半径的 ground truth 掩膜。
| 粒子类型 | 默认半径 | Luoziqian 的半径 | Lion 的半径 |
|---|---|---|---|
| 载铁蛋白 (apo-ferritin) | 60 | 60 x 0.5 | 80 x 0.4 |
| β-半乳糖苷酶 (beta-galactosidase) | 90 | 90 x 0.5 | 90 x 0.4 |
| 核糖体 (ribosome) | 150 | 150 x 0.5 | 150 x 0.4 |
| 甲状腺球蛋白 (thyroglobulin) | 130 | 130 x 0.5 | 120 x 0.4 |
| 病毒样颗粒 (virus-like-particle) | 135 | 135 x 0.5 | 150 x 0.4 |
Lion 的模型:
[128, 256, 256] 或 [128, 384, 384]200 epochs0.001(无学习率调度器)2 或 40.1 或 0.3[1.0, 1.0, 0.0, 2.0, 1.0, 2.0, 1.0]Luoziqian 的模型:
[128, 200, 200] 或 [128, 256, 256]100 或 300 epochspatience=201 或 2Lion 的模型:
[1, 1, 1, 1, 2, 1, 2] 用于平衡采样Luoziqian 的模型:
| 编号 | 模型 | 开发者 | 架构 | 参数量 | 验证 ID | 归一化 | 激活函数 | 公共榜 | 私有榜 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | epoch122-step2952-valid_loss0.3625-val_metric0.8367.ckpt | Lion | UNet3D | 1.1M | TS_86_3 | InstanceNorm3d | PReLU | 0.77379 | 0.76582 |
| 2 | epoch148-step3576-valid_loss1.1154-val_metric0.7722.ckpt | Lion | UNet3D | 1.1M | TS_6_4 | InstanceNorm3d | PReLU | 0.77021 | 0.76725 |
| 3 | epoch153-step3696-valid_loss0.3021-val_metric0.8900.ckpt | Lion | UNet3D | 1.6M | TS_69_2 | InstanceNorm3d | PReLU | 0.77205 | 0.76676 |
| 4 | epoch194-step4680-valid_loss1.0213-val_metric0.8788.ckpt | Lion | UNet3D | 1.1M | TS_69_2 | InstanceNorm3d | PReLU | 0.77390 | 0.76737 |
| 5 | epoch138-step3336-valid_loss0.3690-val_metric0.8476.ckpt | Lion | UNet3D | 1.1M | TS_73_6 | InstanceNorm3d | PReLU | 0.76543 | 0.76025 |
| 6 | epoch152-step3672-valid_loss0.4333-val_metric0.7929.ckpt | Lion | DenseVNet | 873K | TS_6_6 | InstanceNorm3d | PReLU | 0.76528 | 0.75417 |
| 7 | epoch195-step4704-valid_loss0.4258-val_metric0.7914.ckpt | Lion | VoxResNet | 7.0M | TS_6_6 | InstanceNorm3d | PReLU | 0.77457 | 0.76593 |
| 8 | epoch188-step4536-valid_loss0.4231-val_metric0.8659.ckpt | Lion | VoxHRNet | 1.4M | TS_73_6 | InstanceNorm3d | PReLU | 0.76738 | 0.75995 |
| 9 | epoch198-step4776-valid_loss0.3471-val_metric0.8730.ckpt | Lion | VoxHRNet | 1.4M | TS_73_6 | InstanceNorm3d | PReLU | 0.76135 | 0.75848 |
| 10 | epoch133-val_loss0.52-val_metric0.56-step3216.ckpt | Luoziqian | UNet3D | 1.1M | TS_6_4 | BatchNorm3d | PReLU | 0.76844 | 0.76320 |
| 11 | epoch314-val_loss0.54-val_metric0.54-step7560.ckpt | Luoziqian | SegResNet | 1.2M | TS_6_4 | GroupNorm | ReLU | 0.75521 | 0.74647 |
| 12 | epoch114-val_loss0.55-val_metric0.53-Step2760.ckpt | Luoziqian | UNet2E3D | 14.2M | TS_6_4 | BatchNorm3d | ReLU | 0.73758 | 0.72966 |
我们选择公共排行榜得分最好的模型进行最终提交。
| 模型 | 集成策略 | 置信度阈值 | 公共榜 | 私有榜 | 选中 |
|---|---|---|---|---|---|
| [1, 2, 3, 4, 7, 8, 12] | 平均 (Average) | 0.23 | 0.79094 | 0.78641 | ❌ |
| [1, 2, 3, 4, 7, 8, 12] | 平均 (Average) | 0.18 | 0.79213 | 0.78630 | ❌ |
| [1, 2, 3, 4, 7, 8, 12] | 平均 (Average) | 0.15 | 0.79307 | 0.78457 | ❌ |
| [1, 2, 3, 4, 7, 8, 12] | 加权 (weighted) | 0.15 | 0.79247 | 0.78417 | ❌ |
| [1, 2, 3, 4, 6, 12] | 平均 (Average) | 0.15 | 0.78701 | 0.78389 | ❌ |
| [1, 2, 3, 4, 5, 6, 7] | 平均 (Average) | 0.15 | 0.79104 | 0.78277 | ❌ |
| [1, 2, 3, 4, 7, 9, 12] | 平均 (Average) | 0.15 | 0.79391 | 0.78283 | ✅ |
| [1, 2, 3, 4, 6, 7, 9, 10, 11, 12] | 平均 (Average) | 0.15 | 0.79355 | 0.78381 | ✅ |
我们使用 CC3D 将分割结果转换为粒子簇,并应用以下策略进行簇选择:
Gubins, Ilja, et al. "SHREC 2020: Classification in cryo-electron tomograms." Computers & Graphics 91 (2020): 279-289.