How to run test - rusbiometrics/IRPV GitHub Wiki
Итак, вы уже развернули испытательный стенд и получили библиотеку c совместимым интерфейсом для тестирования. Как же запустить тест? Давайте рассмотрим на конкретном примере.
Допустим, нам передали на тестирование библиотеку с именем libirpv_11_null_0_cpu.so (для UNIX) или irpv_11_null_0_cpu.dll (для MS Windows, если библиотека собрана при помощи компилятора MS Visual Studio, то также понадобится файл с именами импортируемых функций irpv_11_null_0_cpu.lib). Эти файлы, независимо от платформы, мы должны поместить в директорию /IRPV/API_bin/irpv_11_null_0_cpu.
Теперь, мы должны специфицировать имя библиотеки, которую собираемся протестировать. Для этого нужно отредактировать параметр API_NAME в файле /IRPV/IRPVTest/Vendor.pri (посмотреть исходники). Так как наша библиотека называется irpv_11_null_0_cpu, то согласно договорённости, я должен использовать это же имя в качестве значения API_NAME. Открываем файл текстовым редактором, изменяем строчку и сохраняем изменения в файле. Сделав это, переходим к сборке теста:
cd IRPV
mkdir build
cd build
qmake ../IRPVTest/IRPVTest.pro
make
В результате, если сборка закончится успешно, в директории /IRPV/build появится исполняемый файл IRPVTest. Запуск этого файла на исполнение и будет запуском теста. Давайте проверим, что тест запускается:
./IRPVTest
В терминале вы должны увидеть опции запуска теста.
IRPVTest version 1.0.0.0
Options:
-g - force to open all images in 8-bit grayscale mode, if not set all im
ages will be opened in 24-bit rgb color mode
-i - input directory with the images, note that this directory should ha
ve irpv-compliant structure
-o - output directory where result will be saved
-r - path where Vendor's API should search resources
-v - set how namy verification templates per person should be created (d
efault: 1)
-e - set how namy enrollment templates per person should be created (def
ault: 1)
-p - set how many points for ROC curve should be computed (default: 512)
-s - be more verbose (print all measurements)
-w - force output file to be rewritten if already existed
Что делать, если тест не собирается? В этом случае, система сборки сообщит Вам в чём заключается проблема/проблемы и Вы должны будете последовательно её/их устранить. Наиболее распространённой проблемой может стать отсутствие на стенде (на машине, на которой собирается тест) специальных программных библиотек, которые использовал разработчик тестируемой библиотеки при её сборке. Что делать в этом случае. Естественно запросить у разработчика перечень этих библиотек и инструкции по их развёртыванию. Опции линковки с дополнительными библиотеками следует включать во всё тот же файл /IRPV/IRPVTest/Vendor.pri.
Если сборка проходит успешно, но при запуске тест "падает", то версия переданной на тестирование библиотеки несовместима с окружением, развёрнутом на тестовом стенде. Вероятнее всего для сборки теста и библиотеки используются несовместимые версии компиляторов. Чтобы избежать подобных проблем, полезной практикой может стать привлечение разработчика библиотеки к настройке тестового стенда.
На этом инструкцию по сборке и запуску теста можно считать законченной. Обратите внимание на то, что для запуска реального теста Вам нужно располагать размеченной базой изображений и (хорошо бы это всегда было так) руководящими испытаниями документами. Эти документы должны описывать требования к количественным характеристикам качества изображений, к количеству биометрических шаблонов на каждого человека и прочим условиям проведения испытаний, а также обязательно ставить цель испытаний. В противном случае, проведение теста нецелесообразно, не тратьте своё время.
Далее мы рассмотрим реальный пример применения API IRPV для сравнения открытых алгоритмов распознавания лиц. Целью нашего исследования станет поиск ответа на вопрос каких значений FAR и FRR позволяют достичь доступные сейчас алгоритмы распознавания лиц? Перейти.