POOF:Part-Based One-vs-One Features for Fine-Grained Categorization,Face Verification,and Attribute

基于部位的一对一特征用于细粒度分类,人脸确认和属性估计

摘要

我们提出一种方法(基于部位的一对一特征,POOFs)可以自动地从一组特定领域的带有特定位置和类别标注的图片集中学习大量不同的具有高区分性的中级特征。每一个特征都能够根据对象特定位置的表观特征来区分两个不同的类。通过与加利福利亚理工学院UCSD鸟类数据库的最新最先进结果和LFW库上的最好的人脸确认结果相比较,我们证明了这些特征用于细粒度视觉分类特别有效。最后,我们证明了POOFs在训练数据不足时具有明显的优势。

1.       引言

在过去几年里,细粒度视觉分类已经成为一个流行的领域。不同于区分基本类别的分类,比如区分椅子和汽车的基本类别识别,细粒度分类问题要求我们区分下属范畴类别,比如区分办公室椅子和厨房椅子。对细粒度视觉识别相对透彻研究的例子是种群(种类)识别。

大部分精确的细粒度视觉识别都是基于检测和提取对象特定部位的特征。比如在狗类识别中,可能需要从鼻子和耳朵根部提取特征。人脸识别是细粒度识别的一个极端的例子,在这里,子类就是单个实例,最好的人脸识别方法从通过人脸标记(如眼角)确定的区域提取特征。直观地,我们希望细粒度视觉分类用基于部分的方法,因为子类的差别是细微的,在全局的图片级的特征中难以察觉。细粒度视觉分类可以很方便地使用基于部分的方法,因为同一个基类里边的对象通常具有对等的部分,允许较简单的比较。比如,所有的狗都有鼻子,在狗类识别中,试图检测和提取鼻部特征就很自然了。在基类分类中,这种方法很困难,因为在狗、汽船和订书机的实例之间没有自然的对应部分。

机器视觉中已提出了大量的标准特征,包括SIFT,SURF,HOG,LBP等。一个基于部分识别的简单的方法就是在局部提取这些特征并构建分类器。然而,通常情况下,这些特征并不可能在所有的问题中都是最优的,最优特征可能因领域(识别鸟类的最佳特征和识别狗类的最佳特征不同)和任务(人脸识别的最佳特征和性别识别的最佳特征不同)的不同而不同。

在这项工作里,我们构建了用于学习大量中级判别特征的框架——POOFs,专门针对特定领域和特定部分。特征学习过程如图1所示。我们从标注了类别和部位的同一大类的大量图片数据集开始。对任意一对子类,任意一对部位,我们从覆盖这些部位的网格中提取低级特征,然后训练一个线性分类器用于区分这两个子类。(在实验中,我们采用梯度方向或颜色直方图作为低级特征。)分类器给不同的网格赋予不同的权值用于指示这些网格在子类分类中的区分能力。基于这些权值,我们固定特征的支持区域,然后重新训练分类器去寻找有区分度的投影方向。两部分的联合(低级特征,学习得到的支持区域)和最后的投影形成了一个POOF,对具有这两个部位的测试图片产生一个标量的分数(分类器的决策值)。这个分数就是我们的中级特征。如果我们的数据集没有部位标注,最直接简单的方法是采用整个图片或者物体范围内的网格生成OOFs而非POOFs,但在这里我们不分析这种方法的表现。

本文有如下贡献:

l  我们提出一种全自动的构建POOFs特征库的方法,用带有类别和部位标注的图片集训练出具有判别特性的中级特征。

l  我们证明了POOFs特征极大地超越了目前Caltech-UCSD库上的最佳结果,分类正确率在子类带有部位标注时达到73.30%,是之前最好水平的4倍。

l  我们证明了POOFs特征能减少对训练图片的需求。POOFs特征在人脸领域的任务诸如属性标记中也是极其有效的中级特征。

虽然根据定义,一个POOF特征仅能区分两类,我们发现POOFs组不仅能在前面提到的数据库上有效地分类,还能处理同领域的其他任务。我们将展示鸟群和人脸这两个领域的例子。

2.       相关工作

最近已经出现了大量细粒度视觉分类的工作。实例级的识别可被视为最细粒度分类,在人脸识别和图片搜索中最为常见。人脸识别通常采用基于部位的方法,直接从标注点提取特征,或者先执行基于部位的对齐操作,然后在固定位置提取特征。在特定领域的分类中有一种方法类似于我们提出的方法,在参考集中训练训练一对一的二进制分类器,作为该领域的区分特征。在上述所有方法中,提取特征的位置和区域形状都是手工设计和调整的。在我们的方法中,这些特征提取区域是全自动选择的,进而使得该方法可以很容易地用于任意领域。

实例级的分类向上移动一步,就是子类分类。子类分类是种群(种类)识别中研究最多的一个问题。许多作者都报告了在Caltech-UCSD鸟类数据库上的鸟类识别结果,或多或少地采用了基于部位的思想,[8,32,33,35]采用不同的方法试图在没有直接部位标注的情况下寻找图片中具有区分特性的部位,但是并不能达到基于部位的监督方法的准确率,[4,26]提出一种交互方法,系统向用户询问具有最佳区分性的部位位置。[9]定义了两个粗略的部位(头和身体)用来对齐图片,但并未采用小尺度的部位位置来定义特征。此外,细粒度识别工作在树类、花类、蝴蝶类和狗类识别中均有展示。

