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
驴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
from ultralytics import YOLO
from ultralytics.solutions import speed_estimation
import cv2
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 = speed_estimation.SpeedEstimator()
speed_obj.set_args(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, show=False)
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 la GPU.
Argumentos opcionales set_args
Nombre | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
reg_pts |
list |
[(20, 400), (1260, 400)] |
Puntos que definen el 脕rea de la Regi贸n |
names |
dict |
None |
Nombres de las clases |
view_img |
bool |
False |
Mostrar cuadros con recuentos |
line_thickness |
int |
2 |
Aumentar el grosor de los cuadros delimitadores |
region_thickness |
int |
5 |
Grosor de la contra regi贸n o l铆nea del objeto |
spdl_dist_thresh |
int |
10 |
Umbral de distancia euclidiana para la l铆nea de control de velocidad |
Argumentos model.track
Nombre | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
source |
im0 |
None |
directorio fuente de im谩genes o v铆deos |
persist |
bool |
False |
persistencia de pistas entre fotogramas |
tracker |
str |
botsort.yaml |
M茅todo de seguimiento 'bytetrack' o 'botsort' |
conf |
float |
0.3 |
Umbral de confianza |
iou |
float |
0.5 |
Umbral del pagar茅 |
classes |
list |
None |
filtrar los resultados por clase, es decir, classes=0, o classes=[0,2,3] |
verbose |
bool |
True |
Mostrar los resultados del seguimiento de objetos |
Creado 2024-01-05, Actualizado 2024-05-08
Autores: Burhan-Q (1), RizwanMunawar (2), glenn-jocher (2), AyushExel (1)