Ir al contenido

Mapeo de Objetos VisionEye View usando Ultralytics YOLO26 🚀

¿Qué es VisionEye Object Mapping?

Ultralytics YOLO26 VisionEye ofrece la capacidad a las computadoras para identificar y localizar objetos, simulando la precisión observacional del ojo humano. Esta funcionalidad permite a las computadoras discernir y enfocarse en objetos específicos, de manera similar a cómo el ojo humano observa detalles desde un punto de vista particular.

Mapeo de objetos VisionEye con YOLO

Mapeo de 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]"
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="yolo26n.pt",  # use any model that Ultralytics supports, e.g., YOLOv10
    classes=[0, 2],  # generate visioneye view for specific classes
    vision_point=(50, 50),  # the point where VisionEye 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

El vision_point La tupla representa la posición del observador en coordenadas de píxeles. Ajústela para que coincida con la perspectiva de la cámara, de modo que los rayos renderizados ilustren correctamente cómo se relacionan los objetos con el punto de vista elegido.

VisionEye Argumentos

Aquí tiene una tabla con el VisionEye argumentos:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
vision_pointtuple[int, int](20, 20)El punto donde la visión rastreará objetos y dibujará rutas utilizando VisionEye Solution.

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

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersección sobre Unión (IoU) para filtrar detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verboseboolTrueControla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de cálculo para la ejecución del modelo.

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

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de los cuadros delimitadores. Si None, el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra 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 dibujando líneas desde este punto hasta los objetos detectados. Esto simula cómo la visión humana se enfoca 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 a través de los 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 process El método en la clase VisionEye realiza varias operaciones clave:

  1. Extrae las 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 desde el punto de visión
  4. Devuelve la imagen anotada con las estadísticas de seguimiento

Este enfoque es particularmente útil para aplicaciones que requieren conciencia espacial y visualización de la relación de 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 diversas industrias:

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

Al combinar VisionEye con otras soluciones de Ultralytics como el cálculo de la distancia o la estimación de la velocidad, puede construir sistemas integrales que no solo 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 de Ultralytics o en la sección de debate que se menciona a continuación.

Preguntas frecuentes

¿Cómo empiezo a usar el mapeo de objetos VisionEye con Ultralytics YOLO26?

Para empezar a usar el Mapeo de Objetos VisionEye con Ultralytics YOLO26, primero, necesitará instalar el paquete Ultralytics YOLO a través de pip. Luego, puede usar el código de ejemplo proporcionado en la documentación para configurar la detección de objetos con VisionEye. Aquí tiene 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

¿Por qué debería usar Ultralytics YOLO26 para el mapeo y el track de objetos?

Ultralytics YOLO26 es reconocido 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 última generación: Ofrece alta precisión en la detección de objetos en tiempo real.
  2. Flexibilidad: Admite varias tareas, como la detección, el seguimiento y el cálculo de distancias.
  3. Comunidad y Soporte: Amplia documentación y comunidad activa de GitHub para la resolución de problemas y mejoras.
  4. Facilidad de uso: La API intuitiva simplifica las tareas complejas, lo que permite una rápida implementación e iteración.

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

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

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. Siga las guías detalladas sobre cómo usar YOLOv5 con Comet e integrar YOLO26 con ClearML para empezar.

Para obtener más ejemplos de exploración e integración, consulte nuestra Guía de integraciones de Ultralytics.



📅 Creado hace 2 años ✏️ Actualizado hace 7 días
glenn-jocherRizwanMunawarUltralyticsAssistantMatthewNoyceIvorZhu331RizwanMunawar

Comentarios