как получить процент сходства с помощью библиотеки libfacerec Opencv

Это может быть простой вопрос, но я немного запутался, поэтому надеюсь, что кто-то поможет мне правильно.

я использую библиотеку распознавания лиц openCV libfacerec, это дает хороший результат, но мне нужно оценить процент сходства. Если я использую неизвестное изображение в качестве входных данных, то все равно оно предсказывает, что человек существует в системе на основе последнего значения расстояния.

         if(dist < minDist) {
        minDist = dist;
        minClass = _labels[sampleIdx];
    }

Мне нужно определить некоторый порог, а затем проверить/аннулировать изображение пользователя на основе этого порога по отношению к некоторому значению процента или расстояния, знает ли кто-нибудь, как это сделать с помощью библиотеки libfacerec, потому что в этой библиотеке нет общедоступной переменной для просмотра расстояния или процента ценность? В противном случае мне нужно кодировать внутри библиотеки для этого, потому что, насколько я понимаю, он не содержит этой функции ???


person wolvorinePk    schedule 13.06.2012    source источник
comment
Привет. Я искал в документе, но не смог найти простой способ получить это, не копаясь в коде. Вы можете напрямую опубликовать проблему на Gituh, где размещен проект: github.com/bytefish/libfacerec /вопросы. Я уверен, что разработчик свяжется с вами быстро!   -  person jlengrand    schedule 13.06.2012


Ответы (1)


Пожалуйста, убедитесь, что вы работаете с последней версией! Последняя версия libfacerec позволяет вам получить прогноз И значение достоверности для прогноза. Вы можете увидеть сигнатуру методов здесь:

Это показано в демонстрационном приложении, которое я отправляю с библиотекой, см.:

Это так же просто, как позвонить:

FaceRecognizer::predict(InputArray src, int &label, double &confidence); 

на расчетной модели. Итак, в своем приложении вы просто напишете:

Mat testSample; // of course this is set somewhere in your application
int predictedLabel = -1;
double confidence = 0.0;
model.predict(testSample, predictedLabel, confidence);

Затем у вас есть предсказанная метка в предсказанииLabel И значение достоверности для этого предсказания в достоверности.

Во-вторых, и это, вероятно, даже больше подходит к вашему вопросу, теперь у вас есть возможность установить порог, ниже которого входное изображение считается неизвестным. Вы можете установить порог в конструкторе модели или с помощью метода установки/получения:

Это также показано в демонстрационном приложении, которое я поставляю с библиотекой:

person bytefish    schedule 13.06.2012
comment
Спасибо байтфиш! это работает как шарм, еще одна вещь, GIT не обновляет весь исходный каталог ствола. Пришлось обновить весь транк через zip архив библиотеки libfacerec. Также спасибо за предложение, я обязательно свяжусь с вами за ваш вклад. - person wolvorinePk; 16.06.2012
comment
Прохладно! Я подготовил обновленную версию и загружу ее к воскресенью. Было бы здорово, если бы вы прочитали и сказали мне, где вы видите улучшения/что сбивает с толку. - person bytefish; 16.06.2012
comment
Здравствуйте мистер. байтфиш. Я также использовал последнюю версию libfacerec, но в python. Есть ли способ также использовать это значение достоверности в прогнозе в python? Было бы полезно, чтобы мое приложение могло сказать, неизвестен ли данный человек. - person Fábio Constantino; 17.07.2012
comment
Мистер Байтфиш. Ха-ха-ха, не нужно быть такой вежливой! Вы имеете в виду http://github.com/bytefish/facerec? - person bytefish; 17.07.2012
comment
Хорошо, байтфиш, сэр: p Я использую один из примеров FaceRec в этом пакете — apps/videofacerec/videofacerec.py, чтобы опробовать распознавание лиц, однако в этой документации я не смог найти ничего, относящегося к порогу принятия распознавания. лиц (я несколько новичок в этом, извините). - person Fábio Constantino; 18.07.2012