前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Improved Object Categorization and Detection Using Comparative Object Similarity

Improved Object Categorization and Detection Using Comparative Object Similarity

作者头像
狼啸风云
修改2022-09-03 20:21:13
1.2K0
修改2022-09-03 20:21:13
举报
文章被收录于专栏:计算机视觉理论及其实现

目录

摘要

1、简介

2、相关工作

3、具有比较相似性的学习目标模型

3.1、结合比较目标相似性来训练内核机器进行分类

3.2、结合比较目标相似性来训练基于部件的目标模型进行检测

3.2.1、训练

4、实验

4.1、目标类的实验

4.1.1、实验设置

4.1.2、特征选择和参数

4.1.3、Baseline

4.1.4、AUC类似的提升

4.1.5、相似度可以提高通信

4.2、检测实验

4.2.1、实验设置

4.2.2、性能比较

5、结论和讨论

摘要

由于在现实世界中物体的固有长尾分布,我们不太可能通过为每个类别提供许多视觉示例来训练一个目标识别器/检测器。我们必须在目标类别之间共享视觉知识,以便在很少或没有训练示例的情况下进行学习。在本文中,我们证明了局部目标相似信息(即类别对是相似的还是不同的)是一个非常有用的线索,可以将不同的类别联系在一起,从而实现有效的知识转移。关键洞见:给定一组相似的目标类别和一组不同的类别,一个好的目标模型应该对来自相似类别的示例的响应比来自不同类别的示例的响应更强烈。为了利用这种依赖于类别的相似度正则化,我们开发了一个正则化的核机器算法来训练训练样本很少或没有训练样本的类别的核分类器。我们还采用了最先进的目标检测器来编码对象相似性约束。我们对来自Labelme数据集的数百个类别进行的实验表明,我们的正则化内核分类器可以显著改进目标分类。我们还在PASCAL VOC 2007基准数据集上评估了改进的目标检测器。

1、简介

警察视觉的例子。在某种程度上,我们能够快速地学习经常能从一些新的目标类别中学习新目标的名称,因为我们可以将它们与已知的相似目标联系起来。例如,很少有人知道“serval”是什么,但当被告知它像美洲豹,但腿更长,身体更轻时,大多数人都能在图片中认出它。“serval就像一只美洲豹”是一种相似性语句,它根据现有的类别定义一个新的类别。在本文中,我们利用这种基于分类的相似度语句来学习目标模型,并且很少甚至没有训练实例。这是一个有趣的问题,因为在现实世界中,大多数目标类别只有很少的例子。在图1中,我们显示了Labelme数据集[30]的一部分中200个最频繁的目标类别的实例数量,按递减顺序排列。我们可以看到分布是很长尾的。对于大多数类别,我们找不到足够的数据来训练可靠的分类器。我们必须将信息从具有多个实例的对象类别转移到具有较少实例的类别。要传递信息,我们必须首先知道应该使用什么类别来传递信息。在这方面,相似性是一个很好的线索,正如人类所使用的。

为了在学习一个新类别的模型(例如“serval”)时利用对象相似性进行计算,我们首先从人类的标签器中获得一个类似类别的简短列表;这将包含“豹”。我们可以用这些“豹”的图像作为正面的例子来训练模型。但这种策略并不吸引人,因为这两种类型并不相同。更糟糕的是,对于许多类别来说,可能没有任何东西是非常相似的:我们的标签将“灯”和“花”标记为与“吊扇”相似的。“这些类别非常相似,很有帮助,但又如此不同,我们无法将它们混合在一起。由于目标目标类与其相似类别之间的不确定亲密度,我们认为被标记为相似类别的类与目标目标的相似度要大于与其他类别的相似度。为简单起见,从现在开始,我们将这些不太相似的类别称为“不同的类别”。我们的方法在学习过程中使用相似约束作为正则化的一种形式。我们要求所学习的目标模型对相似类别的例子比不同类别的例子反应更强烈。例如,为了学习“serval”模型,我们获得了一些类似的类别(如“leopard”)和一些不同的类别(如“grass”和“bird”)。然后我们要求模型对“豹”的例子比“草”和“鸟”的例子反应更强烈。这个过程作为一个依赖于分类的相似度调整器。

