返回列表

[9 Place] Recall, Rotate and Zoom in

653. BYU - Locating Bacterial Flagellar Motors 2025 | byu-locating-bacterial-flagellar-motors-2025

开始: 2025-03-05 结束: 2025-06-04 医学影像分析 数据算法赛
[第 9 名] 召回、旋转与缩放

[第 9 名] 召回、旋转与缩放

作者: doonut | 队友: forcewithme | 排名: 第 9 名

概述

我们很激动能在这次 shake-up 竞赛中获得金牌。首先,我们要感谢组织者举办了如此棒的比赛,并开源了整个工作流程——从 EDA 到数据处理、训练和提交。这显著降低了我们的入门门槛。我们也要感谢所有开源作者的贡献。最后,特别感谢我的队友 @forcewithme。我们为此竞赛付出了许多努力,对这个回报丰厚的结果感到非常高兴。

总的来说,我们的推理流程包含两个阶段。第一阶段使用非常低的阈值以召回尽可能多的候选目标,而第二阶段应用适当的阈值来做最终决定。

关于训练,我们在整个过程中没能找到一个稳定的方法。最终,我们使用的所有模型要么是 YOLOv8 要么是 YOLO11 模型,同时在外部数据 @brendanartley 和竞赛数据上训练,共享相同的训练配置。

推理流程

  1. 两阶段检测流程:
    • 第一阶段(候选生成): 识别初始潜在的马达位置。此阶段使用标准模型集成或基于 SAHI 的集成。
    • 第二阶段(候选过滤): 进一步处理并验证来自第一阶段的候选目标。
  2. 集成模型: 多个模型或同一模型的不同配置组合使用,以提高检测准确性和鲁棒性,应用于第一阶段和第二阶段。
  3. 测试时增强 (TTA): 由于测试数据集的图像尺寸差异很大,我们使用多种分辨率进行推理,以捕捉不同尺度的特征。
  4. Bypass 逻辑与中点推理:
    • Bypass 逻辑: 如果第一阶段生成高置信度的检测结果,则跳过第二阶段,这在提高效率的同时没有成本。Bypass 阈值设置为 0.6。
    • 中点推理: 如果前 2 个检测结果非常自信且接近(无论是在第一阶段还是在第二阶段之后),将在它们的几何中点创建一个新的检测点,置信度略微提升,作为预测点返回。
  5. SAHI: 在第一阶段的某些切片中(如果第一阶段未 bypass),我们使用 SAHI 方法将大型断层扫描切片划分为不重叠的补丁进行推理,然后合并结果以增强多尺度检测。
  6. 第二阶段基于旋转的缩放细化: 我们不是围绕候选目标旋转,而是围绕目标裁剪一个旋转的缩放正方形,并用平均像素值填充原始图像切片。

模型训练

  1. 我们使用 ultralytics 训练了 yolov8l 或 yolov11l。
  2. 所有模型都是混合外部数据 ('trust' 3) 和竞赛数据 ('trust' 4) 训练的。
  3. 外部数据集由 @tatamikenn 固定。
  4. 我们通过训练时围绕目标随机裁剪训练了一些“局部”模型。这些模型是为 sahi 或第二阶段训练的。

提交方案对比

提交方案 A B C (选中) D (选中) E
整体方案 Std+S2 Parallel[Std+SAHI]+S2 STD+S2 Parallel[Std+SAHI]+S2 STD+S2
Stage 1A 配置 yolo8l
res:960/1280/832
yolov8l no sam
yolo11l sam:1/4 res:960
yolov8 no sam res:960
yolov11 sam:1/2 res 960
yolo8l no sam res:960 yolov8l res:960
Stage 1B(SAHI) N/A yolo8l
sam:1/3
patch:768
N/A yolo11-cz model
sam:1/4
patch:640
N/A
Stage 2 yolo8l z1.5 res512
yolo11-cz z1.5 res640
yolo8l-cz z2 res640
yolo8l z1.5 res512
yolo11-cz z3 res640
yolo8l-cz z2 res640
yolo8l z1.5 res512
yolo11-cz z1.5 res512
yolo8l-cz z2 res640
yolo8l z1.5 res512 yolo8l z1.5 res512
公共分数 0.837 0.853 0.856 0.856 0.860
私有分数 0.853 0.855 0.852 0.832 0.826

配置说明

  • Standard: 公共推理流程.
  • sahi: Sahi 推理流程.
  • S2: 第二阶段推理。在 zoomin+rotate+crop 图像上推理,代码与 Standard 几乎相同。
  • sam{}: 应用于 SAHI 处理的采样率
  • no sam: 无采样,意味着获取所有切片。
  • max_image_side: 切片前允许的最大图像尺寸
  • patches_per_side: 每个切片的网格划分数量 (n x n)
  • patch_size: 每个补丁的目标尺寸 (例如 768x768 像素)
  • res: 图像分辨率。
  • -cz z{1.5/2/3}: 意味着这是一个'局部'模型,'cz'意味着裁剪和缩放。z{} 表示推理时的缩放比例。

结语

欢迎任何问题或建议。Kaggle 愉快!

同比赛其他方案