最小化FaceRecognizer加载时间

时间:2016-11-22 21:34:12

标签: opencv

我跟随这里的例子: http://docs.opencv.org/2.4/modules/contrib/doc/facerec/tutorial/facerec_save_load.html

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图像的分辨率。算法是否需要此数据进行预测?

我可以修改正在保存的内容和正在加载的内容,以便减少需要保存的数据量吗?如果是这样,需要保存什么以及我应该在哪里更改?

1 个答案:

答案 0 :(得分:0)

最简单的方法是减小输入面的大小。 92x112的图像看起来很小,但识别应该可以在更小的图像上正常工作。