返回列表

14th Place Solution - Binary Classification on cropped frequency x time

419. Rainforest Connection Species Audio Detection | rfcx-species-audio-detection

开始: 2020-11-17 结束: 2021-02-17 环境监测 数据算法赛
第14名方案 - 基于裁剪频率-时间图的二分类
作者:Prateek (Master) & Kumar Shubham (Grandmaster)
比赛排名:第14名

第14名方案 - 基于裁剪频率-时间图的二分类

首先感谢 Kaggle 和主办方组织这次比赛。

我们(我和 @ks2019)最初是在参加木薯叶病分类比赛,但感谢 @cpmpml 的这篇帖子,它为我们指明了方向,让我们意识到需要尝试一些与当时公开方案不同的方法。经过仔细观察,我们发现了与他类似的规律。音频中某个物种 ID(specie_id)的频率-时间裁剪区域几乎是固定的(例如,对于 specie_id 23 —— 在大多数录音中,音频频率位于 6459 和 11628 之间,持续时间约为 16 秒)。这给了我们一个思路:从频谱图中裁剪出所有潜在区域,并对它们进行二分类。

我们的方法可以概括为:

  1. 从频谱图中裁剪图像,频率范围介于为某个 specie_id 观察到的最大-最小频率之间,时间持续时间为该 specie_id 观察到的最大持续时间的 2 倍。
  2. 预处理:将裁剪图像调整为 128 x 256 大小,在 0 和 1 之间缩放,并进行数据增强。
  3. 训练 B0 二分类器检测物种的存在(这是一个单一的二元分类器 —— 这里我们利用裁剪图像的频率信息回溯来确定我们要让分类器检测哪个 ID)。
  4. 生成伪标签。
  5. 重新训练。
  6. 对测试集进行推理,并将录音中观察到的某个 specie_id 的最大 n 个(我们这里取 3)概率的平均值作为该 specie_id 的概率。

注意:在第一次提交时,使用上述方法的单一模型就让我们在 Public LB 上获得了 0.921 的分数(Private LB 为 0.927),随后通过伪标签和少量的模型融合,Private LB 提升到了 0.948。

裁剪策略

从每个频谱图中,针对每个 specie_id x songtype 组合,我们裁剪出图像序列,频率范围介于该 specie_id x songtype 观察到的最小和最大频率之间,然后创建持续时间为训练集中该 specie_id x songtype 音频持续最大时间间隔 2 倍的图像序列。

裁剪策略示意图

数据增强

除了添加随机噪声外,我们还选取了同一 specie_id 的假阳性样本并将其添加到音频样本中。经过这种增强后,recording id x specie id 的标签保持不变(即假阴性仍然是假阴性,真阳性仍然是真阳性)。

同比赛其他方案