返回列表

4th place solution

457. Google Landmark Recognition 2021 | landmark-recognition-2021

开始: 2021-08-11 结束: 2021-10-01 计算机视觉 数据算法赛
第4名解决方案

第4名解决方案

作者:Bo | 排名:第4名

感谢我的老队友 @haqishen 和新队友 @hongweizhang。这又是一次很棒的团队合作。我们在检索比赛中获得了第3名,在识别比赛中获得了第4名。为了方便日后参考,我将解决方案发布在两个论坛上,尽管内容上有很大的重叠。

方法概述

Qishen 和我是2020年识别比赛第3名团队(连同 @garybios@alexanderliao)的成员。去年我们开发了一个强大的模型,即带有动态边距的子中心 ArcFace(sub-center ArcFace with dynamic margins)。

今年有两场比赛同时进行,截止日期更紧,所以我们很大程度上复用了去年的流程,并采用了更新的架构和更好的后处理方法。我们在检索和识别比赛中以相同的方式训练模型,但在最终提交时选择了不同的模型组合和后处理方法。

训练配方

我们主要遵循去年的解决方案(详情见此处)。配方包括:

  • 带有动态边距的子中心 ArcFace
  • 随着图像尺寸增大而进行的渐进式训练
  • 不可或缺的 timm
  • 配合 Adam/AdamW 优化器的余弦学习率调度
  • 使用 DistributedDataParallel 进行多 GPU 训练

模型选择

在过去的一年中发表了不少新的 SOTA 图像模型, notably EfficientNet v2, NFNet, ViT, Swin transformers。我们使用去年的配方训练了所有这些新模型。对于 Transformers,我们使用了 384 的图像尺寸。对于 CNN 模型,我们使用了逐渐增大的图像尺寸(256 -> 512 -> 640/768)。

我们发现 CNN 和 Transformers 在本地 GAP 分数(识别指标)上表现同样出色,但 Transformers 在本地 mAP(检索指标)上明显更高,即使使用较小的 384 图像尺寸也是如此。我们认为这是因为 Transformers 是基于补丁的,可以捕获更多的局部特征及其相互作用,这对检索任务更为重要。

除了新模型外,我们还通过微调复用了去年的一些模型,主要是 EfficientNets。

模型集成

我们的最终集成由 11 个模型组成:3 个 Transformers,3 个新 CNN 和 5 个旧 CNN。它们的规格和本地分数如下。未显示旧 CNN 的 CV 分数,因为它们存在泄漏(去年的折叠划分不同)。

我们最佳的检索集成少了 4 个 CNN,总共只有 7 个模型(3 个 Transformers + 4 个 CNN),因为增加 CNN 会损害检索分数。这是因为 Transformers 对检索更重要,增加更多的 CNN 会降低 Transformers 的权重。

模型 图像尺寸 总轮数 微调 2020 cv GAP (识别) cv mAP@100 (检索)
Swin base 384 60 0.7049 0.4442
Swin large 384 60 0.6775 0.5161
ViT large 384 50 0.6589 0.5633
ECA NFNet L2 640 38 0.7053 0.3600
EfficientNet v2m 640 45 0.7136 0.3811
EfficientNet v2l 512 30 0.7146 0.4117
EfficientNet B4 768 10
EfficientNet B5 768 20
EfficientNet B6