YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
🔍 Detector de Objetos YOLOv11
Detección de objetos en tiempo real usando YOLOv11 (Ultralytics) con cámara web. El modelo está entrenado para detectar productos específicos:
- 🫒 Aceite
- 🧴 Desodorante
- 💎 Perfume Prada
- 💙 Perfume Ralph Lauren
- 🌿 Mentollo
📋 Requisitos del Sistema
| Componente | Mínimo | Recomendado |
|---|---|---|
| Python | 3.8+ | 3.10+ |
| RAM | 4 GB | 8 GB+ |
| CPU | Dual Core | Quad Core / GPU NVIDIA |
| Cámara | Webcam USB o integrada | — |
| SO | Windows 10 | Windows 10/11 |
🚀 Instalación
Opción 1: Automática (Windows)
- Haz doble clic en
setup.bat - Espera a que termine la configuración
- Listo para usar
Opción 2: Manual (cualquier SO)
# 1. Crear entorno virtual
python -m venv .venv
# 2. Activar entorno virtual
# Windows:
.\.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
# 3. Instalar dependencias
pip install --upgrade pip
pip install -r requirements.txt
▶️ Cómo Ejecutar
Abre una terminal en la carpeta del proyecto y ejecuta:
# Paso 1: Activar el entorno virtual
.\.venv\Scripts\activate
# Paso 2: Ejecutar el detector
python detection_video.py
- Se abrirá una ventana con la imagen de tu webcam
- Los objetos detectados aparecerán enmarcados con su nombre
- Los FPS se muestran arriba a la izquierda
- Presiona ESC para cerrar
⚡ Rendimiento y Limitaciones
Benchmark en hardware de gama baja
Probado en una PC con las siguientes especificaciones:
| Componente | Especificación |
|---|---|
| CPU | Intel Celeron N4000 @ 1.10 GHz (2 núcleos) |
| RAM | 4 GB |
| GPU | Intel UHD Graphics 600 (integrada, 1 GB) |
Resultados obtenidos:
| Métrica | Valor |
|---|---|
| Inferencia promedio | ~2,200 - 2,400 ms por frame |
| FPS reales | ~0.4 FPS |
| Preprocesamiento | ~5 - 20 ms |
| Postprocesamiento | ~2 ms |
| Resolución de entrada | 480 × 640 |
¿Por qué es lento?
El cuello de botella es la inferencia (~2.3 segundos por frame). Esto ocurre porque:
- Sin GPU dedicada (NVIDIA): YOLOv11 está diseñado para correr en GPUs con CUDA. En esta PC solo hay una GPU integrada Intel que no soporta CUDA, así que todo el procesamiento recae en el CPU.
- CPU de bajo rendimiento: El Celeron N4000 es un procesador de 2 núcleos a 1.1 GHz, diseñado para tareas básicas de oficina, no para deep learning.
- RAM limitada: 4 GB deja poco margen después de lo que usa el sistema operativo.
Cómo mejorar la velocidad
📌 Opción 1: Usar el modelo ONNX (sin cambiar hardware)
El proyecto incluye best.onnx, que puede ser más rápido en CPU.
Cambiar en detection_video.py:
model = YOLO("best.onnx") # en lugar de "best.pt"
Mejora estimada: 10-30% más rápido en CPU.
📌 Opción 2: Reducir la resolución de entrada
Agregar imgsz=320 para procesar imágenes más pequeñas:
results = model(frame, imgsz=320) # en lugar del default 640
Mejora estimada: hasta 2x más rápido, con algo de pérdida en precisión.
📌 Opción 3: Procesar cada N frames
No analizar todos los frames, sino cada 3 o 5:
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
frame_count += 1
if frame_count % 3 != 0: # Solo procesar 1 de cada 3 frames
continue
# ... resto del código
📌 Opción 4: Usar una PC con GPU NVIDIA
Con una GPU compatible con CUDA (ej: GTX 1650 o superior), la inferencia baja de ~2,300 ms a ~10-30 ms, logrando 30-60+ FPS fácilmente.
📌 Opción 5: Google Colab (gratis)
Subir el proyecto a Google Colab y usar una GPU T4 gratuita para ejecutar la inferencia.
📁 Estructura del Proyecto
detector_objetos_v11/
├── detection_video.py # Script principal de detección en tiempo real
├── best.pt # Pesos del modelo YOLOv11 (PyTorch)
├── best.onnx # Pesos del modelo YOLOv11 (ONNX, más rápido en CPU)
├── requirements.txt # Dependencias del proyecto
├── setup.bat # Instalador automático para Windows
├── .gitignore # Archivos excluidos de Git
└── .venv/ # Entorno virtual (no se sube a Git)
🐛 Solución de Problemas
| Problema | Solución |
|---|---|
ModuleNotFoundError |
Asegúrate de activar el entorno: .\.venv\Scripts\activate |
| La cámara no abre | Cambia cv2.VideoCapture(0) por (1) o (2) |
best.pt no encontrado |
Verifica que el archivo esté en la misma carpeta que el script |
| Muy lento (~0.4 FPS) | Es normal en CPU sin GPU. Ver sección "Cómo mejorar la velocidad" |
⌨️ Controles
| Tecla | Acción |
|---|---|
| ESC | Cerrar la ventana y finalizar el programa |
📦 Sobre el almacenamiento del modelo
Los archivos best.pt (19 MB) y best.onnx (38 MB) están excluidos de Git por el .gitignore. Para compartir el modelo:
- Hugging Face Hub (gratuito, recomendado para modelos de ML): sube los pesos a un repositorio en huggingface.co
- GitHub Releases: sube los archivos como assets de un release (gratis hasta 2 GB por archivo)
- GitHub LFS: permite versionar archivos grandes en Git (gratis hasta 1 GB de almacenamiento)