首页 理论教育视觉单词生成的方法探析

视觉单词生成的方法探析

【摘要】:大量的视觉单词就组成了视觉单词库,在一些文献中也称之为码书。用视觉单词作为向量空间模型中的特征项,就可以解决目标图像的表示问题,从而实现基于向量空间模型的目标分类了。对局部特征进行聚类是构造视觉单词的一种有效途径,因为聚类分析的目的就是将物理或抽象对象的集合分组成由类似的对象组成的多个类[128]。k-means算法是根据预定的类别数目k随机地选取k个对象作为初始的簇中心。

从大量样本中提取的局部特征千差万别且数量巨大,如图6-4所示,哪怕是从同类目标上提取的描述同一部件的局部特征,也往往是有所不同。这些“模板”描述得过于具体,虽然可以对某一个体进行精确匹配,但不适于对一类目标的识别。这就需要像文本中的词句一样,从众多具体事物的描述中抽象出“概念”,从而抓住一类事物的共性。比如,我们生活中见过许多狗,当提及“狗”的时候,我们想到的应该不是某个特定的狗,而是狗的理想化模型——是对一个非常典型的狗的描述,与其完全相像的狗在现实生活中也许存在,也许根本不存在。

正如本书5.4节所述,相近的局部特征经过优化组合之后可以形成“原型”特征,也就是视觉单词。大量的视觉单词就组成了视觉单词库,在一些文献中也称之为码书(Codebook)。用视觉单词作为向量空间模型中的特征项,就可以解决目标图像的表示问题,从而实现基于向量空间模型的目标分类了。

对局部特征进行聚类是构造视觉单词的一种有效途径,因为聚类分析的目的就是将物理或抽象对象的集合分组成由类似的对象组成的多个类[128]。5.4节简单介绍了聚类算法的几种类型,其中最为常用的是划分方法中的k-平均值(k-means)和层次方法中的凝聚(Agglomerative)聚类。

k-means算法是根据预定的类别数目k随机地选取k个对象作为初始的簇中心。对剩余的每个对象,根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。对处理大数据集,该算法是相对可伸缩和高效率的,它的复杂度O (nkt),其中,n是所有对象的数目,k是簇的数目,t是迭代的次数,通常kn,且tn。但是这个算法经常以局部最优结束,必须实现给出簇的数目,对“噪声”和孤立点数据非常敏感,而且不适合与发现非凸面形状的簇。

978-7-111-38182-2-Chapter06-7.jpg

图6-4 各种局部特征示例

凝聚聚类是将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。然而,凝聚聚类尽管简单,但经常会遇到合并点的选择困难。这样的决定非常关键,因为一旦一组对象被合并,下一步的处理将在新生成的簇上进行,这一步骤无法撤销,聚类之间也不能交换对象。所以,每次合并之前需要检查和估算大量的对象或簇,其过高的时间复杂度和空间复杂度严重制约了该算法的应用。