Hi-Tech

«Это как Google, только для видеонаблюдения»: как устроена система, которая распознаёт своих и чужих в минской школе

За это время она «ушла» в софт, несколько раз сменила фокус, приобрела компетенции в ИИ и больших данных, защитила более 20 патентов на алгоритмы распознавания лиц, построения архитектуры нейросетей. 11 лет назад Synesis стартовала как хардверная компания. А в мае 2018 года запустила в одной из минских школ систему идентификации посетителей по принципу «свой-чужой».

В закладки

Dev.by побывал в офисе компании, где круглосуточно ведётся видеонаблюдение, и никого из сотрудников это не смущает.

Проектный менеджер Александр Казак Фото: Андрей Давыдчик

«Фокус — распознавание лиц и номеров на автомобилях»

Потом пришло понимание, что таких приборов на рынке и без того достаточно, — и выгоднее создавать для них софт. На старте Synesis разрабатывала оборудование для видеомониторинга.

Пару лет у системы не было понятного пользователя — экспериментировали в сегментах b2c и b2b, пытались мониторить безопасность в жилых домах и решать задачи для бизнеса. До 2012 года интеллектуальное видеонаблюдение было встроено в линейку нескольких продуктов и решений компании, а в 2012-м команда начала развивать свою систему видеомониторинга Kipod. Но эти ниши уже заняли более дешёвые решения.

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

Многие страны тратят колоссальные ресурсы на поиск пропавших без вести людей, а также розыск подозреваемых в совершении правонарушений, объясняет Александр, в этой нише «потрясающая экономика». Четыре года назад разработчики нашли рынок для своего решения — b2g, госсектор. Система видеомониторинга Kipod сокращает временные и финансовые затраты на поисковые работы.

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

В Минске, Баку и Астане к системе подключены камеры в местах массового скопления людей: улицы, площади, спортивные объекты, аэропорт. Сегодня Kipod используется в четырёх столицах. Московский метрополитен использует систему на всех станциях, подключено более 6000 камер.

«Фильтруем» такие вещи, как раскраска лица, очки, головные уборы, паранджа. С близнецами пока есть трудности»

Сейчас это «скорее Google, только для видеонаблюдения»: находит любую информацию в больших массивах видео. Kipod уже давно перестала быть классической системой видеонаблюдения, уверен Александр.

Правда, нет голосового управления — многим клиентам, которые используют Kipod для поиска людей и фиксации нарушений, «эта фенечка не нужна». Панель управления тоже «как у Google» — текстовая строка поиска и набор фильтров, больше ничего.

Фото: Андрей Давыдчик

Чтобы быстро их обрабатывать, нужна чёткая система запросов и ответов. — Когда мы говорим про город, где работают десятки тысяч камер — в метрополитене, на вокзалах, площадях, транспортных развязках — к нам ежесекундно поступают терабайты информации. Но при формировании самого запроса на поиск в Kipod, например, по ФИО или номеру — потенциально идея реализуема, — поясняет специалист. И голосовое управление вряд ли будет хорошим решением.

Второй способ работы — это интеграция по API сторонних баз данных с Kipod. Пользователи Kipod могут самостоятельно создать или импортировать свою базу данных (например, содержащую отпечатки пальцев, базы паспортов, статус прохождения техосмотра) в систему, чтобы затем искать людей и автомобили.

Наши алгоритмы распознают людей как по лицу в целом, так и по отдельным его участкам. — Если человек есть в пользовательской базе данных, мы найдём его в одну или максимум две итерации. Правда, с распознаванием близнецов пока есть трудности, ещё не один итерационный путь придётся пройти, чтобы это было качественно. При этом мы фильтруем такие вещи, как раскраска лица, если это, например, футбольный чемпионат, солнечные очки, головные уборы, паранджа — для мусульманских стран. Плюс никто не исключает радужку и сетчатку глаза, по которым можно идентифицировать людей. У нас есть подходы и идеи, как это можно делать: например, распознавание по ушным раковинам, которые у всех, разные.

Как эволюционирует система

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

Прирост по точности детектирования составил +7%, по точности распознавания и матчинга в списках — +11%.

Это построение траектории объекта по нескольким камерам системы. Самое интересное, что уже реализовано в новой версии модуля — межкамерный трекинг. Мы не просто фиксируем сцены и людей, а проводим кросс-соответствие, видим уникальных посетителей, частоту появления людей сразу по ряду камер на одном или нескольким объектам.

Недавно запустили чат-бота, который подсказывает кассирам: например, этому парню нет 18 лет, значит, спиртное ему нельзя продавать. Также у нас есть алгоритмы по определению возраста. Погрешность в определении возраста — 1,5-2 года. Когда покупатель предъявляет паспорт, система может сравнить его с фотографией в паспорте и сказать, действительно ли это он.

