ТЕХНОЛОГИЧНЫЕ РЕШЕНИЯ ПО СЛЕЖКИ ЗА ЛЮДЬМИ
Отслеживание - важная проблема в области компьютерного зрения
Оно включает в себя отслеживание объекта через последовательность кадров. Идентификатор присваивается объекту при первом появлении, а затем этот идентификатор переносится в последующих кадрах.
Использование отслеживания стремительно набирает обороты с появлением приложений в розничных магазинах, беспилотных автомобилях, системах безопасности и наблюдения, системах захвата движения и многих других.
Отслеживание представляет собой сложную проблему по нескольким причинам: отслеживаемые элементы могут быть полностью или частично перекрыты, отслеживаемые элементы могут выглядеть похожими друг на друга (вызывая переключение идентификатора), а объект может полностью исчезнуть, чтобы снова появиться позже.
Хотя эти проблемы нельзя полностью устранить, их можно уменьшить, разумно выбрав алгоритмы отслеживания и обнаружения и сочетая их с человеческим интеллектом.
В этом посте мы собираемся исследовать популярный вариант использования отслеживания - люди, идущие вне розничного магазина. Мы исследовали, экспериментировали, терпели неудачу, снова экспериментировали и, наконец, достигли очень хорошей точности с отслеживанием в реальном времени на пограничном устройстве с низким уровнем вычислений!
Но почему именно краевое устройство? Модели машинного обучения можно развертывать в облаке, на локальном оборудовании или на периферии. Развертывание на периферии обычно труднее всего, но это также самый экономичный способ расширения. Чтобы подробнее узнать о преимуществах выполнения логического вывода на периферии, взгляните на этот обзор (он сосредоточен на мобильных устройствах, но применимы аналогичные преимущества)
Посмотрите, как работает наша модель на гифке ниже:
Изображение для публикации
Отслеживание в реальном времени на пограничном устройстве
Итак, как мы этого добились?
Машинное обучение все ближе и ближе к периферийным устройствам. Fritz AI здесь, чтобы помочь с этим переходом. Изучите наш набор инструментов для разработчиков, который позволяет легко научить устройства видеть, слышать, чувствовать и думать.
Отслеживание в реальном времени на GPU
Обнаружение - это первый шаг перед тем, как мы сможем выполнить отслеживание. Существует множество предварительно обученных моделей для обнаружения объектов , но если вы хотите запускать обнаружение объектов в реальном времени без большой потери точности, выберите YOLOv3 !
Чтобы узнать больше об обнаружении объектов и его отличиях от отслеживания, посетите этот блог:
Глубокое обучение для компьютерного зрения - классификация изображений, обнаружение объектов, отслеживание объектов - глубокое…
Глубокое обучение оказало большое влияние на компьютерное зрение. Драматический прорыв в 2012 году в решении задачи
Подробнее о YOLOv3
YOLOv3 обучен на наборе данных COCO, состоящем из 80 классов. Он использует одну нейронную сеть для прогнозирования (расположения объектов и классов) изображения. Сеть делит изображение на N * N областей и прогнозирует B ограничивающих прямоугольников и вероятностей для каждой области.
YOLOv3 стал мощным вариантом моделирования, поскольку он обеспечивает самую современную среднюю среднюю точность (mAP) с гораздо меньшим временем вывода. См. Диаграмму и таблицу ниже.
Изображение для публикации
YOLO v3 производительность
Чтобы использовать YOLOv3, вам необходимо загрузить файл с предварительно обученным весом.
После обнаружения людей с помощью YOLOv3 нам понадобится алгоритм отслеживания, чтобы отслеживать эти «объекты» по кадрам. Для этого мы использовали очень популярный алгоритм под названием SORT (Simple Online RealTime Tracking).
Использование алгоритма SORT
Как только у нас есть обнаружения для кадра, выполняется процесс сопоставления с аналогичными обнаружениями из предыдущего кадра.
Алгоритм SORT отслеживает каждый уникальный объект до тех пор, пока этот объект не окажется в кадре. Он определяет состояние каждой дорожки на основе обнаружения центра прямоугольника, масштаба прямоугольника, соотношения сторон прямоугольника. и их производные по времени (то есть скорости).
Вы можете найти оригинальную реализацию алгоритма SORT здесь:
abewley / sort
Простое отслеживание нескольких объектов в видеопоследовательности в режиме реального времени в режиме реального времени. - abewley / sort
github.com
YOLOv3 с SORT может работать в реальном времени на графическом процессоре. Но у большинства периферийных устройств нет графического процессора. Итак, с этого момента мы перейдем к логическому выводу в реальном времени на пограничном устройстве. В качестве граничного устройства мы использовали Raspberry Pi .
Будущее машинного обучения на грани. Подпишитесь на рассылку Fritz AI Newsletter, чтобы узнать о возможностях и преимуществах встраивания моделей машинного обучения в мобильные приложения.
Отслеживание в реальном времени на пограничном устройстве с низким уровнем вычислений
Мы начали с экспериментов с теми же моделями и методами на периферии, которые мы использовали на GPU. Неудивительно, что он работал с очень низким FPS. Мы преодолели это узкое место, разумно обновив весь наш конвейер, пока мы не перешли в режим реального времени.
1. Во-первых, заменяем YOLOv3 на Tiny YOLO . К нашему удивлению, наше обнаружение пешеходов показывает значительно улучшенный FPS без большой потери точности.
2. Во-вторых, мы изменили наш подход к «когда», чтобы называть модель Tiny YOLO. Вместо того, чтобы вызывать ее каждый кадр, модель вызывается только в кадрах, где вероятно движение пешехода.
3. В-третьих, вместо того, чтобы запускать модель на всем кадре, мы стратегически определили, «где» запускать эту модель.
Комбинация вышеперечисленного сработала.
Вывод
Отслеживание - это мощный алгоритм компьютерного зрения, который позволяет использовать многие реальные приложения компьютерного зрения. Возможность запускать отслеживание на основе глубокого обучения в реальном времени на периферии позволяет широко внедрить эту функцию с меньшими затратами и без задержек, что может привести к расширенному сбору данных для всех видов бизнеса.
Примечание редактора: Heartbeat - это онлайн-публикация и сообщество, управляемое участниками, посвященное изучению возникающего пересечения разработки мобильных приложений и машинного обучения. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Являясь независимой редакцией, Heartbeat спонсируется и публикуется Fritz AI , платформой машинного обучения, которая помогает разработчикам учить устройства видеть, слышать, чувствовать и думать. Мы платим нашим участникам и не продаем рекламу.
Если вы хотите внести свой вклад, переходите к нашему призыву для участников . Вы также можете подписаться на наши еженедельные информационные бюллетени ( Deep Learning Weekly и Fritz AI Newsletter ), присоединиться к нам в Slack и подписаться на Fritz AI в Twitter, чтобы узнавать обо всех последних новостях в области мобильного машинного обучения.