在opencv中保存pca对象
我正在开发一个人脸识别项目,其中我们使用 PCA 来减少图像的特征向量大小。问题是,在训练期间,我通过合并所有训练图像来创建 PCA 对象。现在,在测试过程中,我需要之前获得的 PCA 对象。
我似乎无法弄清楚如何将 PCA 对象写入文件,以便我可以在测试期间使用它。一种替代方法是将其特征向量写入文件。但编写对象本身会方便得多。有办法做到这一点吗?
I'm working on a face recognition project in which we are using PCA to reduce feature vector size of an image. The trouble is, during training, I create the PCA object by incorporating all the training images. Now, during testing, I need the PCA object obtained earlier.
I cannot seem to figure out how to write the PCA object to a file, so that I can use it during testing. One alternative is that I write it's eigenvectors to the file. But it would be so much more convenient to write the object itself. Is there a way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我所知,没有通用的方法将 PCA 对象保存到文件中。您需要将特征向量、特征值和均值保存到文件中,然后在加载后将它们放入新的 PCA 中。您必须记住使用不会丢失精度的格式,尤其是对于平均值。
这是一些示例代码:
As far as I know, there is no generic way of saving PCA objects to a file. You will need to save eigenvectors, eigenvalues and mean to a file, and then put them into a new PCA after loading. You have to remember to use a format that doesn't lose precision, especially for mean.
Here is some example code:
你可以试试这个。
这里是来源。
You may try this.
Here is the source.