虽然很多识别工作延续使用固定的特征,如SIFT,HOG和LBP,依然有一些工作,比如我们的工作,在某种程度上尝试从数据集中学习特征。这类方法的一个分支是利用属性,[14]和[15]基于带有属性标注的训练集训练属性分类器,然后将这些属性分类器用于新类识别,分别用于人脸识别和动物种群识别。不同于我们提出的POOFs,在这两种方法中,属性都是手动选择的。[8]很接近我们的工作,基于分层的全图分割,自动提取区分属性和它们的支持区域。但是,在区域分割中,他们似乎只寻找图片中那些单色区域对应的属性。

除细粒度分类领域外,这里也有些学习区分特征的工作。[11]采用线性判别分析移除HOG特征的相关性以提高准确率。Brown等人[5]描述了一种正式的优化方法,用于从匹配图片块集中学习参数化的描述子,这种方法的一个凸方程在[24]中被提出。这些方法将特征的支持区域限定为一个或几个对称形状,而我们的方法允许任意形状的描述子,取决于我们的基本特征网格的分辨率。

3.       基于部位的一对一特征

我们的方法要求输入研究领域的带有类别和部位标注的图片参考集。并不需要图片中的所有部位都被标注。我们的输出是区分特征集——我们称之为POOFs,适用于该领域的很多任务。如果手边的任务是监督分类,那么参考集可能只是简单的训练集,但是并不要参考集。也可能是独立的带有不同于分类任务中的类别标注的标注数据集。我们将在4.2和4.3中举例说明。

给定一个参考集,POOFs特征的学习过程是完全自动的。该方法如图1所示,目标是构建具有判别性和多样性的特征集。参考集包含N类图片{1,…,N},每张图片标注了P个部位。单个POOF的学习过程如下:

l  选择两个参考类,

l  一个部位用于特征提取,

l  另一个部位用于对齐,

l  一个低级特征,b,可从图像窗口中提取。在目前的执行中,我们采用两个基本特征:梯度方向直方图和颜色直方图。

我们用表示POOF的构建参数,该函数从领域内的任意图像中提取一个单一的标量分数,联合形成一个强有力的特征空间。我们通过下面的步骤提取

1.             通过参考图片类i,j学习POOF。首先排除没有部位f或a的图片,然后对剩下的所有图片执行相似变化,将f和a部位的点变换到固定位置。变换后的图片被裁剪为包含f和a部位所有点的矩形区域。根据领域图片中f和a点的距离是近或者远,将学习一个细粒度或者粗粒度的特征。

2.             我们将裁剪后的图片划分为若干网格,然后从每一个网格中提取基本特征。我们做多重划分,每次划分的网格尺寸都不同,所以提取的特征是基于不同尺度的。

3.             对每一尺度的网格划分,我们用串联的网格基本特征训练一个线性支持向量机用来区分i类和j类。

4.             训练好的SVM权值向量给每个网格的基本特征的每一维度赋予一个权值。对于每次网格话费呢,特征向量对应的网格维度赋予最大权值。通过给这些权值设置阈值,我们在对齐后的图片上获得一个掩码,该掩码定义了那些最能区分i类和j类的网格。

5.             以包含部位f的网格为种子,我们在每一次网格划分中需找大于阈值的最大连通区域。这将在对齐后的图片上形成一个掩码,在部位f周围定义每个尺度的区分区域。通过限制该区域为f的连通区域,我们使得POOFs对不同的区域具有不同的特征部位,支持多样性。

6.             相关的低级特征是在所有网格划分中掩码指示的基本特征的串联。利用这个特征和i,j类的对齐图片,我们训练另一个线性SVM。该SVM学习一个带掩码的,多尺度的投影,将局部特征投影到一个单一维度。这个投影就是

为了从一张带有部位标注的新图片中提取,我们再次执行上面的步骤。新图片通过相似变换将部位fa对齐到标准位置,然后从每个尺度的掩码对应的网格中提取基本特征。结果向量通过SVM投影,得到一个标量投影值——POOF分数。

注意,交换ij需要简单地取反特征的符号(在训练SVM使,i代表正样本)。为避免冗余,我们要求i>j。与此相反,部位f和部位a在构建POOF时有不同的角色,所以同时具有

3.1   执行细节

在我们当前的实现中,我们采用下面的设置:

l  在对齐中,两个部位被置于水平相距64像素的地方。裁剪的中心是两部分的中点,高维64像素,宽为128像素。

l  我们采用两种尺度的网格划分来提取基本特征,8*8网格和16*16网格。

l  我们采用两个基本特征。其一为梯度方向直方图。该特征源于两个变量。对gradhist变量,我们对每个网格提取一个8级的梯度方向直方图,然后级联所有网格的直方图(或者在中,只考虑掩码指示的网格)。对于HOG变量,我们采用Dalal和Triggs的方向梯度直方图特征[7],Felzenszwalb等[10]的改进版,包含了降维步骤和符号梯度直方图与无符号梯度直方图的级联。其中,包含9级无符号梯度直方图,18级符号梯度直方图,和4个归一化的常量,总共构成每个网格31维特征。所有这些特征级联起来构成一个gradhist变量。

第二个基本特征是颜色直方图。我们采用与梯度方向直方图相同的网格划分,给每个像素指定32种中心颜色中的一种,形成一个长度为32的直方图。然后,与梯度直方图级联。中心颜色通过在对齐并裁剪后的图片上执行基于RGB色彩空间的k均值算法求得,所以中心颜色是f和a的函数。

对于SVM权值的阈值,我们采用平均绝对值。这能有效地影响步骤4中一半的区域的掩码(通过严格限制该区域为部位f的连通区,可进一步简化)。

你可能感兴趣的:(机器学习)