- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道这是否是相关论坛,但我一直在这里关注本教程:
http://www.openimaj.org/tutorial/eigenfaces.html
出于某种原因,这对我来说还不够清楚。有些事情我不明白。它曾经说过,
实现特征脸识别器的第一步是使用训练图像来学习 PCA 基础,我们将使用该基础将图像投影为可用于识别的特征。 EigenImages 类需要一个图像列表来学习基础(即来自每个人的所有训练图像),并且还需要知道我们希望我们的特征有多少个维度(即对应于最大的特征向量有多少个)要保留的特征值):
它会编写这段代码:
List<FImage> basisImages = DatasetAdaptors.asList(training);
int nEigenvectors = 100;
EigenImages eigen = new EigenImages(nEigenvectors);
eigen.train(basisImages);
所以我不明白。 train()
方法训练到底是什么?据我所知,这只是应用 PCA 对吗?在我看来,训练总是与感知器或另一个神经网络或带有参数的算法相关。
我还需要一些帮助来理解练习 13.1.1,
13.1.1。练习 1:重建面部
特征脸算法(特别是从 PCA 过程)提取的特征的一个有趣特性是,可以根据特征重建原始图像的估计。尝试通过如上所述构建 PCA 基础来实现此目的,然后从测试集中提取随机选择的人脸的特征。使用 EigenImages#reconstruct() 将特征转换回图像并显示它。您需要对图像进行标准化 (FImage#normalise()) 以确保其正确显示,因为重建可能会给出大于 1 或小于 0 的像素值。
在示例中,有一些代码已经提取了特征:
Map<String, DoubleFV[]> features = new HashMap<String, DoubleFV[]>();
for (final String person : training.getGroups()) {
final DoubleFV[] fvs = new DoubleFV[nTraining];
for (int i = 0; i < nTraining; i++) {
final FImage face = training.get(person).get(i);
fvs[i] = eigen.extractFeature(face);
}
features.put(person, fvs);
}
所以如果我这样称呼:
eigen.reconstruct(fvs[i]).normalise()
-> 返回一个我可以显示的图像,它看起来像一张正常的脸,但尺寸确实很小(这正常吗? )。
应该这样做吗?
谢谢。
最佳答案
PCA 有两个阶段:
您会发现的大多数 PCA 描述都假设您有一些数据,并且您只想降低其维度。更具体地,假设两个步骤中的数据相同。然而,情况并非一定如此。您可以对代表性数据样本执行步骤 1 以学习转换,然后将步骤 2 应用于不同的数据(尽管为了使结果有意义,该数据应该来自同一总体)。
对于特征脸,您可以从部分或全部“训练”人脸数据中学习 PCA 变换,然后使用该变换投影所有训练数据并训练监督分类器。当您想要测试系统时,您可以使用学习到的 PCA 变换将以前未见过的数据项投影到低维空间中,然后将其传递给分类器。
eigen.reconstruct(fvs[i]).normalise()
是正确的方法。重建的图像将具有与用于训练/测试的所有图像相同的尺寸(特征脸方法的限制是所有输入必须具有相同的尺寸)。在本教程中,AT&T 人脸数据集由分辨率相对较低的图像(92x112 像素)组成。
关于java - OpenImaj 教程和 EigenFaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32638131/
各位资深程序员大家好!我在特征脸图像训练部分有一个错误。 错误是:OpenCV 错误:不支持的格式或格式组合(在 Eigenfaces 方法中,所有输入样本(训练图像)必须大小相同!预期为 27889
在之前的博客 人脸识别经典算法一:特征脸方法(eigenface)里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础pca做介绍,现在做补充。请将这两篇博文结合起来阅读。以下内容大部分参考自斯
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我不知道这是否是相关论坛,但我一直在这里关注本教程: http://www.openimaj.org/tutorial/eigenfaces.html 出于某种原因,这对我来说还不够清楚。有些事情我不
我在 OpenCV 教程页面上找到的 Eigenfaces 代码有问题。 代码是这样的,与您在相关页面 (http://docs.opencv.org/modules/contrib/doc/face
我正在尝试找到衡量两张面孔相似度的方法。我使用 OpenCV。为此,我用 1000 个不同人的 1000 张照片训练 Eigenfaces/Fisherfaces(所以每个人 1 张照片)。所以我在训
我在 java cv 人脸识别中的 EigenFaces.predict() 方法中遇到错误。错误是- OpenCV Error: Image step is wrong (The matrix is
我想用 CodeBlocks 或 Linux Terminal 编译以下 OpenCV 程序。 http://plaza.ufl.edu/tyler727/imdl/src/eigenface.cpp
我是一名优秀的程序员,十分优秀!