Este proyecto presenta una solución simplificada para el seguimiento y la reidentificación de individuos a través de múltiples fuentes de video o cámaras. Utiliza YOLOv3 o YOLOv4 para la detección de objetos y la biblioteac Torchreid de KaiyangZhou para la reidentificación (ReID). La integración de estas tecnologías permite rastrear y reconocer de manera efectiva a la misma persona incluso cuando aparece en diferentes ángulos o cámaras.
Inicio Rápido del Proyecto
Preparación del Entorno
Asegúrate de tener Anaconda instalado. Si no es así, descárgalo e instálalo desde el sitio oficial de Anaconda.
Clonación del Repositorio
Clona el proyecto en tu máquina local usando el siguiente comando:
git clone https://github.com/samihormi/Multi-Camera-Person-Tracking-and-Re-Identification.git
Creación de un Entorno Virtual
Navega al directorio del proyecto y crea un entorno virtual de Python 3.7:
cd Multi-Camera-Person-Tracking-and-Re-Identification
conda create --name reid_env python=3.7
conda activate reid_env
Instalación de Depnedencias
Instala las dependencias requeridas por el proyecto:
pip install -r requirements.txt
Instala PyTorch y TorchVision compatible con tu versión de CUDA:
conda install pytorch torchvision cudatoolkit -c pytorch
Conversión de Modelos
Descarga los archivos de pesos para YOLOv3 y YOLOv4 y colócalos en el directorio model_data/weights/. Luego, ejecuta los siguientes comandos para convertir los modelos:
# Conversión del modelo YOLOv3
python convert_y3.py model_data/weights/yolov3.weights model_data/models/yolov3.h5
# Conversión del modelo YOLOv4
python convert_y4.py model_data/weights/yolov4.weights model_data/models/yolov4.h5
Ejecución de la Demostración
Puedes usar el script demo.py para procesra tus propios videos. El script generará un video de salida en el directorio videos/output que contendrá los resultados del seguimiento y la reidentificación.
python demo.py --videos videos/init/Double1.mp4 videos/init/Single1.mp4 --version v3
Casos de Uso y Mejores Prácticas
Casos de Uso
- Vigilancia de Seguridad: Rastrea y reidentifica individuos en áreas cubiertas por múltiples cámaras para mejorar la seguridad.
- Monitorización de Tráfico: Realiza un seguimiento de vehículos o peatones en intersecciones con múltiples cámaras para identificar infracciones.
- Análisis Minorista: Analiza el comportamiento de los clientes a través de sistemas de cámaras múltiples en centros comerciales o supermercados para optimizar la disposición de los productos.
Mejores Prácticas
- Preprocesamiento de Datos: Asegura la alta calidad de los videos de entrada para evitar que el desenfoque o la baja resolución afecten negativamente el rendimiento del seguimiento.
- Selección del Modelo: Elige la versión de YOLO apropiada (YOLOv3 o YOLOv4) según tus requisitos. YOLOv4 generalmente ofrece un mejor equilibrio entre velocidad y precisión que YOLOv3.
- Ajuste de Parámetros: Adapta los parámetros del modelo a diferentes escenarios de aplicación para lograr resultados óptimos de seguimiento y reidentificación.
Proyectos Ecosistémicos Relacionados
- YOLO (You Only Look Once): Un sistema de detección de objetos en tiempo real disponible en versiones YOLOv3 y YOLOv4.
- Torchreid: Una biblioteca de PyTorch especializada en la reidentificación de peatones, que ofrece varios modelos preentrenados y herramientas de entrenamiento.
- Deep SORT: Un algoritmo que combina detección de objetos con seguimiento, comúnmente utilizado en tareas de seguimiento multiobjeto.
La combinación de estos componentes permite que el proyecto Multi-Camera-Person-Tracking-and-Re-Identification logre un seguimiento y reidentificación eficientes de personas en entornos multicanal.