keywords: 细粒度图像分类; 计算机视觉; CVPR2017
一个月前读了使用注意力机制解决弱监督学习的细粒度图像分类论文 -
Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition
趁着电脑正在训练的时间,总结一下。
细粒度图像分类
传统的图像分类是判断识别图像的种类,给定一张图片,判断图片中的物体是猫还是狗;
而细粒度图像分类,要在同属于一个类别的中,判断更细的类别,给定一张图片,要判断图片中的物体是什么种类的猫或者是哪一种类的狗。
因此,细粒度图像分类要更加困难,它的主要挑战在于
- 准确判定关键识别区域
-
提取有效的细粒度特征
这篇论文的主要贡献就在于,基于注意力机制,将识别区域判定与细粒度特征提取结合起来,相互促进。重要特征分布密集的区域,很可能是关键识别区域,而进一步精确的判定关键识别区域,也将促进特征的提取。
注意力机制
人类的视觉机制,将有限的注意力分配给重要的部分,在这张图片里,婴儿面部,文章标题,段落首句,商品和价格信息需要更多的注意力资源。
RA-CNN
论文基于注意力机制,定义三重网络,从上到下,通过注意力提出子网APN不断放大判定区域,并定义两两配对的 Lrank 损失,迫使放大之后的子网要优于放大之前的子网。
注意力提出子网APN
定义三元组
(tx, ty, tl)
,表示裁剪区域的中心坐标和区域长度,APN表示为
相应的,裁剪坐标为
裁剪之后的图片经过放大,作为下一子网的输入。为了使APN可以被反向传播优化,裁剪过程使用二维方脉冲函数实现
其中,M(·)
为二维方脉冲函数,定义为
当 k 是一个非常大的正数时,h(x) 的值将仅由 x 的正负决定,
X>0, h(x)=1; X<0, h(x)=0;
此时,当且仅当 tx(tl) < x < tx(br) 且 ty(tl) < y< ty(br) 时,M=1,否则,M=0, 通过掩码矩阵 M,即可实现图片的裁剪。
优化策略
- 使用VGG19作为每个子网的特征提取网络,使用softmax产生类别概率,并使用交叉熵损失优化子网;
- 使用 Lrank 配对损失优化 APN 注意力提出过程,迫使放大之后的子网优于放大之前的子网
- 交替优化分类子网和 Lrank 损失,直到两部分同时收敛