Вернуться на главную страницу

  

BILightServ - "серверное" ПО

 

      Программная составляющая.

      Модуль BILightServ состоит из:

  • BILightServer.exe - основная программа модуля;
  • BILightServer.ini - настроечный файл, в котором заданы основные параметры работы;
  • BILightServer.log - журнал работы программы;
  • reg.lic - файл лицензии БИПИНа.

      Порядок установки программы.

      Установки программы состоит из двух этапов: получение лицензии БИПИН на программу; настройка ini - файла.

      Для получения лицензии необходимо получить код запроса лицензии, запустив программу с параметром /R (регистрозависим), в результате будет отражено окно с кодом, который с текстом запроса в произвольной форме следует отправить на E-Mail a@bipin.ru, после чего перезвонить на тел. +7 (903) 7699354 или +7 (495) 7964459. Получение неограниченной версии лицензии возможно только после подписания Лицензионного Договора с компанией БИПИН, текст которого высылаются по требованию. Ограниченная по времени лицензия (на один или два месяца) может быть предоставлена бесплатно, без заключения договора, после анализа запроса, например, для цели изучения комплекса или для организации рекламно-выставочного мероприятия. Решение по бесплатной выдаче временной лицензии принимается в течение суток после звонка по указанному выше номеру. Лицензия предоставляется в виде файла reg.lic. Без этого файла модуль неработоспособен. Лицензия на все программные компоненты комплекса не являются взаимозаменяемыми.

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

      Содержимое инициализационного файла.

