Idea de proyecto: detección y seguimiento de objetos

Título del proyecto: Detección y seguimiento de objetos

Introducción: Mucha gente va a los supermercados y tiendas minoristas y tiendas para holgazanear y mirar escaparates en lugar de comprar cualquier producto. La idea de analizar este tipo de comportamiento era intrigante.  

  • ¿Cómo afecta este tipo de comportamiento a las ventas de productos?
  • ¿En qué períodos de tiempo venían estas personas?
  • ¿Qué podría ayudar a los propietarios a contar la cantidad de clientes al cruzar los datos de facturación, pero cómo se cuentan las personas que no han comprado?

La detección y el seguimiento de objetos es una de las áreas de la visión artificial que está madurando muy rápidamente. Nos permite identificar y localizar objetos en una imagen o video. Con este tipo de identificación y localización, la detección y el seguimiento de objetos se pueden utilizar para contar objetos en una escena en particular y determinar y rastrear sus ubicaciones precisas, al mismo tiempo que se etiquetan con precisión.

En este proyecto, hemos utilizado dos de las bibliotecas de Python más populares para la detección de objetos, OpenCV e ImageAI .  

Todos los supermercados hoy en día tienen instalada al menos una cámara de circuito cerrado de televisión. Y los datos se almacenan en un repositorio centralizado con una marca de tiempo. Nuestro objetivo final era identificar a las personas que entraban y salían del supermercado o de la tienda minorista, y categorizarlas bajo las etiquetas «cliente» o «no cliente». Al lograr este objetivo, podríamos calcular el costo real por cliente.    

Metodologías

Nuestro flujo de trabajo se dividió en dos segmentos principales,

  1. Optimización de los vídeos.
  2. Detección de objetos humanos y seguimiento en videos.

Optimización de los vídeos.

Optimizar el video para que sea lo más ligero posible para que el algoritmo funcione sin problemas y alcance la velocidad. Un video no es más que una secuencia de imágenes, por lo tanto, lograr el objetivo de identificar el objeto en el nivel más bajo de una imagen resultará en lograr lo mismo en un video iterando el proceso en todas las imágenes que componen el video. de.

La optimización incluye:

  • Convertir la imagen/video en escala de grises
  • Reducir la imagen/vídeo a la forma en blanco y negro puro
  • Enmascarar la imagen/video
  • Lectura de cuadros de video

Detección y seguimiento de objetos humanos en videos

Para la detección y el seguimiento de objetos, utilizamos OpenCV e ImageAI. El trabajo de detección y seguimiento de objetos para videos grabados, así como una transmisión en vivo directamente desde diferentes tipos de cámaras.  

La detección y el seguimiento de objetos incluyen:

  • Uso de la cámara para video en vivo
  • Uso de secuencias de video existentes
  • Un rastreador de entrada y salida que utiliza opencv y detección de objetos y método de contador.
  • Finalmente, una aplicación web como GUI para el análisis de los resultados de detección y seguimiento de los supermercados y tiendas minoristas que se realiza utilizando streamlit.

Método de detección y seguimiento de objetos.

Estamos aceptando un conjunto de cuadros delimitadores de una persona y calculamos sus respectivos centroides y luego calculamos la distancia euclidiana entre cualquier centroide nuevo y centroide existente para rastrear el movimiento.

Cuando los centroides interceptan la línea de puerta desde la parte superior del cuadro, el contador de ENTRADA se incrementa y cuando los centroides interceptan desde abajo, el contador de SALIDA del cuadro se incrementa. Y por lo tanto podemos contar el número de personas en la zona definida.

Herramientas y Tecnologías Utilizadas en el Proyecto

  • Numpy: El paquete fundamental para la computación científica con Python.
  • OpenCV: «Biblioteca de visión artificial de código abierto» es una biblioteca de software de aprendizaje automático y visión artificial de código abierto. OpenCV se creó para proporcionar una infraestructura común para las aplicaciones de visión artificial.
  • ImageAI: es una biblioteca de Python creada para capacitar a los desarrolladores, investigadores y estudiantes para crear aplicaciones y sistemas con capacidades autónomas de Deep Learning y Computer Vision usando pocas líneas de código. ImageAI proporciona los tres modelos más potentes para la detección y el seguimiento de objetos: RetinaNet, YOLOv3 y TinyYOLOv3.
    • En nuestro proyecto, hemos utilizado YOLOv3 ya que ofrece un rendimiento moderado con precisión y velocidad y tiempo de detección moderados.
  • Streamlit: es una biblioteca Python de código abierto que facilita la creación y el intercambio de hermosas aplicaciones web personalizadas para el aprendizaje automático y la ciencia de datos.

Implementación paso a paso

  1. Instalar los requisitos
    1. pepita
    2. Opencv-python
    3. Tensorflow 2.4.0
    4. ImagenAI
    5. iluminado
    6. Otras dependencias: keras==2.4.3 numpy==1.19.3 pillow==7.0.0 scipy==1.4.1 h5py==2.10.0 matplotlib==3.3.2 keras-resnet==0.2.0
  2. Descargar modelo YOLOV3
  3. Clone el repositorio ya enviado a github Haga clic aquí
  4. Ejecute el código para transmitir la aplicación web

Comando para ejecutar el código:

> ejecutar streamlit webapp.py [webapp.py – nombre del archivo principal]

Casos de prueba para demostrar el resultado

Decidimos comprobar nuestro programa en un vídeo ficticio, para comprobar si podía contar las personas que entraban y salían de las tiendas/centros comerciales/mercados. El sistema identificó los centroides y, según la dirección en la que cruzaron la línea de la puerta, se actualizó el contador.

Salida ideal:

IN : 7
OUT: 3

Salida real:

IN : 7
OUT: 3

Como se presenta en el video, podemos ver que nuestro programa hace un buen trabajo al contar el número de personas con precisión. (No encontramos muchos videos para probar nuestro programa en diferentes videos).

Flujo de programa 

Aplicación de proyectos en la vida real

El proyecto se puede implementar en varios campos, pensamos en implementarlo en los mercados locales. El objetivo era sencillo:

Hablamos con los propietarios y nos permitieron usar sus computadoras para ejecutar nuestro programa en sus imágenes de CCTV. Después de eso, hicimos una hoja de Excel de la misma y realizamos algunas visualizaciones básicas para ayudar a los propietarios a determinar el pie de las personas en función de la hora del día. Esto les ayudará a manipular los precios en consecuencia y obtener más ganancias al mismo tiempo que les brinda a los clientes algo a cambio.

Ejemplo: pueden dar un descuento que se limita a ese período de tiempo muy específico, obtienen una ganancia durante los tiempos en que no lo estaban y los clientes obtienen los productos a una tarifa más barata de lo habitual. Es una situación de ganar-ganar para ambos.

La aplicación también se puede aplicar a otros campos, por ejemplo, sistemas de seguridad para tiendas y lugares públicos. El sistema puede ser entrenado para identificar amenazas e informar a la autoridad más cercana como alerta + registrar el evento como prueba.

Grupo de proyecto –

Tanya Ranjan , Rishab Sarkar , Jesal Jadeja , Bartolomeu Carvalho

Publicación traducida automáticamente

Artículo escrito por tanyaranjan20135 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *