我有一个项目,我需要制作用于人脸识别的神经网络。网络的输入应该是需要识别的人脸特征。
我搜索了很多,发现 Matlab 的计算机视觉工具箱的 SURF Detector 可以帮助我提取面部特征。但是 SURF Detector 提取人脸的关键点,并为每个关键点设置 64 或 128 个值的向量。问题是关键点的数量各不相同,我需要它对于每张脸都相同,以便能够提供神经网络的输入。
所以我想只提取一些可以表示为单个数字的特征,比如鼻子、嘴巴、眼睛与脸部的比例或眼睛之间的距离等。
我怎样才能获得这些特征,它们是否足以提供服务作为需要识别人脸的神经网络的输入?在神经网络的输出中,与数据库中不同的人的神经元数量相同,在训练阶段,我将向网络提供从照片中提取的面部特征,如果是照片,假设是第三张照片数据库中有五个人,我的输出层看起来像 [0,0,1,0,0]。
这是一个好方法吗?你能给我一些代码,在 Matlab 中从人脸中提取这些人脸特征吗?