赞
踩
发布时间:2017年
细粒度图像分类与传统图像分类而言,细粒度图像分类中所需要进行分类的图像中的可判别区域(discriminative parts)往往只是在图像中很小的一块区域内。
在传统的图像分类网络中,无论图像中的重要判别区域占整个图像的比重有多大,都只会对整张图片一视同仁的提取特征。因此,在一些判别区域占图像比重较小的一些图片,进行同样的特征提取及处理,大量不关注的background信息会被训练进去,增加了图像分类的难度,降低分类的准确度。
引入细粒度图像分类这一概念,就是为了解决这样的问题,关注图像中细小的差别,实现更精确的图像分类:如蔬果中更细小的品种分类,草木的病虫害分类等。目前常规的细粒度图像分类的方法为,先得到关注目标的区域,再对该目标进行细分类,从而使网络更了解分类物体。
细粒度图像分类的难点主要包含两方面:
1、discriminative region localization;要能准确定位到那些关键区域
2、finegrained feature learning from those regions。要能从那些关键区域中提取有效的信息
目前针对细粒度图像分类的训练方法主要有两类:强监督学习和无监督学习。
强监督学习
额外添加更多的bounding-box标注信息加入网络进行强监督学习,使网络能学习到目标的位置信息。
不足:
(1) 需要大量人力资源进行图像的标注。
(2) 人力标注的信息并不一定准确就是目标真正需要关注的区域。
弱监督学习
弱监督并不是无监督学习,而只是根据基本图像分类网络一样,只需要给出图像的类别即可。由网络通过无监督学习出判别区域的位置,再特别关注此区域的特征差异,识别出目标的类别。
常用方法有:基于注意力(Attention)机制的图像分类,通过分析特征图中最突出的部分得到判别区域的位置,如本文的RA-CNN
整个网络分为3个尺度,各尺度子网络的结构相同,参数不同。上一子网络的卷积特征经过注意力建议网络(APN)得到区域注意力,注意力区域缩放之后经过双线性插值继续作为下一子网络的输入,递归执行,最终将三个子网络的卷积特征进行融合(标准化,然后拼接),融合之后的特征经过全连接层和softmax层实现分类。
网络的损失函数由两部分组成:尺度内分类损失和尺度间排序损失。
尺度间排序损失作为训练APN的监督信息,可以保证网络在无人工标注的条件下自学习到有判别力的区域注意力。
样本损失函数定义如下:
尺度间排序损失定义如下:
Lrank表示pairwise ranking loss,可以看FIgure2中红色的大括号,第一个scale网络和第二个scale网络构成一个Lrank,同样第二个scale网络和第三个scale网络构成另一个Lrank。
输入中
p
t
(
s
)
p_t^{(s)}
pt(s)中的
t
t
t 表示真实标签类别,
s
s
s 表示scale,因此比如
p
t
(
2
)
p_t^{(2)}
pt(2)表示第二个scale网络的真实标签概率(Figure2中最后预测出来的概率条形图中的绿色部分)。从Lrank损失函数可以看出,当更后面的scale网络的
p
t
p_t
pt大于相邻的前面的scale网络的
p
t
p_t
pt 时,损失较小,通俗讲模型的训练目标是希望更后面的scale网络的预测更准。margin参数在实验中设置为0.05。
使用在Imagenet上预训练过的相同的VGG网络初始化分类子网络
在原图像上搜索最后一个卷积层响应值最高的区域,以同样的方式在其他尺度获得一个更小的区域,用这些选择的区域预训练区域建议网络(APN)
迭代训练分类子网络和区域建议子网络,首先固定APN网络,在三个尺度优化softmax损失,直到收敛。然后固定分类子网络的参数,优化排序损失(ranking loss)。两部分的学习过程是迭代的,直到两种损失都不再改变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。