Перейти в хранилище документации
Обратиться в техническую поддержку
При настройке программного комплекса Face-Интеллект с целью частичной автоматизации процессов используются пользовательские скрипты. В документе Программный комплекс Интеллект. Руководство по созданию скриптов (программирование) дано описание объектов и методов программирования, необходимых для разработки скриптов в программном комплексе Интеллект.
Режим верификации по команде сравнивает захваченное лицо в кадре с фотографией пользователя, которая хранится на диске по адресу: <Директория установки ПК Интеллект>\Bmp\<Person>, а также определяет параметры лица: эмоции, температуру, сокрытие лица (маску), пол, растительность на лице.
Для верификации лица необходимо выполнить следующее:
Создать скрипт:
if(Event.SourceType == "MACRO" && Event.Action == "RUN" && Event.SourceID == "1") { DoReactStr("FIRSERVER","1","VERIFY_START","cam_id<1>,p_id<15>,wait<10>"); }
Параметры:
Выполнить первую макрокоманду. Если в течение 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-Интеллект автоматически создается новый пользователь и ему назначается фотография из заданного файла.
Параметры:
Пример использования данной реакции приведен ниже.
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, для этого:
Создать скрипт:
if(Event.SourceType == "MACRO" && Event.Action == "RUN" && Event.SourceID == "1") { DoReactStr("FIRSERVER","1","CHECK_QUALITY_START","p_id<1>"); }
Параметры:
Запустить первую макрокоманду.
Если качество фото выше минимального качества лица на сервере распознавания лица, то выдается событие следующего вида:
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>
При успешной проверке качества фотографии можно провести верификацию пользователя (скрипт для верификации пользователя см. выше). При обнаружении фотографии низкого качества пользователь будет отмечен, чтобы найти его в Бюро пропусков и заменить фотографию.
Примечание
Если качество фотографии выше, чем качество лица, заданное на объекте Сервер распознавания лиц, то это еще не гарантирует, что верификация будет проходить корректно в 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>"); }
Параметры:
В случае успешного распознавания лица по запросу в Отладочном окне будет отображено событие Face detected.