返回列表

4th place solution

363. Bengali.AI Handwritten Grapheme Classification | bengaliai-cv19

开始: 2019-12-19 结束: 2020-03-16 计算机视觉 数据算法赛
第4名解决方案

第4名解决方案

作者:Guanshuo Xu, Yauhen Babakhin, olivier
比赛排名:第4名

我们感谢 Bengali.AI 和 Kaggle 为这次比赛付出的努力,并祝贺所有的获胜者。你们有趣的发现、新颖的方法、对问题、数据集以及评估指标的深刻理解给我们留下了深刻的印象。

我们的解决方案相对直接,与一些顶尖的解决方案有相似之处。

我们将训练集中的 1295 个字形称为 ID(字典内,in-dictionary),将测试集中未知的字形称为 OOD(字典外,out-of-dictionary)。第一步是训练 Arcface 模型并计算这 1295 个字形各自的特征中心。然后,我们可以根据测试图像到每个字形中心的最小特征距离来判断它是 ID 还是 OOD。在我们获得第4名的提交中,我们将分类阈值设置为 0.15(余弦距离),这是在本地估算得出的。在进行 ID/OOD 分类后,我们仅将 Arcface 模型应用于 ID 集,并通过字形类别确定组件类别。对于 OOD 集,我们训练了另一组单头和三头组件模型,并仅将其应用于 OOD 集。

关于 Arcface 模型的更多信息:

  • 网络结构:inception_resnet_v2 和 seresnext101
  • 输入图像预处理:普通缩放
  • 输入图像尺寸:320x320
  • 损失函数:Arcface
  • 目标:1295 个字形分类
  • 总训练轮数:90
  • 数据增强:仅使用 cutout

关于 OOD 模型的更多信息:

  • 网络结构:inceptions, resnets, densnets, efficientnets ... ... ...
  • 输入图像预处理:https://www.kaggle.com/iafoss/image-preprocessing-128x128
  • 输入图像尺寸:从 256x256 到 416x416 不等
  • 损失函数:CE (交叉熵)
  • 目标:vowel_diacritic(元音变音符号)和 consonant_diacritic(辅音变音符号)采用三头输出,grapheme_root(字根)采用单头输出
  • 总训练轮数:10(更多的训练会损害 OOD 的性能)
  • 数据增强:仅使用 mixup
同比赛其他方案