458. Google Landmark Retrieval 2021 | landmark-retrieval-2021
感谢我的老队友 @haqishen 和新队友 @hongweizhang。这又是一次很棒的合作。我们在检索比赛中获得了第3名,在识别比赛中获得了第4名。为了方便日后参考,我将解决方案发布在两个论坛上,尽管内容上有很大的重叠。
Qishen 和我是2020年识别比赛第3名团队(连同 @garybios 和 @alexanderliao)的成员。去年我们开发了一个强大的模型,即带有动态边距的子中心 ArcFace(sub-center ArcFace with dynamic margins)。
今年两场比赛同时进行,截止日期更紧,所以我们很大程度上沿用了去年的流程,但采用了更新的架构和更好的后处理方法。我们在检索和识别比赛中以相同的方式训练模型,但在最终提交时选择了不同的模型组合和后处理方式。
我们主要遵循去年的解决方案(详情见这里)。配方包括:
在过去的一年中,有不少新的 SOTA 图像模型发布, notably EfficientNet v2, NFNet, ViT, Swin transformers。我们使用去年的配方训练了所有这些新模型。对于 Transformers,我们使用了 384 的图像尺寸。对于 CNN 模型,我们使用了逐渐增大的图像尺寸(256 -> 512 -> 640/768)。
我们发现 CNN 和 Transformers 在本地 GAP 分数(识别指标)上表现相当,但 Transformers 在本地 mAP(检索指标)上明显更高,即使使用较小的 384 图像尺寸也是如此。我们认为这是因为 Transformers 是基于补丁的,可以捕获更多的局部特征及其相互作用,这对检索任务更为重要。
除了新模型,我们还通过微调重用了一些去年的模型,主要是 EfficientNets。
我们的最终集成由 7 个模型组成:3 个 Transformers,2 个新 CNN 和 2 个旧 CNN。它们的规格和本地分数如下。旧 CNN 的 CV 分数未显示,因为它们存在数据泄露(去年的折叠划分不同)。
向集成中添加更多 CNN 会损害检索分数但有助于识别分数——我们识别比赛的最佳集成多包含 4 个 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 | 512 | 30 | 0.7021 | 0.3565 | |
| EfficientNet v2l | 640 | 40 | 0.7129 | 0.4158 | |
| EfficientNet B6 | 512 |