СПОСОБ РАСПОЗНАВАНИЯ ЛИЦА НА СИСТЕМАХ КОНТРОЛЯ И УПРАВЛЕНИЯ ДОСТУПОМ
METHOD FOR DETECTING A FACE IN ACCESS MONITORING AND CONTROL SYSTEMS

ОБЛАСТЬ ТЕХНИКИ
Настоящее техническое решение относится к области вычислительной техники, в частности, к способам распознавания лица на системах контроля и управления доступом.
УРОВЕНЬ ТЕХНИКИ
Из уровня техники известно решение RU 2610682 C1, опубл. 14.02.2017. В данном решении раскрыт способ распознавания лица, который включает в себя: обнаружение лица на изображении; обнаружение опорных антропометрических точек лица; формирование массива координат опорных точек, описывающих значимые точки на лице; проведение выравнивания изображения лица путем преобразования исходного положения в строгий анфас; преобразование изображения лица с применением нейросети в карту опорных векторов; при выполнении идентификации лица производят последовательное попарное сравнение карт опорных векторов искомого изображения с изображениями из базы данных с определением расстояния между картами векторов; лица, имеющие полученное расстояние менее заданного порога, считаются идентичными.
Из уровня техники известно еще одно решение, выбранное в качестве наиболее близкого аналога, RU 2706620 C2, опубл. 19.11.2019. В данном решении раскрыт способ обеспечения контролируемого доступа посетителя в здание. Вышеуказанный способ содержит этапы, на которых: предоставляют идентификационную информацию о входе мобильному устройству посетителя, когда мобильное устройство находится в непосредственной близости от входа здания, причем идентификационная информация о входе однозначно ассоциирована с входом, в частности, с местоположением входа; передают с помощью мобильного устройства идентификационную информацию о входе на удаленный сервер; принимают с помощью мобильного устройства информацию о списке жителей здания от сервера на основании идентификационной информации о входе; предоставляют с помощью мобильного устройства информацию о списке жителей посетителю; принимают с помощью мобильного устройства ввод от посетителя, относящийся к выбору жителя из списка жителей; устанавливают линию связи между мобильным устройством и удаленным устройством, ассоциированным с выбранным жителем; и предоставляют информацию предоставления доступа в средство управления доступом, выполненное с возможностью управлять доступом посетителя в здание через вход.
Приведенные выше известные из уровня техники решения направлены на решение проблемы предоставления доступа.
Предлагаемое решение направлено на устранение недостатков современного уровня техники и отличается от известных ранее тем, что предложенное решение с повышенной отказоустойчивостью осуществляет свою работу в режиме реального времени и эффективно работает в условиях плохого освещения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Технической проблемой, на решение которой направлено заявленное решение, является создание способа распознавания лица на системах контроля и управления доступом.
Технический результат заключается в повышении качества и эффективности распознавания лица на защищаемых объектах, требующих контроля.
Заявленный результат достигается за счет осуществления способа распознавания лица на системах контроля и управления доступом, который в свою очередь содержит три независимых этапа (блока), которые связаны между собой, но выполняются независимо друг от друга, причем,
первый независимый этап включает в себя операции, выполняемые при помощи сверточных нейронных сетей, располагаемых на сервере, на которых:
с камеры интерактивной панели защищаемого объекта осуществляют трансляцию видеопотока на сервер, причем видеопоток обрабатывается на сервере посредством детектора движения;
при обнаружении движения осуществляют запуск алгоритма поиска лица на изображении с дополнительным поиском ключевых точек на лице, причем, после определения ключевых точек на лице осуществляют выпрямление изображения выявленного лица для осуществления последующего распознавания изображения посредством нейронной сети;
после выпрямления, часть изображения на котором отображается лицо, вырезается и конвертируется в массив векторов посредством нейронной сети;
при этом, после обнаружения лица на изображении осуществляется трекинг обнаруженного лица в видеопотоке,
второй независимый этап включает операции, на которых:
накапливаются запросы, принятые от интерактивной панели защищаемого объекта, и направляются пакетами на сервер для дальнейшего распознавания, посредством брокера сообщений;
третий независимый этап включает операции, на которых:
на сервере, посредством сверточной нейронной сети, производят конечные вычисления вектора для лица и осуществляют сверку полученного вектора лица с базой векторов пользователей по косинусному расстоянию.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:
Фиг. 1, иллюстрирует структурную схему способа.
Фиг. 2, иллюстрирует пример общей схемы вычислительного устройства.
ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту, будет очевидно каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях хорошо известные методы, процедуры и компоненты не были описаны подробно, чтобы не затруднять излишне понимание особенностей настоящего изобретения.
Кроме того, из приведенного изложения будет ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, будут очевидными для квалифицированных в предметной области специалистов.
В настоящее время к различным объектам (например: объектам, требующим повышенной степени защиты, офисным зданиям, многоквартирным домам и т.д.) доступ предоставляется посредством примитивных и недостаточно безопасных систем защиты объектов. Предлагаемый способ направлен на решение вышеуказанных проблем, а также на устранение недостатков существующих систем распознавания лица.
Способ распознавания лица на домофоне состоит из нескольких независимых этапов. Данное разделение предназначено для оптимизации работы, уменьшения задержки rtsp (real time streaming protocol) потока и уменьшения нагрузки на сервер и канал связи.
На интерактивной панели умного домофона устанавливается камера видеонаблюдения, которая на постоянной основе осуществляет трансляцию видеопотока по rtsp протоколу на сервер (например, Спутник.Облако) со скоростью 30 кадров в секунду.
На первом этапе (блоке) операции осуществляются следующим образом. С интерактивной панели умного домофона, на постоянной основе, осуществляется трансляция видеопотока на сервер. Транслируемый видеопоток обрабатывается через детектор движения на сервере, что позволяет сократить энергопотребление. При обнаружении движения пользователя, осуществляется запуск алгоритма поиска лица на изображении с дополнительным поиском ключевых точек на лице: глаза, уголки рта и нос. По данным ключевым точкам лица выполняется правильное выпрямления лица для последующей работы нейронной сети. После обнаружения лица на изображении осуществляется трекинг выявленного лица в видеопотоке. Трекинг позволяет отправлять только один запрос на распознавание лица на сервер. После выпрямления, часть изображения, которая содержит лицо вырезается и конвертируется в массив векторов.
Операции, осуществляемые на первом этапе способа распознавания лица на системах контроля и управления доступом, реализуются при помощи двух сверточных нейронных сетей, располагаемых на сервере. Обнаружение лица производится с использованием нейросети «libfacedetection».
После обнаружения лица в работу включается вторая нейронная сеть «ResNet50» для нахождения ключевых точек на лице. На вход нейронной сети подается цветное изображение фото размером 112х112. На выход нейронной сети поступает вектор длиной 512.
Операции, выполняемые на втором независимом этапе (блоке) способа, реализуются при помощи брокера сообщений (5), который накапливает запросы и передает их на сервер.
Брокер сообщений — это архитектурный паттерн в распределенных системах; механизм, который преобразует сообщение по одному протоколу от приложения-источника, в сообщение протокола приложения-приемника, тем самым выступая между ними посредником.
Использование брокеров сообщений позволяет разгрузить сервис в распределенной системе, так как при отправке сообщений не нужно тратить время на некоторые ресурсоемкие операции, типа маршрутизации и поиска приемников. Кроме того, брокер сообщений, для повышения эффективности, может реализовывать стратегии упорядоченной рассылки и определение приоритетности; балансировать нагрузку и прочее.
В брокер сообщений отправляется запрос (воркер), который имеет следующие поля:
1. Время и дата;
2. Номер трека;
3. Вектор частичного распознавания;
4. Область в кадре.
Для того, чтобы не утратить данные, направляемые от пользователя при их отправке, реализована сериализация запросов. Все запросы на сервер ставятся в очередь и сохраняются на диске, и только после успешной отправки запроса он удаляется из очереди.
Данный этап повышает стабильность работы системы и позволяет легко масштабировать систему. Брокер накапливает векторы и каждые 50мс отправляет их на сервер для дальнейшей обработки нейронными сетями. В случае если в этот промежуток времени будет накапливаться больше векторов, чем может обработать сервер, устанавливается второй сервер, и брокер чередует отправку, чем предотвращает падение сервера от перегрузки и повышает его отказоустойчивость.
Операции, реализуемые в третьем независимом этапе (блоке) способа, производят конечные вычисления вектора для лица и производят сверку вектора с базой векторов пользователей по косиносному расстоянию. Если преобразованное изображение лица с видеопотока, направленное с интерактивной панели домофона, совпадает с изображением из базы данных на сервере, то система распознавания предоставляет доступ к защищаемому объекту. Для успешного распознавания лица с любых ракурсов пользователю заблаговременно необходимо загрузить одно фото в базу данных сервера (например, Спутник.Облако).
Фиг. 1 - иллюстрирует структурную схему способа распознавания лица на системах контроля и управления доступом, где 1 - обнаружение движения, 2 - детекция лица, 3 - выравнивание лица, 4 - частичное распознавание, 5 - брокер сообщений, 6 - прогон системы распознавания, 7 - проверка с базой векторного представления лиц.
Трекинг лица реализован следующим образом. При обнаружении лица на видеопотоке создаётся новый трек для него. К треку привязывается патч с лицом, который был взят напрямую с изображения. При получении нового кадра с камеры осуществляется template matching (сопоставление с шаблоном – метод поиска областей изображения, которые соответствуют (похожи) на изображение шаблона (патч) на новом изображении). Для ускорения template matching осуществляется запуск его на уменьшенном изображении и только на небольшой области изображения. С учетом того, что лицо человека не может слишком быстро сместиться на видеопотоке, мы ограничиваем область поиска на новом изображении. Template matching работает значительно быстрей обнаружения лица, что позволяет также сэкономить на вычислительных ресурсах на стороне домофона.
Направление движения лиц на видеокамерах домофона обычно сохраняется на небольших участках времени. Поэтому в данном решении используется предсказание положения лица на новом кадре от камеры. В качестве фильтра используется AB filter. Данный фильтр — это урезанная версия фильтра Калмана, которая в модели содержит положение объекта и его скорость. Данный фильтр требует меньше вычислений и требует меньше кода для реализации.
Обнаружение лица производится с использованием нейросети «libfacedetection». Это сверточная нейронная сеть, которая имеет простую архитектуру, выполненная с возможностью конвертироваться в любой фреймворк и имеет низкое количество операторов, что позволяет получить высокую производительность при допустимой точности. Обучение детектора лиц выполнено на датасете WIDERFACE.
Для нахождения ключевых точек на лице используется нейронная сеть «ResNet50» с собственными доработками. А именно удален слой AdaptiveAvgPool2d, написанным на фреймворке Pytorch. Данный фреймворк позволяет быстро производить любые модификации в архитектуре и менять процесс обучения сети. Обучение нейронной сети производилось на датасете DeepGlintTrillionpairs. На валидации нейронная сеть показала точность на датасете LFW - 0,9978.
Успешное распознавание происходит с расстояния 3-4 метра. Успешное распознавание происходит с углом поворота лица до 90 градусов. Количество ложноположительных пропусков составляет менее 1 на 100 человек, что потенциально можно решить повышением порога. Данные показатели применимы даже в условиях недостаточного освещения.
Нейронная сеть для распознавания выполняется на фреймворке TensorRT. Пул из воркеров пытается получить как можно больше сообщений и формирует батч (пакет информации, который обрабатывает нейронная сеть за одну сессию) для выполнения нейронной сети для получения векторов лиц на GPU. После прогона батча через нейронную сеть, осуществляется его разделение на группы, в зависимости от метаданных в сообщении. По каждой группе сообщений считается метрика схожести и если расстояние в какой-либо группе менее порогового значения, то координатор посылает сообщение, сигнализируя о том, что для данного домофона следует открыть дверь. Данная архитектура мультипоточная, чем гарантирует утилизацию GPU и CPU на 100%. Венгерский алгоритм используется для сопоставления треков с новыми обнаружениями лица и результатами template matching.
Обнаружение лица занимает 43 ms на вычислительном модуле домофона. Template matching занимает 5 ms на уменьшенном изображении. Для снижения нагрузки на вычислительный модуль, обнаружение лиц производится на каждом третьем кадре. На промежуточных кадрах трекинг лица производится с помощью template matching. Данный подход позволяет поднять обработку видеопотока до 30 FPS с запасом, что улучшает качество трекинга. Трекинг лиц позволяет нам на одного человека реже запускать распознавание лица. Система распознавания производит вычисления раз в 9 кадров при 30 FPS. Также проверяется ракурс лица по найденным ключевым точкам. Если лицо сильно повернуто от домофона, либо область лица имеет маленький размер в пикселях - для таких обнаружений не запускается система распознавания.
Разделение алгоритма распознавания лица и предоставления доступа на 3 части позволяет легко масштабировать систему, повышает надежность работы алгоритма, уменьшает необходимые вычислительные мощности. Каждый этап выполняется независимо.
Первый блок операций производит вычисления на CPU сервера. Третий блок выполняет вычисления на графическом процессоре сервера. Данная схема позволяет единовременно обрабатывать большое количество запросов и с ростом количества распознаваний легко масштабируется.
На Фиг. 2 далее будет представлена общая схема вычислительного устройства (200), обеспечивающего обработку данных, необходимую для реализации заявленного решения.
В общем случае устройство (200) содержит такие компоненты, как: один или более процессоров (201), по меньшей мере одну память (202), средство хранения данных (203), интерфейсы ввода/вывода (204), средство В/В (205), средства сетевого взаимодействия (206).
Процессор (201) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (200) или функциональности одного или более его компонентов. Процессор (201) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (202).
Память (202), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
Средство хранения данных (203) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (203) позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых файлов с наборами данных пользователей, базы данных, содержащих записи измеренных для каждого пользователя временных интервалов, идентификаторов пользователей и т.п.
Интерфейсы (204) представляют собой стандартные средства для подключения и работы с серверной частью, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, FireWire и т.п.
Выбор интерфейсов (204) зависит от конкретного исполнения устройства (200), которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.
В качестве средств В/В данных (205) в любом воплощении системы, реализующей описываемый способ, должна использоваться клавиатура. Аппаратное исполнение клавиатуры может быть любым известным: это может быть, как встроенная клавиатура, используемая на ноутбуке или нетбуке, так и обособленное устройство, подключенное к настольному компьютеру, серверу или иному компьютерному устройству. Подключение при этом может быть, как проводным, при котором соединительный кабель клавиатуры подключен к порту PS/2 или USB, расположенному на системном блоке настольного компьютера, так и беспроводным, при котором клавиатура осуществляет обмен данными по каналу беспроводной связи, например, радиоканалу, с базовой станцией, которая, в свою очередь, непосредственно подключена к системному блоку, например, к одному из USB-портов. Помимо клавиатуры, в составе средств В/В данных также может использоваться: джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.
Средства сетевого взаимодействия (206) выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средств (205) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
Компоненты устройства (200) сопряжены посредством общей шины передачи данных (210).
В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.