我们首先在内核机器框架中应用这种机制。我们强制内核机器分类器对来自相似类别的示例给出比来自不同类别的示例更高的响应。这个过程通常涉及成千上万个“相似-不同”的例子。使用直方图相交内核,我们可以使用之前开发的算法SIKMA的变体有效地学习内核机器。我们在数百个目标类别上评估我们的方法,其中许多甚至根本没有训练示例。我们证明,这样做可以显著地提高硬分类任务的性能。目标检测是[36]、[5]、[10]等另一个重要的研究课题,其目的是利用杂乱图像中的包围盒对目标实例进行定位。由于目标模型的复杂性,训练一个目标检测系统需要大量的实例。为了在较少训练样本的情况下进行检测,我们采用了最先进的目标检测系统[10]来编码目标相似性约束。类似地,我们强制目标检测器对来自类似类别的实例的响应比来自不同类别的实例的响应更强烈。当训练实例很少的时候,这个过程是有帮助的。我们在一个基准数据集(PASCAL VOC 2007数据集[7])上评估了我们的方法,该数据集被广泛认为是一个具有挑战性的目标检测数据集。当有20个训练实例时,我们的方法始终优于[10]。当有50个积极的实例时,我们仍然可以看到某些类别的改进。本文是已发表的会议论文[38]的较长版本,该论文仅应用比较目标相似性来训练用于目标分类任务的内核分类器。在本文中,我们还采用了一种最先进的目标检测器来检测目标实例,并且使用了相同的机制,只有很少的训练实例(参见第3.2节)。

2、相关工作

很少或没有训练实例的分类/检测受到的关注比较少。Miller等人的开创性工作,[25]通过一个训练实例,有效地将测试数据与其他类别定义的模型相对应,从而学习一个新的目标类别。Fei-Fei et al.[9]利用了目标模型之间具有强先验相似性的趋势。Bart和Ullman[3]通过使用已经学过的课程的经验,从一个训练示例中学习一个新的课程。我们的工作与这些论文的不同之处在于,我们使用对象相似性将不同的对象类别联系在一起,从而实现有效的知识迁移。

最近,有几篇论文[8]、[20]提出使用属性作为中间表示来跨目标类别共享信息。属性是指目标的属性,如“furry”、“has legs”等。我们可以从普通目标中学习属性分类器,并将其应用于训练实例较少的新目标识别中。属性也可以用来描述新的目标,即使它们不能被成功识别。Kumar等人使用学习属性分类器进行人脸验证。这里的属性更具体地指与面孔相关的视觉属性,如“鼻子大小”、“鼻子形状”、“发型”等。Wang和Forsyth[37]共同学习属性和目标检测器,不需要任何训练实例就可以识别“属性目标”对。Palatucci等人的[27]在神经活动解码中应用了一个有趣的想法,其目标是通过观察一个人的神经活动的图像来确定一个人正在思考的单词或物体。在这个应用场景中,很难收集英语中每个可能的单词的神经训练图像,因此他们定义了一个语义输出代码分类器的概念,该分类器利用所有类别的语义属性的知识库。属性与相似性平行,都是可以将不同类别联系起来的中间表示。两者可以进一步集成,以更好地表示具有现有目标类别的新对象。更多的讨论可以在第5节中找到。

相似度信息通常用于学习距离度量。在这里,我们测量特征空间中与一定距离的相似度,调整特征权值,使目标更接近于同一类别的目标,而不同于不同类别的目标[12]、[42]、[41];类似的程序可以应用于度量不是[16]的相似性的度量。这些方法不能使用显式的类间信息;他们只是要求同类的例子彼此相似。在没有类别标签的情况下,可以使用数据相关的平滑度度量来对特征[11]进行加权。在每种情况下,结果都是一个全局相似度过程——调整度量以与所有可用的相似度信息一致。

另一种全局相似度过程使用多维标度(MDS)来获得与所有相似度数据一致的嵌入。有令人信服的证据表明,这是人类相似性判断[35]的一个糟糕模型(例如,人类的判断是不对称的)。相似度判断可能彼此不一致或与新信息不一致(例如,“一辆车就像一辆面包车”;“面包车就像巴士”;“巴士像火车”并不意味着“汽车像火车”)。MDS通过寻找与所有语句一致的最佳全局嵌入来解决这个问题。该方法对于许多类别也不实用,因为我们不期望有非常详细的两两相似的信息。与这些方法不同的是,我们的方法可以利用局部相似性语句。我们的工作也与[17]、[43]、[23]、[14]、[13]等主要由信息检索社区开发的“学习排序”相关。目标是根据训练数据自动构建一个排名模型,训练数据通常由项目列表组成,每个列表中的项目之间指定了部分顺序。本文根据知识转移的目标相似性对不同的目标类别进行排序,而不是对单个文档进行排序。从某种意义上说,我们学习的目标模型可以被看作是排序模型。

3、具有比较相似性的学习目标模型

我们的目标是学习识别/检测命名目标的模型。我们对目标目标的训练很少或正样本,但有很多负样本。一些否定的范畴被人类的标签识别为“相似的”或“不相似的”。相似注释的例子如表1所示。核机和经过区别训练的基于部件的目标模型[10]分别被广泛地用于识别和检测图像中的目标实例。我们采用这两种方法来编码比较目标相似度约束,从一些例子中学习。

