问题:
细粒度分类 (FGVC) 是为了解决“类内分类”问题,有别于猫狗分类,它要解决的是 [这只狗是萨摩还是哈士奇] 这种问题。
方法:
通过端到端训练,使注意力关注的区域更加细节化和多样化(关注不同的部位);然后在粗粒度预测之后,将注意力提取的区域输入网络,进行细粒度预测,预测结果为平均值。
训练过程
A 弱监督注意力学习
原始图片通过主干网络提取特征,产生的特征图F为H x W x N,表示高、宽、通道数。然后通过卷积操作获得注意力图 A为H x W x M,形式化表示:
然后提出了一种特征图和注意力图融合方式,Ak表示注意力图的一个通道,然后和特征图所有通道分别进行元素相乘,得到M个加权特征图,最后通过GAP得到一个特征矩阵。
B、注意力指导数据增强
在注意力图中随机选择一个通道的特征图做归一化操作,用来增强数据。
这样就可以通过这个归一化后的特征图做为Crop Mask了,大于某一个阈值的元素置1,小于置0,然后进行裁剪,把1都包含起来,上采样到原图大小,输入网络进行训练,让网络关注细节部分。
Drop 操作就是上面反过来,希望注意力不要只集中在物体的某个部位,让网络多关注一下,其他的部位,两种操作如下图所示,一个是希望关注细节,一个是希望不要只关注一点。
预测过程
原始图片输入网络得到预测结果和注意力图,然后注意力图取平均值而不是和训练过程一样随机选择某一个通道,提取注意力区域,上采样原图大小,输入网络进行预测,预测结果取平均值。