Как мы использовали машинное обучение, чтобы сделать поиск более умным

Прити Пиллаи

Мотивация

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

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

Чтобы решить эту проблему, команда специалистов по компьютерному зрению использовала существующую исследовательскую литературу по распознаванию атрибутов человека / пешехода (PAR) - давно исследуемой теме в исследованиях видеонаблюдения. Под атрибутами людей мы подразумеваем доступные для поиска семантические описания, которые служат визуально-биометрическими данными для приложений повторной идентификации / распознавания человека. В сообществе разработчиков машинного зрения существует несколько наборов данных PAR (WIDER, PETA, PK100K, Market, Duke, CUHK) , которые в общей сложности вносят вклад в более чем 50 аннотированных описательных атрибутов.

Роль «гендерной внешности» в кадровой аналитике

У клиента явно не хватит терпения и памяти, чтобы ввести 50 различных атрибутов людей в строку поиска и найти кого-нибудь! Здесь вмешались менеджеры по продукту Брэндон Давито и Заафир Херани, которые помогли нам с мыслительным процессом клиента и тем, как доработать атрибут на основе выбора клиента и реализуемости функции.

Сначала мы разбили идентифицируемую семантику человека на список глобальных (возраст, пол) и локальных атрибутов (одежда и аксессуары). Затем мы запустили некоторый предварительный набор классификаторов для этих наборов данных с открытым исходным кодом и обнаружили интересные корреляции между локальными и глобальными атрибутами. Например, человек, чей тип одежды был помечен как юбка, имел гендерный ярлык из смежной категории «женский»; или человек с «настоящими усами», помеченный как истинный, имел сопутствующий ярлык мужского пола.

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

Разнообразные сцены наблюдения и лица людей, которые нельзя увидеть.

Прелесть работы с камерами наблюдения заключается в том, что сцены неподвижны, имеют постоянную семантику сцены, фиксированную глубину комнаты и иногда постоянные условия освещения. Напротив, нервная проблема заключается в том, что каждая камера наблюдения сталкивается с совершенно уникальной внутренней / внешней сценой с различными точками обзора камеры, освещением, изменениями разрешения, окклюзиями людей, фактором размытия (туман на улице, дождь). Для 100k камер Verkada у нас есть 100k несоответствующих сцен в комнате! Нам была нужна масштабируемая модель, которая работала бы стабильно для любого типа места наблюдения. Доступные алгоритмы гендерной категоризации и поставщики платных услуг, такие как AWS Rekognition, предлагают гендерные ярлыки и распознавание людей, главным образом, благодаря функциям распознавания лиц.

Но может ли модель умно предсказать гендерную внешность только на основе общей внешности человека? Человеческое тело нежесткое и подчиняется следующему:
1) различной формы / роста
2) окклюзии частей тела
3) смены позы (стоя, сгибание, сидя)
4) Вид камеры
5) Внешний вид одежды
6) Загромождение фона
7) Видимость лица
8) Групповые окклюзии
9) Низкое освещение
10 ) Тон кожи
Все это делает поиск гендерной внешности безумно сложной задачей. Команда компьютерного зрения хотела продвинуть решение еще на один шаг: фильтр по признаку пола, устойчивый к этим десяти ограничениям.

За кулисами команды компьютерного зрения Verkada

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

Мы начали с многочасового изучения литературы и обучения различных моделей на основе сверточных нейронных сетей на существующих наборах данных с открытым исходным кодом, в общей сложности более 120 000 гендерных аннотаций. Наша первоначальная цель состояла в том, чтобы получить хорошее представление о времени выполнения вывода модели, сложности с точки зрения использования памяти на наших производственных серверах и устойчивости для адаптации к различным видам людей и сцен. Мы выбрали модель, которая была довольно глубокой, включала разделимые по глубине свертки, быстро выводила логические выводы и дала лучшие результаты F1 из всей партии.

Мы аннотировали и скомпилировали набор данных эталонного теста с метками гендерной внешности с наших камер наблюдения, названный Hamlet_v1 * (люди с различной одеждой, цветом кожи и вариациями цвета волос, ракурсами камеры). Первая версия нашей модели дала средний балл точности 74,63% на тестовом наборе данных и, следовательно, не была готова к производству для клиентов Verkada.

* Гамлет - это карибский вид рыб, который одновременно выполняет функцию самца и самки.

Улучшения модели вождения

Чтобы спланировать следующий этап наших экспериментов, нам нужно было выяснить, почему модель не сработала на 25% наших данных и что мы можем сделать, чтобы улучшить ее производительность. На ум приходили переоснащение, низкое качество данных, недостаточность данных, соотношение качественных данных к количеству.

