Este proyecto tiene como objetivo entrenar un modelo de detección de objetos que pueda identificar logos de marcas en imágenes y videos. La aplicación principal es analizar la presencia de logos en videos publicitarios para medir el tiempo que aparecen en pantalla, proporcionando métricas clave para la toma de decisiones de marketing.
- Entrenar un modelo que detecte una nueva categoría (marca) y localice su posición dentro de un bounding box en imágenes.
- Extender la funcionalidad del modelo para procesar videos.
- Mostrar debajo de cada detección el nombre de la marca detectada.
- Añadir el porcentaje de confianza en las detecciones.
- Almacenar las detecciones en una base de datos con información relevante (nombre del video, bounding boxes, etc.).
- Crear una interfaz web para cargar videos y visualizar resultados.
- Nivel Experto:
- Detectar múltiples marcas en el mismo video.
- Implementar un servicio en la nube con una API para acceder al modelo.
El proyecto emplea las siguientes tecnologías:
- Modelos de Detección de Objetos: YOLOv8n.
- Frameworks de Deep Learning: streamlit, TensorFlow, PyTorch, TensorFlow/Keras.
- Librerías Complementarias: OpenCV, scikit-image, Pillow.
Se ha implementado la metodología de Pair Programming, donde:
- Un desarrollador actúa como el "Piloto" escribiendo el código.
- El otro actúa como "Copiloto", supervisando y aportando ideas en tiempo real.
- Los roles se alternan regularmente.
-
Obtención y Etiquetado de Datos:
- Recopilación de imágenes de logos de marcas.
- Etiquetado manual utilizando herramientas como Roboflow.
-
Entrenamiento del Modelo:
- Entrenamiento inicial para una marca específica con imágenes estáticas (nivel esencial).
-
Extensión a Videos:
- Adaptación del modelo para analizar videos.
- Adición de superposiciones que incluyan el nombre de la marca detectada.
-
Pruebas y Evaluación:
- Evaluación del modelo en videos reales.
- Ajustes en base a métricas de precisión y recall.
proyecto-cv-deteccion-objetos/
├── data/ # Datos de entrenamiento y validación
├── models/ # Modelos entrenados
├── scripts/ # Scripts para entrenamiento, inferencia y análisis
├── results/ # Resultados de las detecciones
├── docs/ # Documentación del proyecto
└── README.md # Archivo README
- Clona este repositorio:
git clone https://github.com/AI-School-F5-P3/Logos.git
- Instala las dependencias:
pip install -r requirements.txt
- Entrena el modelo:
python scripts/train.py --config configs/train_config.yaml
- Realiza predicciones en imágenes:
python scripts/predict.py --image_path data/test_image.jpg
- Analiza videos:
python scripts/streamlit run app_video.py
Las contribuciones al proyecto son bienvenidas. Sigue estos pasos:
- Crea un fork del repositorio.
- Crea una nueva rama para tu feature:
git checkout -b feature/nueva_funcionalidad
- Realiza tus cambios y haz un commit:
git commit -m "Añade nueva funcionalidad"
- Envía un pull request.