2.2 架构之一:纯CNN架构
对于这2个任务方向,作者开发了基于深度学习的网络架构来学习图像描述符,一个是学习高维特征向量以区分更多的类,同时允许类内的可变性。尽管在之前的工作中,全局和局部地标描述符都是分别训练的,并且预测也是以两阶段的方式组合进行的。但也有学者尝试在单一阶段模型中融合全局和局部描述符。
当给定推理条件受限时,作者将重点放在单个图像描述符的单阶段模型上。然而,建模工作将局部特性作为重点,因为它们对地标识别特别重要。
在下文中,提出了2种特别适用于具有噪声数据和高类内变化率的大规模图像识别/检索的体系结构。从概念上讲,两者都使用了基于EfficientNet的卷积神经网络(CNN)和Sub-Center Arcface with dynamic margin(优于经典ArcFace)。
在进行训练时:
- 1、作者将所有图像调整为正方形大小,并应用shift、scale、rotate和cutout。
- 2、使用Adam优化+权值衰减+学习率(每个模型学习率不同)
- 3、遵循在一个warm-up epoch内使用余弦退火学习率机制。
作者基于EfficientNet B5实现了前部分讨论的DOLG模型,但是也做了一些改进来提高性能。
- 使用在ImageNet上预训练的EfficientNet编码器;
- 在第3个EfficientNet块之后添加了局部分支,并使用3个不同的空洞卷积提取1024维局部特征(其中每个模型的空洞率不同),Cat输出的3个空洞卷积局部特征,并利用Spatial Attention进行处理得到最终的1024维的局部特征;
- 然后,将局部特征与全局特征进行正交融合(全局特征是由第4个EfficientNet块输出并GeM池化得到的1024维特征);
- 使用平均池化操作聚合融合后的特征,然后被输入一个由FC-BN-PReLU组成的Neck输出一个512维的单一描述符。
为了训练,这个单一的描述符被输入到一个Sub-Center(k=3)的ArcFace Head,具有预测81313类的Dynamic Margin。
DOLG-EfficientNet模型是按照3个步骤训练的:
- 首先,在GLDv2c上使用小图像对模型进行10个epoch的训练;
- 然后,使用中等大小的图像在噪声更大的GLDv2x上继续训练30-40个Epoch;
- 最后,使用GLDv2x对大尺寸图像对模型进行微调。
2.3 架构之二:Hybrid-Swin-Transformer with Sub-Center Arcface
第2种架构利用了最近在使用Transformer解决计算机视觉问题方面的进展。在CNN上附加了一个Vision Transformer形成了Hybrid-CNN-Transformer模型。
这里,CNN部分可以解释为一个局部特征提取器,而Transformer部分可以看作一个图神经网络将局部特征聚合到一个单一的向量。
具体步骤:
- 1、使用EfficientNet提取特征;
- 2、将第一步输出的特征进行Flatten操作,以适应Transformer的输入;
- 3、生成一个与Flatten Feature相同shape的Position Embedding与Flatten Feature进行add操作;
- 4、将Virtual Token与add后的特征进行Cat操作;
- 5、将cat后的特征作为输入送入Swin-Transformer Block;
- 6、取出Virtual Token对应位置的描述符送入Neck(Conv-BN-PReLU);
- 7、将512维的描述符送入Sub-Center ArcFace With Dynamic Head(81313类)进行分类和loss回传。
当将在ImageNet上预训练的EfficientNet模型和Swin-Transformer Block组合在一起时,一个详细的训练方法是很重要的,以避免溢出和nan,特别是在使用混合精度时。
作者使用以下4步方法:
- 第1步:初始化Transformer-Neck-Head部分,使用GLDv2c的小图像进行10个Epoch的训练;
- 第2步:将Transformer原有的Patch Embedding换成2个EfficientNet Block,冻结之前的Transformer-Neck-Head部分,并在中等大小的图像上对新添加的CNN部分进行一个Epoch的训练;
- 第3步:使用GLDv2x对整个模型进行30-40个Epoch的训练;
- 第4步:在CNN和Swin-Transformer之间进一步插入一个预训练的EfficientNet Block,并使用大图像和GLDv2x对整个模型进行微调。
2.4 Ensemble
获奖的模型是8个模型的集合,包括3个DOLG和3个Hybrid-Swin-Transformer模型,它们具有不同的EfficientNet主干和输入图像大小。此外,作者还按照谷歌2020地标性识别比赛第3名团队提供的代码和说明对2个EfficientNet模型进行了训练。
表1给出了主干、图像大小、使用的数据和结果得分的概述。对于一些模型,作者没有在最后的训练步骤中增加图像的大小,而是将第1卷积层的stride从(2,2)减小到(1,1),这对于较小的原始图像尤其有利。
2.5 推理预测
对于这2个任务,作者使用了一种预测的检索方法,其中对于每个查询图像,使用L2归一化图像描述符之间的余弦相似度,然后在索引图像数据库中搜索最相似的图像。
在识别任务中,将训练集作为索引图像数据库,并使用最相似列车图像的地标标签作为对给定测试图像的预测。相比之下,为了检索最相似的图像,预定义了一个索引图像数据库。为了增加更多的类内多样性,作者使用完整的GLDv2和来自WIT的地标图像扩展了训练集。
在检索任务中,作者进一步扩展了2019年检索竞赛的索引集。
2.6 检索的后处理
为了在给定的查询图像中检索出最相似的索引图像,作者使用每个模型的512维描述符的余弦相似度对所有索引图像进行排序,从而得到查询索引对分数。
在第一步标签查询和索引图像使用余弦相似度给定的训练集。然而,与Hard Rerank不同的是,作者使用了一种 soft up-rank 过程,即如果查询和索引图像的标签匹配,则将top3索引序列余弦相似度添加到查询索引得分中。
当额外执行一个 soft down-ranking 的过程。如果查询图像和索引图像的标签不匹配,通过减去0.1倍的前3个索引序列余弦相似度来实现向下排序。对于集成中的每个模型,使用上述方法提取每个查询图像的top750索引图像id和相关分数,并将top100作为最终预测之前,对每个图像id进行求和,从而得到6000个分数。
2.7 识别的后处理
使用集成为每个训练和测试图像提取8个512维向量。然后对每个模型类型(DOLG-EfficientNet、Hybrid-Swin-Transformer、pure EfficientNet)的向量进行平均,得到3个512维的向量,然后将它们Cat起来形成一个1536维的图像描述符。利用余弦相似度为每幅测试图像找到最接近的训练图像,并进行后处理重新排序和非地标识别,从而得到最终的预测结果。
3可视化检索结果
4参考
[1].Efficient large-scale image retrieval with deep feature orthogonality and Hybrid-Swin-Transformers
5推荐阅读
苹果公司提出Mobile-ViT | 更小、更轻、精度更高,MobileNets或成为历史!!!