Качество тренировочного изображения 120K было действительно ниже, чем у наших камер наблюдения 1080p / 4K. В некоторых случаях даже человеческий глаз не мог определить, был ли человек мужчиной или женщиной. Модель может узнать только то, что ей дано, чтобы увидеть . Мы подозревали, что фактическими проблемами, блокирующими нас, являются недостаточность данных, качество обучающих данных и отсутствие разнообразия внешнего вида. Чтобы решить проблему больших данных и низкого качества, мы переключились на сбор гендерных аннотаций из крупномасштабного набора данных Google OpenImages, состоящего из данных высокого разрешения. Нареш Нагабушан, мой коллега из группы компьютерного зрения, вмешался и помог подготовить набор данных по гендерному обучению, состоящий из 2 миллионов культур людей из более крупных OpenImages, а также помог настроить модель с дополнительными улучшениями предварительной обработки.

Внутри мозга глубокой нейронной сети

Глубокое обучение - это черный волшебный ящик, и нам нужно было понять, что на самом деле видела модель, чтобы сделать прогноз. Мы визуализировали результаты вывода на каждом этапе, чтобы убедиться, что мы на правильном пути к успеху. Визуальные элементы тепловой карты показывают, что модель «видит», чтобы сделать прогноз. Похоже, что для принятия совместного решения вывод делается акцент на волосах на лице, волосах на коже головы, волосах на теле, типе нижней одежды (юбка или брюки) и контуре лица.

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

Наряду с потерей видимости лица и потерей дисбаланса классов, все эти дополнительные шаги способствовали улучшению 89%!

Роб Кромвель, наш вице-президент по инжинирингу, установил жесткую цель производственной точности 90% как для мужчин, так и для женщин. Однако точность женской внешности для каждого класса составила всего 83%. Мы ломали голову пару дней, изучили неверные результаты на основе данных теста Hamlet_v1 и, наконец, определили основную причину: 1) экстремальные углы сцены камеры и 2) несовместимость данных домена. Остался один заключительный процесс: обучение на большом количестве наших собственных данных.

Решение проблемы адаптации домена

«CNN предназначены для работы с переводами, но они не так хороши для борьбы с другими эффектами изменения точек зрения, такими как вращение и масштабирование». Условия, в которых были собраны данные для обучения, не соответствуют тем, в которых они применяются. «Домен» относится к множеству факторов, таких как освещение, точка обзора и разрешение. Модели глубокого обучения позволяют делать точные прогнозы при подаче высококачественных обучающих данных. Распределение базовых данных набора данных OpenImages немного отличалось от изображений с камер наблюдения Verkada, в основном из-за различий в углах обзора в разных сценах с клиентами. Распознать человека спереди намного проще, чем, скажем, распознать вид сверху вниз под углом 60 градусов.

В Verkada мы очень серьезно относимся к конфиденциальности данных клиентов. Мы отслеживали весь процесс аннотации, чтобы гарантировать безопасность данных, прямо с момента сбора, совместного использования, аннотирования и извлечения данных через зашифрованные серверы. Наш премьер-министр Брэндон Давито связался с клиентами для получения предварительного разрешения на использование данных и помог обеспечить безопасное выполнение всех транзакций с данными. Мы вручную отобрали большое количество данных об обрезке людей с примерно 172 камер клиентов и использовали услуги нашего надежного партнера по аннотациям, чтобы пометить их. Аннотации обучающего набора данных Hamlet_v2 были проверены с помощью алгоритмов консенсуса, прежде чем они были переданы в наши глубокие модели для точной настройки. После заключительных этапов настройки гиперпараметров и нескольких экспериментов с пакетным обучением окончательная точность нашего набора контрольных данных составила 90,81% женщин и 93,94% мужчин.

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

Несколько интересных визуализаций с вечеринки Verkada в честь Хэллоуина, суждение модели пугающе более точное, чем мнение человека.

Выпуск функции

Развертывание этой функции было коллективным усилием; мы работали в тесном сотрудничестве с командой Backend, чтобы интегрировать все результаты модели в серверы Verkada, и командой Frontend и UX, чтобы обеспечить отличное обслуживание клиентов. Команда Backend также разработала функцию под названием «Межкамерный поиск», которая позволяет клиентам легко выполнять поиск по всем камерам в своей системе одновременно.

Теперь, спустя месяцы после этого первоначального выпуска, фильтрация по внешнему виду стала более популярной, чем когда-либо, и клиенты регулярно запрашивают новые атрибуты поиска. Вскоре они смогут не только найти человека, который оставил сумку на вокзале, но и провести проверки безопасности, чтобы убедиться, что все члены экипажа носят шлемы на рабочем месте, или найти грабителя банка в рубашке с определенным рисунком. Работа команды продолжается, и мы очень рады видеть, как этот проект будет развиваться в предстоящие месяцы и годы.

Работа в команде компьютерного зрения

Команда Verkada CV - это буквально мир Диснея для всех, кто искренне увлечен компьютерным зрением и глубоким обучением. Нет ни одной области компьютерного зрения, не охваченной нашим списком проектов. Классификаторы состояний, анализ людей / транспортных средств / сцены / лиц, анализ движения, визуализация плана этажа, оценка толпы, оптимизация модели, активность людей и превентивная аналитика, чтобы сделать сцену более безопасной; список сложных проблем, с которыми мы пытаемся справиться, постоянно развлекает нас.

Заинтересованы в присоединении к команде Verkada?

Проверьте открытые роли или отправьте вопросы по адресу [email protected]