我正在做一个使用PCA算法进行faiale识别的项目。我必须用JAVA开发这个项目,我有一些与该算法的实现相关的问题:
首先:在计算平均脸(meanface)时,我应该考虑到我正在处理图像,这意味着所有图像 vector 的平均值不能像代数中那样计算,但我们应该将每个像素的相同分量(例如:红色与红色,绿色与绿色等)彼此相加,然后将结果除以图像 vector 的数量。这是否正确?
如果前面的方法是正确的,那么 vector 的乘法呢?当我处理图像 vector 时应该如何计算它?
第二:假设前面的主题是不正确的,当我计算图像的特征向量时(通过使用算法中解释的代数方法),结果 vector 包含非常大的数字的像素,当尝试使用特征向量和变换矩阵检索源图像时,这些像素无法代表任何图像,那么我的问题是什么!?
最佳答案
所有图像应首先转换为灰度。然后以与所有图像中每个像素的代数平均值相同的方式计算平均脸部,因此所有图像中所有像素(0,0)的平均值就是平均脸部的像素(0,0),依此类推。
所有其他计算均按像素完成。
如果你没有这个,要将 RGB 转换为灰度,请使用 P = 0.587*red + 0.299*green + 0.114*blue
关于java - PCA人脸识别,实现技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12881093/