3.1、结合比较目标相似性来训练内核机器进行分类

在本节中,我们将学习用于分类的每个名称的目标模型F。使用一个内核机器分类器,遵循[44]、[22]。核模型分类器F可以写为

\sum_{i=1}^{N} \alpha_{i} K\left(x_{i}, \bullet\right)

其中K\left(x_{i}, \bullet\right) 是核的基函数。但其他一些内核,如RBF核也可以适用),xi是第i个支持向量,i是权值。在训练过程中,我们从特征表示的T训练实例中学习F,同时学习ground truth类标签\left\{\left(x_{t}, y_{t}\right), t=1, \ldots, T, y_{t} \in\{+1,-1\}\right\}

不包含目标相似度信息的通常方法是通过最小化来学习F

\frac{1}{T} \sum_{t=1}^{T} L\left(F\left(x_{t}\right), y_{t}\right)+\frac{\lambda}{2}\|F\|^{2}

其中H是hinge loss

L\left(F\left(x_{t}\right), y_{t}\right)=\max \left(0,1-y_{t} F\left(x_{t}\right)\right)

\frac{\lambda}{2}\|F\|^{2}是一个正则化项。所有可能的假设是假定形成再生核希尔伯特空间,其中\|F\|^{2}=<F, F> 。以这种方式准确地学习F需要大量的实例。当只有少数正样本时,学习的分类器可能不是健壮的。那么,如何在有限的正训练实例的情况下,在给定相似和不相似的实例的情况下,实现鲁棒的目标模型呢?我们认为,一个好的目标模型会对任何正样本作出强烈的反应,但也会对相似的例子比不同的例子作出更强烈的反应。这使得该问题具有序数特征——我们的方法应该把相似的例子排在比不相似的例子更高的位置,而不是像一个序数支持向量机。序数SVM试图学习函数h(x)这样h\left(\mathbf{x}_{i}\right)>h\left(\mathbf{x}_{j}\right) 任何一双例子\operatorname{rank}\left(\mathbf{x}_{i}\right)>\operatorname{rank}\left(\mathbf{x}_{j}\right) 。但是,我们并没有对所有的示例进行完整的排序,我们只想对类别进行排序。因此,我们不能使用传统的序数支持向量机。

我们的模型F应该:对正样本是正的,对负样本是负的,对于相似的样本比不相似的实例大。前两个要求很容易用hinge loss来表示。第三,如果g^s_n是一个实例的相似类别和g^d_n 是一个实例从一个不同的类别,F(g^s_n) 应该总是大于F(g^d_n) ,有一些优势。我们通过准备一组N个相似-不相似的对来施加这个约束,并评分L\left(F\left(g_{n}^{s}\right)-F\left(g_{n}^{d}\right), 1\right) ,其中L是铰链损耗,但其他一些损耗函数也可以适用。这是一个正则化术语。可能有很多对。如果有很多积极的例子,那么相似度约束就不那么重要了,但是如果例子很少,那么它就是一个重要的约束。这意味着这个相似项的权重应该取决于Tp的正例子的数量。我们选择F来最小化

\begin{array}{l} \frac{1}{T} \sum_{t=1}^{T} L\left(F\left(x_{t}\right), y_{t}\right)+\alpha\left(T_{p}\right) \frac{1}{N} \sum_{n=1}^{N} L\left(F\left(g_{n}^{s}\right)-F\left(g_{n}^{d}\right), 1\right) \\ \quad+\frac{\lambda}{2}\|F\|^{2} \end{array}

第一项是目标类别的经验损失,第二项是相似约束(也被认为是正则化项),第三项是常规正则化项。

\alpha\left(T_{p}\right)表示体重相似的函数积极训练实例的数量。一般来说,如果有一些正面例子,\alpha\left(T_{p}\right) 应该大,如果有很多,应该是小的。因此,我们\alpha\left(T_{p}\right) 设置为一个函数的输出,在输入T_p的情况下:

\alpha\left(T_{p}\right)=\frac{A}{1+e^{B\left(T_{p}-C\right)}}

相似项权重参数设置的探讨。通常,多重线索的权重是使用交叉验证设置的。但是我们有很少的正面的例子和很多的分类,使得交叉验证无效并且计算上很昂贵。相反,我们假设参数应该主要依赖于训练示例的数量,并设置适用于各种类别的参数。在我们的实现中,A、B和C是通过对有足够训练示例的5个类别进行验证来选择的。然后,他们是固定的,并适用于所有其他类别的训练例子很少。最后我们使用参数如下:A=0:5,B=0:1,和C=0.25。图2显示了\alpha\left(T_{p}\right) 变化在不同数量的训练例子Tp下的趋势。

