Программное обеспечение для считывания отпечатков пальцев с использованием С#

Я планирую проверить ввод пользователя для своего приложения с помощью биометрического ввода. Я провел некоторое исследование в сети и предложил следующие варианты биометрического ввода:

  • Fingerprint
  • Распознавание лиц
  • Сканирование сетчатки
  • Сканирование диафрагмы
  • Распознавание голоса
  • Подтверждение подписи

Из которого я чувствовал отпечаток пальца как наиболее подходящий вариант. Но проблема с этим заключается в том, что API устройства отпечатков пальцев будет отличаться в зависимости от его аппаратного обеспечения. Поэтому, скорее всего, мне кажется, что мне нужно будет кодировать API-интерфейсы нескольких устройств, которые я не считаю дружественными.

Я намерен делать материалы программирования на С#. Есть ли выход из этого. Поскольку я новичок в этом, я не знаю. Каким образом можно атаковать эту проблему и насколько обширна область проекта и каким должен быть мой подход к этому проекту.

Ответ 1

Проблема не уникальна для считывателей отпечатков пальцев, она будет применяться ко всем другим параметрам в вашем списке и к множеству других периферийных устройств. Фактически стандартным API является исключение.

Итак, вам придется искать кого-то, кто продает библиотеку для этого или записывает свой собственный (COM и/или Interop). И прокат вашей собственной, как правило, не будет небольшим или простым проектом.

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

Ответ 3

У моего коллеги было поручено создать биометрическую систему штатных часов для компании, в которой мы работали. Мы, ИТ, выбираем Отпечатки пальцев в качестве биометрического источника. Он исследовал и использовал эту библиотеку из Bayometric - Griaule Fingerprint SDK вместе с некоторыми дешевыми считывателями MS. Из того, что он показал мне и говорил в то время, мне кажется, что эта библиотека .net имеет хороший API и с ней легко работать.

Биометрическая система все еще используется сегодня, примерно через 5 лет.

Ответ 4

Я работаю в биометрическом поле, и я использую С# для большого количества отпечатков пальцев, которые я делаю. Именно по этой причине моей компании пришлось разработать библиотеку абстракции устройства для отпечатков пальцев. Учтите, что для всех сканеров отпечатков пальцев нужен только один вызов: getImage. Зная это, моя компания написала библиотеку, которая инициализирует и настраивает каждое устройство, создает общую оболочку, назначает уникальный идентификатор и выдает его в большой список, который вы можете перечислить.

Затем со стороны С# все, что вам нужно сделать, это "выбрать" устройство (все, что вам нужно - это уникальный идентификатор и, возможно, производитель), а затем использовать его. Данные изображения, которые возвращаются, должны решаться заранее, чтобы вы знали, что вы будете получать каждый раз

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

Наконец, имейте это в виду: если вы делаете извлечение minutiae, устройство, которое вы используете, к сожалению, будет влиять на то, какие мелочи обнаруживаются. Некоторые устройства "настроены" для определенных алгоритмов, и поэтому регистрация с устройством A и согласование с устройством B могут вообще не работать, несмотря на идеальные отпечатки пальцев.