Видеоаналитика: распознавание лиц, детектор очередей, поиск объектов на видео
Тайваньская компания 42Ark и американский производитель «умных» кормушек CatFi Box используют камеры видеонаблюдения для распознавания кошачьего лика
Немецкий электротехник Вальтер Брух в 1941 году установил CCTV-систему (Сlosed Circuit Television — система телевидения замкнутого контура) на полигоне, где испытывали ракеты «Фау-2». Это первый известный в истории случай использования видеонаблюдения на практике. Оператор должен был неотлучно сидеть перед монитором. Так продолжалось до 1951 года, пока не появились первые VTR (VideoTape Recorder) устройства, записывающие изображение на магнитную ленту.
Запись на носитель не избавила оператора от необходимости участвовать в процессе. Опознание лиц, определение местоположения объектов, даже детекция движения – все эти функции выполнял человек, сидящий перед монитором в режиме реального времени или изучающий постфактум архив видео.
Колесо прогресса катится дальше. Видеонаблюдение получило видеоаналитку, полностью изменившую процесс работы с системой. Помните историю про кота и нейросеть глубокого обучения? Да, это тоже часть видеоаналитики, но крохотная. Сегодня расскажем о технологиях, которые кардинально меняют мир CCTV-систем.
Детекция очередей и бета-тест
Первая IP-камера в мире Neteye 200, созданная в 1996 году компанией Axis
Видеонаблюдение зарождалось как охранная замкнутая система, предназначенная только для решения вопросов безопасности. Ограничения аналогового видеонаблюдения не позволяли использовать оборудование как-то иначе. Интеграция видеонаблюдения с цифровыми системами открыла возможность автоматизировано получать различные данные, анализируя последовательность изображений.
Важность трудно переоценить: в обычном случае после 12 минут непрерывного наблюдения оператор начинает пропускать до 45% событий. И до 95% потенциально тревожных событий будет пропущено уже после 22 минут непрерывного наблюдения (по результатам исследования IMS Research, 2002).
Появились сложные алгоритмы анализа видео: подсчет посетителей, подсчет конверсии, статистика кассовых операций и многое другое. В этой системе исчезает оператор наблюдения – мы оставляем компьютеру возможность «смотреть» и делать выводы.
Самой простой пример умного видеонаблюдения – детекция движения. Не так важно есть ли встроенный детектор в самой камере – если вы установите на компьютер, к примеру, софт Ivideon Server, то детекор движения будет использоваться программный. Один детектор способен заменить сразу несколько операторов видеонаблюдения. А уже в 2000-е начали появляться первые системы видеоаналитики, способные распознавать объекты и события в кадре.
У Ivideon сейчас в разработке несколько модулей видеоаналитики – с тех пор, как мы выпустили OpenAPI, дело пошло быстрее за счет интеграции с партнерами. Часть проектов пока в закрытом тестировании, но кое-что уже готово. Это, во-первых, интеграция с кассами для контроля за кассовыми операциями (пока на базе iiko и Штрих-М). Во-вторых, разработан детекор очередей.
У нас был счетчик Ivideon Counter, определявший количество клиентов в зале. Аналитика позволила уйти от специального оборудования в сторону облачных вычислений. Теперь нам не нужна специфическая камера – подойдет любая камера видеонаблюдения с разрешением 1080p+. Сейчас мы хотим не просто считать людей, а определять очереди. Поэтому готовы любому магазину, ТЦ или офису, где ходят и стоят люди, образуя очереди, предоставить бесплатную камеру для теста детекции очереди. Напишите нам, чтобы принять участие в проекте.
Кроме того, Ivideon работает с технологиями распознавания лиц.
Кто и как распознает
Технология DeepFace проходит проверку Facebook на примере распознавания эмоционального лица Сильвестра Сталлоне
Над решениями в этой области работают Apple, Facebook, Google, Intel, Microsoft и другие технологические гиганты. Комплексы видеонаблюдения с автоматическим распознаванием лиц пассажиров установлены в 22 аэропортах США. В Австралии занимаются разработкой биометрической системы распознавания лиц и отпечатков пальцев в рамках программы, призванной автоматизировать паспортный и таможенный контроль.
Крупнейшая китайская интернет-компания Baidu провела успешный эксперимент по отказу от билетов с помощью технологии распознавания лиц с точностью 99,77%, при длительности съемки и распознавания – 0,6 секунды. На входах в парк установлены стенды с планшетами и специальные рамки, которые ведут съемку. Когда турист приходит в парк впервые, система его фотографирует, чтобы в дальнейшем использовать функцию распознавания лиц по фото. Новые снимки сравниваются с фото из базы данных – так система определяет, есть ли у человека право на посещение.
В Китае с технологиями вообще все очень хорошо. В 2015 году Alipay, оператор платформы онлайн-платежей, входящий в состав холдинга Alibaba, ввел в действие систему верификации платежей на базе Face++, облачной платформы распознавания лиц, созданной китайским стартапом Megvii. Система получила название Smile to Pay — она дает возможность пользователям Alipay платить за онлайн-покупки путем съемки селфи (Alipay определяет владельца по улыбке). UBER в Китае стал применять систему распознавания лиц водителей на базе Face++, чтобы противостоять мошенничеству, краже персональных данных и обеспечить дополнительную безопасность пассажиров.
Но интереснее посмотреть не на зарубежные решения, а на сервисы, созданные в России. Эти технологии находятся гораздо ближе к конечному пользователю (если он из нашей страны), с ними можно познакомиться, в перспективе объединиться для использования в собственном продукте. Компаний, занимающихся распознаванием лиц, вокруг немало. Вспомним несколько, остающихся на слуху.
Компания «Вокорд», основанная еще в 1999 году, в программе FaceControl 3D работает с синхронными изображениями со стереокамер, строит 3D-модель лица в кадре и автоматически ищет совпадение полученной модели с моделями в имеющейся базе данных. В 2016 году «Вокорд» стал использовать собственный математический алгоритм распознавания лиц, в основе которого лежат сверточные нейронные сети, благодаря чему их алгоритмы теперь работают с любой камерой видеонаблюдения. В компании утверждают, что могут распознавать лица (в размере 128х128 пикселей) людей, следующих в потоке. В конце 2016 года алгоритм Vocord DeepVo1 показал лучшие результаты в мировом тестировании идентификации, правильно распознав 75,127% лиц.
Компания VisionLabs, основанная в 2012 году, победила в крупнейшем в России и Восточной Европе конкурсе технологических компаний GoTech, вошла в список финалистов европейской программы «Challenge UP!», призванной ускорить вывод на рынок решений и сервисов на базе концепции интернета вещей, привлекла многомиллионные инвестиции и уже внедряет свои продукты в коммерческий сектор. Недавно банк «Открытие» запустил систему распознавания лиц от VisionLabs с целью оптимизации обслуживания и времени ожидания клиентов в очереди. Ну и стоит прочитать замечательную историю, как специалисты из КРОК с помощью VisionLabs кота ловили.
VisionLabs, показавшая один из лучших результатов по распознаванию и уровню ошибок, также работает с нейронными сетями, выявляющими специфические черты каждого лица, такие как разрез глаз, форма носа, рельеф ушной раковины и т.д. Их система Luna позволяет найти все эти особенности лица по фото в архивах. Другое решение компании, Face Is, распознав лицо клиента в магазине, находит его профиль в CRM-системе, узнает из нее историю покупок и интересы покупателя, и отправляет на телефон уведомление с персональным предложением о скидке на его любимую категорию товаров.
Стартап Skillaz, занимающийся автоматизацией процесса найма сотрудников, и VisionLabs собираются в конце 2017 года представить систему компьютерного распознавания, которая будет оценивать поведение соискателей при найме. Проанализировав полученные данные, система будет делать выводы о профессиональных качествах человека и пригодности к должности. Полные характеристики системы «машинного найма» компании не раскрывают. Известно лишь, что будет оцениваться коммуникабельность кандидата, исходя из его ответов на определенный набор вопросов, задаваемых системой online-интервью. Нейросеть будет искать взаимосвязь поведения кандидата на картинке с камеры видеонаблюдения и степень выраженности у него той или иной компетенции.
Сетка, представляющая собой доктора Лайтмана и Шерлока Холмса в одном лице, будет учитывать мимику кандидата, его жестикуляции, а также физиогномику. Тут стоит заметить, что метод определения типа личности человека, его душевных качеств, исходя из анализа внешних черт лица и его выражения, в современной психологической науке считается классическим примером псевдонауки. Как с этим противоречием справятся в новом продукте пока неясно.
Слайд из презентации NTechLab, угнетающий Салмана Радаева
NTechLab начинали с приложения, которое определяло породу собак по фотографии. Позже они написали алгоритм FaceN, с которым осенью 2015 года приняли участие в международном конкурсе The MegaFace Benchmark. NTechLab одержала победу в двух номинациях из четырех, обойдя и команду Google (через год в этом же конкурсе победит «Вокорд», а NTechLab сместится на 4-ю позицию). Успех позволил им быстро реализовать сервис FindFace, ищущий людей по фотографиям во ВКонтакте. Но это не единственный способ применения технологии. На фестивале Alfa Future People, организованном «Альфа-Банком», с помощью FindFace посетители могли найти свои фотографии среди сотен других, отправив селфи чат-боту.
Кроме того, NTechLab показали систему, способную в режиме реального времени распознавать пол, возраст и эмоции, используя изображение с видеокамеры. Система способна оценить реакцию аудитории в режиме реального времени, благодаря чему можно определить эмоции, которые испытывают посетители во время презентаций или трансляций рекламных сообщений. Все проекты NTechLab строятся на самообучающихся нейронных сетях.
Путь Ivideon к видеоаналитике
Распознавание лиц – одна из самых сложных задач в области видеоаналитики. С одной стороны, вроде все понятно и давно используется. С другой стороны, решения идентификации в толпе людей все еще стоят очень дорого и не дают абсолютной точности.
В 2012 году в Ivideon начали работу с алгоритмами видеоанализа. В тот год мы выпустили приложения для iOS и Android, вышли на зарубежные рынки, запустили децентрализованные сети CDN с серверами в США, Нидерландах, Германии, Кореи, России, Украине, Казахстане и стали единственным международным сервисом видеонаблюдения, работающим одинаково хорошо во всем мире. В общем, казалось, что сделать свою аналитику с блэк-джеком и распознаванием будет просто и быстро… мы были молоды, трава казалась зеленее, а воздух – сладким и томительным.
[На тот момент мы рассматривали классические алгоритмы. Для начала нужно детектировать и локализовать лица на изображении: используем каскады Хаара, поиск регионов с текстурой, похожей на кожу и т.п. Допустим, нам надо найти первое попавшееся лицо и сопровождать только его в видеопотоке. Тут можно воспользоваться алгоритмом Лукаса-Канаде. Находим алгоритмом лицо и далее определяем в нём характерные точки. Сопровождаем точки с помощью алгоритма Лукаса-Канаде; после их пропадания считаем, что лицо исчезло из поля зрения. Получив характерные признаки лица, мы сможем сравнить его с признаками, заложенными в базе данных.
Для сглаживания траектории движения объекта (лица), а также для предсказания его положения на следующем кадре используем фильтр Кальмана. Тут необходимо отметить, что фильтр Кальмана предназначен для линейных моделей движения. Для нелинейного же используется алгоритм Particle Filter (как вариант Particle Filter + алгоритм Mean Shift).
Можно также использовать алгоритмы вычитания фона: библиотека с примерами реализации алгоритмов по вычитанию фона + статья по реализации легкого алгоритма вычитания фона ViBe. Кроме того, не стоит забывать один из самых распространенных методов Виолы-Джонса, реализованный в библиотеке компьютерного зрения OpenCV.]
Простое распознавание лиц – хорошо, но недостаточно. Нужно еще обеспечить устойчивое слежение за несколькими объектами в кадре даже в случае их совместного пересечения или временного «пропадания» за препятствием. Считать любое количество объектов, пересекающих определенную зону и учитывать направления пересечения. Знать, когда появляется и исчезает предмет/объект в кадре – навести мышкой на грязную чашку на столе и найти момент в видеоархиве, когда она там появилась и кто её оставил. В процессе слежения объект может измениться достаточно сильно (с точки зрения преобразований). Но от кадра к кадру эти изменения будут такими, что можно будет идентифицировать объект.
Кроме того, мы хотели сделать универсальное облачное решение, доступное для всех – из самых требовательных пользователей. Решение должно было быть гибким и масштабируемым, поскольку мы сами не могли знать, за чем хочет следить и что хочет считать пользователь. Вполне возможно, что кто-нибудь предполагал бы сделать на базе Ivideon трансляцию тараканьих бегов с автоматическим определением победителя.
Только спустя пять лет мы приступил к тестированию отдельных компонентов видеоаналитики – подробнее об этих проектах расскажем в новых статьях.
P.S. Итак, мы ищем добровольцев для тестов детектора очередей. А также пользователей системы ШТРИХ-М для теста новой системы контроля кассовых операций. Пишите на почту или в комментариях.