从(2)中学习F涉及到大量的相似和不同的例子对。使用传统的基于批处理的算法[29]训练可能非常慢。随机梯度下降法是一种学习大规模数据集[32]、[18]、[40]和[21]的有效方法。与传统的梯度下降算法不同的是,该方法在每次迭代中只使用数据点的子集来近似计算梯度,并采取步骤。大量的实验结果表明,与基于批处理的算法相比,[32]、[18]、[40]和[21]可以获得非常接近的性能,同时也要快得多。在我们的实现中,在每个迭代中,我们只选择一个数据点(这里,一个相似-不同的示例对被视为一个数据点)来计算梯度。算法为:在第i次迭代时,随机选择一个数据点:1。如果选择带标签的示例xt,则按照[40]的步骤进行;新的目标函数是

\frac{1}{T} L\left(F\left(x_{t}\right), y_{t}\right)+\frac{\lambda}{2}\|F\|^{2}

次梯度是

\lambda F_{i-1}-\frac{1}{T} \sigma_{i} K\left(x_{t}, \bullet\right)

其中

\sigma_{i}=\left\{\begin{array}{ll} 1, & \text { if } y_{t} F_{i-1}\left(x_{t}\right)<1 \\ 0, & \text { otherwise. } \end{array}\right.

然后F更新为

F_{i}=\left(1-\lambda \eta_{i}\right) F_{i-1}+\frac{1}{T} \eta_{i} \sigma_{i} y_{t} K\left(x_{t}, \bullet\right)

如果选择了一个类似-不同的配对\left\{g_{n}^{s}, g_{n}^{d}\right\} ,则该配对的新目标函数\hat{O}

\frac{1}{N} \alpha\left(T_{p}\right) L\left(F\left(g_{n}^{s}\right)-F\left(g_{n}^{d}\right), 1\right)+\frac{\lambda}{2}\|F\|^{2}

子梯度\left.\widehat{\frac{\partial O}{\partial F}}\right|_{F=F_{i-1}}

\frac{1}{N} \alpha\left(T_{p}\right) \sigma_{i}\left(K\left(g_{n}^{d}, \bullet\right)-K\left(g_{n}^{s}, \bullet\right)\right)+\lambda F_{i-1}

其中

\sigma_{i}=\left\{\begin{array}{ll} 1, & \text { if } F_{i-1}\left(g_{n}^{s}\right)-F_{i-1}\left(g_{n}^{d}\right)<1 \\ 0, & \text { otherwise } \end{array}\right.

并且更新为

F_{i}=\left(1-\lambda \eta_{i}\right) F_{i-1}+\frac{1}{N} \alpha \eta_{i} \sigma_{i}\left(K\left(g_{n}^{s}, \bullet\right)-K\left(g_{n}^{d}, \bullet\right)\right)

我们使用K的直方图相交核,允许我们使用[40]的快速训练算法而不牺牲准确性。

3.2、结合比较目标相似性来训练基于部件的目标模型进行检测

上一节介绍了一种采用内核机器进行对象分类的方法。目标检测的目的是预测杂乱图像中目标实例的边界框,通常也需要大量的训练数据。本节介绍一种结合目标相似信息来训练基于部件的目标检测器的方法。我们采用最先进的检测系统[10]来编码目标相似性约束。为了方便读者,这里简要介绍了该方法。在Felzenszwalb等人的过程[10]中,将目标类别建模为具有模型参数\beta 的星形结构的基于部件的模型。测试实例x_t 的评分为

f_{\beta}\left(x_{t}\right)=\max _{z \in Z\left(x_{t}\right)} \beta \cdot \Phi\left(x_{t}, z\right)

Z Z表示所有可能的对象配置,指定一个配置,\Phi\left(x_{t}, z\right) 表示HOG的连接特性,从图像中提取好子窗口定义的z和部分变形特性。通过最小化目标函数,训练该潜结构模型:

\frac{1}{T} \sum_{i=1}^{T} L\left(f_{\beta}\left(x_{t}\right), y_{i}\right)+\lambda \frac{1}{2}\|\beta\|^{2}

其中y_i 是第i个训练例子的类标签,L是Hinge Loss。这个公式不同于标准的支持向量机,因为它有一个潜在的结构。一个潜在的支持向量机导致一个非凸优化问题,成为凸一旦潜结构指定为积极的例子。在[10]中,采用“坐标下降”方法来学习模型参数。在每一轮中,首先在每幅正图像中选择对当前模型响应最强烈的最佳潜结构,然后利用指定的潜结构求解凸优化问题。由于复杂的模型结构和大量的模型参数,使用(11)学习目标模型通常需要许多训练实例。许多目标类别只有一些可用的训练示例。同样,为了对相似约束进行编码,我们需要一个目标模型对来自相似类别的示例的响应比来自不同类别的示例的响应更强烈。

假设我们也有来自相似和不同类别的例子,除了积极的和消极的训练例子。写\left\{g_{n}^{s}, g_{n}^{d}\right\} 作为两个例子,其中g_n^s 来自一个类似的类别,而d_n^d 来自一个不同的类别。然后,f_{\beta}\left(g_{n}^{s}\right) 应该大于f_{\beta}\left(g_{n}^{d}\right) ,并有一个边界。我们得到如下优化函数:

\begin{array}{l} \frac{1}{T} \sum_{i=1}^{T} L\left(f_{\beta}\left(x_{t}\right), y_{t}\right)+\alpha \frac{1}{N} \sum_{n=1}^{N} L\left(f_{\beta}\left(g_{n}^{s}\right)-f_{\beta}\left(g_{n}^{d}\right), 1\right) \\ \quad+\lambda \frac{1}{2}\|\beta\|^{2} \end{array}

第二项惩罚了模型对相似的例子的反应比不相似的例子更强烈的失败;同样,我们用铰链损耗来表示这一项。如式(3)所示。当正例数量较大时,为小;当正面例子的数量很少的时候,就是很大的时候。

3.2.1、训练

该方法的一个吸引人的特性是,将其合并到现有的Felzenswzalb等人的检测器代码中是非常简单的。我们修改他们的“坐标下降”程序来优化(12),得到:

1. 为每一个积极的例子,找到得分最高的潜在结构: z_{t}=\operatorname{argmax}_{z \in Z\left(x_{t}\right)} \Phi\left(x_{t}, z\right)

。在相似度约束条件下,利用相同的思想,得到了g^s_ng^s_d 的最佳潜在结构。

2. 修正潜在结构z,通过求解凸优化问题优化\beta 。在[10]中,我们采用了随机梯度下降法,这样我们就可以很容易地修改他们的代码来训练我们的检测器。这里描述的过程也非常类似于3.1.1节中描述的过程。在第一步之后,我们有z,通过求解凸优化问题优化凸优化问题优化。

\begin{aligned} f_{\beta}\left(x_{t}\right) &\left.=\beta \Phi\left(x_{t}, z_{t}(\beta)\right)\right) \\ f_{\beta}\left(g_{n}^{s}\right) &\left.=\beta \Phi\left(g_{n}^{s}, z_{n}^{s}(\beta)\right)\right) \\ f_{\beta}\left(g_{n}^{d}\right) &\left.=\beta \Phi\left(g_{n}^{d}, z_{n}^{d}(\beta)\right)\right) \end{aligned} 梯度计算为

