人脸识别/图像处理

信息处理 图像处理
2022-01-05 04:44:07

对于人脸识别系统,哪个更好使用神经网络或带有模式匹配概念的直方图?哪个更准确??

我需要将人脸识别引擎集成到 Java 项目中,所以我认为很难将数学实验室项目集成到 Java 项目中。所以我需要了解 OpenCv (C++) 和神经网络中的直方图和模式匹配。哪一个更好??

3个回答

嗯,重要的是要了解人脸识别(就像物体识别过程)是一个两阶段的过程,第一个是计算机视觉阶段,即在特征空间中表示图像(人脸)效果很好(取决于您想要做的任务)例如,图像本身是一组有序像素(比如说 300x300),这使得每个图像代表 90000 个数字,这是您的数据点(图像)的维度,仅供参考, 90000 非常大,如果你尝试使用神经网络、支持向量机或任何其他使用这种高维度的分类工具,你绝对不会学到任何东西——这是维度的诅咒(你需要提供更大的训练集,换句话说,要学习任何分类器,您需要比 90000 多得多的图像,这是很难和不合理的事情)。

因此,您需要在不同的空间(称为特征空间)中表示图像,对于人脸识别,有一种称为特征脸的东西(查找),但想法是您可以找到每个人脸中最具辨别力的特征图像,您将该图像转换为一组数字,这些数字将使用判别特征来描述图像,因此每个图像将表示为一组数字 (.3, .1, .1, ...),这将是比 90000 小得多。顺便说一下 (.3, .1, .1, ...) 将意味着例如 .3 头发和脸之间存在差异,.1 脸和背景之间存在差异等等.. . 然而,这是一个非常困难的步骤(特征选择),并且可能会根据您拥有的图像类型而有所不同(例如基本特征面仅在您的图像对齐时才有效,您的图像是否对齐?)。当然,使用颜色直方图是表示图像/人脸的另一种方法(个人(这只是我的观点),我认为颜色直方图对于人脸识别不会那么有效,我可能错了,很想知道是否有人知道)

第二步是分类步骤,这里可以使用Neural Networks(也需要大量的参数调优),Support Vector Machines(流行),或者决策树(简单可解释),adaboost(流行),以及其他一些方法. - 所以你将在特征空间而不是像素代表中提供你的图像,并希望你能学习一个很好的分类器,可以高精度地进行分类。

希望有帮助

我不确定神经网络实现的最新技术。但是,您可能想尝试基于直方图的面部识别的 matlab 实现 - http://www.mathworks.com/matlabcentral/fileexchange/22457-processed-histogram-based-face-recognition

它声称在 ORL 数据库上的准确率达到 99.75%

没有用于人脸识别的标准“神经网络”系统。任何使用这种方法的系统都会有很大的不同,这取决于你对网络的特征输入以及它被训练来完成这项工作的程度。一些清晰度将有助于指出更好的比较。

请注意,有些系统的准确率可以达到 99.999%(或者他们声称如此),但认为这不是真的是很合理的。(编辑)