Friday, December 14, 2018

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

 Диана Васильева

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

проектный менеджер Александр Казак
проектный менеджер Александр Казак

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 это тренд?

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

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

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

https://dev.by/news/kipod

No comments: