一、介绍
本文简单介绍一下一篇细粒度文章的大致思想,题目是Diversified Visual Attention Networks for
Fine-Grained Object Classification(多元可视注意力细粒度分类网络),缩写为DVAN。文章不是很新,但通篇读过后觉得值得总结。
二、引入了什么
下图中,不同鸟类的通过视觉可区分的部位主要是眼镜、胸部和翅膀,通过DVAN可以自动的发现这些视觉可区分的部位,从而实现正确分类不同品种鸟类。
DVAN引入了一种能力——能够自动发现可以区分不同种类目标的一个或者多个局部区域,并对这些区域进行特征提取和分类,这是该文的贡献。思想很简单,区分两个外观相似的对象,需要从一个甚至多个局部区域做出判断,也比较符合人的认知。
三、整体框架
DVAN的整体框架如下图所示。主要由四个部分构成:
- 注意力画布生成。从输入图像中采样多个不同尺度和大小的子区域。
- 特征学习。通过CNN网络学习第1步中采样的图像子区域的特征。
- 多元注意力学习。使用LSTM,借助输入的CNN特征映射学习多个注意力映射,每个注意力映射都有侧重点,并通过注意力映射动态池化CNN特征映射。
- 分类。LSTM每个时间步都会预测图像的类别输出,所有时间步的平均为最终预测结果。
三、注意力画布生成
画布生成从原始图像的不同位置(通过横向、纵向、步长控制)crop出多个尺度和大小不同的子图像,图像中所有的可辨识区域基本能够覆盖,如下图所示。最后将所有的子图像按照尺度从小到大排序(小尺度侧重目标整体,大尺度侧重目标局部),并统一resize为224x224,输入特征学习模块。
四、多元注意力学习
选择时序模型的原因是同时发现所有可辨识区域很困难,但是通过逐步学习的方式就很简单,时序模型就比较适合做这个;而选择LSTM的原则是它有记忆功能,可以防止网络将之前学习到的知识遗忘。参考:理解 LSTM 网络
该模块结构如下所示.上半部分是LSTM的原生结构,输入是 ,下半部分是注意力映射预测与 的生成, 是特征映射和注意力映射相结合的产物,作为LSTM每个时间步的输入,LSTM每个时间步的输出是 ,将用于后续分类模块的输入。
五、模型训练
DVAN的训练分为三个步骤:
- 微调在ImageNet上预训练的CNN模型,提取图像特征用于后续注意力的定位;
- 固定学习到的CNN特征,训练多元注意力学习模块;
- 整体训练CNN特征提取模块和多元注意力模块;