Идея проекта — обнаружение и отслеживание объектов
Название проекта: Обнаружение и отслеживание объектов
Введение: Многие люди ходят в супермаркеты, розничные магазины и магазины, чтобы бездельничать и выставлять напоказ вместо того, чтобы покупать какие-либо продукты. Мысль об анализе такого поведения была интригующей.
- Как такое поведение влияет на продажи продукта?
- В какие периоды времени приходили эти люди?
- Что могло бы помочь владельцам подсчитать количество клиентов путем перекрестных ссылок на платежные данные, но как подсчитать людей, которые не совершали покупок?
Обнаружение и отслеживание объектов — одна из областей компьютерного зрения, которая развивается очень быстро. Это позволяет нам идентифицировать и находить объекты на изображении или видео. При таком виде идентификации и локализации обнаружение и отслеживание объектов можно использовать для подсчета объектов в конкретной сцене, а также для определения и отслеживания их точного местоположения с точной маркировкой.
В этом проекте мы использовали две самые популярные библиотеки Python для обнаружения объектов: OpenCV и ImageAI .
В каждом супермаркете сегодня установлена хотя бы одна камера видеонаблюдения. И данные хранятся в централизованном хранилище с отметкой времени. Нашей конечной целью было идентифицировать людей, входящих и выходящих из супермаркета или розничного магазина, и классифицировать их по ярлыкам «покупатель» или «не покупатель». Достигнув этой цели, мы смогли рассчитать фактическую стоимость на одного клиента.
Методологии
Наш рабочий процесс был разделен на два основных сегмента:
- Оптимизация видео.
- Обнаружение человеческих объектов и отслеживание на видео.
Оптимизация видео
Оптимизация видео, чтобы сделать его максимально легким, чтобы алгоритм работал плавно и достигал скорости. Видео — это не что иное, как последовательность изображений, поэтому достижение цели идентификации объекта на самом низком уровне изображения приведет к достижению того же самого на видео путем повторения процесса на всех изображениях, из которых состоит видео. из.
Оптимизация включает в себя:
- Превращение изображения/видео в оттенки серого
- Преобразование изображения/видео в чистый черно-белый вид
- Маскировка изображения/видео
- Чтение кадров видео
Обнаружение и отслеживание человеческих объектов на видео
Для обнаружения и отслеживания объектов мы использовали OpenCV и ImageAI. Обнаружение и отслеживание объектов работают для записанных видео, а также для прямой трансляции непосредственно с различных типов камер.
Обнаружение и отслеживание объектов включают в себя:
- Использование камеры для прямой трансляции видео
- Использование существующих видеоматериалов
- Входящий-исходящий трекер, использующий opencv и метод обнаружения и счетчика объектов.
- Наконец, веб-приложение в качестве графического интерфейса для анализа результатов обнаружения и отслеживания супермаркетов и розничных магазинов, которое выполняется с помощью Streamlit.
Метод обнаружения и отслеживания объектов
Мы принимаем набор ограничивающих прямоугольников человека и вычисляем их соответствующие центроиды, а затем вычисляем евклидово расстояние между любыми новыми центроидами и существующими центроидами для отслеживания движения.
Когда центроиды перехватывают линию затвора сверху кадра, счетчик IN увеличивается, а когда центроиды перехватывают снизу кадра, счетчик OUT увеличивается. И, следовательно, мы можем подсчитать количество людей в определенной зоне.
Инструменты и технологии, используемые в проекте
- Numpy: основной пакет для научных вычислений с Python.
- OpenCV: «Библиотека компьютерного зрения с открытым исходным кодом» — это библиотека программного обеспечения для компьютерного зрения и машинного обучения с открытым исходным кодом. OpenCV был создан, чтобы предоставить общую инфраструктуру для приложений компьютерного зрения.
- ImageAI: это библиотека Python, созданная для того, чтобы дать разработчикам, исследователям и студентам возможность создавать приложения и системы с автономными возможностями глубокого обучения и компьютерного зрения с использованием простого и небольшого количества строк кода. ImageAI предоставляет три самые мощные модели для обнаружения и отслеживания объектов — RetinaNet, YOLOv3 и TinyYOLOv3.
- В нашем проекте мы использовали YOLOv3 , так как он дает умеренную производительность с точностью и умеренной скоростью и временем обнаружения.
- Streamlit: это библиотека Python с открытым исходным кодом, которая позволяет легко создавать красивые настраиваемые веб-приложения для машинного обучения и обработки данных и делиться ими.
Пошаговая реализация
- Установите требования
- точка
- Opencv-питон
- Тензорный поток 2.4.0
- ImageAI
- обтекаемый
- Другие зависимости: 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
- Скачать модель YOLOV3
- Клонируйте репозиторий, уже отправленный на github. Нажмите здесь.
- Запустите код для потоковой передачи веб-приложения
Команда для запуска кода:
> streamlit run webapp.py [webapp.py – main file name]
Тестовые примеры для демонстрации результатов
Мы решили проверить нашу программу на фиктивном видео, чтобы проверить, может ли она считать людей, входящих и выходящих из магазинов/торговых центров/рынков. Система идентифицировала центроиды и в зависимости от направления, в котором они пересекали линию ворот, счетчик обновлялся.
Идеальный выход:
IN : 7 OUT: 3
Фактический результат:
IN : 7 OUT: 3
Как показано на видео, мы видим, что наша программа хорошо подсчитывает количество людей. (мы не нашли много видео для тестирования нашей программы на разных видео.)
Ход программы

Применение проекта в реальной жизни
Проект может быть реализован в различных сферах, мы думали реализовать его в местных торговых точках. Цель была проста:
Мы разговариваем с владельцами, и они разрешают нам использовать свои компьютеры для запуска нашей программы на своих видеозаписях с камер видеонаблюдения. После того, как мы сделали это, сделали таблицу Excel и сделали некоторые базовые визуализации, чтобы помочь владельцам определить ноги людей в зависимости от времени суток. Это поможет им соответствующим образом манипулировать ценами и получить больше прибыли, а также предоставить клиентам что-то взамен.
Пример: они могут предоставить скидку, которая ограничена этим очень конкретным периодом времени, они получают прибыль в то время, когда их не было, и клиенты получают продукты по более низкой цене, чем обычно. Это беспроигрышная ситуация для обоих.
Приложение можно применять и в других областях, например, в системах безопасности для магазинов и общественных мест. Систему можно научить выявлять угрозы и информировать ближайший орган в качестве предупреждения + записывать событие в качестве доказательства.
Проектная группа -
Таня Ранджан, Ришаб Саркар, Джесал Джадеха, Бартоломеу Карвальо