import numpy as np def estimate_speed(points, fps=30, scale_px_per_meter=100): if len(points) < 2: return 0 (x0, y0), (x1, y1) = points[0], points[-1] distance = np.linalg.norm(np.array([x1, y1]) - np.array([x0, y0])) / scale_px_per_meter time_sec = len(points) / fps return (distance / time_sec) * 3.6 # km/h