VOLO的整体流程很简单:主要分为两个阶段,第一个阶段使用outlookattention + MLP获取图像特征,第二阶段使用普通attention + MLP获取图像特征,对此时获取的图像特征再执行classAttention提取分类token特征,最后进行类别划分。
1. outlookattention
outlookattention的本质就是把多层feature map 按照卷积核大小,通道长度,划分为多个柱状体(unfold),其中一个柱状体的示例就是下图中绿色框的中间部分。对单个柱状体基于通道进行attention操作,获取通道间的关系特征(softmax操作),然后在作用到原始feature map上,计算同一个feature 不同位置间的关系,最后再把柱状体合并成原始的feature map(fold操作),这样输入和输出的高度,宽度,通道,就完全一致了。
OutLooker的提出主要基于以下两点:
a.每个空间位置的特征都具有足够的代表性,可以生成聚集了局部邻近信息的注意力权重
b.密集的局部空间聚合信息可以有效地编码精细层次的信息
2. transformer attention
就是基础的基于所有通道间的attention处理。
3. class attention
是把所有非class attention的特征信息,作用于class attention,为了获取更多的图像特征信息。最后生成class attention
4. 全连接层
拟合分类类别数量。