[MAIN]  
term_cnt=2 Количество подключаемых к серверу терминалов. Каждому терминалу соответствует один порт, общее количество терминалов не может превышать 1024.
[TERM1] Блок описания параметров первого терминала. Допустимы значения TERM1..TERM1024, нумерация должна идти подряд, без пропусков.
ip=127.0.0.1 Ссылка "на себя", должна в данной версии принимать указанное значение. В следующих версиях будет использоваться для построения систем многоуровневой авторизации.
port=1245 Порт, который используется для работы с данным терминальным приложением. Порт должен быть уникальным не только по всем терминалам, но и по всем сетевым приложениям данного сервера.
id=3 Идентификатор "родного" файла слепков отпечатков. Может принимать значения из диапазона [3..1026]. О применении данного параметра см. ниже.
caption=Описание первого сканера Описание терминала.
interval=1000
Интервал опроса сканера. В данной версии параметр не используется.
min_quality=60 Минимальное значение приемлемого качества отпечатка. В данной версии программы не используется.
[TERM2]  
...  

      Реализованные в программе алгоритмы.

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

      Параметр ID, задаваемый для каждого терминала в INI - файле определяет номер "родного" файла данных слепков. При появлении запроса с терминала, поиск происходит сначала по "родному" файлу, потом по общему файлу образов отпечатков с максимальной "полезностью", потом по двум "оригинальным" файлам (файлам, в которые был заведен первичный образ отпечатка при регистрации клиента), потом (если не превышен таймаут поиска, зашитого в программе и в данной версии равного 5 с.) по всем оставшимся файлам со слепками. В результате успешной идентификации (если нет очереди ожидания распозначания и "укладываемся" в пятисекундный таймаут) происходит корректировка параметра "полезности" каждого сохраненного образа, и "подправляется" "наилучший" файл.

      Использование параметра ID дает возможность уменьшить мощность первоначального перебора, т.е. значительно увеличить скорость идентификации клиента. Грубо говоря, если первому терминалу TERM1 прописать ID=3, TERM2 - ID-4 и т.д., то получится, что для каждого терминала появится свой собственный "список" слепков, знакомых этому сканеру, т.е. первый поиск отпечатка будет выполняться чуть больше обычного (поиск по "оптимальному файлу" и "первому эталону", после чего в большинстве случаев будет осуществляться успешная идентификация лишь по "знакомым" отпечаткам соответствующего этому терминалу файла слепков. Точно так же, разным группам терминалов (например, по географическим признакам), можно дать одинаковый ID, в этом случае понятие "свой" будет относиться уже к территориально обособленной группе терминалов. И, наконец, можно всем терминалам присвоить одинаковый ID, что и рекомендуется при небольших (до 1000 уникальных слепков) баз с образцами отпечатков.

      Механизмы оптимизации базы включают две процедуры: процедуру удаления "плохих" слепков отпечатков (тех, по которым поиск обычно не удается); процедуру "нормирования" - для "хорошего" отпечатка параметр полезности со временем достигает максимального значения "99" ("полезнось" принимает значения от 01 до 99, начальное значение - 50. При этом каждое успешное распознавание по соответствующему слепку увеличивает параметр на 1, каждое "нераспознание" - уменьшает. Для того, что бы новые отпечатки смогли "выйти" в оптимальный файл образов, необходимо время от времени "нормировать" значения "полезности", т.е. однократно пересчитывать диапазон из 01..99 до 25..75. В этом случае новый более качественный отпечаток после нескольких прикосновений появится в "оптимальном" файле.

      После запуска сервер может работать в автономном режиме. Выводов лог - файла, какого бы то ни было отображения результатов данных не выполняется. Однако на программе сервера расположены управляющие кнопки, которые позволяют вручную инициировать выполнение той или иной операции. Скриншот программы и краткое описание "дополнительных" опций приведен ниже.

      Скорость работы сервера напрямую зависит от производительности процессора и объема оперативной памяти. Тесты, проводимые на базе P4, 2.6 ГГц, 256 Мб, Win2000 показали пиковую скорость перебора (без оптимизации базы) в 4000 пар отпечатков в секунду. При наличии 4-х терминалов, на каждом из терминалов 5000 "своих" отпечатков, при допустимом времени идентификации в 5 секунд на указанном оборудовании рекомендуется работа с не более чем с 10 000 слепками. Увеличение количества "отпечатков" возможно при расширении терминальной сети с уникальными файлами данных или же увеличением производительности процессора. При указанных объемах (10000 слепков, 4 терминала, у каждого по 5000 "своих") файлы слепков отпечатков будут занимать 10..20 Мб, требуемый объем свободной (не свопируемой, не виртуальной) оперативной памяти - 25 Мб.

      Скриншот работы программы.

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

Скриншот программы сервера

     В представленной версии программы реализован следующий "кнопочный" функционал:

  • Save ST - мгновенное сохранение базы слепков;
  • Load ST - мгновенная загрузка базы слепков;
  • Load DATA - загрузка файла данных (он определяет возвращаемые значения по определенным отпечаткам);
  • Show LOG - кнопка инициирует вывод лога из памяти в экранную форму и в лог - файл (представлен скриншот после нажатия этой кнопки) ;
  • Clear bad ST - кнопка инициации удаления из "своих" файлов слепков отпечатков с "полезностью" < 10;
  • Process ADD - кнопка загрузки "новых" слепков в базу слепков из внешнего файла.

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

     На данном скриншоте лог может быть интерпретирован следующим образом: в указанные даты - времена поступал запрос (указан хост и порт), после чего выводятся временные параметры работы сервера. "По себе" означает время, которое потрачено на поиск отпечатка в "родном" файле. Если в "родном" отпечаток не найден, продолжается поиск "по лучшему", "по первому эталону", "по второму эталону", если отпучаток найден, поиск останавливается, и указанное время прописывается в "по себе,2,0,1". Время приводится от начала поиска, а не каждого фрагмента, скриншот приведен с базы слепков из десяти уникальных отпечатков, каждый из которых зарегистрирован за "своим" терминалом. Если по результатам этого поиска ничего не найдена, продолжается "общий поиск", где приведены его временные параметры. Если отпечаток найден, проводится автоматическая оптимизация базы слепков, после чего отражается полное время выполнения запроса. Рассмотрев все данные, можно сделать вывод, что на базе из 10 отпечатков пальцев, при запросе с одного терминала, был лишь один отказ при распознавании из более чем 15 запросов (<7%), при этом, вероятно, этот сбой произошел из-за того, что палец стали уже убирать (менее чем через 1 сек от предыдущего запроса). Обычное время "поиска" - 0,015 сек, максимальное время поиска - 0.03. Общее время выполнения запроса с оптимизацией - 0,047 сек, при этом оптимизация занимала не более 0.032 сек. При появлении больших объемов отпечатков и серверов обслуживания (сочетания производительности процессора и памяти, операционных систем) мы будем обновлять параметры производительности системы.

Отправить E-Mail на адрес: a@bipin.ru