《Learning Features and Parts for Fine-Grained Recognition》论文阅读笔记
Recognition》论文阅读笔记)
相关工作
A.基于部件的表示
许多细粒度识别技术都涉及基于部分的表示,其灵感来自于对通用对象识别的研究。一些明确的模型姿态,而其他使用较少结构化的方法。通常情况下,部件检测器是使用手工标注的关键点来学习的。我们的方法与之前的大多数工作不同,因为部分检测器是在零监督的情况下学习的,这意味着我们可以处理多个域,包括只有类标签和边框可用的域。
B.特征学习
特征学习是一种很有前途的方法,可以产生强大的外观表示。许多工作都集中在编码低级的特性上,例如SIFT或HOG或挖掘判别模板。卷积神经网络在大规模分类和人脸识别上的成功表明,可以直接从像素中学习到强大的特征这启发我们采用卷积神经网络(CNNs)进行细粒度识别。注意,与在ImageNet上训练功能的DeCAF系统不同,我们不使用额外的数据执行任何预训练。这需要照顾在选择网络架构和需要使用更大的各种各样的数据变形为了应对,增加训练集的规模。据我们所知这是第一次深层神经网络用于细粒度识别没有任何形式的领域适应气候变化。
C.其他方法
除了上述方法外,分割也被发现在细粒度识别任务中特别有用。另一项研究关注于让人类进入的循环。这些是互补的方法,可以与我们的方法共同使用,我们不会试图将这些额外的线索纳入我们的工作中。
方法
A.概述
我们的表现建立在我们需要本地化部分然后比较它们的外观的直觉上。 Fig. 2给出了该算法的概述。其主要思想是要有一种表示法,可以方便地比较相应部件的外观特征。这导致了ELLF:局部学习特征的集合。假设我们有一个包含n个带有相关部件检测器的对象部件的集合,目前我们假设这些部件已经经过了训练。假设我们有一个包含n个带有相关部件检测器的对象部件的集合,目前我们假设这些部件已经经过了训练。给定输入图像(Fig. 2(a)),设ai为第一部分的外观,由卷积神经网络描述(Fig. 2(b))。ELLF的表示是简单的(a1, a2,…)Fig. 2©。注意,由于视图点的改变和遮挡,并不是所有的部分都必须被检测到。当未检测到第一部分时,将外观ai设置为零,防止分类器(Fig. 2(e))使用该部分的任何信息。用以下图像表示然后,我们可以训练分类器(如线性支持向量机)来执行细粒度分类。对我们来说,部件的集合是在一个无监督的框架中确定的,它们是使用卷积神经网络的特征来描述的。
使用ELLF的一个可取的特性是它比较每个部分的外观,并将相似性聚合在一起。这不同于空间金字塔匹配等传统的对象识别方法其中线性核比较的是在相同空间位置而不是同一部分的外观。因此,SPM对于不同姿态的物体不是最佳的,因为所有的部分不一定是可见的,或者在图像的同一位置。
既然我们已经定义了ELLF,我们继续描述产生ELLF的过程。有两个关键组成部分:学习辨别性外观特征和发现部分。
B.特征学习
细粒度识别的一个特点是,它需要丰富而富有表现力的外观描述符,因为像SIFT或HOG这样的传统描述符可能无法在细粒度类的区别性和不确定性之间取得正确的平衡。为此,我们采用使用神经网络对特征描述符进行端到端训练的哲学,允许描述符适应单个类别的特性。据我们所知,这是首次将深度特征学习应用于不需要额外数据预训练的细粒度识别。我们证明,即使在相对较小的数据集,特征学习可以有效的细粒度识别。
特别地,我们使用卷积神经网络接收像素作为类的输入和输出概率的。我们修改了Krizhevsky等人的架构,以适应我们的小尺度数据,我们发现这对于防止过拟合非常重要。网络由两个卷积层和三个具有软最大损失的完全连接层组成。在三维矩阵的形式中每个卷积层与三维输入矩阵上的一组滤波器执行卷积。由于过滤器参数是从数据中学习的,网络有潜力产生针对特定领域的特征描述符。更多细节见第IV-A节。
经过训练后,我们去掉了完全连接的层,并使用两个卷积层作为像素级外观描述符的生成器。请注意,为了保持空间信息,有必要在此时切断特征——完全连接的层中的特征是完全无序的。为了获得一个区域的描述符(例如部件检测器给出的边界框),我们对该区域内的描述符执行最大池化。因此,一种解释我们的部分的方法是在CNN架构中使用可移动的池区域。
C.发现部分
零件发现的目的是获得一组可靠的零件检测器。我们的关键贡献是一个完全无监督的部分发现算法。之前的工作依赖于手工注释关键点来训练零件检测器。这里我们完全绕过了人工注释,它的优点是可以扩展到非常大规模的数据集。
在没有任何注释的情况下,我们如何训练部分检测器?关键的观察是,具有相同姿态的物体通常可以通过局部低层次线索自动发现。通常,对齐图像之间的姿势是一个困难的问题,因为即使在同一类别中,外观也可能有很大差异。然而,局部定位主要依赖于对物体整体形状的理解,而不需要仔细观察局部细节——模糊的狗的图像可能会使你无法识别其品种,但可能会为你提供足够的信息来进行局部定位。
这种直觉激发了我们的部分发现过程。我们首先发现一组具有相似姿态的对齐图像。假设一个集合内的图像是对齐良好的,那么相同的部分在不同的图像中有相似的位置。因此,我们可以使用来自相同空间位置的补丁作为正示例,使用来自其他地方的补丁作为负示例来训练部件检测器。Fig. 3(上)说明了这种直觉。我们现在详细说明各个步骤。
1)发现对齐的图像:第一步是发现一组对齐的图像。我们使用随机算法。我们随机选取一幅种子图像(Fig. 3(a)),然后根据多尺度提取的HOG特征检索最近邻。为了帮助减少背景的影响,我们在提取HOG特征之前执行GrabCut,用对象的边界盒初始化前景模型,这通常是细粒度识别中给出的。这些前景分割集中在图像之间进行比较。我们重复这个过程,随机采样多个集合,并使用每个集合生成多个部分检测器。当有合理数量的训练图像可供选择时,该方法通常会得到一组姿态几乎相同的图像(Fig. 3(b))。
2)部分选择:接下来我们选择要检测的部分,因为分割出的前景中的每个位置都可以是潜在的部分。为了解决这个问题,我们随机抽取大量大小不一的区域作为候选区域(Fig. 3 ©)。然后我们选择能量最高的部分,通过HOG在图像上的方差来测量(Fig. 3(d))。这有助于防止选择缺乏鉴别信息的部分——在图像之间完全不变化的部分对鉴别没有帮助。每次选择一个部件时,我们都会从候选列表中删除与已选择部件(在我们的实现中设置为15%)重叠超过固定阈值的任何部件。这有助于防止学习给定的一组对齐图像的冗余部分。
3)检测器学习:然后我们学习每个选择部分的检测器(Fig. 3(e))。具体来说,设为对齐后的图像,为对齐后的图像表示所选部件的位置。在图像对齐良好的假设下,我们对零件检测器的学习目标是找到一个使铰链损失最小化的模板
其中提取图像在正patch位置处的特征,变量是图片上的负patch,随机选取,使其不与位置的正patch重叠。
我们现在放宽了图像是良好对齐的假设,以鲁棒的错位。而不是有固定的位置
加上,引入了一个潜变量表示图像上该部分的真实位置。我们的学习目标是
我们在所有可能的位置上寻找最佳匹配,目标可以在优化之间交替进行优化与固定和优化与固定,类似于引入的潜在支持向量机优化。我们在原始位置为上初始化了潜变量。也类似,我们用空间先验 增强特征惩罚那些离原始位置为太远的patchs。其中为位置z的坐标,为原始位置的坐标。这有效地定义了相对于原始位置的真实位置的高斯先验,防止零件探测器在偶然出现类似零件的区域冒用,同时仍然允许零件自己移动,以最佳地匹配每个图像中的实际零件位置。
在检测时,我们在检测器响应上设置一个阈值 。如果响应低于 ,则认为该部分在图像中不可见,其外观描述符将被设置为零,从而防止分类器接收到关于不存在的部分的任何信息。
4)部件集合:为了获得部件检测器集合,我们重复了多次发现过程。值得注意的是,整个发现过程的随机化可以帮助提高识别算法的鲁棒性。我们将在实验中演示,增加随机采样部件检测器的数量可以提高性能。请参见Fig. 3(底部)以获得更多发现管道部分的示例。