欢迎光临散文网 会员登陆 & 注册

kaggle谷歌手语识别大赛金牌方案出了!

2023-05-10 11:30 作者:深度之眼官方账号  | 我要投稿

整理自kaggle平台

https://www.kaggle.com/competitions/asl-signs

赛题背景

在美国,每天有33名婴儿出生时患有永久性听力损失。如果没有美国手语,失聪婴儿有患语言剥夺综合征的风险。

PopSign是一款智能手机游戏应用程序,使学习美国手语变得有趣、互动且易于访问。玩家将手语标志的视频与包含书面英语单词的气泡进行匹配,以弹出它们。通过为PopSign训练手语识别器,参赛者可以帮助游戏更具互动性,并提高想要学习手语与亲人交流的玩家的学习能力和信心。

赛题任务

对美国手语进行分类,帮助失聪儿童的亲属学习基本手势,并更好地与他们的亲人沟通。

数据描述

本次比赛要求以TensorFlow Lite模型的形式提交。参赛者可使用自己选择的框架训练模型,只要在提交之前将模型检查点转换为 tflite 格式即可。

评估标准

本次比赛的评估指标是简单的分类准确性。

优胜方案

第一名

https://www.kaggle.com/competitions/asl-signs/discussion/406684

我的解决方案涉及1D CNN 和 Transformer 的组合,使用所有训练数据(仅比赛数据)从头开始训练,并使用4种子集成进行提交。

我最初使用 PyTorch + GPU,但后来切换到 TensorFlow + Colab TPU(tpuv2-8) 以确保与 TensorFlow Lite 的兼容性。

如果帧间相关性很强,1D CNN 会比 Transformer 更有效。在我的实验中,纯 1D CNN 的性能轻松超过了 Transformer。 因此我最终仅使用 1D CNN 就获得了 0.80 的公共 LB 分数。然而Transformer 仍然有作用,可以在 1D CNN 之上使用(我们可以将 1d cnn 视为某种可训练的分词器)。

  • Model


  • Regularization

    • Drop Path(stochastic depth, p=0.2)

    • high rate of Dropout (p=0.8)

    • AWP(Adversarial Weight Perturbation, with lambda = 0.2)

  • 预处理


  • Augmentation


  • 训练

    • Epoch = 400

    • Lr = 5e-4 * num_replicas = 4e-3

    • Schedule = CosineDecay with no warmup

    • Optimizer = RAdam with Lookahead(better than AdamW with optimal parameters)

    • Loss = CCE with label smoothing=0.1 or just p

    • lain CCE

最终单模结果

  • CV(participant split 5fold): 0.80

  • public LB: 0.80

  • private LB: 0.88

第二名

https://www.kaggle.com/competitions/asl-signs/discussion/406306

我们使用了一种类似于使用 EfficientNet-B0 模型的音频频谱图分类的方法,使用大量增强和转换器模型(例如 BERT 和 DeBERTa)作为辅助模型。

最终的解决方案包括一个输入大小为 160x80 的 EfficientNet-B0,在 8 个随机分割折叠中的单个折叠上训练,以及在完整数据集上训练的 DeBERTa 和 BERT。使用 EfficientNet 的单折模型的 CV 得分为 0.898,排行榜得分约为 0.8。

  • CNN预处理

    • 提取了 18 个嘴唇点、20 个姿势点(包括手臂、肩膀、眉毛和鼻子)以及所有手部点,总共 80 个点。

    • 应用了各种增强。

    • 实施了标准规范化。

    • 没有删除 NaN 值,而是在归一化后用零填充它们。

    • 使用“最近”插值将时间轴插值为 160 的大小:。yy = F.interpolate(yy[None, None, :], size=self.new_size, mode='nearest')

    • 最后得到了一个尺寸为 160x80x3 的张量,其中 3 表示轴。

  • Transformer预处理

    • 保留了61个穴位,其中唇穴40个,手穴21个。对于左手和右手,保留 NaN 较少的那个。如果保留右手,则将其镜像到左手。

    • 依次应用增强、归一化和 NaN 填充。

    • 长度超过 96 的序列插值为 96。短于96的序列保持不变。

    • 除了原始位置外,还使用了手工制作的特征,包括运动、距离和角度的余弦。

    • 运动特征由未来运动和历史运动组成,可表示为:

  • 包括 210 个手部点之间的完整 21 个成对距离。

  • 包括随机选择的190个成对距离和8个嘴唇点中随机选择的40个角度。

第三名:
https://www.kaggle.com/competitions/asl-signs/discussion/406568
第四名:
https://www.kaggle.com/competitions/asl-signs/discussion/406673
第五名:
https://www.kaggle.com/competitions/asl-signs/discussion/406491

学姐安排了190多场比赛的top方案!

想要的关注“KGMking”公众号,回复“比赛”免费获取

kaggle谷歌手语识别大赛金牌方案出了!的评论 (共 条)

分享到微博请遵守国家法律