Фото: Андрей Давыдчик

Как получают данные для обучения сети: «Никто из сотрудников не смущается, когда их снимает камера»

Наборы данных формируем из всех возможных источников: из интернета, личного архива, видео из нашего офиса. Наша нейронная сеть обучается каждый день.

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

Когда нужно собрать набор данных, которого нигде нет, сами генерируем контент. Также для получения данных мы используем майнинг датасетов. Например, дымовые шашки запускали на улице, вместе с МЧС РБ на их территории снимали задымление с разных ракурсов, с дневным/ночным освещением, в закрытом/открытом пространстве и так далее.

Технические детали

Поэтому постепенно, итерационно разделили наше решение на несколько составляющих. Разрабатывая третью версию Kipod, мы пришли к мнению, что все существующие системы обработки и хранения информации плохо ложатся на нашу идею. Верхний уровень — Kipod как приложение: обеспечивает приём, обработку, стриминг и поиск данных. Нижний уровень — система репликации и распределённого хранения данных после обработки видео и фотографий, как Google Store.

Мы поддерживаем облачные технологии и можем развернуть наш продукт на любом виртуальном веб-сервисе: Google, Amazon Cloud, Microsoft Azure и так далее.

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

Основной наш стек технологий для обработки и хранения данных: средства контейнерной виртуализации (Docker), оркестрации (Kubernetes), распределенное хранилище (Ceph) и множество других сервисов, необходимых для эксплуатации облачных приложений: модернизированный Apache Ignite, Kafka, Cassandra, Redis, PostgreSQL — всего свыше 150 компонентов-сервисов, которые обеспечивают её надёжность.

Например, представители Ignite и Ceph после общения с нашей командой разработки внесли в свои продукты изменения и тем самым сделали их лучше. С разработчиками некоторых опенсорс-решений мы общаемся лично, даём им фидбэк.

Фото: Андрей Давыдчик

Поэтому от некоторых компонентов, например, uWSGI, мы отказались — нашли более оптимальные решения для оптимизации конкурентных запросов и обработки данных и решили применить CherryPy. Но, конечно, совсем идеально в разработке софта не бывает. А для сборки web-приложения плавно мигрировали с фреймворка AngularJS на Angular 6.

Если стоит камера, это не значит, что за нами наблюдает Большой Брат

Для чего? В мае Kipod в тестовом режиме запустили в одной из минских школ.

В данном кейсе мы фокусировались на конкретной задаче — распознавании посетителей школы по принципу «свой-чужой». Основная цель пилотного проекта — обеспечить безопасность учащихся. После этого в чат-канал в мессенджерах Viber и Telegram приходит нотификация, кто не явился на занятия. Алгоритмы Kipod очень быстро обнаруживают незваных гостей и отмечают тех учащихся, которые не дошли. Это закрытые каналы, подписка на которые есть только у преподавателей и родителей.

И какие результаты? А в какой школе запустились?

Это проект Минобразования, они пока не хотят сообщать подробности.

Будет ли эта система работать в других минских школах?

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

Видеонаблюдение с применением систем искусственного интеллекта — это тренд?

Мы словили этот тренд немного раньше других и пока опережаем конкурентов. Тренд не в самих системах мониторинга безопасности как таковых, а в технологиях, которые для этого используются: облачные вычисления, новые подходы в детекции, нейронных сетях, распознавании объектов. Это настоящий забег лошадок. К примеру, в течении одной недели у нас может пройти тестирование до 4 прототипов и сборок новой сетки для распознавания лиц, мы проверяем на «живучесть» новые идеи и подходы к процессингу, выжимаем из них соки и берём самое лучшее.

Фото: Андрей Давыдчик

Наверняка, не все хотят, чтобы за ними наблюдали. С какими трудностями вы сталкиваетесь, внедряя систему видеомониторинга?

Никого ведь не смущают рамки металлоискателя, сканеры в аэропорту. Трудностей много, но самая большая — это стереотип о том, что, если стоит камера, значит за нами наблюдает всевидящее око, Большой Брат. Как говорится, все невротики, но кто-то в большей, а кто-то в меньшей степени. Это абсолютно нормально, потому что мы хотим быть в безопасности.

dev.by — сайт об информационных технологиях в Беларуси и в мире.

Статьи по теме:

  • «Могу рассказывать весёлые истории, как три месяца получал зарплату за воздух, но не горжусь этим»: разработчики о невыносимой лёгкости скамейки запасных.
  • «Ел в основном по вечерам, когда еда в кафе „Му-Му“ дешевела в два раза»: как разработчик и маркетолог из Беларуси открыли бизнес в Москве и Лондоне.
  • Топ мобильных разработчиков Беларуси. Наши паблишеры сравнимы с Facebook: 114 млн загрузок и другие цифры
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть