1
我以下这里的例子: http://docs.opencv.org/2.4/modules/contrib/doc/facerec/tutorial/facerec_save_load.html最小化FaceRecognizer加载时间
Ptr<FaceRecognizer> model0 = createFisherFaceRecognizer();
model0->train(images, labels);
model0->save("faces_at.yml"); // save the model to faces_at.yaml
的问题是,保存文件的大小大,它随着数字的输入(这是我训练我的模型上)增加。有什么办法可以减小文件大小吗?由于我的应用程序的性质,我需要重复加载我的预测变量,这使得一切都非常缓慢。 保存完文件后,我没有进行任何培训,我只用预测的faceRecognizer进行预测。
当我看着YAML的文件,似乎模型保存的事情之一,是这样的:
eigenvectors: !!opencv-matrix
rows: 10304
cols: 29
其中29是投入10304 = 92x112数量和图像的分辨率。该算法是否需要这些数据进行预测?
我可以修改正在保存的内容和正在加载的内容,以便减少需要保存的数据量吗?如果是这样,那么需要保存什么以及我应该在哪里更改?
问题是,即使如此,它仍然依赖于样本数量。我不明白为什么特征向量具有29(样本大小)列和10304(92x122)行 – Hossein
它们将总是具有与像素一样多的行,并且您有太多像素。二十九个特征向量并不多,但你可以告诉它节省更少。 http://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_api.html#FaceRecognizer%20:%20public%20Algorithm – Aaron