553. BirdCLEF 2023 | birdclef-2023
感谢主办方和Kaggle组织本次竞赛。
我的解决方案结合了BirdNET-Analyzer V2.2的嵌入向量和BirdCLEF 2021第二名解决方案的CNN模型。
为了利用BirdNET的特征,我们将BirdNET的嵌入向量与BirdCLEF 2021第二名解决方案的CNN输出进行拼接。

使用BirdNET V2.2 embeddings.py生成嵌入向量。我修改了BirdNET V2.2 audio.py,当音频数据长度短于BirdNET采样率(48000)时,将数据填充以输出至少1秒的嵌入向量。使用V2.2版本而非最新的BirdNET V2.3,略微提升了交叉验证得分。
CNN骨干网络采用timm库的eca_nfnet_l1和seresnext26t_32x4d。
在使用BirdCLEF 2021 + BirdCLEF 2022数据进行预训练后,使用BirdCLEF 2023数据训练CNN和其他线性层(BirdNET部分不训练)。
训练输入为30秒音频数据。由于BirdNET每3秒输出一次嵌入向量,我将30秒内的嵌入向量取平均值。
在大多数实验中,最终epoch的交叉验证得分最高,因此我将所有数据都包含在训练集中。
主要训练参数如下:
与前两届竞赛一样,数据增强至关重要。我结合了以下增强方法:
实施了以下过采样方法,但效果有限:
CNN输入为5秒音频数据,BirdNET输入为前3秒音频数据。
将两个不同CNN骨干网络(eca_nfnet_l1和seresnext26t_32x4d)的输出结果简单平均。
| 模型名称 | 私有分数 | 公开分数 |
|---|---|---|
| BirdCLEF 2021第二名CNN(使用BirdCLEF 2021+2022预训练) | 0.71 | 0.80 |
| BirdCLEF 2021第二名CNN + 数据增强 + BirdNET嵌入 | 0.74 | 0.82 |
| BirdCLEF 2021第二名CNN + 数据增强 + BirdNET嵌入 + 过采样 + 模型集成 | 0.75 | 0.83 |