Идея проекта — обнаружение и отслеживание объектов

Опубликовано: 7 Октября, 2022

Название проекта: Обнаружение и отслеживание объектов

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

  • Как такое поведение влияет на продажи продукта?
  • В какие периоды времени приходили эти люди?
  • Что могло бы помочь владельцам подсчитать количество клиентов путем перекрестных ссылок на платежные данные, но как подсчитать людей, которые не совершали покупок?

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

В этом проекте мы использовали две самые популярные библиотеки Python для обнаружения объектов: OpenCV и ImageAI .

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

Методологии

Наш рабочий процесс был разделен на два основных сегмента:

  1. Оптимизация видео.
  2. Обнаружение человеческих объектов и отслеживание на видео.

Оптимизация видео

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

Оптимизация включает в себя:

  • Превращение изображения/видео в оттенки серого
  • Преобразование изображения/видео в чистый черно-белый вид
  • Маскировка изображения/видео
  • Чтение кадров видео

Обнаружение и отслеживание человеческих объектов на видео

Для обнаружения и отслеживания объектов мы использовали OpenCV и ImageAI. Обнаружение и отслеживание объектов работают для записанных видео, а также для прямой трансляции непосредственно с различных типов камер.

Обнаружение и отслеживание объектов включают в себя:

  • Использование камеры для прямой трансляции видео
  • Использование существующих видеоматериалов
  • Входящий-исходящий трекер, использующий opencv и метод обнаружения и счетчика объектов.
  • Наконец, веб-приложение в качестве графического интерфейса для анализа результатов обнаружения и отслеживания супермаркетов и розничных магазинов, которое выполняется с помощью Streamlit.

Метод обнаружения и отслеживания объектов

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

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

Инструменты и технологии, используемые в проекте

  • Numpy: основной пакет для научных вычислений с Python.
  • OpenCV: «Библиотека компьютерного зрения с открытым исходным кодом» — это библиотека программного обеспечения для компьютерного зрения и машинного обучения с открытым исходным кодом. OpenCV был создан, чтобы предоставить общую инфраструктуру для приложений компьютерного зрения.
  • ImageAI: это библиотека Python, созданная для того, чтобы дать разработчикам, исследователям и студентам возможность создавать приложения и системы с автономными возможностями глубокого обучения и компьютерного зрения с использованием простого и небольшого количества строк кода. ImageAI предоставляет три самые мощные модели для обнаружения и отслеживания объектов — RetinaNet, YOLOv3 и TinyYOLOv3.
    • В нашем проекте мы использовали YOLOv3 , так как он дает умеренную производительность с точностью и умеренной скоростью и временем обнаружения.
  • Streamlit: это библиотека Python с открытым исходным кодом, которая позволяет легко создавать красивые настраиваемые веб-приложения для машинного обучения и обработки данных и делиться ими.

Пошаговая реализация

  1. Установите требования
    1. точка
    2. Opencv-питон
    3. Тензорный поток 2.4.0
    4. ImageAI
    5. обтекаемый
    6. Другие зависимости: keras==2.4.3 numpy==1.19.3 подушка==7.0.0 scipy==1.4.1 h5py==2.10.0 matplotlib==3.3.2 keras-resnet==0.2.0
  2. Скачать модель YOLOV3
  3. Клонируйте репозиторий, уже отправленный на github. Нажмите здесь.
  4. Запустите код для потоковой передачи веб-приложения

Команда для запуска кода:

> streamlit run webapp.py [webapp.py – main file name]

Тестовые примеры для демонстрации результатов

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

Идеальный выход:

IN : 7
OUT: 3

Фактический результат:

IN : 7
OUT: 3

Как показано на видео, мы видим, что наша программа хорошо подсчитывает количество людей. (мы не нашли много видео для тестирования нашей программы на разных видео.)

Ход программы

Применение проекта в реальной жизни

Проект может быть реализован в различных сферах, мы думали реализовать его в местных торговых точках. Цель была проста:

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

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

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

Проектная группа -

Таня Ранджан, Ришаб Саркар, Джесал Джадеха, Бартоломеу Карвальо