Ir al contenido

VisionEye View Object Mapping utilizando Ultralytics YOLO11 🚀

¿Qué es la cartografía de objetos VisionEye?

Ultralytics YOLO11 VisionEye ofrece a los ordenadores la capacidad de identificar y señalar objetos, simulando la precisión de observación del ojo humano. Esta funcionalidad permite a los ordenadores discernir y centrarse en objetos específicos, de forma muy parecida a como el ojo humano observa los detalles desde un punto de vista concreto.

VisionEye View Mapeo de objetos con seguimiento de objetos mediante Ultralytics YOLO11

Cartografía VisionEye con 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]"
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("visioneye_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize vision eye object
visioneye = solutions.VisionEye(
    show=True,  # display the output
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e, YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point, where vision will view objects and draw tracks
)

# 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

VisionEye Argumentos

Aquí tiene una tabla con los VisionEye argumentos:

Argumento Tipo Por defecto Descripción
model str None Ruta al archivo del modeloYOLO Ultralytics .
vision_point tuple[int, int] (50, 50) El punto en el que la visión rastreará objetos y dibujará trayectorias utilizando la solución VisionEye.

También puede utilizar varios track argumentos dentro del VisionEye solución:

Argumento Tipo Por defecto Descripción
tracker str 'botsort.yaml' Especifica el algoritmo de seguimiento a utilizar, por ejemplo, bytetrack.yaml o botsort.yaml.
conf float 0.3 Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos pero pueden incluir falsos positivos.
iou float 0.5 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] sólo rastrea las clases especificadas.
verbose bool True Controla la visualización de los resultados del rastreo, proporcionando una salida visual de los objetos rastreados.
device str None Especifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, un GPU específico u otros dispositivos de cálculo para la ejecución del modelo.

Además, se admiten algunos argumentos de visualización, que se enumeran a continuación:

Argumento Tipo Por defecto Descripción
show bool False Si Truemuestra las imágenes o vídeos anotados en una ventana. Resulta útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_width None or int None Especifica el ancho de línea de los cuadros delimitadores. Si NoneEl ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.

Cómo funciona VisionEye

VisionEye funciona estableciendo un punto de visión fijo en el encuadre y trazando líneas desde este punto hasta los objetos detectados. Esto simula cómo la visión humana enfoca 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 en todos los fotogramas, creando una representación visual de la relación espacial entre el observador (punto de visión) y los objetos de la escena.

En process de la clase VisionEye realiza varias operaciones clave:

  1. Extrae pistas (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 caja y crea una línea de visión a partir del punto de visión
  4. Devuelve la imagen anotada con estadísticas de seguimiento

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

Aplicaciones de VisionEye

La cartografía de objetos VisionEye tiene numerosas aplicaciones prácticas en diversos sectores:

  • Seguridad y vigilancia: Supervise varios objetos de interés desde una posición fija de la cámara
  • Análisis del comercio minorista: Seguimiento de los patrones de movimiento de los clientes en relación con los expositores de la tienda
  • Análisis deportivo: Analizar la posición y el movimiento de los jugadores desde la perspectiva de un entrenador
  • Vehículos autónomos: Visualizar cómo un vehículo "ve" y prioriza los objetos de su entorno.
  • Interacción persona-ordenador: Crear interfaces más intuitivas que respondan a las relaciones espaciales.

Combinando VisionEye con otras soluciones Ultralytics , como el cálculo de distancias o la estimación de la velocidad, puede crear sistemas completos que no sólo rastrean objetos, sino que también comprenden sus relaciones espaciales y comportamientos.

Nota

Para cualquier consulta, no dude en publicar sus preguntas en la sección de problemas deUltralytics o en la sección de debate mencionada a continuación.

PREGUNTAS FRECUENTES

¿Cómo empiezo a utilizar VisionEye Object Mapping con Ultralytics YOLO11 ?

Para empezar a utilizar VisionEye Object Mapping con Ultralytics YOLO11 , en primer lugar, deberá instalar el paquete Ultralytics YOLO mediante pip. A continuación, puede utilizar el código de ejemplo proporcionado en la documentación para configurar la detección de objetos con VisionEye. He aquí 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="yolo11n.pt",  # use any model that Ultralytics support, i.e, 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

¿Por qué debería utilizar Ultralytics YOLO11 para el mapeo y seguimiento de objetos?

Ultralytics YOLO11 es famoso por su velocidad, precisión y facilidad de integración, lo que lo convierte en la mejor opción para el mapeo y seguimiento de objetos. Sus principales ventajas son:

  1. Rendimiento de vanguardia: Ofrece una gran precisión en la detección de objetos en tiempo real.
  2. Flexibilidad: Admite diversas tareas, como detección, seguimiento y cálculo de distancias.
  3. Comunidad y soporte: Amplia documentación y comunidad GitHub activa para la resolución de problemas y mejoras.
  4. Facilidad de uso: la intuitiva API simplifica las tareas complejas, lo que permite una rápida implantación e iteración.

Para más información sobre aplicaciones y ventajas, consulte la documentación deUltralytics YOLO11 .

¿Cómo puedo integrar VisionEye con otras herramientas de aprendizaje automático como Comet o ClearML?

Ultralytics YOLO11 puede integrarse perfectamente con varias herramientas de aprendizaje automático como Comet y ClearML, mejorando el seguimiento de experimentos, la colaboración y la reproducibilidad. Siga las guías detalladas sobre cómo utilizar YOLOv5 con Comet e integrar YOLO11 con ClearML para empezar.

Para más información y ejemplos de integración, consulte nuestra Guía de integracionesUltralytics .

Creado hace 1 año ✏️ Actualizado hace 8 días

Comentarios