653. BYU - Locating Bacterial Flagellar Motors 2025 | byu-locating-bacterial-flagellar-motors-2025
首先,我要感谢 Kaggle 和比赛组织者提供的基线方案。
我们的最终解决方案是一个简单的 YOLOv8m 模型,即“第 22 名解决方案—YOLOv8m"。
我们尝试了多种图像尺寸(640, 960, 1024)和 YOLO 版本,最终决定使用 YOLOv8m。我们采用了由 @hengck23 分享的几种数据增强技术,如 mosaic、mixup、perspective、shear 和 auto augmentation。在此基础上,CLAHE 增强了局部对比度并强调了细粒度纹理,从而提高了低对比度场景下的特征区分能力。
以下是我们增强设置的完整配置:
T = [
A.RandomBrightnessContrast(p=0.2, brightness_limit=0.1, contrast_limit=0.1),
A.RandomGamma(p=0.2, gamma_limit=(90, 110)),
A.HorizontalFlip(p=0.5),
A.VerticalFlip(p=0.2),
A.ShiftScaleRotate(shift_limit=0.02, scale_limit=0.1, rotate_limit=10, border_mode=0, p=0.3),
A.ImageCompression(quality_lower=90, quality_upper=100, p=0.1),
A.CLAHE(p=0.1, clip_limit=2.0),
A.ToGray(p=0.05),
]
我们的最终解决方案采用单个 YOLOv8m 模型,没有任何集成,从而形成了相对简单的推理 pipeline。然而,我们认为本次比赛需要参与者专注于深入的数据分析,特别是识别和解决由不同仪器和采集设备引起的域 shift。此外,设计对阈值变化具有鲁棒性的解决方案对于减轻私有 leaderboard 上的性能下降风险至关重要。
根据比赛的评估指标,相对较大半径内的检测被视为正确,且比赛中使用的 Fβ 分数容忍较高数量的假阳性。这一设计选择具有特别重要的意义,值得深入反思。
在医学图像物体检测的背景下,漏掉真实目标通常比检测到虚假目标更有害。此类应用中的模型旨在将海量数据集缩小为候选区域,以便手动审查并以更高精度进行标注。最终,这种人机协作方法确保了最终标注的准确性。从从业者的角度来看,尤其是参与标注的医学生,非常希望模型在保持合理可接受精度的同时实现高召回率。这种平衡通过最小化漏检同时保持可管理的误报数量来减少他们的工作量。
关键策略来自于我观察到的一个简单事实。我们可以迭代地使用伪标签来解决训练数据中缺失的 gt 标签问题(我认为这可能有点像比赛组织者会在 leaderboard 数据上做的事情)。这也是我的 2 个 yolov8m 模型能够达到 plb840 和 lb822 的关键原因(我们选择了一个 plb830;lb824 的单模型),这意味着仅用简单的 yolov8m 模型就有可能进入金牌区!!840PLB 模型
修正公共 notebook 中的数据生成问题:
我们识别并解决了一个问题,即在包含多个马达的图像中,数据集生成过程保存了多个 YOLO 格式的注释和相应的 .txt 标签。这导致训练期间同一输入的正负样本冲突,使模型变得困惑并容易过拟合噪声。
纳入负样本:
我们添加了负样本以平衡正负样本比例,这有助于模型学习更鲁棒的决策边界。
损失函数增强:
我们引入了额外的损失函数,包括归一化 Wasserstein 距离 (NWD) 损失和IoU-Shape 损失,以提高模型有效检测小物体的能力。
利用额外标注数据:
我们利用了 @brendanartley 分享的 36-box 额外数据和 24-box 训练数据的一个子集。尽管该补充数据集中的噪声水平较高,但它对模型泛化产生了积极贡献。
TTA (测试时增强):
推理过程中的旋转使性能更加稳定。
缺乏集成策略:
由于时间限制,我们没有实施集成策略。我们的最终提交基于单个 YOLOv8m 模型。
2.5D DEiM 模型表现不佳:
虽然我们尝试了一种 2.5D DEiM 变体,其实现了近乎完美的召回率 (~1.0),但其在 leaderboard 上的表现欠佳,可能是由于高假阳性率或跨测试域的泛化能力有限。
尽管 leaderboard 排名存在固有的变异性,但创新技术——例如 Bartley 解决方案中基于排名的阈值方法——证明了深思熟虑的设计如何产生鲁棒的结果。我真的很感激在整个比赛过程中社区分享的见解和知识。