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.
Muestras
Vista VisionEye | VisionEye Vista con seguimiento de objetos | VisionEye Vista con c谩lculo de distancia |
---|---|---|
VisionEye Ver Mapeo de objetos mediante Ultralytics YOLO11 | VisionEye View Mapeo de objetos con seguimiento de objetos mediante Ultralytics YOLO11 | Vista VisionEye con c谩lculo de distancias mediante Ultralytics YOLO11 |
Cartograf铆a de objetos VisionEye mediante YOLO11
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (-10, h)
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
results = model.predict(im0)
boxes = results[0].boxes.xyxy.cpu()
clss = results[0].boxes.cls.cpu().tolist()
annotator = Annotator(im0, line_width=2)
for box, cls in zip(boxes, clss):
annotator.box_label(box, label=names[int(cls)], color=colors(int(cls)))
annotator.visioneye(box, center_point)
out.write(im0)
cv2.imshow("visioneye-pinpoint", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-pinpoint.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (-10, h)
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
annotator = Annotator(im0, line_width=2)
results = model.track(im0, persist=True)
boxes = results[0].boxes.xyxy.cpu()
if results[0].boxes.id is not None:
track_ids = results[0].boxes.id.int().cpu().tolist()
for box, track_id in zip(boxes, track_ids):
annotator.box_label(box, label=str(track_id), color=colors(int(track_id)))
annotator.visioneye(box, center_point)
out.write(im0)
cv2.imshow("visioneye-pinpoint", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
import math
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("Path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter("visioneye-distance-calculation.avi", cv2.VideoWriter_fourcc(*"MJPG"), fps, (w, h))
center_point = (0, h)
pixel_per_meter = 10
txt_color, txt_background, bbox_clr = ((0, 0, 0), (255, 255, 255), (255, 0, 255))
while True:
ret, im0 = cap.read()
if not ret:
print("Video frame is empty or video processing has been successfully completed.")
break
annotator = Annotator(im0, line_width=2)
results = model.track(im0, persist=True)
boxes = results[0].boxes.xyxy.cpu()
if results[0].boxes.id is not None:
track_ids = results[0].boxes.id.int().cpu().tolist()
for box, track_id in zip(boxes, track_ids):
annotator.box_label(box, label=str(track_id), color=bbox_clr)
annotator.visioneye(box, center_point)
x1, y1 = int((box[0] + box[2]) // 2), int((box[1] + box[3]) // 2) # Bounding box centroid
distance = (math.sqrt((x1 - center_point[0]) ** 2 + (y1 - center_point[1]) ** 2)) / pixel_per_meter
text_size, _ = cv2.getTextSize(f"Distance: {distance:.2f} m", cv2.FONT_HERSHEY_SIMPLEX, 1.2, 3)
cv2.rectangle(im0, (x1, y1 - text_size[1] - 10), (x1 + text_size[0] + 10, y1), txt_background, -1)
cv2.putText(im0, f"Distance: {distance:.2f} m", (x1, y1 - 5), cv2.FONT_HERSHEY_SIMPLEX, 1.2, txt_color, 3)
out.write(im0)
cv2.imshow("visioneye-distance-calculation", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
out.release()
cap.release()
cv2.destroyAllWindows()
visioneye
Argumentos
Nombre | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
color |
tuple |
(235, 219, 11) |
Color de la l铆nea y del centroide del objeto |
pin_color |
tuple |
(255, 0, 255) |
Color preciso VisionEye |
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 YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while True:
ret, frame = cap.read()
if not ret:
break
results = model.predict(frame)
for result in results:
# Perform custom logic with result
pass
cv2.imshow("visioneye", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
驴Cu谩les son las principales caracter铆sticas de la capacidad de seguimiento de objetos de VisionEye mediante Ultralytics YOLO11 ?
El seguimiento de objetos de VisionEye con Ultralytics YOLO11 permite a los usuarios seguir el movimiento de objetos dentro de un fotograma de v铆deo. Entre sus principales caracter铆sticas se incluyen:
- Seguimiento de objetos en tiempo real: Sigue el movimiento de los objetos.
- Identificaci贸n de objetos: Utiliza los potentes algoritmos de detecci贸n de YOLO11.
- C谩lculo de distancias: Calcula distancias entre objetos y puntos especificados.
- Anotaci贸n y visualizaci贸n: Proporciona marcadores visuales para los objetos rastreados.
He aqu铆 un breve fragmento de c贸digo que demuestra el seguimiento con VisionEye:
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
while True:
ret, frame = cap.read()
if not ret:
break
results = model.track(frame, persist=True)
for result in results:
# Annotate and visualize tracking
pass
cv2.imshow("visioneye-tracking", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Para obtener una gu铆a completa, visite VisionEye Object Mapping with Object Tracking.
驴C贸mo puedo calcular distancias con el modelo YOLO11 de VisionEye?
El c谩lculo de distancias con VisionEye y Ultralytics YOLO11 consiste en determinar la distancia de los objetos detectados a partir de un punto espec铆fico del fotograma. Mejora las capacidades de an谩lisis espacial, 煤tiles en aplicaciones como la conducci贸n aut贸noma y la vigilancia.
He aqu铆 un ejemplo simplificado:
import math
import cv2
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
cap = cv2.VideoCapture("path/to/video/file.mp4")
center_point = (0, 480) # Example center point
pixel_per_meter = 10
while True:
ret, frame = cap.read()
if not ret:
break
results = model.track(frame, persist=True)
for result in results:
# Calculate distance logic
distances = [
(math.sqrt((box[0] - center_point[0]) ** 2 + (box[1] - center_point[1]) ** 2)) / pixel_per_meter
for box in results
]
cv2.imshow("visioneye-distance", frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
Para obtener instrucciones detalladas, consulte VisionEye con c谩lculo de distancia.
驴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:
- Rendimiento de vanguardia: Ofrece una gran precisi贸n en la detecci贸n de objetos en tiempo real.
- Flexibilidad: Admite diversas tareas, como detecci贸n, seguimiento y c谩lculo de distancias.
- Comunidad y soporte: Amplia documentaci贸n y comunidad GitHub activa para la resoluci贸n de problemas y mejoras.
- 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 .