我是图像处理方面的新手,我的第一个任务是制作一个可以识别人脸和名字的工作程序。 到现在为止,我成功地制作了一个项目来检测、裁剪检测到的图像,使其成为 sobel 并将其转换为 float 组。 但是,我很困惑如何实现反向传播 MLP 来学习图像,以便它可以识别检测到的人脸的正确名称。
非常荣幸stackoverflow的各位专家能给我一些例子,说明如何实现要用反向传播学习的Image数组。
最佳答案
这是标准的机器学习算法。您有许多 float 数组(ML 中的实例或统计术语中的观察值)和相应的名称(标签、类标签),每个数组一个。这足以用于大多数 ML 算法。特别是在 ANN 中,数组的元素(即特征)是网络的输入,标签(名称)是其输出。
如果您正在寻找反向传播的理论描述,请查看 Stanford's ml-class lectures (ANN 部分)。如果您需要现成的实现,请阅读 this question .
您还没有指定数组的元素是什么。如果您只使用原始图像的像素,这应该可行,但不是很好。如果您需要生产级别的系统(尽管仍然使用 ANN),请尝试提取更多高级功能(例如 Haar-like features,OpenCV 自己使用)。
关于c++ - 使用反向传播神经网络进行人脸识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8670045/