原文:YOLO 车辆测速 - 知乎 (zhihu.com)
单目测速:多目标追踪 + 单目测距 + 速度公式
原理
目标检测并追踪视频中车辆的车尾(假定摄像头安装在单行道上),根据连续两帧的检测框计算得到像素距离。然后通过预先计算的 ppm (pixel per meter) ——道路不同,其值不同——得到实际距离;然后利用FPS计算得到速度,并显示在视频中。
- 相关技术
- CascadeClassifier目标检测器(训练车尾数据集)\ YOLO检测器
- dlib中的correlation_tracker跟踪器 \ YOLO跟踪器
算法流程图
变量说明
变量名 | 变量类型 | 变量含义 |
---|---|---|
frameCounter | int | 当前所在帧 |
currentCarID | int | 新创建车辆跟踪器的ID;可统计共创建跟踪器个数 |
carTracker | dict | 每个carID的Tracker;例如{0:<_dlib_pybind11.correlation_tracker object at 0x000002562877FB30>} |
carLocation1 | dict | 上一帧中每个carID的位置[x,y,w,h];例如{0:[x,y,w,h]} |
carLocation2 | dict | 下一帧中每个carID的位置[x,y,w,h];例如{0:[x,y,w,h]} |
speed | array | 每个carID当前的速度(不会记录以前的速度;会记录删除的carID的最后速度) |
carIDtoDelete | array | 跟踪器update后置信度小于7的carID(会被carTracker,carLocation1,carLocation2 删除) |