第12名解决方案 - 基于MLP(结构化关键点池化网络)
第12名解决方案 - 基于MLP(结构化关键点池化网络)
感谢主办方和Kaggle团队组织了这场精彩的比赛。以下是我的简要解决方案。
模型
- 基于MLP。我使用了改进版的结构化关键点池化网络模型
- 关节和骨骼分别输入,双向横向连接,经过2个MLP块后拼接
数据
- 仅使用原始数据
- 嘴唇+姿态(上半身)+左手+右手
- 过长的视频统一为64帧
- 特征包含:xy坐标(关节或骨骼)、第1帧和第2帧的运动信息
- 输入形状:[64(帧), (107(关节)+142(骨骼))×2(xy)×3(+1&2运动)]
- 排除训练数据中置信度低于1%的样本 [CV: -0.006, 公开榜+0.01]
数据增强
- 水平翻转 [CV提升: +0.02]
- 缩放变换 [CV提升: +0.008]
- 3D旋转(全局) [CV提升: +0.003]
- 3D旋转(手部独立) [CV提升: +0.002]
- 帧率调整(仅缩短) [CV提升: +0.005]
- 切除首尾帧 [CV提升: +0.001]
- 同手语的手部/嘴唇交换 [手部CV提升: +0.006, 嘴唇CV提升: +0.002]
损失函数
无效尝试
- 基于词汇的标签平滑
- 流形混合增强
- 位移数据增强
- 添加眼部关键点
- 伪标签技术