Найти тему

"Нейронные сети следят за вами" - как мы создавали систему распознавания лиц для пропуска в офис

Вводные данные

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

Выбор модели ИИ

Среди моделей машинного обучения, находящихся в открытом доступе, наиболее подходящей по требованиям и затратам ресурсов стала модель машинного обучения FaceRecognition .

Среди детекторов был проведен отбор лучшего, в котором приняли участие классический детектор на примитивах Хаара , детектор библиотеки Open_cv на модели глубокого обучения, а также встроенный детектор библиотеки Face_recognition . Победу одержал детектор на модели глубокого обучения нейронной сети Open_cv .

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

Высоким сложнее попасть в объектив камеры )
Высоким сложнее попасть в объектив камеры )

Для воспроизведения голосового сопровождения системы был выбран синтезатор речи RHVoice от отечественного разработчика Ольги Яковлевой.

Оборудование

Для функционирования системы необходима камера для захвата видеопотока, компьютер, который будет этот видеопоток анализировать, а также устройство вывода, которое сможет открыть или закрыть наш дверной замок.

Со всеми этими задачами способен справится одноплатный микрокомпьютер, работающий на Linux -системе. Оперативной памяти ему вполне хватает для работы нашего детектора и системы распознавания, а пиныGPIO могут управлять внешними устройствами.

Для начала решили ограничиться моделью микрокомпьютера RaspberryPi Zero+ – урезанного одноплатника с возможностью подключения к нему только через Wi-Fi и мини-HDMI. На рисунке ниже представлен вид «коробочного решения» с подключенным магнитным замком.

Коробочное решение
Коробочное решение

Однако на практике столкнулись с проблемой нестабильной работы Wi-Fi модуля нашей «малинки». Стало понятно, что для устойчивости и бесперебойности работы системы необходимо прямое подключение платы к сети. Были выбраны платы OrangePi Zero , которые мы подключили через витую пару к нашим серверам, и повесили их на источники бесперебойного питания для работы камеры и самой платы в случае отключения электричества.

С камерами разбираться долго не пришлось, так как USB-камеры не имеют длинных проводов подключения, а делать сквозные дырки в стенах не хотелось, камеры-модули плат не отвечали по требуемому качеству и углу обзора. Поэтому были выбраны ip-камеры StarLight с широкоугольной матрицей Sony.

Из дополнительных устройств использовались Led-диод RGB, который загорался зеленым светом при открытии двери, пьезоизлучатель (пищалка, об установке которой пожалели впоследствии) и динамики для вывода голосового приветствия.

Для того чтобы обезопасить вход/выход офиса на случай сбоя системы, был предусмотрен второй контур безопасности: использовали магнитные домофонные ключи-таблетки и их считыватели.

Установка и первые тесты

Для начала решили установить ip-камеру напротив входа в самое популярном место офиса – столовую. Для этого использовали коробку с привлекающей внимание надписью. В результате смогли апробировать разработанный детектор и классификатор в режиме «runtime».

Привлекаем внимание...
Привлекаем внимание...
.... и распознаем любопытных сотрудников
.... и распознаем любопытных сотрудников

Далее начали «действительную» установку системы: собрали коробку заново, подсоединили динамики и усилители к ним, плату и остальные элементы.

Плата, провода, блок питания
Плата, провода, блок питания
Что видим на входе
Что видим на входе

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