2016-11-22 3 views
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 

Вопрос заключается в том, что размер сохраненного файла является большим, и это увеличивает как число входов (которые я тренирую свою модель on) увеличивается. Есть ли способ уменьшить размер файла? Из-за характера моего приложения мне нужно многократно загружать свой предиктор, что делает все очень медленным. Как только я сохранил файл, я не тренируюсь, и я использую только загруженный faceRecognizer для предсказания.

Когда я смотрю в файл YAML, кажется, что одна из вещей, модель позволяет экономить, заключается в следующем:

eigenvectors: !!opencv-matrix 
    rows: 10304 
    cols: 29 

Где 29 это количество входов и 10304 = 92x112 разрешение изображений , Требуется ли алгоритму эти данные для его предсказания?

Могу ли я изменить то, что сохраняется и что загружается, чтобы я мог уменьшить объем данных, необходимых для сохранения? Если да, то что нужно сохранить и где я должен измениться?

ответ

0

Проще всего было бы уменьшить размер входных граней. Изображение 92x112 кажется небольшим, но распознавание должно отлично работать на гораздо меньшем изображении.

+0

проблема в том, что даже тогда она будет по-прежнему зависеть от количества образцов. Я не понимаю, почему у собственных векторов есть 29 (размер выборки) столбцов и 10304 (92x122) строк – Hossein

+0

, они всегда будут иметь столько строк, сколько есть пикселей, и у вас слишком много пикселей. Двадцать девять собственных векторов - это не много, но вы можете сказать, что это меньше. http://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_api.html#FaceRecognizer%20:%20public%20Algorithm – Aaron

Смежные вопросы