Estimaci贸n de la velocidad mediante Ultralytics YOLOv8 馃殌
驴Qu茅 es la estimaci贸n de la velocidad?
La estimaci贸n de la velocidad es el proceso de c谩lculo de la velocidad de movimiento de un objeto dentro de un contexto determinado, a menudo empleado en aplicaciones de visi贸n por ordenador. Con Ultralytics YOLOv8 ahora puedes calcular la velocidad de un objeto utilizando el seguimiento del objeto junto con los datos de distancia y tiempo, algo crucial para tareas como el tr谩fico y la vigilancia. La precisi贸n de la estimaci贸n de la velocidad influye directamente en la eficacia y fiabilidad de diversas aplicaciones, por lo que es un componente clave en el avance de los sistemas inteligentes y los procesos de toma de decisiones en tiempo real.
Observa: Estimaci贸n de la velocidad mediante Ultralytics YOLOv8
Consulta nuestro blog
Para profundizar en la estimaci贸n de la velocidad, consulta nuestra entrada del blog: Ultralytics YOLOv8 para la estimaci贸n de la velocidad en proyectos de visi贸n por ordenador
驴Ventajas de la estimaci贸n de la velocidad?
- Control eficaz del tr谩fico: La estimaci贸n precisa de la velocidad ayuda a gestionar el flujo de tr谩fico, mejorar la seguridad y reducir la congesti贸n en las carreteras.
- Navegaci贸n aut贸noma precisa: En sistemas aut贸nomos como los coches autoconducidos, una estimaci贸n fiable de la velocidad garantiza una navegaci贸n segura y precisa del veh铆culo.
- Seguridad de vigilancia mejorada: La estimaci贸n de la velocidad en los an谩lisis de vigilancia ayuda a identificar comportamientos inusuales o amenazas potenciales, mejorando la eficacia de las medidas de seguridad.
Aplicaciones en el mundo real
Transporte | Transporte |
---|---|
Estimaci贸n de la velocidad en carretera mediante Ultralytics YOLOv8 | Estimaci贸n de la velocidad en un puente mediante Ultralytics YOLOv8 |
Estimaci贸n de la velocidad mediante YOLOv8 Ejemplo
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
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
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_pts = [(0, 360), (1280, 360)]
# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
La velocidad es una estimaci贸n
La velocidad ser谩 una estimaci贸n y puede no ser completamente exacta. Adem谩s, la estimaci贸n puede variar en funci贸n de la velocidad de GPU .
Argumentos SpeedEstimator
Nombre | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
names |
dict |
None |
Diccionario de nombres de clase. |
reg_pts |
list |
[(20, 400), (1260, 400)] |
Lista de puntos de la regi贸n para la estimaci贸n de la velocidad. |
view_img |
bool |
False |
Si mostrar la imagen con anotaciones. |
line_thickness |
int |
2 |
Grosor de las l铆neas para dibujar cajas y pistas. |
spdl_dist_thresh |
int |
10 |
Umbral de distancia para el c谩lculo de la velocidad. |
Argumentos model.track
Argumento | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
PREGUNTAS FRECUENTES
驴C贸mo puedo estimar la velocidad de un objeto utilizando Ultralytics YOLOv8 ?
Estimar la velocidad de un objeto con Ultralytics YOLOv8 implica combinar t茅cnicas de detecci贸n y seguimiento de objetos. En primer lugar, tienes que detectar objetos en cada fotograma utilizando el modelo YOLOv8 . Despu茅s, rastrea estos objetos a trav茅s de los fotogramas para calcular su movimiento en el tiempo. Por 煤ltimo, utiliza la distancia recorrida por el objeto entre fotogramas y la frecuencia de fotogramas para estimar su velocidad.
Ejemplo:
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.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))
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
reg_pts=[(0, 360), (1280, 360)],
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Para m谩s detalles, consulta la entrada oficial de nuestro blog.
驴Cu谩les son las ventajas de utilizar Ultralytics YOLOv8 para estimar la velocidad en la gesti贸n del tr谩fico?
Utilizar Ultralytics YOLOv8 para estimar la velocidad ofrece importantes ventajas en la gesti贸n del tr谩fico:
- Seguridad mejorada: Estima con precisi贸n la velocidad de los veh铆culos para detectar el exceso de velocidad y mejorar la seguridad vial.
- Supervisi贸n en tiempo real: Benef铆ciate de la capacidad de detecci贸n de objetos en tiempo real de YOLOv8 para controlar eficazmente el flujo y la congesti贸n del tr谩fico.
- Escalabilidad: Despliega el modelo en varias configuraciones de hardware, desde dispositivos de borde a servidores, garantizando soluciones flexibles y escalables para implementaciones a gran escala.
Para m谩s aplicaciones, consulta las ventajas de la estimaci贸n de la velocidad.
驴Puede integrarse YOLOv8 con otros marcos de IA como TensorFlow o PyTorch?
S铆, YOLOv8 puede integrarse con otros marcos de IA como TensorFlow y PyTorch. Ultralytics proporciona soporte para exportar modelos de YOLOv8 a varios formatos como ONNX, TensorRT y CoreML, garantizando una interoperabilidad sin problemas con otros marcos de ML.
Para exportar un modelo de YOLOv8 al formato ONNX :
Obt茅n m谩s informaci贸n sobre la exportaci贸n de modelos en nuestra gu铆a sobre exportaci贸n.
驴Cu谩l es la precisi贸n de la estimaci贸n de la velocidad utilizando Ultralytics YOLOv8 ?
La precisi贸n de la estimaci贸n de la velocidad mediante Ultralytics YOLOv8 depende de varios factores, como la calidad del seguimiento del objeto, la resoluci贸n y la velocidad de fotogramas del v铆deo, y las variables ambientales. Aunque el estimador de velocidad proporciona estimaciones fiables, puede no ser preciso al 100% debido a las variaciones en la velocidad de procesamiento de fotogramas y a la oclusi贸n de objetos.
Nota: Ten siempre en cuenta el margen de error y valida las estimaciones con datos reales sobre el terreno cuando sea posible.
Para obtener m谩s consejos de mejora de la precisi贸n, consulta Argumentos SpeedEstimator
secci贸n.
驴Por qu茅 elegir Ultralytics YOLOv8 en lugar de otros modelos de detecci贸n de objetos como TensorFlow API de Detecci贸n de Objetos?
Ultralytics YOLOv8 ofrece varias ventajas sobre otros modelos de detecci贸n de objetos, como la API de detecci贸n de objetos TensorFlow :
- Rendimiento en tiempo real: YOLOv8 est谩 optimizado para la detecci贸n en tiempo real, proporcionando alta velocidad y precisi贸n.
- Facilidad de uso: Dise帽ado con una interfaz f谩cil de usar, YOLOv8 simplifica la formaci贸n y la implantaci贸n de modelos.
- Versatilidad: Admite m煤ltiples tareas, como la detecci贸n de objetos, la segmentaci贸n y la estimaci贸n de la pose.
- Comunidad y asistencia: YOLOv8 est谩 respaldado por una comunidad activa y una amplia documentaci贸n, lo que garantiza que los desarrolladores dispongan de los recursos que necesitan.
Para m谩s informaci贸n sobre las ventajas de YOLOv8, explora nuestra p谩gina de modelos detallados.