\frac{1}{T} \sum_{i=1}^{T} p\left(\beta, x_{t}, y_{t}\right)+\alpha \frac{1}{N} \sum_{n=1}^{N} q\left(\beta, g_{n}^{s}, g_{n}^{d}\right)+\lambda \beta

p\left(\beta, x_{t}, y_{t}\right)=\left\{\begin{array}{ll} 0, & \text { if } y_{i} f_{\beta}\left(x_{t}\right) \geq 1 \\ \left.-\Phi\left(x_{t}, z_{t}(\beta)\right)\right), & \text { otherwise } \end{array}\right.

q\left(\beta, g_{n}^{s}, g_{n}^{d}\right)=\left\{\begin{array}{l} 0, \text { if } f_{\beta}\left(g_{n}^{s}\right)-f_{\beta}\left(g_{n}^{d}\right) \geq 1 \\ \left.\left.-\Phi\left(g_{n}^{s}, z_{n}^{s}(\beta)\right)\right)+\Phi\left(g_{n}^{d}, z_{n}^{d}(\beta)\right)\right), \mathrm{o} / \mathrm{w} \end{array}\right.

在随机梯度下降法中,梯度(13)是通过一个样本子集(可以是正/负,也可以是相似/不相似对)来计算的,并且在每次迭代中向负方向迈出一步。我们按照[10]设置参数。[10]的所有其他重要实现组件,如特征提取、数据挖掘示例和后处理,都可以在不做任何更改的情况下使用。对于每个类别,我们训练一个包含两个混合成分的混合模型。我们像在[10]中那样翻转每个积极的训练示例,但是相似-不相似的对没有被翻转。

4、实验

提出了两种利用目标相似性进行分类和检测的方法。在本节中,我们将评估它们在基准数据集上的性能,并将它们与两种基线方法进行比较。注意,在每个实验中,我们评估的是二元分类,而不是多类分类。

4.1、目标类的实验

4.1.1、实验设置

