使用opencv进行人脸识别

Bla*_*dow 5 video opencv image image-processing computer-vision

我正在使用OpenCV库在C++中进行图像处理,这是我的问题:你能想到通过比较摄像机的框架来进行面部识别(根据照片数据库说出一个人的名字)吗?使用图像直方图比较技术在数据库中的图像?(请注意,我使用opecv库中包含的示例仅比较图像的面部区域).

我问这个是因为我刚尝试做上面的程序,但我有很多问题(我经常发现错误的人)

Jef*_*ter 7

您可能希望从使用OpenCV示例编译人脸检测开始.正如其他人所指出的,一般的面部识别并不是一个容易解决的问题. EigenFaces是一种常见的人脸识别技术,相当容易理解和实现.

正如其他人所说,这是一个难题,但这给你一个开始的地方.


Sha*_*hai 7

我对它们有一些经验的方法是

  • 用于比较面部的度量学习
  • 命名视频字符:它们使用在每个面上的特定feducial点计算的SIFT描述符.他们的代码在过去对我很有用.

专门用于此任务的数据集和基准标记在野外标记为面.您可以找到有关检测后比较面的工作方法的参考.

更新:
我有一个关于面部聚类的实验的描述:无人监督的面部识别.该实验在我的论文的第4.4节中描述.
基本流程如下

  1. 度量学习:如何确定两个面是否属于同一个人.
    这部分是受监督的,因为它需要输入面部图像,该图像标有每张照片中出现的人的身份.

    一个.检测基准点(眼睛,口角,鼻子).
    您可以使用此代码,或更近的版本,如这一个.

    湾 在检测到的基准点处提取SIFT描述符.

    C.构造"面部描述符":使用单个向量描述每个面.
    该向量是sqrt所有SIFT描述符的串联.

    d.使用此处描述的方法来了解不同人的面部之间的马哈拉诺比斯距离.

  2. 无监督面部识别:将指标初步了解,你可以使用的新照片新的人(这些人不一定是训练集的一部分,你可以使用的照片看不见的,之前的人!).

    一个.重复阶段ac以为每个输入面构造相同的"面部描述符"向量.

    湾 使用学习的马哈拉诺比斯距离比较描述符向量.