YOLO Vision 2026:

Mapeo de objetos VisionEye View utilizando Ultralytics YOLO26 🚀#

¿Qué es el mapeo de objetos VisionEye?#

Ultralytics YOLO26 VisionEye ofrece la capacidad para que las computadoras identifiquen y ubiquen objetos con exactitud, simulando la precisión de observación del ojo humano. Esta funcionalidad permite que las computadoras disciernan y se concentren en objetos específicos, de forma muy parecida a como el ojo humano observa los detalles desde un punto de vista particular.

VisionEye object mapping with YOLO tracking

Mapea objetos con YOLO26#

VisionEye fija un único punto de observación en el fotograma y traza un rayo desde él hacia cada objeto rastreado, para que puedas visualizar cómo se ve una escena desde un punto de vista. Configura vision_point en las coordenadas de píxeles del observador, luego ejecuta la solución en tu video con la API de Python o la CLI.

Mapeo VisionEye utilizando 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 YOLO de Ultralytics.
vision_pointtuple[int, int](20, 20)El punto donde la visión rastreará objetos y dibujará trayectorias usando la solución VisionEye.
line_widthint2Grosor de línea para las cajas, puntos clave y recuentos que dibuja la solución.
verboseboolTrueHabilita el registro por fotograma de la solución sobre la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.

También puedes utilizar varios argumentos de track dentro de la solución VisionEye:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se va a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo realiza el seguimiento de las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo.

Además, se admiten algunos argumentos de visualización, como se enumera a continuación:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra las etiquetas para cada detección en la salida visual. Proporciona una comprensió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 este punto hasta los objetos detectados. Esto simula cómo la visión humana se centra en múltiples 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, creando una representación visual de la relación espacial entre el observador (punto de visión) y los objetos en la escena.

El método process en la clase VisionEye realiza varias operaciones clave:

  1. Extrae seguimientos (cuadros delimitadores, clases y máscaras) de la imagen de entrada
  2. Crea un anotador para dibujar cuadros delimitadores y etiquetas
  3. Para cada objeto detectado, dibuja una etiqueta de cuadro y crea una línea de visión desde el punto de visión
  4. Devuelve la imagen anotada con estadísticas de seguimiento

Este enfoque es particularmente útil para aplicaciones que requieren conciencia espacial y visualización de relaciones entre objetos, tales como sistemas de vigilancia, navegación autónoma e instalaciones interactivas.

Aplicaciones de VisionEye#

El mapeo de objetos VisionEye tiene numerosas aplicaciones prácticas en diversas industrias:

  • Seguridad y vigilancia: Monitorea múltiples objetos de interés desde una posición fija de cámara
  • Análisis minorista: Rastrea los patrones de movimiento de los clientes en relación con las exhibiciones de la tienda
  • Análisis deportivo: Analiza el posicionamiento y movimiento de los jugadores desde la perspectiva de un entrenador
  • Vehículos autónomos: Visualiza cómo un vehículo "ve" y prioriza los objetos en su entorno
  • Interacción humano-computadora: Crea interfaces más intuitivas que responden a las relaciones espaciales

Al combinar VisionEye con otras soluciones de Ultralytics como el cálculo de distancia o la estimación de velocidad, puedes construir sistemas integrales que no solo rastrean objetos, sino que también comprenden sus relaciones espaciales y comportamientos.

FAQ#

  • Para empezar a usar VisionEye Object Mapping con Ultralytics YOLO26, primero debes instalar el paquete Ultralytics YOLO mediante pip. Luego, puedes usar el código de muestra proporcionado en 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"
    
    # Video writer
    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))
    
    # Init vision eye object
    visioneye = solutions.VisionEye(
        show=True,  # display the output
        model="yolo26n.pt",  # use any model that Ultralytics supports, e.g., YOLOv10
        classes=[0, 2],  # generate visioneye view for specific classes
    )
    
    # Process video
    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)  # access the output
    
        video_writer.write(results.plot_im)  # write the video file
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()  # destroy all opened windows
  • Ultralytics YOLO26 es conocido por su velocidad, precisión y facilidad de integración, lo que lo convierte en una opción principal para el mapeo y seguimiento de objetos. Las ventajas clave incluyen:

    1. Rendimiento de vanguardia: Ofrece una alta precisión en la detección de objetos en tiempo real.
    2. Flexibilidad: Permite la detección, el seguimiento y el cálculo de distancia en un único flujo de trabajo.
    3. Comunidad y soporte: Documentación extensa y una comunidad activa en GitHub para solución de problemas y mejoras.
    4. Facilidad de uso: La API intuitiva simplifica tareas complejas, permitiendo una implementación e iteración rápidas.

    Para obtener más información sobre aplicaciones y beneficios, consulta la documentación de Ultralytics YOLO26.

  • Ultralytics YOLO26 puede integrarse sin problemas con varias herramientas de aprendizaje automático como Comet y ClearML, mejorando el seguimiento de experimentos, la colaboración y la reproducibilidad. Sigue las guías detalladas sobre cómo usar YOLOv5 con Comet e integrar YOLO26 con ClearML para comenzar.

    Para una mayor exploración y ejemplos de integración, consulta nuestra Guía de integraciones de Ultralytics.

Comentarios