人脸识别中的PCA-SVM和BOW-SVM

qbo_face_recognizer中用到了两种识别模型:

默认BOW_SVM.  还有一种是PCA_SVM.

PCA即 Principal Component Analysis class.主成分分析。主要是根据样本矩阵生成特征向量,然后再使用特征向量将原始样本降维处理。

SVM即支持向量机。支持向量机(SuPPortVectorMachineSVM)是一种基于结构风险最小化原则(StoctureskMinimizationSRM)的通用学习算法,它的基本思想是在样本输入空间或特征空间构造出一个最优超平面,使得超平面到两类样本集之间的距离达到最大,从而取得最好的泛化能力。构造最优超平面可以转化为一个二次规划问题。不同于神经网络,支持向量机的解是全局最优的,而且支持向量机不需要人工设计网络结构。

Bag-of-words model

Bag-of-words model (BoW model) 最早出现在NLP和IR领域. 该模型忽略掉文本的语法和语序, 用一组无序的单词(words)来表达一段文字或一个文档. 近年来, BoW模型被广泛应用于计算机视觉中. 与应用于文本的BoW类比, 图像的特征(feature)被当作单词(Word).

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

应用于计算机视觉的BoW model[2]

Fei-fei Li[3]在中提出了用BoW模型表达图像的方法. 他们认为, 图像可以类比为文档(document), 图像中的单词(words)可以定义为一个图像块(image patch)的特征向量. 那么图像的BoW模型即是 “图像中所有图像块的特征向量得到的直方图”. 建立BoW模型主要分为如下几个步骤:

1. 特征提取

假设有N张图像, 第i张图像图像可由n(i)个image patch组成, 也即可以由n(i)个特征向量表达. 则总共能得到sum(n(i))个特征向量(即单词).

特征向量可以根据特征问题自行设计, 常用特征有Color histogram, SIFT, LBP等.

2. 生成字典/码本(codebook)

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

3. 根据码本生成直方图

对每张图片, 通过最近邻计算该图片的每个 “单词”应该属于codebook中的 “哪一类”单词, 从而得到该图片对应于该码本的BoW表示.


SURF : Speed-Up Robust Feature


PCA+SVM 经验:http://blog.sina.com.cn/s/blog_4cb0b5430100pwql.html

相关的其他模型:SIFT+SVM。http://blog.sina.com.cn/s/blog_6e75913c0100mhxp.html

你可能感兴趣的:(c++,opencv)