Mapeo de objetos con VisionEye View y Ultralytics YOLO26#
¿Qué es el mapeo de objetos de VisionEye?#
Ultralytics YOLO26 VisionEye permite a los ordenadores identificar y localizar objetos, simulando la precisión de observación del ojo humano. Esta funcionalidad permite a los ordenadores distinguir y centrarse en objetos concretos, de forma parecida a como el ojo humano observa los detalles desde un punto de vista determinado.
Mapea objetos con YOLO26#
VisionEye fija un único punto de observación en el fotograma y traza una línea desde ese punto hasta cada objeto seguido, para que puedas visualizar cómo se ve una escena desde un punto de vista. Establece vision_point con las coordenadas de píxel del observador y, después, ejecuta la solución en tu vídeo con la API de Python o la CLI.
# Monitor objects position with visioneye
yolo solutions visioneye show=True
# Pass a source video
yolo solutions visioneye source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions visioneye classes="[0, 5]"Argumentos de VisionEye#
Aquí tienes una tabla con los argumentos de VisionEye:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | Punto desde el que la visión artificial seguirá los objetos y dibujará trayectorias mediante VisionEye Solution. |
line_width | int | 2 | Grosor de línea de los cuadros, puntos clave y recuentos que dibuja la solución. |
verbose | bool | True | Activa el registro por fotograma de la forma de entrada, los recuentos por clase y la velocidad de procesamiento de la solución. La llamada de seguimiento en sí siempre es silenciosa. |
También puedes usar varios argumentos track en la solución VisionEye:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Especifica el algoritmo de seguimiento que se va a usar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Establece el umbral de confianza de las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite elegir entre CPU, una GPU concreta u otros dispositivos de cálculo para ejecutar el modelo. |
imgsz | int or tuple | 640 | Tamaño de imagen de destino para la inferencia: un entero para una imagen cuadrada o una pareja (height, width). Las dimensiones se ajustan al stride del modelo. |
max_det | int | 300 | Número máximo de detecciones que se conservan por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas. |
quantize | int or str | None | Precisión de inferencia: 16 (FP16) o 32/unset (FP32) para los modelos PyTorch y TorchScript fuera de CPU; los demás formatos usan la precisión que seleccionen el artefacto y el entorno de ejecución. Sustituye al argumento obsoleto half. |
Además, se admiten algunos argumentos de visualización, como los que se indican a continuación:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o los vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
show_conf | bool | True | Muestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección. |
show_labels | bool | True | Muestra etiquetas para cada detección en la salida visual. Facilita la identificación inmediata de los objetos detectados. |
Cómo funciona VisionEye#
VisionEye funciona estableciendo un punto de visión fijo en el fotograma y trazando líneas desde ese punto hasta los objetos detectados. Esto simula cómo la visión humana se centra en varios objetos desde un único punto de vista. La solución utiliza el seguimiento de objetos para mantener una identificación coherente de los objetos entre fotogramas y crear una representación visual de la relación espacial entre el observador (punto de visión) y los objetos de la escena.
El método process de la clase VisionEye realiza varias operaciones clave:
- Extrae los seguimientos (cajas delimitadoras, clases e ID de seguimiento) de la imagen de entrada
- Crea un anotador para dibujar cajas delimitadoras y etiquetas
- Para cada objeto detectado, dibuja una etiqueta de caja y traza una línea de visión desde el punto de visión
- Devuelve la imagen anotada con las estadísticas de seguimiento
Este método resulta especialmente útil en aplicaciones que requieren conciencia espacial y visualización de las relaciones entre objetos, como los sistemas de vigilancia, la navegación autónoma y las instalaciones interactivas.
Aplicaciones de VisionEye#
El mapeo de objetos de VisionEye tiene numerosas aplicaciones prácticas en distintos sectores:
- Seguridad y vigilancia: supervisa varios objetos de interés desde una posición fija de cámara
- Analítica para comercios: sigue los patrones de movimiento de los clientes en relación con los expositores de la tienda
- Análisis deportivo: analiza la posición y el movimiento de los jugadores desde la perspectiva del entrenador
- Vehículos autónomos: visualiza cómo un vehículo «ve» y prioriza los objetos de su entorno
- Interacción persona-ordenador: crea interfaces más intuitivas que responden a las relaciones espaciales
Al combinar VisionEye con otras soluciones de Ultralytics, como el cálculo de distancias o la estimación de velocidad, puedes crear sistemas completos que no solo sigan objetos, sino que también comprendan sus relaciones espaciales y comportamientos.
Preguntas frecuentes#
Para empezar a usar el mapeo de objetos de VisionEye con Ultralytics YOLO26, primero tendrás que instalar el paquete Ultralytics YOLO mediante pip. Después, puedes utilizar el código de ejemplo de la documentación para configurar la detección de objetos con VisionEye. Aquí tienes un ejemplo sencillo para empezar:
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" # Escritor de vídeo w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("vision-eye-mapping.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Inicializa el objeto VisionEye visioneye = solutions.VisionEye( show=True, # mostrar el resultado model="yolo26n.pt", # usa cualquier modelo compatible con Ultralytics, por ejemplo, yolo26s.pt classes=[0, 2], # genera la vista VisionEye para clases específicas ) # Procesar el vídeo while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or video processing has been successfully completed.") break results = visioneye(im0) print(results) # accede a la salida video_writer.write(results.plot_im) # escribir el archivo de vídeo cap.release() video_writer.release() cv2.destroyAllWindows() # cerrar todas las ventanas abiertasUltralytics YOLO26 es conocido por su velocidad, precisión y facilidad de integración, lo que lo convierte en una opción excelente para el mapeo y el seguimiento de objetos. Entre sus principales ventajas se incluyen:
- Rendimiento de vanguardia: ofrece una gran precisión en la detección de objetos en tiempo real.
- Flexibilidad: admite la detección, el seguimiento y el cálculo de distancias en una sola canalización.
- Comunidad y asistencia: documentación extensa y una comunidad activa en GitHub para resolver problemas y mejorar el producto.
- Facilidad de uso: su API intuitiva simplifica las tareas complejas y permite iterar y desplegar rápidamente.
Para obtener más información sobre sus aplicaciones y ventajas, consulta la documentación de Ultralytics YOLO26.
Ultralytics YOLO26 se integra fácilmente con distintas herramientas de aprendizaje automático, como Comet y ClearML, lo que mejora el seguimiento de experimentos, la colaboración y la reproducibilidad. Sigue las guías detalladas para integrar YOLO26 con Comet y integrar YOLO26 con ClearML para empezar.
Para ver más ejemplos de exploración e integración, consulta nuestra guía de integraciones de Ultralytics.