返回列表

1st place solution: Swin + Arcface + Label-constrained DBA

437. Hotel-ID to Combat Human Trafficking 2021 - FGVC8 | hotel-id-2021-fgvc8

开始: 2021-03-10 结束: 2021-05-26 公共安全 数据算法赛
第1名方案:Swin + Arcface + 标签约束 DBA

第1名方案:Swin + Arcface + 标签约束 DBA

作者:Kohei
原文发布时间:2021-05-27

感谢主办方举办这场有趣的挑战赛!我很自豪能参加这样一个具有社会意义的比赛。

代码:https://github.com/smly/hotelid-2021-first-place-solution

预处理:旋转校正

许多 Traffickcam 的图像没有正确的旋转角度。我创建了一个分类模型来校正旋转角度,并将其应用于所有 traffickcam 图像。该模型是在 Hotels50k 数据集上训练的。最终,在 97554 张训练图像中,有 4859 张图像的旋转角度得到了校正。

建模

  • 架构:Arcface (主干网络:Swin, RegNetY, ResNeSt)
  • 优化器:AdamW,调度器=CosineAnnealing
  • 数据增强:RandomResizedCrop, Resize, HorizontalFlip, RandomBrightness, RandomContrast, RandomGamma, ShiftScaleRotate 和 Cutout

我通过度量学习和最近邻搜索解决了这个比赛。图像表征通过 Arcface 训练。对于主干网络,我使用了 ResNeSt101e、RegNetY120 和 Swin Transformer (Swin-L)。我训练的所有模型在 Public LB(公开排行榜)上的得分几乎相同。

针对不平衡问题,在最近邻搜索中,仅使用每个酒店的 TOP1 最近邻相似度得分作为置信度。当使用 topk 分数之和进行聚合时,结果会更差。

标签约束的数据库增强

通过数据库增强(k=5)更新图像表征,可以提高 LB 分数。然而,由于相似图像很少,DBA 很容易受到不同类别图像表征的影响。因此,我在 DBA 中添加了以下标签约束。(代码

Label-constrained DBA

数据库扩展

我使用 Hotels50k 作为索引,以 Hotel-ID 为查询进行搜索,并映射了酒店。将 H50k 图像添加到训练集以及最近邻搜索的索引集中,进一步提高了分类精度。

Database Expansion

消融实验

单模型性能

我使用了三种主干网络:ResNeSt101e、RegNetY120 和 Swin Transformer,通过训练集和索引集的各种组合来创建模型。主要的改进来自于训练集和索引集的差异,而不是建模部分。

HID+H50k(a) 表示在 H50k 中添加了 traffickcam 图像的图像集。HID+H50k(b) 表示在 H50k 中添加了 traffickcam 和 travel site 图像的图像集。HID+H50k(a) 和 HID+H50k(b) 分别对应 https://www.kaggle.com/confirm/hotelid-models 中的 train_hotelidv3.csvtrain_hotelidv4.csv

主干网络 输入尺寸 训练集 索引集 Public LB Private LB
ResNeSt101e 512 H50k->HID HID only 0.7852 0.8027
ResNeSt101e 512 H50k→HID+H50k(a) HID+H50k(a) 0.8197 0.8250
ResNeSt101e 512 H50k→HID+H50k(a) HID+H50k(b) tbd tbd
同比赛其他方案