«Самый быстрый СКУД на Диком Западе!» Как любовь к Call of Duty: Mobile помогла нам улучшить сервис

Привет! Меня зовут Виталий Виноградов, я отвечаю в Ivideon за разработку и запуск продуктов на базе технологии распознавания лиц. Хочу рассказать, как мобильная игра помогла нашей компании улучшить работу сервиса по управлению доступом (СКУД) на базе Face Recognition.

Немного про customer experience и мобильные игры

В свободное время я люблю иногда поиграть в Call of Duty: Mobile. Это мобильный онлайн-шутер, где игрок соревнуется в разных режимах с живыми людьми. И я терпеть не могу, когда игра на телефоне лагает. Плавный геймплей без фризов и лагов — это то, что даёт возможность в полной мере насладиться коротким сеансом игры и выводит customer experience на новый уровень.

Customer experience (или CX, англ. «опыт потребителя») — важная характеристика, которая на конкурентном рынке отличает хороший современный продукт и бренд от рядового.

Если у пользователя есть выбор между продуктами схожими по функционалу и цене, то решающую роль играют детали — скорость и плавность работы, визуальная составляющая, дизайн упаковки и т.д. Всё по заветам Стива Джобса.

Помня про философию «яблочных», я подумал: «Почему бы не сделать свой пользовательский опыт в мобильной игре лучше». И решил перейти на смартфон с мощным чипсетом Snapdragon 865 — с ним популярный шутер раскрылся для меня именно так, как должен был. О том, что такое средние настройки графики, лаги, фризы и низкое значение fps (кадры в секунду), я забыл.

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

При этом я не преследую цель глобально сэкономить своё время — хочется верить, что несколько секунд в быту вряд ли играют ключевую роль. Но хочется двигаться к светлому сверхскоростному будущему с технологиями 5G, развитым искусственным интеллектом и «бесшовной» автоматизацией рутинных операций.

Это касается и рабочих проектов.

В 2019 году мы в Ivideon запустили услугу для контроля и управления доступом на объект на базе облачной технологии распознавания лиц. От обычного СКУД наш отличается простой инсталляцией — для его работы нужна только камера, связанная с контроллером двери, и подписка на сервис Ivideon Faces стоимостью 3 150 руб/мес. Никаких дополнительных капитальных затрат для клиентов.

«Самый быстрый СКУД на Диком Западе!» Как любовь к Call of Duty: Mobile помогла нам улучшить сервис

Как работает система

Ниже следует довольно подробное описание схемы работы облачного СКУД на базе технологии распознавания лиц. Если вам это не нужно, можно смело переходить к разделу «Зачем ускорять работу СКУД».

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

Видео с камеры по интернет-каналу попадает к нам в облако, где проходит через два сервера: видео- и аналитический. На видеосервере данные сохраняются в архив для последующего доступа и ретранслируется дальше. На аналитическом декодируется и подаётся на обработку нейронным сетям, которые детектируют лицо в кадре и строят его математический вектор.

Затем вектор алгоритмически сравнивается с загруженными в базу лиц. Если лицо найдено в базе и у него проставлен атрибут доступа в помещение, то на камеру отправляется сигнал на открытие двери, камера замыкает «сухие контакты» и дверь открывается. В противном случае вам придется стоять и ждать пока кто-то откроет её для вас. Благодаря оптимизации пути доставки сигнала вся описанная процедура занимает 2,5-3,5 сек.

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

Зачем ускорять работу СКУД

Запуская продукт, мы особо не думали о скорости работы СКУД и на всякий случай оставили для клиентов возможность запуска через локальный сервер без подключения к облаку. Но практика показала, что люди не очень хотят возиться с лишним железом на объекте, при этом скорость срабатывания облачного решения — 3 сек — не давала тот уровень комфорта, который возможен с локальным решением. Здесь вспоминаем пример с Call of Duty — продукт хороший, но для лучшего CX понадобился апгрейд железа. Поэтому мы с командой решили довести работу облачного СКУД до условного идеала.

Цель — сделать так, что облачное решение по скорости срабатывания не уступало локальным аналогам и составляло 1-1,5 сек.

Как мы делали «самый быстрый СКУД на Диком Западе»

Шаг 1. Мы составили табличку, в которой записали каждый этап прохождения сигнала, — кодирование видео на камере, отправка, сохранение в облаке, прогон через аналитику, сравнение с базой лиц, отправка сигнала и замыкание контактов.

«Самый быстрый СКУД на Диком Западе!» Как любовь к Call of Duty: Mobile помогла нам улучшить сервис

Шаг 2. Построили небольшой тестовый стенд на столе у главного разработчика и на каждом этапе провели замеры скорости и времени отклика системы по каждому из пунктов таблицы.

«Самый быстрый СКУД на Диком Западе!» Как любовь к Call of Duty: Mobile помогла нам улучшить сервис

После этого нам стали понятны узкие места.

Проблема №1: время работы аналитики (детекции лица).
Проблема №2: доставка сигнала от аналитического сервера на камеру.

Шаг 3. Проблему работы аналитики мы решали за счёт установки более частых периодов детектирования — сервер при анализе видеопотока стал генерировать события детекции лица чаще. Раньше это происходило каждые 2 секунды, а сейчас каждые 700 мск.

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

Шаг 4. Проблему доставки сигнала от аналитического сервера на камеру мы решили сокращением пути, по которому шёл сигнал. Если раньше он проходил через 3 промежуточных сервиса (центральный сервер, видеосервер, камера), то сейчас после распознавания сигнал сразу идёт на камеру.

Эти улучшения помогли нам сократить задержки срабатывания почти в 3 раза и обеспечить максимально комфортный experience для наших пользователей. Учитывая, что камера начинает вас «распознавать» ещё на подходе к двери, то весь процесс, который занимает теперь 1-1,5 секунды, вы просто не заметите — дверь будет открыта ещё до того, как вы потянетесь к ручке.

Что можно ещё улучшить?

Несмотря на положительный результат оптимизации, нам есть куда развиваться в плане улучшения качества CX.

Скорость обсчёта дескриптора (вычисление математического вектора найденного лица) составляет порядка 700 мс, а это почти половина всего времени работы СКУД. В ближайшее время мы хотим улучшить эту ситуацию за счёт внедрения аналитических серверов на базе графических процессоров или GPU (сейчас всё работает на центральных процессорах — CPU). Работа нейронных сетей на GPU получается более эффективной: разница в скорости в ряде случаев может увеличиться в десятки раз.

Для уникальных случаев, где требуется мгновенная работа системы (например, метро), вообще отсутствует интернет или повышенные требования к защите данных, мы планируем предоставить полностью локальные edge-решения. Для этого провели интеграцию со СКУД-планшетом с аналитикой на борту.

«Самый быстрый СКУД на Диком Западе!» Как любовь к Call of Duty: Mobile помогла нам улучшить сервис

Он не только срабатывает очень быстро, но и даёт пользователю приятную визуальную обратную связь, в отличие от строго молчаливой видеокамеры.

77
Начать дискуссию