Ultralytics YOLO27:
Get Started

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.

VisionEye object mapping with YOLO tracking

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.

Mapeo con VisionEye mediante Ultralytics YOLO
# 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:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)Punto desde el que la visión artificial seguirá los objetos y dibujará trayectorias mediante VisionEye Solution.
line_widthint2Grosor de línea de los cuadros, puntos clave y recuentos que dibuja la solución.
verboseboolTrueActiva 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:

ArgumentoTipoPredeterminadoDescripción
trackerstr'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.
conffloat0.25Establece el umbral de confianza de las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones solapadas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
devicestrNoneEspecifica 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.
imgszint or tuple640Tamañ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_detint300Nú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.
quantizeint or strNonePrecisió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:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi 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_confboolTrueMuestra 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_labelsboolTrueMuestra 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:

  1. Extrae los seguimientos (cajas delimitadoras, clases e ID de seguimiento) de la imagen de entrada
  2. Crea un anotador para dibujar cajas delimitadoras y etiquetas
  3. Para cada objeto detectado, dibuja una etiqueta de caja y traza una línea de visión desde el punto de visión
  4. 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 abiertas
  • Ultralytics 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:

    1. Rendimiento de vanguardia: ofrece una gran precisión en la detección de objetos en tiempo real.
    2. Flexibilidad: admite la detección, el seguimiento y el cálculo de distancias en una sola canalización.
    3. Comunidad y asistencia: documentación extensa y una comunidad activa en GitHub para resolver problemas y mejorar el producto.
    4. 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.

Comentarios