|
После установки SDK и получения софтверной лицензии, вам необходимо настроить файл кофигурации. См. Конфигурация.
Перед созданием основных объектов SDK (например, Diametrix::Detector, Diametrix::Extractor, Diametrix::Matcher, etc.) вам нужно создать объект Diametrix::Config.
Создать объект Diametrix::Config
configFileName - путь, по которому у вас лежит файл конфигурации.
Вы можете найти пример файла конфигурации в пакете SDK - файл config_default.cfg
SDK поддерживает работу с изображениями в форматах WSQ, jpg, bmp, png. Также вы можете использовать уже декодированные изображения 8bit (см. требования ГОСТ Р ИСО/МЭК 19794-4-2014 - пункт 6.2). См. другие требования к изображениям на странице Требования
Работа с изображениями в SDK ведется через объект Diametrix::Image.
Для декодирования изображений вам прежде всего нужно создать объект Diametrix::Decoder:
где cfg - это Diametrix::Config.
После этого вы можете декодировать изображения с жесткого диска:
или из памяти:
Если у вас уже есть декодированные изображения 8raw bit (согласно требованиям ГОСТ Р ИСО/МЭК 19794-4-2014 - пункт 6.2) создайте Diametrix::Image:
Первый шаг в распознавании отпечатков пальцев - это детектирование, а именно поиск и локализация отпечатков на изображении.
Прежде всего вам нужно создать объект Diametrix::Detector:
Для запуска детектирования на изображении:
где:
500 - это dpi изображения
0.333 - это конфиденс (или степень уверенности) детектора
Diametrix::Detector возвращает объекты Diametrix::Detection. Вы можете работать с изображениями, на которых больше одного отпечатков. В таком случае Diametrix::Detector вернет несколько детекций. Все детекции возвращаются с рамкой детекции (Diametrix::Detection::bbox()) и конфиденсом детекции. На основании этой информации вы можете выбрать нужную детекцию или детекции.
Если вы работаете с изображениями, на которых всегда только один отпечаток с одинаковой позицией, например, в центре кадра, и вы уверены в этом, то вы можете задать позицию отпечатка вручную, не запуская алгоритм детектирования.
Создать объект Diametrix::Detection, с отпечатком пальца в центре кадра:
где:
500 - это dpi
0 - это угол наклона отпечатка относительно вертикальной оси.
Конфиденс - это значение между 0,0001 и 0,9999, которое отражает степень уверенности детектора в достоверности детекции, где 0,0001 - это скорее всого ложная детекция и 0,9999 - это скорее всего отпечаток.
Рекомендованное значение порога конфиденса: от 0.33 до 0.5, но данное значение может зависеть от вашей задачи и характера изображений, с которыми вы работаете. Мы рекомендуем провести тестирование на вашей базе данных для выбора наилучшего порога детектирования.
Для построения биометрического шаблона используется объект Diametrix::Detection. Биометрический шаблон - это компактный проприетарный дескриптор, который используется для последующего сравнения и распознавания.
Размер биометрического шаблона: 512 байт. Размер шаблона всегда одинаков и не зависит от изображения, из которого он был извлечен.
Прежде всего создайте объект Diametrix::Extractor:
Создайте объект Diametrix::Template, используя объект Diametrix::Detection:
Вы можете сериализовать шаблон в памяти:
и загрузить сериализованный шаблон:
SDK имеет следующие функции сравнения биометрических шаблонов:
Объект Diametrix::Matcher оперирует объектами Diametrix::Template и Diametrix::TemplateDB. Diametrix::TemplateDB - это галерея шаблонов, которая используется для сравнения 1:N или M:N.
Diametrix::TemplateDB хранится в оперативной памяти (RAM).
Сравнение 1:1 возвращает степень похожести двух шаблонов (matching score)
Сравнение 1:N возвращает ТОП K лучших результатов сравнения из Diametrix::TemplateDB, отсортированных в порядке от большего к меньшему (от высокой степени похожести к низкой). "K" может быть любым числом, не превышающим размер галереи шаблонов Diametrix::TemplateDB.
Пакетный режим сравнения M:N позволяет достичь лучшей производительности по сравнению с режимом 1:N. Консультируйтесь с нашими специалистами для выбора оптимального размера пакета для вашего оборудования и ваших задач.
Прежде всего создайте объект Diametrix::Matcher:
Сравнение двух шаблонов друг с другом (1:1)
Создание объекта Diametrix::TemplateDB:
Внимание! Указание maxSize требуется для корректного выделения оперативной памяти. Также учитывайте, что максимальный размер вашей галереи шаблонов (TemplateDB) может быть ограничен параметрами лицензии.
Добавить шаблон в Diametrix::TemplateDB:
Внимание! В SDK нет проверки на повторы ID. Это означает, что у пользователя есть техническая возможность добавить два разных шаблона с одинаковыми ID.
Если вы хотите удалить шаблон из галереи шаблонов, то вам следует удалить и пересоздать галерею шаблонов. Функционал удаления реализован таким образом из-за оптимизации производительности (операции удаления и создания заново быстрее, чем удаление конкретного шаблона из памяти, что особенно заметно при работе с большими галереями).
Получить все ID шаблонов из объекта Diametrix::TemplateDB:
ID будут возвращены с копиями, если копии существуют
Проверить, есть ли конкретный ID в объекте Diametrix::TemplateDB:
Сравнение шаблона с галереей шаблонов Diametrix::TemplateDB (1:N) с выдачей ТОП-10 лучших результатов сравнения:
Matching score - это нативное значение, которое измеряет степень похожести двух биометрических шаблонов. Score в SDK распознавания отпечатков пальцев Diametrix напрямую привязан к FAR (false acceptance rate) и его значения соответствуют -logFAR, что означает:
Для того, чтобы задать порог сравнения, укажите score: совпадения со score, выше указанного, вы увидите в результатах сравнения. Например, порог 6 означает, что SDK вернет все результаты сравнения со степенью похожести (matching score) от 6 и выше. Выбор порога зависит от вашей задачи и допустимого уровня ложноположительных сравнений (FAR).
Подробнее об ошибках первого и второго рода (false acceptance rate и false rejection rate), которые характеризуют качество работы любого биометрического алгоритма, можно прочитать здесь.