3

我正在尝试做一些人脸识别和幻觉实验,为了得到最好的结果,我首先需要确保所有的人脸图像都是对齐的。我正在使用数千张图像进行实验。

过去几天我一直在互联网上搜索,发现许多声称可以这样做的不同程序,但是由于 Matlabs 向后兼容性差,许多程序不再工作。我尝试了几个不同的程序,这些程序在调用 Matlab 函数时无法运行,这些函数已被删除。

我发现最接近的是使用 SIFT 算法,代码在这里找到

http://people.csail.mit.edu/celiu/ECCV2008/

这确实有助于对齐图像,但不幸的是它也会对图像进行下采样,因此结果看起来非常模糊,这会对我进行的任何实验产生负面影响。

有没有人有任何 Matlab 代码示例,或者能够为我指出正确的方向来实际对齐数据库中的面的代码。

任何帮助将非常感激。

4

3 回答 3

3

您可以在野外找到有关人脸检测、姿势估计和地标定位的最新工作。它有一个工作的 Matlab 实现,这是一个很好的方法。
一旦你确定了你所有脸上的关键点,你就可以将它们变成一个单一的参考并从那里开始工作。

于 2013-11-27T12:56:05.267 回答
2

使用 PCA 和特征向量的最简单方法。找到 X 和 Y 最具代表性的数据。所以你会得到脸部的方向。

您可以在本文档中找到说明:PCA Aligment

于 2013-11-27T13:33:44.503 回答
2

你需要先检测人脸,还是已经被裁剪了?如果需要检测人脸,可以使用vision.CascadeObjectDetector计算机视觉系统工具箱中的对象。

要对齐面,您可以尝试imregister图像处理工具箱中的功能。或者,您可以使用基于特征的方法。计算机视觉系统工具箱包括许多兴趣点检测器、特征描述符和matchFeatures匹配一对图像之间的描述符的函数。然后,您可以使用该estimateGeometricTransform函数来估计两个图像之间的仿射甚至投影变换。有关详细信息,请参阅此示例

于 2013-11-27T14:50:10.940 回答