返回列表

3rd Place Solution

654. BirdCLEF+ 2025 | birdclef-2025

开始: 2025-03-10 结束: 2025-06-05 环境监测 数据算法赛
BirdCLEF2025 第三名解决方案

BirdCLEF2025 竞赛总结

排名: 第 3 名 (3rd Place Solution)
作者: shanzhong8 (Master), Leon (Grandmaster)
发布日期: 2025-06-07

致谢

感谢组织者举办如此精彩且结构完善的竞赛。我也非常感激那些 inspiring 的公开 Notebook(例如来自 @salmanahmedtamu)以及往年的优秀解决方案。

恭喜所有顶尖团队——尤其是我的队友获得了 Grandmaster status!我真诚地感谢他在整个竞赛期间提供的宝贵支持。

我们的解决方案详情如下:


1. 训练数据与验证策略

像许多参与者一样,我们使用了完整的 BirdCLEF 2025 数据集进行训练。然而,为了获得更稳定的 CV-LB(交叉验证 - 排行榜)结果,我们通过包含来自 BirdCLEF 2023 数据集的 102 个额外类别扩展了训练集。

具体来说,我们使用了 80% 的 BirdCLEF2023 数据 + 100% 的 BirdCLEF2025 数据进行训练,剩余的 20% BirdCLEF2023 数据用于验证。这一策略提供了模型收敛的粗略指示。虽然 CV-LB 的相关性仍然不是完全稳定,但与我们早期的尝试相比,一致性要高得多。

此外,我们从以下来源收集了额外数据:

我们还使用了一个公开 Notebook 清理了部分 CSA 数据集 以去除人声,并手动过滤了剩余样本以确保质量。

此外,我们的训练数据还包括带有伪标签的 train_soundscape 音频,这些伪标签是由基于上述数据集训练的模型集成生成的。


2. 模型

我们的最终系统结合了基于 CNN 和基于 SED 的模型,利用了以下骨干网络:

  • tf_efficientnet_b0_ns
  • tf_efficientnetv2_b3
  • tf_efficientnetv2_s.in21k_ft_in1k
  • mnasnet_100
  • spnasnet_100

我们使用了两组 Mel 频谱图,参数如下(两组之间唯一的区别在于 n_mels 参数,分别设置为 128 或 96):

mel_spec_params = {
    "sample_rate": 32000,
    "n_mels": 128 or 96,
    "f_min": 0,
    "f_max": 16000,
    "n_fft": 2048,
    "hop_length": 512,
    "normalized": True,
    "center": True,
    "pad_mode": "constant",
    "norm": "slaney",
    "mel_scale": "htk",
}

3. 训练策略

  • 采样 (Sampling):
    随机采样优于固定前 5 秒 (fixed-first-5s) 和基于 RMS 的方法。
  • 数据增强 (Augmentations):
    我们遵循了以往竞赛的增强策略(cutmix, mixup, sumix),并添加了额外的人声噪声作为背景噪声以增强鲁棒性。
  • 损失函数 (Loss Function):
    CNN 和 SED 模型均使用 焦点二元交叉熵 (Focal Binary Cross Entropy, Focal BCE) 损失进行训练。
  • 模型汤 (Model Soup):
    我们在多个检查点之间应用了模型权重平均,以稳定最终预测。

4. 最终提交

我们应用了一种受以下灵感启发的排名感知后处理策略:
Post-processing with power adjustment
这有助于根据排名调整低置信度的预测。

  • 所有模型均导出为 ONNX 格式以实现快速推理。
  • 20 个模型的集成:10 个 CNN 模型和 10 个 SED 模型(5 个骨干网络 x 2 组 Mel 参数)。此提交可达到私有榜 (Private LB) = 0.927。然而,我们的最佳 LB 是由每组 6 个模型实现的,不包含 mnasnet 和 spnasnet 骨干网络。
同比赛其他方案