该方案将 3D cryo-ET tomogram 逐切片送入 2D YOLO,再以三维质心聚合恢复最终马达坐标。核心是低阈值 候选召回、切片级 TTA 与 tomogram 级 3D 聚合。
BYU – Locating Bacterial Flagellar Motors 2025 给每个 3D cryo-ET tomogram 预测一个鞭毛马达中心,或明确预测“不存在”。预测点到真值 不超过 1,000 Å 才会匹配为 TP,最后使用以召回率为重的 (F_2) 计分。因此这并不是把 单张切片检得最漂亮就能赢的任务:一个低置信度但位置正确的候选很宝贵;反过来,重复的 切片级框如果没有被折叠为一个 3D 点,会迅速制造 FP。
提交的每行对应一个 tomogram。若判断不存在,x/y/z 都要写 -1。这条格式规则也解释了
为什么流程必须把“是否存在”和“位置”一起处理,而不能只跑 detector 再随意挑一个最大框。
我使用一个 2D Ultralytics YOLO 权重:
/kaggle/input/lbfm-yolo/v2_v11n_ep30_1280_mix_f2_open/weights/best.pt。推理时它逐张读取
tomogram 的 Z 切片,做目标检测;随后将跨切片的框中心聚为三维中心点。核心数据流是:
tomogram (z, y, x)
-> 每张 z-slice 的 2D YOLO 检测
-> 保留 conf >= 0.30 的框中心 (z, y, x)
-> centroid_3d 聚合跨切片候选
-> 每个 tomogram 输出一个坐标,或 -1/-1/-1
Notebook 对所有 Z 切片按 CONCENTRATION=1 扫描,使用 augment=True 的测试时增强;同时启用
GPU FP16/TF32,并以批量流式方式供给 detector。前面三项分别服务于召回、方向鲁棒性和
Notebook 时限内的吞吐量;它们不是额外的 3D 网络。
2D detector 先提供 slice-level 候选;马达在相邻层连续出现,因此 centroid_3d 将这些候选恢复为
物理坐标。聚合半径、候选簇选择和无簇样本的输出规则共同构成最终提交逻辑。
切片化把昂贵的 3D 检测转成成熟的 2D YOLO 推理,优点是训练和部署轻,能很快尝试不同的 输入尺寸、预训练权重与增广。它对“目标在某些横截面呈现稳定纹理”的样本尤其有效。
2D detector 不直接建模 Z 向上下文,因此方案在 tomogram 级别完成调参:低阈值产生候选以保证 recall, 再由 3D 聚类、簇大小和几何一致性压制重复 FP,最后按官方 1,000 Å 匹配规则计算 (F_2)。
这也是 3D 分割/热图方案值得作为对照的原因。第二名方案将任务写成 3D blob regression, 使用残差编码器 3D U-Net/nnU-Net 与 TopK BCE,展示了直接建模体积上下文的路线。详见其 公开 write-up。
confidence -> recall/FP 曲线,再固定 detector 比较
centroid_3d 的半径与最小簇大小。这条路线有三个坐标系统:YOLO 输入图像的 (u, v)、原 tomogram 数组的 (z, y, x),以及提交表的
(x, y, z)。每一次 resize、crop、padding 或坐标中心化都必须保存反变换参数;否则 detector 的
框看似正确,最终 CSV 会整体偏移。
建议将每一个候选保存为 tomogram_id, z, y, x, confidence, slice_id,聚类后再保存簇成员数、簇内
坐标标准差和最终置信度。这样可以回放一个提交点由哪些 2D 框产生,并将“检测错误”与“聚类错误”
分开诊断。
对于无候选的样本,直接输出三个 -1;对于多簇样本,选择规则必须只依赖训练阶段冻结的阈值与
聚类统计,不能在提交时针对单个测试 tomogram 人工挑选。这个接口检查比再提高一点切片级 mAP 更能
防止有效候选在 CSV 末端丢失。