Ultralytics YOLO27:

Mapeo de objetos en vista VisionEye utilizando Ultralytics YOLO26#

¿Qué es el mapeo de objetos con VisionEye?#

Ultralytics YOLO26 VisionEye ofrece la capacidad de identificar y localizar objetos, simulando la precisión del ojo humano. Esta funcionalidad permite a los ordenadores distinguir y centrarse en objetos específicos, de forma muy similar a como el ojo humano observa los detalles desde un punto de vista concreto.

VisionEye object mapping with YOLO tracking

Mapea objetos con YOLO26#

VisionEye fija un único punto de observación en el fotograma y dibuja un rayo desde él hasta cada objeto rastreado, para que puedas visualizar cómo se ve una escena desde un punto de vista determinado. Establece vision_point en las coordenadas de píxel del observador y, a continuación, ejecuta la solución sobre tu vídeo con la API de Python o la CLI.

Mapeo con VisionEye usando 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 al archivo del modelo YOLO de Ultralytics.
vision_pointtuple[int, int](20, 20)Punto en el que la solución VisionEye seguirá los objetos y dibujará las trayectorias.
line_widthint2Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la solución, que incluye 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 utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para 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 superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo.
imgszint or tuple640Tamaño de imagen de inferencia objetivo: un número entero para una imagen cuadrada o un par (height, width). Las formas se ajustan al paso del modelo.
max_detint300Número máximo de detecciones conservadas 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/sin definir (FP32) para los modelos de PyTorch y TorchScript; otros formatos calculan a la precisión que seleccionan su artefacto y su motor de ejecución. Sustituye al indicador obsoleto half.

Además, se admiten varios argumentos de visualización, como se indica a continuación:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o 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 las etiquetas de 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 dibujando líneas desde este 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 rastreo 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 de la escena.

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

  1. Extrae los seguimientos (cajas delimitadoras, clases y máscaras) 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 crea una línea de visión desde el punto de visión
  4. Devuelve la imagen anotada con las estadísticas de rastreo

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

Aplicaciones de VisionEye#

El mapeo de objetos de VisionEye tiene numerosas aplicaciones prácticas en diversos sectores:

  • Seguridad y vigilancia: Supervisa varios objetos de interés desde una posición fija de la cámara
  • Analítica minorista: Rastrea 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 respondan 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 integrales que no solo rastreen objetos, sino que también comprendan sus relaciones espaciales y comportamientos.

Preguntas frecuentes#

  • Para empezar a usar el mapeo de objetos con VisionEye y Ultralytics YOLO26, primero tendrás que instalar el paquete Ultralytics YOLO mediante pip. Después, puedes utilizar el código de ejemplo proporcionado en la documentación para configurar la detección de objetos con VisionEye. Este es 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., yolo26s.pt
        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 de las mejores opciones para el mapeo y el rastreo de objetos. Entre sus principales ventajas se incluyen:

    1. Rendimiento de última generación: Ofrece una gran precisión en la detección de objetos en tiempo real.
    2. Flexibilidad: Admite la detección, el rastreo y el cálculo de distancias en una única canalización.
    3. Comunidad y asistencia: Amplia documentación y una comunidad activa en GitHub para resolver problemas y realizar mejoras.
    4. Facilidad de uso: Su API intuitiva simplifica las tareas complejas y permite una implementación e iteración rápidas.

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

  • Ultralytics YOLO26 se puede integrar fácilmente con varias herramientas de aprendizaje automático, como Comet y ClearML, lo que mejora el seguimiento de experimentos, la colaboración y la reproducibilidad. Consulta las guías detalladas sobre cómo usar YOLOv5 con Comet y cómo integrar YOLO26 con ClearML para empezar.

    Para consultar más ejemplos de exploración e integración, visita nuestra guía de integraciones de Ultralytics.

Comentarios