Mapeo de objetos con la vista VisionEye usando Ultralytics YOLO26 🚀
¿Qué es el mapeo de objetos VisionEye?
Ultralytics YOLO26 VisionEye ofrece a las computadoras la capacidad de 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 forma muy parecida a como el ojo humano observa los detalles desde un punto de vista particular.
# 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]"VisionEye Argumentos
Aquí tienes una tabla con los argumentos de VisionEye:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo Ultralytics YOLO. |
vision_point | tuple[int, int] | (20, 20) | El punto donde la visión rastreará los objetos y dibujará rutas utilizando la solución VisionEye. |
También puedes utilizar varios track dentro de la solución de VisionEye :
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml. |
conf | float | 0.1 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el Intersection over Union Umbral de (IoU) para filtrar detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo realiza el seguimiento de las clases especificadas. |
verbose | bool | True | Controla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos rastreados. |
device | str | None | Especifica 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 enumera a continuación:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si True, muestra las imágenes o vídeos anotados en una ventana. Útil para una retroalimentación visual inmediata durante el desarrollo o las pruebas. |
line_width | int or None | None | Especifica el grosor de línea de las cajas delimitadoras. Si None, el grosor de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
show_conf | bool | True | Muestra la puntuación de confianza de cada detección junto a la etiqueta. Ofrece información sobre la certeza del modelo para cada detección. |
show_labels | bool | True | Muestra 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 enfoca en múltiples objetos desde un solo punto de vista. La solución utiliza seguimiento de múltiples objetos para mantener una identificación constante 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 método process el método en la clase VisionEye realiza varias operaciones clave:
- Extrae seguimientos (BBox, clases y máscaras) de la imagen de entrada
- Crea un anotador para dibujar BBox y etiquetas
- Para cada objeto detectado, dibuja una etiqueta de caja y crea una línea de visión desde el punto de visión
- 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 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: Monitorea múltiples objetos de interés desde una posición de cámara fija
- Análisis minorista: Rastrea patrones de movimiento de clientes en relación con las pantallas 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: 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 cálculo de distancia o estimación de velocidad, puedes crear sistemas integrales que no solo rastreen objetos, sino que también comprendan sus relaciones espaciales y comportamientos.
Nota
Para cualquier consulta, no dudes en publicar tus preguntas en la sección de incidencias de Ultralytics o en la sección de discusión mencionada a continuación.
Preguntas frecuentes
¿Cómo empiezo a utilizar el mapeo de objetos VisionEye con Ultralytics YOLO26?
Para empezar a utilizar el mapeo de objetos VisionEye con Ultralytics YOLO26, primero deberás instalar el paquete Ultralytics YOLO a través de pip. Luego, puedes utilizar el código de muestra proporcionado en la documentación para configurar object detection 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¿Por qué debería usar Ultralytics YOLO26 para el mapeo y seguimiento de objetos?
Ultralytics YOLO26 es reconocido 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. Las ventajas clave incluyen:
- Rendimiento de vanguardia: Ofrece una alta precisión en la detección de objetos en tiempo real.
- Flexibilidad: Admite diversas tareas como la detección, el seguimiento y el cálculo de distancias.
- Comunidad y soporte: Documentación extensa y una comunidad activa en GitHub para la resolución de problemas y mejoras.
- 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 las aplicaciones y beneficios, consulta la documentación de Ultralytics YOLO26.
¿Cómo puedo integrar VisionEye con otras machine learning herramientas como Comet o ClearML?
Ultralytics YOLO26 puede integrarse perfectamente con diversas 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 y integrar YOLO26 con ClearML para empezar.
Para seguir explorando y ver ejemplos de integración, consulta nuestra Guía de integraciones de Ultralytics.