我们从Labelme[30]数据集中选择了2,831张图像作为分类实验的试验台。它们是真实的街道和室内图像,它们的区域被充分注释。我们正在进行分类而不是检测,因此我们使用ground truth多边形注释来裁剪目标,并在这些干净的对象区域上执行实验(用于训练和测试)。目标检测的实验结果见4.2节。我们通过纠正拼错的单词、删除非名词单词(如“a”)、传递给最常见的名词(如用“person”代替“行人”)来手动重命名目标名称。这样总共剩下972个目标类别。如图1所示,数据集中目标类别的分布是重长尾的(这在现实世界中也被怀疑是正确的)。大约600个类别有不到6个实例。只有70个类别有超过100个实例。我们随机选取1500张图像作为训练数据,另外1331张图像作为测试数据。我们选择90个目标类别作为原型类别,它们有60多个实例。带有少量示例的类别不被视为原型类别。我们最后有225个测试类别,每个类别至少有一个测试实例。对于每个类别,一名人类志愿者从原型类别中识别出多达5个相似的目标,而不需要查看数据集中的任何图像。在此标记过程中,要求注释器在视觉上标记相似和不同的目标。没有额外的说明哪方面(如形状或纹理)应该用来判断相似性。第二名志愿者检查了相似度标注,将相似度判断分为四种情况:同义(如“海滩岩石”和原型“岩石”)、近义(如“工作台面”);“吧台”),不同的(例如,“鸟”;“旗子”——标签上的字让人觉得它在天空中飘动,但又非常不同(例如,“吊扇”;“花”)。表1显示了更多关于相似性注释的例子。当训练一个目标模型时,所有其他类都是负的。在测试过程中,我们对每个测试图像区域进行分类,并输出一个分类分数。计算每个类的AUC值。在本实验中,我们直接使用测试图像的地面真值分割来提取目标区域。共有21,803个测试区域。

4.1.2、特征选择和参数

我们密集地从每个目标区域提取补丁,并将每个补丁表示为SIFT描述符。我们对描述符子集进行了抽样,并形成一个包含800个可视单词的可视词汇表。我们使用这些可视化单词的直方图作为特征表示。在训练过程中,我们使用了大约20,000个负样本和20,000对相似-不同的例子来学习每个目标模型。iþ1100 The 学习 速率 i 设置 , 并 将 0.00005.训练一个对象模型通常需要50-120秒,非常快。学习率\eta_{i} 设置为\frac{1}{i+1000} , \lambda设置为0.00005。训练一个对象模型通常需要50-120秒,非常快。

4.1.3、Baseline

我们用两个基线来比较我们的算法。基线1以通常的方式使用所有可用的正样本和负样本。如果没有正样本,则输出一个随机猜测。我们称这个基线为“无相似信息”,缩写为“无相似”。“基线2直接使用来自类似类别的实例作为积极的例子(用类似形式(3)定义的权重进行加权)来训练目标模型。我们称之为基线”类似的类别作为积极的类别,缩写为\text { "Similar = Pos." } 。对于这个基线,分类器是通过以下学习目标函数:

\frac{1}{T} \sum_{t=1}^{T} L\left(F\left(x_{t}\right), y_{t}\right)+\alpha\left(T_{p}\right) \frac{1}{N} \sum_{n=1}^{N} L\left(F\left(g_{n}^{s}\right), 1\right)+\frac{\lambda}{2}\|F\|^{2}

其中g_{n}^{s} 表示第n个相似图像的特征表示。该基线使用相同的相似度信息,但其性能不如我们的比较相似度方法,如下面的实验研究所示。

4.1.4、AUC类似的提升

如果我们给出一个正样本和一个负样本的方法,接收机工作曲线下的面积(AUC)给出了正例得分高于反例的概率。AUC是一种很好的性能度量方法,适用于命名这样的任务。我们不使用标准的AUC,而是采用一个平衡的AUC,其中每个测试实例都被N1加权(N是来自相同类别的测试实例的总数)。这可以更好地衡量所学习的模型与所有其他类别的对比情况,而不是与一些非常常见的类别的对比情况。我们的相似度方法对所有测试类别的AUC都有很大的改进,尤其是在没有阳性样本的情况下(见图3)。AP是一个不太有用的测量方法,因为正样本很少,大约有20,000个负样本,因此,所有的分数都非常小且不稳定。图4也给出了一些定性结果。我们的方法获得了更好的AUC值,并将更敏感的区域排列在顶部。我们的方法可以达到非常高的AUC分数在许多类别,即使他们没有训练的例子。图5显示了AUC值超过一组AUC阈值的类别数(来自110个没有训练样本的类别)。超过40个类别的AUC值高于0.9。

这种效果并不完全是由标签中的同义词造成的。我们根据最强相似的原型(最强:与最弱同义:非常不同)来分类。总的来说,有53个类别至少有一个同义相似的原型,70个类别至少有一个近义相似的原型而没有更强的,90个类别至少有一个不同的相似原型而没有更强的,12个类别只有非常不同的相似原型。我们在图6中显示了每种类型的平均AUC分数。我们可以看到,即使相似的原型充其量是“不同的”或“非常不同的”,使用相似度也会产生更好的AUC。我们还展示了我们的方法在基线1之上的平均AUC改进,作为表2中训练实例数量的函数。我们可以观察到,当积极训练的例子较少时,比较相似是最有帮助的。当正例数量增加时,使用比较相似度得到的结果很少。我们的示例中类似的类的数量从1到3个不等,只有很少的几个类别拥有更多的类。我们研究了相似类数对AUC改善的影响,但未发现有影响。我们认为,重要的是标记相似的类别的质量,而不是相似类别的数量。

4.1.5、相似度可以提高通信

AUC的改进对于发现区域和弱标记对象名称[1]之间的对应关系非常有帮助。我们从225个测试类别中选择了197张包含至少三个区域的图片。它们的标签是弱标记的,这意味着我们不知道哪个标签指向哪个区域。我们的任务是用所学的模型建立对应关系。我们使用最大权值二分匹配(使用匈牙利算法[28])解决对应问题,其中权值由校准的分类分数给出。匹配的结果是区域标签。我们计算每个类的匹配精度。为了避免大类别的影响,取平均值进行比较(见表3),定性结果如图7所示。在图8中,我们通过训练实例的数量来显示类别的平均精度值。我们的方法在没有或只有很少的训练实例的情况下对类别进行了很大的改进。

4.2、检测实验

4.2.1、实验设置

我们在一个目标检测任务上评估了我们提出的检测方法(参见3.2节),该任务的目标是预测图像中对象实例的边界框(如果有的话)。我们采用PASCAL VOC 2007 comp3 challenge protocol[7]:在测试中,我们预测边界框及其置信值,并为每个类别绘制精确回忆曲线。AP(平均精度)值据此计算作为性能度量。只有当预测边界框与地面真实边界框重叠超过50%时,才认为它们是正确的。对于相似词的重量,我们设置一个A=0.5,B=0.1,和C=25日一样的用于分类。

我们使用相同的特性实现[10]和参数,如支持向量机成本参数。我们的方法最好应用于训练不熟悉目标的目标检测器,因为我们找不到足够的训练实例。但是,目前还没有为此任务建立基准数据集。因此,我们在PASCAL VOC 2007数据集[7]上对我们的系统进行了评估。该数据集有20个类别,每个目标类别通常有几百个训练实例和几百个测试实例。为了测试我们的方法在训练过程中训练实例很少的情况下如何提供帮助,我们只使用一个子集(例如,20个正例)来训练检测器,而不是使用所有的训练集。注意,训练集上的所有负面图像都被使用了。为了获得稳定的测试性能数据,我们使用了所有的测试数据。与评估分类性能的方法类似,我们将检测算法与两个基线进行比较:无相似信息和相似类别为正类别。在训练子集选择过程中,我们随机选择一定数量(如20个)的正训练样本,重复5次,计算平均值进行比较。当使用我们的方法训练目标模型时,如果我们枚举它们中的每一个,可能会有太多的相似对。相反,每次我们都为每个目标对随机抽取500个示例对。这通常总共会产生大约5000个示例对(取决于使用了多少个类似-不同的目标对)。PASCAL VOC 2007数据集有20个类别,但其中有8个类别我们无法在同一数据集中找到类似的类别(如“人”和“瓶”)。一种解决方案是从其他更大的数据集(如Labelme[30])获得类似的类别。在本文中,我们简单地忽略了这八个类别,只测试了剩下的12个类别,它们有足够的类别来评估我们的方法的性能。表4列出了这12个对象类别及其相似性注释。

4.2.2、性能比较

我们首先使用20个积极的训练实例,将我们的方法与表4中列出的12个目标类别中的两个基线进行比较。训练一个目标检测器通常需要一天的时间,因为有成千上万个相似-不同的样本对。在测试过程中,我们选择了一个较低的阈值,以确保为每个测试图像保留足够的边界框(通常为100个)。使用20个正样本中,比较表5中每个类别的结果(AP分数)。使用相似度可以持续提高AP分数。我们的方法比直接把类似的类别加到积极的类别上效果更好。我们还使用表6中的30个和50个积极的训练示例将我们的方法与基线进行了比较。根据sigmoid函数,将相似项的权值分别设置为0.23和0.04。我们也尝试了所有积极的训练例子。通过更多积极的训练例子,表现会更好。当有少量的正面训练例子时,相似性更有帮助。

讨论什么时候比较相似是有帮助的:表2和表6都表明,当积极的例子很少时,比较目标相似性是有帮助的。但是,当正例数量增加时,比较目标相似度甚至会降低性能。这可以通过偏差-方差[4]理论来解释:相似性约束做出了不完美的假设。它们会产生额外的约束,从而减少参数估计的方差,但是它们会引入偏差。当真正的训练实例的数量增加时,减少方差的好处就减少了,而偏差仍然存在。这就是为什么在足够多的训练实例中观察到较低或没有增益的原因。只有当减少方差的收益大于引入偏差的损失时,比较相似性才有帮助。临界点依赖于特征空间中数据点的分布和特定的相似性约束。在图9中,我们在右侧显示了由基线1(没有相似性)和我们的方法生成的顶级区域。使用相似度将更多的真值为正的区域排列在顶部。图10显示了“马”和“摩托车”的假阳性最严重区域。不足为奇的是,使用相似约束训练的检测器会从相似的类别中发现误报区域。但是请注意,利用来自相似和不同类别的信息有助于检测器对背景区域有更强的辨别能力(可以看到基线检测器在背景中找到许多错误的区域)。在图11中,我们使用与基线1相比的相似度(没有相似度信息)来显示真正的测试区域,这些区域的等级提升最为显著。当使用基线检测器测试时,这些区域的置信度较低,排名较低;当使用我们的方法训练的检测器时,它们获得更高的信心分数,并且在所有预测的边界框中都有很高的排名。使用相似度约束会有所帮助,因为会使用更多相关的信息。例如,一些公交区域看起来像火车。当使用火车作为类似目标类别来训练总线检测器时,使用我们的方法,它们的级别会更高。

5、结论和讨论

在本文中,我们提出了一种使用比较目标相似度来帮助学习目标模型的方法。我们采用最先进的分类和检测系统,以纳入目标相似性约束。但是请注意,该模型是完全通用的,可以应用于各种各样的问题。实验结果表明,该方法在对数百个类别的识别上取得了显著的改进,训练样本很少或没有训练样本。对于目标检测,我们提出的方法在使用少量正训练示例(通常为20个)的情况下,对基准检测数据集PASCAL VOC 2007进行了改进。将来可以做一些工作来更好地利用目标相似性进行可视化分类。目前,所有的相似度约束都被同等考虑。然而,一些约束应该包含更有价值的信息。例如,“a cat is like a dog”比“a cat is like a sheep”更有用。“我们将考虑从更高质量的相似度约束中为示例对分配更大的权重。

另一种可能的扩展是整合相似度和属性[8]、[20]、[37],以实现更强大的知识转移。在某种意义上,目标被认为是相似的,因为它们具有共同的视觉属性。例如,猫和狗很相似,因为它们都有“腿”和“尾巴”,而且都“有毛”。“如果我们知道什么属性使两个目标类别相似,那么我们就可以构建一个机制,只传输与这些指定属性相对应的视觉知识。这将减少知识转移过程中的噪音,并导致更有效的共享。属性的一个有趣属性是它们可以用来描述一个新的目标类。例如,“serval是毛茸茸的,有腿。“然而,腿有很多种,比如猫腿、豹腿,甚至桌子腿。这些腿可能很不一样。仅仅说“有腿”还不足以准确地描述它,而且也没有可用的分类法以细粒度的方式定义不同的腿。当添加了相似度信息后,我们可以说一个动物的腿类似于美洲豹的腿。这样,相似性可以极大地增强属性的描述能力。当使用相似度时,学习的目标模型可能会将目标类别与相似类别混淆,因为来自相似类别的信息是共享的。如图10所示,在检测摩托车时,许多自行车实例都排在前面。一种解决方案是如上所述指定共享属性;然后我们可以使用其他属性来消除歧义。另一个可能的解决方案是使用分类法[2]、[33]或使用场景来划分类别:对象是在厨房还是在公园中找到的?对于每个目标类,我们只需要训练一个与来自相同分区的类别相反的模型。然后我们可以从其他分区中选择类似的类别,以避免混淆。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 1、简介
  • 2、相关工作
  • 3、具有比较相似性的学习目标模型
    • 3.1、结合比较目标相似性来训练内核机器进行分类
      • 3.2、结合比较目标相似性来训练基于部件的目标模型进行检测
        • 3.2.1、训练
    • 4、实验
      • 4.1、目标类的实验
        • 4.1.1、实验设置
        • 4.1.2、特征选择和参数
        • 4.1.3、Baseline
        • 4.1.4、AUC类似的提升
        • 4.1.5、相似度可以提高通信
      • 4.2、检测实验
        • 4.2.1、实验设置
        • 4.2.2、性能比较
    • 5、结论和讨论
    相关产品与服务
    图像识别
    腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档