我在计算机视觉课程中的最后一个项目是面部识别。我将图片呈现给Matlab,它给了我这个人的名字。当然我以前的图像是我在新图片中搜索的面孔。 你建议任何参考和算法吗?
答案 0 :(得分:2)
将图像转换为数组矢量,训练集中的所有图像将形成一个大的M X N矩阵,其中M是图像像素大小,N是样本编号。最常使用两种方法:(1)在矩阵上使用主成分分析来提取核心组件,并将它们投影到子空间上。 (2)线性判别分析用于最大化类间散射和类内散射的行列式的比率。请阅读this paper以供参考。
答案 1 :(得分:2)
对于面部检测,您可以使用Viola&琼斯算法。
用于分类:
培训 1.裁剪图像中的面并将其分成块。 2.从每个块中提取均匀的LBP直方图并连接直方图。 3.将这些LBP功能输入SVM。
测试: 在新图像上训练1 + 2,然后将LBP功能提供给训练有素的SVM。
您可以添加一个对齐图像的附加步骤,以提高您的性能。
为此,您可以检测面部关键点(眼睛,鼻子,下巴),找到要与正面图像对齐的图像之间的单应性,然后在图像上应用单应性。
Viola和Jones是在Matlab的计算机视觉工具箱中实现的,如果您愿意,我可以向您发送LBP的Matlab代码,以及如何对齐图像的示例。对于和SVM包,您可以使用LibSVM。