返回列表

5th solution

612. BirdCLEF 2024 | birdclef-2024

开始: 2024-04-03 结束: 2024-06-10 生命科学 数据算法赛
第 5 名解决方案 - BirdCLEF 2024
作者: coolz (Grandmaster) | 排名: 第 5 名 | 日期: 2024-06-11

第 5 名解决方案

首先,感谢组织者举办这次比赛。
恭喜所有获奖者。

数据

2024 年数据

模型

模型 骨干网络 权重 公有榜 私有榜
原始信号 HGNetB0 3/5 折 0.720354 0.666671
频谱 EfficientNetB0 1/5 折 0.708198 0.672360
原始 + 频谱 HGNetB0+EffB0 1/5 折 0.698408 0.660503
集成模型 ... 0.5+0.4+0.1 0.743960 0.687173

1. 原始信号模型

# x 批量大小 x160000

# 批量大小 x80000x2
x = x.view(bs, -1, 2)           
# 批量大小 x2x80000
x = torch.transpose(x, 2, 1)    
# 批量大小 x2x1000x80
x = x.view(bs, 2, -1, 80)         
feature = self.backbone(x)

2. 频谱模型

torchaudio.transforms.MelSpectrogram(
                32000,
                n_mels=512,
                f_min=0,
                f_max=16000,
                n_fft=2048*2,
                hop_length=512,
                normalized=True,
            ),

torchaudio.transforms.AmplitudeToDB(top_db=80)

3. 混合模型

raw_f  = self.raw_model(x)
spec_f = self.spec_model(x)
feature = torch.cat([raw_f,spec_f],dim=1)
x=self.fc(feature)

## 频谱被调整为 256x256 以提高速度,
## 其他 mel 频谱参数与频谱模型相同。

预处理

  • 1. wave/max(wave) 如果 max(wave)>1

数据增强

  • 频谱模型使用 XY Cutout

训练

  • 1. 随机采样 5 秒数据用于训练,
    前 5 秒数据用于验证。
  • 2. Mixup 概率 p=1。
  • 3. BCEWithLogitsLoss

推理

  • OpenVINO

补充

我发了一篇帖子讨论将原始信号输入视觉模型的方法。链接如下:

同比赛其他方案