我现在需要一个功能,就是采集视频中某两个时刻的图片,然后识别这两个时刻中的人脸是否是同一个人。
我才去的思路是这样的:
1·从视频的两个时刻采集两张图片
2.通过OPENCV里面的haar正脸分类器检测出这两张图片的人的正脸
3.将两个时刻检测的人脸图片从原图中分离出来,并变成灰度图片。
4.通过对第一个时刻的人脸图片进行PCA计算出特征脸(特征向量),平均脸,特征值,等。
5.将两个时刻的人脸分别向第四个步骤中计算的特征向量空间进行投影。第一个时刻人脸的投影结果矩阵是vect1,第二个时刻的人脸投影矩阵是vect2
6.计算两个矩阵的距离,如果在某一阈值范围内,则说明是同一人脸。一、对图形这块不了解,这是我这段时间通过查资料得出的方法,不知道其中是不是有什么错误,还望熟悉的朋友指出。
二、现在面对的第二个问题是,我如何求vect1 vect2之间的距离??
   距离的阈值该如何定义?什么范围内才会认定是同一个人脸,有没有什么标准,或者经验数据。
三、我计算特征脸采用的是cvCalcPCA, 投影采用的是cvProjectPCA.其中,cvProjectPCA的最后一个参数是结果向量,我想知道的是这个结果向量是也是一个特征向量,还是一系列的特征值?
如果是特征值的话,算距离的话,可能要好算些。
我的些方法也是根据这个网站上的一个人脸识别的例子想出来的。不知道各位有什么好的建议?
http://www.cognotics.com/opencv/servo_2007_series/part_5/index.html熟悉的朋友请帮忙。说的时候最好详细些。谢谢啦!!!!!
帮忙的朋友都会有分!

解决方案 »

  1.   

    用了这个函数啊。关键是这个计算的是subspace 还需要投影通过cvProjectPCA.投影了,我就不知道如果通过投影出来的向量进行计算距离了。
      

  2.   

    你做过?你可以看看我上面的链接,国外有人就说可以用这个来做,他已经给出了一个demo了。你可以看看!
    求达人仔细看看我发的帖子。然后给我一个比较好的解决方法,分不够可以再加!
      

  3.   

    第一个时刻只有一张人脸图像,你怎么求PCA?
    平均脸还不就是这张人脸图像本身
    建议楼主先把PCA原理搞清楚,PCA是需要一定数量样本才能进行的。