这次比赛的目标是识别肯尼亚长录音中的鸣叫鸟类,这对于出于保护目的监测鸟类种群的科学家来说是一项重要任务。更准确的解决方案可以实现更全面的监控。参赛者需要使用机器学习技能通过声音识别东非鸟类,开发计算解决方案来处理连续的音频数据并通过它们的叫声识别物种。
- 使用主要模型结构CNN::tf_efficientnetv2_b0 。
- 对音频进行预处理,包括声波形、Mel频谱图和数据增强。
- 设置模型参数,包括优化器、损失函数、学习率调度器等。
- 预训练模型,使用Birdclef 2021和2022的数据进行预训练。
- 处理数据不平衡问题,通过过采样使每个类至少有50个数据。
- 增加Nocall数据,将背景噪声音频设置为所有标签为0的Nocall数据。
- 划分数据集,采用分层的K折交叉验证策略,确保所有鸟类品种都被包含在训练数据中。
音频处理:
- 时长:5秒
- 采样率:32000
- Mel频谱图参数:
- n_fft: 2048
- win_length: 2048
- hop_length: 320
- f_min: 50
- f_max: 14000
- n_mels: 128
- top_db: 80
模型参数:
- drop_rate:0.5
- drop_path_rate:0.2
- 优化器:AdamW
- 学习率调度器:OneCycleLR
- epoch:30
- batch_size:32
数据增强:
- 波形:随机裁剪或提取音频的前5秒
- Mel频谱图:使用Torchaudio的频率和时间掩码
- Mixup和Cutmix增强 (alpha = 0.5)
预训练:
-
预训练时长:15秒
-
过采样:无
本次竞赛的目标是通过声音识别东非鸟类,具体来说,处理连续的音频数据并通过鸣叫声识别物种。我们采用了基于深度学习的方法,主要模型结构为 tf_efficientnetv2_b0 。首先,将音频数据转化为频谱图,然后使用预训练的网络进行特征提取。训练过程中采用BCEWithLogitsLoss损失函数,优化器为AdamW,采用OneCycleLR作为学习率调度器。此外,对训练数据进行了平衡处理,对少数类进行了过采样,使得每个类至少有50个样本。我们的模型在处理声音识别任务上取得了相当好的效果,结果在Kaggle上的排名4%名。