CV常用传统算法

1.K-D树

概念:一种分割k维数据空间的数据结构。

构造过程:

(1)针对k条坐标轴方向,分别在每个方向上统计所有点的数据方差。并在k个方差选择最大的,将其方向作为分割方向。(数据方差大表明沿该坐标轴方向上的数据分散得比较开,在这个方向上进行数据分割有较好的分辨率。)

(2)选出分割方向上中间的一点,用其将数据点分割成左右两部分。

(3)对左右两部分数据重复(1)(2)操作,直至每个子空间中只剩一个数据点。

查询步骤:

(1)从根节点开始,通过二叉搜索,查找到与目标点距离最近的一点A,并在栈中顺序存储已经遍历的节点。

(2)以目标点为圆心,以两点间距离为半径作圆,若与父节点的分割线(超平面)相交,则对分割线另一边进行二叉搜索。

(3)若不相交,则按栈中存储的节点进行回溯,若当前节点比A距离更近,则更新A。

(4)直至回溯到root点,此时的A点即为最近邻接点。

2.Bag of words

概念:该模型忽略掉文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文档。近年来,BoW模型被广泛应用于计算机视觉中。与应用于文本的BoW类比,图像的特征(feature)被当作单词(Word)。文本方面:例如有下面两句话:

John likes to watch movies. Mary likes movies too.

John also likes to watch football games.

可生成如下词典:

[“John”, “likes”, “to”, “watch”, “movies”, “also”, “football”, “games”, “Mary”, “too”]

根据这个词典,可以将这两句话转换成两个向量:

[1, 2, 1, 1, 2, 0, 0, 0, 1, 1]

[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]

这两个向量共包含10个元素,其中第i个元素表示词典中第i个单词在句子中出现的次数。因此BoW模型可认为是一种统计直方图(histogram)。在文本检索和处理应用中,可以通过该模型很方便的计算词频。

计算机视觉方面:将图像可以类比作文档,图像中的特征点类比成词汇,那么图像的BoW模型即是“图像中所有图像块的特征点得到的直方图”.建立BoW模型主要分为如下几个步骤:

(1)特征提取

假设有N张图像,第i张图像可由n(i)个特征点表示,则总共能得到sum(n(i))个特征点。

(2)生成词典/码本(codebook)

对上一步得到的特征向量进行聚类(可以使用K-means等聚类方法),得到K个聚类中心,用聚类中心构建码本。

(3)根据码本生成直方图

对每张图片,通过最近邻计算该图片的每个特征点应该属于codebook中的“哪一类”特征点,从而得到该图片对应于该码本的BoW表示。匹配两个图片的直方图,就可判断其相似度。

3.TF-IDF

概念:term frequency–inverse document frequency是一种用于信息检索与数据挖掘的常用加权技术。

TF:词频,计算方法:,分子为词条i在文档j中出现的次数,分母为文档j所有词条出现的总次数。

IDF:逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量,计算方法:


分子为库中文档数目,分母为库中所有包含词条i的文档数目。

TF-IDF:即为TF*IDF,以此来计算某个词条的权重,形式较多,上面仅列出其中一种表示。

4.K-means clustering

概念:把数据分成几组,按照定义的测量标准,同组内数据与其他组数据相比具有较强的相似性,这就叫聚簇。聚簇是数据挖掘最基础的操作,但现在存在的一些传统聚簇方法已不能满足处理复杂类型的、高维的、任意分布形状的数据集合的需要。

k-means算法就是用得最多的一种传统的聚簇方法,是一种划分法,相似度的计算是求数据对象与簇中心的距离,与簇中心距离近的就划为一个簇。工作流程:

(1)随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。

(2)对剩余的每个对象,根据其与各个簇中心的距离,将其赋给最近的簇。

(3)重新计算每个簇的平均值,求出新的簇中心,再重新聚簇。

(4)不断重复(2)(3),直到准则函数收敛。

分析:该算法的时间复杂度是O(nkt),其中n是所有对象数目,k是簇的数目,t是迭代次数。它的效率比较高;缺点是只能处理数值型数据,不能处理分类数据,对例外数据非常敏感,不能处理非凸面形状的聚簇。

5.SIFT

6.SVM

你可能感兴趣的:(CV常用传统算法)