Обнаружение и отслеживание людей

Я хочу сделать пешеходов обнаружения и отслеживания.

Вход: видеопоток с камеры видеонаблюдения.

Выход:

  1. # (нет) людей, идущих слева направо
  2. # люди идут справа налево
  3. Количество людей в середине

Что я сделал до сих пор: для обнаружения пешеходов я использую HOG и SVM. Обнаружение приличное с высоким уровнем ложных срабатываний. И это очень медленно, так как я работаю на платформе Android.

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

Или я должен использовать алгоритм отслеживания? Есть ли способ обойтись без него?

Любые ссылки на коды / блоги / технические документы приветствуются.

Платформа: C++ и OpenCV / Android.

--Спасибо

3 ответа

Это как-то близко к проблеме исследования.

Возможно, вы захотите взглянуть на этот сайт, который собирает много ссылок. В частности, работа, проделанная присутствующей там группой из Оксфорда, довольно близка к тому, что вы делаете, поскольку они используют HOG для обнаружения. (Эта работа была чрезвычайно полезной для меня). EPFL и Julich также проделали большую работу на местах.

Возможно, вы также захотите взглянуть на этот обзор, в котором описаны несколько методов обнаружения / отслеживания, часто включающие варианты алгоритма HOG.

Наряду с ответом @Acorbe, я предлагаю раздел публикаций этого сайта.

Недавняя работа в конце прошлого года также выпустила базу кода здесь: https://bitbucket.org/rodrigob/doppia

Ранее были также работы по обнаружению пешеходов, которые также выпустили код: https://sites.google.com/site/wujx2001/home/c4 http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians

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

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

Здесь, на YouTube, я разработал несколько многоцелевых трекеров с помощью простого детектора LBP, но мультимодель и фильтр Калмана для отслеживания. Обе возможности доступны в opencv. Вам необходимо при обнаружении чего-либо создавать новый фильтр Калмана для каждого объекта и обновлять его в случае совпадения с тем же обнаружением. Предскажите, если в кадре не будет обнаружено обнаружение, а также удалите Kalman, и отслеживать его больше не нужно. 1 Обнаружение 2 Совпадение обнаружений с калманами, венгерским алгоритмом и нормой l2. (например) 3 Много работы. Решите, должен ли kalman быть установлен, удален, обновлен или результаты не обнаружены и должны быть предсказаны. Здесь много работы. Чисто статистический подход менее точен, второй - для опытных людей, по крайней мере, один месяц программирования и 3 месяца настройки. Если вам нужно быть быстрее и ваши ресурсы довольно ограничены. Вы можете с помощью умной статистики достичь ваших результатов за счет чистого обнаружения гораздо быстрее и чуть менее точно. Люди судят об изображении и слежении за видео, даже отслеживание нескольких целей способно превзойти человека. Попробуйте посчитать и зарегистрировать каждого человека в видео и посчитать количество выходов. Вы не можете сделать это у некоторого числа людей. Это действительно раскаивается в том, что вы хотите, в приложении, клиенте и результатах, которые вы показываете клиентам. Если это доход 4 числа, слева, справа, в среднем, а ваша ошибка составляет 20 процентов, это все равно намного больше, чем один скучающий маленький платный охранник, который должен быть достигнут за весь день подсчета.

https://www.youtube.com/watch?v=d-RCKfVjFI4

В моем блоге вы можете найти некоторые наборы данных для обнаружения людей и автомобилей в моем блоге, а также скрипт для обучения идеям, учебным пособиям и примерам отслеживания. Код и идеи учебных пособий блога Opencv

Вы можете использовать KLT для этой цели, так как это скажет вам поток людей, путешествующих слева направо, затем вы можете вычислить это путем вычисления длины линии, которая в данном примере нарисована с использованием cv2.line Вы можете использовать входные параметры этой функции, чтобы вычислить ваш случай, без малой математики. если есть поток пикселей слева направо, это случай 1 или справа налево, то случай 3 и для случая отсутствия потока 2. Или вы можете использовать это основное руководство для отслеживания движения объекта. ССЫЛКА НА САЙТ

Другие вопросы по тегам