639. CZII - CryoET Object Identification | czii-cryo-et-object-identification
这不是获胜的解决方案,但我在这里分享我的努力成果,以防任何人感兴趣。
我首先强调,几乎所有的模型训练和大部分编码都是使用 Kaggle 计算完成的,因为我的家用计算机不足以支持进一步的探索。
这是一个很长的故事……
用于训练的代码提供在此处:https://www.kaggle.com/code/perdigao1/wmcsfb-grn-train?scriptVersionId=220076028
我使用的模型是小型 'S' 版本。更大版本的模型并没有带来更好的结果。
随后进行了其他额外的训练调度,并且有一种机制可以通过 metric 分数选择“最佳”训练状态。然而,最好的结果是在这一步获得的,所以这里没有必要进一步阐述。
https://www.kaggle.com/code/perdigao1/wmcsfb-grn-subm-inference
对于推理,体积被修补(blocks)为 (160,160,160) 的体积,重叠 (14,14,14)。除了边缘外,只考虑中间部分。结果(概率)然后进行 argmax,并运行连通分量(connected components)以获得质心。然后通过 DBSCAN 解析质心列表,这给出了略微更好的结果。DBSCAN 的想法来自一些分享的 notebook。
我获得的结果在视觉上相当不错。对于一些粒子,预测的质量似乎比 ground truth 本身更好,就位于正确的中心而言,或者有时似乎缺少注释。因此,我觉得很难想出更好的方法来改进。
我开始探索但未完成的是带有复数(相位)和四元数的 3D Unets。文献中有一些例子。一些数学直觉告诉我,这些 Unets 应该 工作得更好,因为完全训练的模型可能会收敛到类似于傅里叶或贝塞尔核的东西,就像这里使用的解决方案一样。然而,需要对应用归一化、残差和激活的方式进行重大更改。我尝试了一些草案版本,但这些要么训练不好,要么结果很差,公共分数最高为 0.5,作为一个开始还不错。