用MATLAB对车辆的统计第三章,对车速的测量,对车速的测量是在前两章的基础上进行补充:
对车速的测量我想到的有两种方法:
方法一:
直接在路上设置两个框,在已知路面的实际距离,和图上车辆经过的图上距离的情况下,简单地利用比例(要更加精确一点的话应该用摄像机的标定,用摄像机的内参外差,在经过一系列的变化,得到实际物体在空间中的位置)来计算车速,再知道车辆经过这两帧的帧数差与每帧之间的时间可以大致估计出车辆的车速。
在同一条车道前后设置两个记录车辆经过的框框与框之间的距离为L,当车辆经过第一个框时记录下记录下图片的帧数n1 ,当车辆进过第二个框时记录下第二个的帧数 n2,通过已知两个框实际距离L和帧与帧之间的时间间隔t利用公式:
V=L(n1−n2)×t
可以大致求出车辆的速度。
这个方法个人认为简单地不能在简单,以致刚开始想也没想就排除了(结果好像让我们用这个方法感觉有点伤)
首先
同一辆车经过两个框的帧差 大约在1到20之间为一个整数 ,V也为二十个速度之一,测的速度较为不准确。
再者:如果遇到车辆的变道如:
图中的这两白色面包车,
甚至是:
在发生前后两个框无法检测到同一辆车时会对后面的车辆的计数产生很大的影响;
解决方法1,将框的距离设置近一些,但测速的范围会下降
解决方法2,设置一个时间,当上框遇到框时,设置当过几帧时没检测到时就放弃这辆车,在后框设置当前框没检测到后框检测到时认为这辆车为变道而放弃;
方法二:
加上跟踪的方法:
步骤一:
往函数中传入要测量到车子进入测量框的帧数和记录车辆框的位置,读入相邻两张图片进行差分,并且二值化,同时声明一个一个数组来保存记录要每一帧中检测车辆质心位置。