Документация для версии Face-Интеллект 8.2. Документация на другие версии также доступна.

Предыдущая страница События FIRSERVER  Приложение 4. Описание утилит для работы с ПК Face-Интеллект Следующая страница

На странице:

Общие сведения о скриптах

При настройке программного комплекса Face-Интеллект с целью частичной автоматизации процессов используются пользовательские скрипты. В документе Программный комплекс Интеллект. Руководство по созданию скриптов (программирование) дано описание объектов и методов программирования, необходимых для разработки скриптов в программном комплексе Интеллект.

Скрипт для верификации лиц 

Режим верификации по команде сравнивает захваченное лицо в кадре с фотографией пользователя, которая хранится на диске по адресу: <Директория установки ПК Интеллект>\Bmp\<Person>, а также определяет параметры лица: эмоции, температуру, сокрытие лица (маску), пол, растительность на лице.

Для верификации лица необходимо выполнить следующее:

  1. Создать скрипт:

    if(Event.SourceType == "MACRO" && Event.Action == "RUN" && Event.SourceID == "1")
    {
       DoReactStr("FIRSERVER","1","VERIFY_START","cam_id<1>,p_id<15>,wait<10>");
    }

    Параметры:

    • 1 –  идентификатор объекта Сервер распознавания лиц;
    • VERIFY_START – команда верификации пользователя;
    • cam_id<1> – идентификатор камеры. В случае, если используется модуль распознавания лиц VisionLabs, то вместо идентификатора камеры необходимо указать идентификатор объекта Детектор лиц.
    • p_id<15> –  имя файла с фото в папке <Директория установки ПК Интеллект>\Bmp\<Person> без разрешения (например, 15 для файла 15.bmp);
    • wait<10> –  время ожидания появления лица в секундах.
  2. Выполнить первую макрокоманду. Если в течение 10 секунд перед камерой не появится пользователь с фотографии, то будет отображено событие Верификация отклонена. В случае, если пользователь появился, то сразу после его появления будет выведено событие Успешная верификация с выводом процента схожести захваченного лица с фотографией пользователя, которая хранится на диске.
    Пример успешной верификации с выводом процента схожести захваченного лица с фотографией пользователя, а также его пола, температуры тела, наличия растительности на лице, сокрытия лица и эмоций:

    Event : FIRSERVER|1|IDENTIFY_ACCEPT|temperature_alarm <37>, imageBase64.0<>, emotion<neutral>,fraction<285>,int_obj_id<1>,temperature<36,6>,evasion<normal>,owner<PC>,gender<male>,
    sim<99.60>,facialHair<gm>,date<11-10-21>,from_script<1>,guid_pk<{1CCF1800-772A-EC11-94B6-D8BBC1166DF4}>,core_global<1>,p_id<11176>,wait<10>,cam_id<13>,time<12:38:42>,param0<Timeout>,
    imageBase64Count<1>, liveness<not_liveness>


    Пример события, когда фотография не соответствует верифицируемому лицу:

    Event : FIRSERVER|1|IDENTIFY_DECLINE|temperature_alarm<>,fraction<371>,int_obj_id<1>,owner<PC>,noImage<0>,date<10-02-22>,from_script<1>,
    guid_pk<{51A469CC-438A-EC11-94E5-D8BBC1166DF4}>,timeout<1>,core_global<1>,p_id<1>,quality<83.864>,wait<10>,cam_id<2>,time<10:34:01>,param0<Timeout>

    Пример события, когда у пользователя нет фотографии:

    Event : FIRSERVER|1|IDENTIFY_DECLINE|temperature_alarm<>,fraction<367>,int_obj_id<1>,owner<PC>,noImage<1>,date<10-02-22>,from_script<1>,
    guid_pk<{B314D117-458A-EC11-94E5-D8BBC1166DF4}>,timeout<1>,core_global<1>,p_id<4>,quality<0>,wait<10>,cam_id<2>,time<10:43:14>,param0<Timeout>

Верификация лица завершена.

Внимание!

Файл с фотографией должен иметь расширение .bmp. При этом формат файла может быть любым из списка: JPG, BMP, PNG.

Скрипт для добавления эталонного лица в базу данных из файла

Добавлять эталонное лицо в базу данных при наличии файла с фотографией можно с помощью реакции ADD_PERSON_FROM_FILE объекта FIRSERVER.

Примечание.

При добавлении эталонного лица в базу данных в ПК Face-Интеллект автоматически создается новый пользователь и ему назначается фотография из заданного файла.

