我跟随这里的例子: 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图像的分辨率。算法是否需要此数据进行预测?
我可以修改正在保存的内容和正在加载的内容,以便减少需要保存的数据量吗?如果是这样,需要保存什么以及我应该在哪里更改?
答案 0 :(得分:0)
最简单的方法是减小输入面的大小。 92x112的图像看起来很小,但识别应该可以在更小的图像上正常工作。