Проект основан на обнаружении и отслеживании людей, и я в основном уделяю внимание отслеживанию людей. Как показано в выходном GIF-файле README.md или в файле output.mp4, каждому человеку будет предоставлен id
, как только он войдет в кадр, и этот id
сохраняется независимо от обнаружения, происходящего в параллельных кадрах. Алгоритм выполняет обнаружение человека и отслеживает его, пока он остается в кадре.
Person_det_track.py обнаруживает и отслеживает человека с помощью SSD и фильтра Калмана.
Пожалуйста, старайтесь как можно дольше придерживаться предоставленной версии, иначе вы столкнетесь с проблемами совместимости. Я использовал лучшую комбинацию, возможную во время кодирования.
opencv [v3.1]
Тензорный поток [v1.5.0]
Предлагаемый здесь метод разделен на 2 основные части.
Обнаружение человека. Обнаружение человека в режиме реального времени осуществляется с помощью детектора Single Shot MultiBox. SSD достигает 75,1% mAP, превосходя сопоставимую современную модель Faster R-CNN. а модель SSD доступна в зоопарке обнаружения Tensorflow. Бесшовная интеграция SSD с тензорным потоком помогает в дальнейшей оптимизации и реализации алгоритма. Обнаружение объектов SSD состоит из двух частей:
Отслеживание людей — вокруг объекта/человека можно создать ограничивающую рамку, запуская модель обнаружения объектов в каждом кадре, но это требует больших вычислительных затрат. Используемый здесь алгоритм отслеживания — Фильтрация Калмана. Фильтр Калмана уже давно считается оптимальным решением многих задач отслеживания и прогнозирования данных. Его использование при анализе зрительного движения. Цель фильтрации — извлечь необходимую информацию из сигнала, игнорируя все остальное. В этом проекте фильтр Калмана получает данные о скорости, положении и направлении человека, что помогает ему предсказать будущее местоположение человека на основе его предыдущих данных.
Часть отслеживания все еще сталкивается с некоторыми проблемами во время окклюзии. (Работаю над этим)
Система состоит из двух частей: во-первых, обнаружение людей, а во-вторых, отслеживание. Ранние исследования были ориентированы на человеческое распознавание, а не на отслеживание. Мониторинг перемещений человека вызвал необходимость в отслеживании. Наблюдение за движениями представляет большой интерес для определения деятельности человека и внимания человека.
Снижение требований к вычислительной мощности. Обычный алгоритм обнаружения возражений обнаруживает Объект, но не отслеживает (назначает идентификатор) Объекта в кадрах; таким образом, его необходимо запускать в каждом кадре, чтобы получить ограничивающую рамку. Отслеживание поможет сократить количество запусков алгоритма обнаружения, т. е. вместо запуска алгоритма обнаружения в каждом кадре эта реализация запускает обнаружение каждые 5 кадров.
Компенсация сбоя модели обнаружения объектов — могут быть некоторые позы, в которых SSD не может обнаружить человека. Даже окклюзия может существенно повлиять на работу детектора; именно здесь алгоритм отслеживания может нам очень помочь.
Восстановление личности. Отслеживание человека может использоваться в качестве предварительного шага в биометрическом распознавании лиц. Постоянное отслеживание человека позволит идентифицировать человека в любой момент. Даже если идентификация лица невозможна на конкретном наборе кадров, его личность можно установить с помощью отслеживания. Нирадж Менон