Параметры:

  • filename – полное имя файла с фотографией. Допускаются файлы с расширением JPG, BMP, GIF, PNG.
  • name – имя добавляемого пользователя.
  • surname – фамилия добавляемого пользователя.
  • department – отдел, в который будет добавлен пользователь.
  • comment – комментарий.

Пример использования данной реакции приведен ниже.

if(Event.SourceType == "MACRO" && Event.Action == "RUN" && Event.SourceID == "1")
{
   DoReactStr("FIRSERVER","1","ADD_PERSON_FROM_FILE","filename<c:\\iso_small.jpg>,name<Jane>,surname<Kramer>,department<Department 1>,comment<>");
}

В случае успешного добавления эталонного лица в базу данных в Отладочном окне будет отображено событие ADD_PERSON_FROM_FILE_OK. В случае ошибки при добавлении эталонного лица отображается событие ADD_PERSON_FROM_FILE_ERROR (см. События FIRSERVER).

Скрипт для проверки качества сохраненной фотографии одного пользователя 

Проверить качество сохраненной фотографии пользователя можно с помощью команды CHECK_QUALITY_START, для этого:

  1. Создать скрипт:

    if(Event.SourceType == "MACRO" && Event.Action == "RUN" && Event.SourceID == "1")
    {
    DoReactStr("FIRSERVER","1","CHECK_QUALITY_START","p_id<1>");
    }

    Параметры:

    • 1 –  идентификатор объекта Сервер распознавания лиц;
    • CHECK_QUALITY_START – команда проверки качества сохраненной фотографии пользователя;
    • p_id<1> – идентификатор пользователя, чью фотографию нужно проверить.
  2. Запустить первую макрокоманду. 
    Если качество фото выше минимального качества лица на сервере распознавания лица, то выдается событие следующего вида:

    Event : FIRSERVER|1|QUALITY_OK|fraction<413>,int_obj_id<1>,owner<PC>,date<08-02-22>,guid_pk<{11DB55C9-F188-EC11-94E4-D8BBC1166DF4}>,
    core_global<1>,p_id<3>,time<18:14:24>,param0<92.4644>

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

    Event : FIRSERVER|1|QUALITY_BAD|fraction<281>,int_obj_id<1>,owner<PC>,date<08-02-22>,guid_pk<{0742EBE0-F288-EC11-94E4-D8BBC1166DF4}>,
    core_global<1>,p_id<3>,time<18:22:12>,param0<92.4644>

    Если фото отсутствует, то выдается событие следующего вида:

    Event : FIRSERVER|1|QUALITY_BAD|fraction<517>,int_obj_id<1>,owner<PC>,date<24-02-22>,guid_pk<{1C9609E4-7795-EC11-A50D-74D435D0E19B}>,
    core_global<1>,p_id<3>,time<17:44:34>,param0<0>
  3. При успешной проверке качества фотографии можно провести верификацию пользователя (скрипт для верификации пользователя см. выше). При обнаружении фотографии низкого качества пользователь будет отмечен, чтобы найти его в Бюро пропусков и заменить фотографию.

    Примечание

    Если качество фотографии выше, чем качество лица, заданное на объекте Сервер распознавания лиц, то это еще не гарантирует, что верификация будет проходить корректно в 100% случаев. Результат верификации зависит от расположения и настройки камеры, от освещения лица, ракурса и прочих производных. Рекомендуем задавать Уровень схожести на панели настройки Сервер распознавания лиц не выше 50% и корректировать опытным путем для достижения желаемого результата.

Скрипт для распознавания по запросу для определенной камеры 

Распознать лицо по запросу для определенной камеры можно с помощью команды QUERY_RECOGNIZE_START. 

Доступно только для модулей распознавания Tevian и VisionLabs.

Пример отправки запроса для распознавания лица по одной из нескольких видеокамер приведен ниже.

if (Event.SourceType == "CAM" && Event.SourceId == "3" && Event.Action == "MD_START")
{ 
DoReactStr("FIRSERVER","1","QUERY_RECOGNIZE_START","from_script<1>,cam_facecapture<3.1>"); 
}

       Параметры:

  • 1 – идентификатор объекта Сервер распознавания лиц;
  • QUERY_RECOGNIZE_START – команда распознавания лица по запросу;
  • from_script<1>, cam_facecapture<3,1> – идентификатор скрипта, Детектор лиц<идентификатор объекта Детектор лиц>.

В случае успешного распознавания лица по запросу в Отладочном окне будет отображено событие Face detected.

  • No labels