一种基于视频压缩域的多车测速方法
技术领域
本发明涉及一种基于机器视觉的检测方法,具体的说,涉及了一种基于视频压缩域的多车测速方法。
背景技术
随着社会的发展,当今的高速公路四通八达,为行车者带来了方便。但是在高速公路上超速的情况时有发生,超速是造成高速公路车祸的主要原因之一,这为行驶在高速公路的行车者带来了巨大的安全隐患。当前高速公路上有许多测速装置,用以检测超速这一违规事项的发生,包括电磁线圈测速、雷达测速以及激光测速等。这些测速装置需要与摄像设备配合,来检测车辆是否超速。这些测速方法不仅需要安装额外的设备,并且设备的安装以及维护费用比较高,所以产生了一种视频图像测速的新方法。它只需要摄像设备的支持,使用图像处理的办法计算车速,能应用在传统测速方法的场景中。
当前的视频图像测速方法有两类,一种是选择车辆的某一信息作为特征(如车牌)进行识别及跟踪;一种是规定图像中某一区域作为监测点,当有目标经过时进行测速。前者需要进行特征识别及匹配,虽然可以达到较高精度,但需要对视频完整解码,对整帧图像寻找车辆,计算复杂度大。后者虽然缩小了计算量,但是对于车辆进出边界的时间难以判定,会增加误差,减小精度,在大量车驶进区域的情况难以测量。
当前视频图像测速方法先在每一帧中找出车辆并记录车辆特征(如车牌,车型,颜色),然后通过特征找出同一辆车,记录该车在帧之间的位移,由此计算车辆速度。这样需要在视频帧中进行全局搜索车辆,由于现在监控视频有较高的分辨率,在整帧中全局搜索需要更高的计算力,会产生延迟高,不稳定等问题,而对车辆测速需要较稳定的实时性,以达到对超速车辆的警告或危险预警的目的。所以需要提供一种能对车辆进行快速搜索跟踪并计算其速度的方法,以解决现在由于全解码计算带来的延迟问题。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于视频压缩域的多车测速方法。
为了实现上述目的,本发明所采用的技术方案是:
本发明第一方面提供了一种基于视频压缩域的多车测速方法,包括以下步骤:
步骤1,从视频码流中提取运动矢量MV;
步骤2,摄像头初始化;
1)分析车道线与车道区域;
2)计算用于像素实际距离和现实距离转化的单应性转换矩阵H;
3)学习摄像头可分析的最大车速;
步骤3,运动矢量MV预处理;
清除不在车道区域中的运动矢量MV,只对车道区域中的非零运动矢量MV的宏块处理;
时空域检测运动目标:
根据车辆运动是连续且平滑的特性判断在车道区域中的非零宏块是否为运动目标,并以此设置一个阈值来确定当前待测宏块MBc是否为运动车辆的宏块MBreal;
步骤4,标记运动目标;
分割不同车道线的车辆:
当有一个目标框横跨了两车道,以车道线将该目标框分为两部分,标记目标框为{center,box,linenum,mvs};center为目标框重心,其包含重心坐标;box为目标框大小,其包括左上角坐标和长宽;linenum为道路线;mvs为目标框中非零运动矢量MV的集合;
合并目标框:
分别将已标记的目标框中的非零运动矢量MV累加起来,形成投影MV,记为MVpro;
判断各个目标框的MVpro的相似度与邻近程度;先判断相似度,若相似度接近,继续判断邻近程度,若目标框又相近则进行合并,形成的目标框为某一车辆的目标框;
最终合并成多个目标框从而确定多个车辆的位置;
步骤5,运动目标追踪;
将步骤4得到的目标框按其投影MV移动投影到邻帧当中,作为预测目标框,预测其在邻近帧中的位置;
将预测目标框记为A,邻帧目标框记为B,计算A与B的交并比IOU,交并比公式
若交并比大于0,即确定两帧为同一对象,就将两个目标框加入目标框匹配对列表,并从待搜索的列表中删除,直至匹配对列表中的搜索完毕;
步骤6,计算速度;
计算瞬时速度:通过步骤5得到的目标框匹配对列表,使用特征匹配的方法,找到对应车辆的相匹配的像素位置;
计算当前目标框与匹配目标框的特征匹配点,使用sift获取对应区域特征点,并进行匹配获取所有特征匹配点中最佳的一对坐标(xi,yi)、(xi+1,yi+1);
通过步骤2得到的单应性转换矩阵H,将坐标(x,y)转换为现实距离的(x’,y’),通过帧率fps得到时间,通过两点的现实距离计算出位移,通过位移除以时间,计算出实际位移速度;
计算实际位移速度的公式如下,Vi为该帧的瞬时速度,i表示发现该车辆的第i帧,1/fps为一帧的时间;
设置停止线并计算平均速度:
根据车辆行驶方向,停止线设置为行驶方向距离驶出界面15%的位置,车辆的目标框越过停止线即停止追踪并计算其平均速度作为记录;
平均速度计算为:
基于上述,在视频码流中提取运动矢量MV时,将宏块大小归一化为4*4,非4*4的宏块拆分成n个4*4的宏块,拆分后的宏块使用原有的MV大小。
基于上述,分析车道线与车道区域的方法包括:
固定安装摄像头以后,摄像头拍摄一段时间,通过均值滤波消除前景区域的影响,获得静态背景的画面,以此静态背景获取车道信息;
对静态背景的画面使用canny边缘分割将车道线从图片中提取出来;
边缘分割后,使用霍夫变换分析属于直线的部分获得车道部分。
基于上述,学习摄像头可分析的最大车速Vmax的方法为:车辆在第一帧进入摄像头,第二帧驶出摄像头,由摄像头拍摄区域的距离及一帧内时间计算得出最大车速Vmax。
基于上述,步骤3中时空域检测运动目标的方法包括:
步骤a、空域处理:根据当前待测宏块MBc的8邻域是否存在运动矢量MV来确定该宏块是否为孤立点,若其邻域存在5个以上的宏块都有非零运动矢量MV,则认为此宏块为非孤立点,否则认为其为孤立点,将该宏块运动矢量MV置零;
步骤b、时域处理:
令宏块MBc为待分析宏块,MVc为其运动矢量MV;MBref为宏块MBc投影至参考帧中的宏块,MVref为其运动矢量MV;
将步骤a处理后的宏块MBc进行如下处理:
将待分析宏块MBc与对应MVc合成逆向投影到参考帧上生成MBref,则MBref至多与参考帧四个块重叠,将四个重叠块的MV按重叠面积加权计算MVref大小,并与MVc比较,若相似则认为MBc及其对应MVc真实反映一个运动车辆,将MBc标记为MBreal。
基于上述,步骤4中形成投影MV的计算方法为:
MVi∈mvs
其中,n表示非零运动矢量MV的数量。
基于上述,步骤4中的相似度计算方法:
其中,MVcpro为当前的目标框中的投影MV,MVnpro为另一个目标框中的投影MV,Scos为余弦相似度;
设定阈值b,若Scos>b,即可认为相似;
邻近程度判断方法采用距离计算方法:
设第一个目标框的坐标为X1min X1max Y2min Y2max,第二个目标框的坐标为X1min X1max Y2min Y2max;
dx=Min(|X1min-X2min|,|X1max-X2max|,|X1min-X2max|,|X1max-X2min|);
dy=Min(|Y1min-Y2min|,|Y1max-Y2max|,|Y1min-Y2max|,|Y1max-Y2min|);
dx为两个目标框x轴距离,dy表示两个目标框y轴距离;
若dx<75并且dy<75,则距离认为接近,扩大对应长度,两目标框合并为一个目标框;
所有目标框合并完成后,计算目标框中的投影MV,目标框最终形式为{center,box,linenum,mvpro}。
本发明第二方面提供一种摄像头,部署在高速公路上用于多车测速,测速的方法采用所述的基于视频压缩域的多车测速方法。
本发明相对现有技术具有突出的实质性特点和显著进步,具体的说,本发明具备以下有益效果:
(1)本发明结合场景信息,解决了压缩域中对多车辆分割容易将邻近车辆分割成同一个车辆的情况;
(2)本发明通过对视频码流的提取,获得MV来分析车辆位置信息,减少了全解码整帧搜索车辆,提高了实时性;
(3)本发明只使用压缩域中MV的信息,可广泛适用于不同的视频编码标准中;
(4)本发明使用像素域匹配点的情况计算车速,无需车辆特定特征,并且不受车辆在图像中位置的影响。
(5)摄像头初始化过程中学习了道路区域,在后续的数据处理和识别中能够排除大量的非道路区域信息,大大降低数据量和处理复杂度。
附图说明
图1是本发明方法中宏块归一化说明。
图2是本发明方法中车道分割图(1、2、3代表三个不同的车道线)。
图3是本发明方法中当前帧投影到参考帧的示意图。
图4是本发明方法中目标框示例图。
图5是本发明方法中以车道线分割(左侧为原图,右侧为分割后的图)后的目标框示例图。
图6是本发明方法中目标框距离计算方法示意图。
图7是本发明方法中设置的停止线示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
实施例1
本实施例提供了一种基于视频压缩域的多车测速方法,包括以下步骤:
步骤1,从视频码流中提取运动矢量MV;
如图1所示,在视频码流中提取运动矢量MV时,将宏块大小归一化为4*4,非4*4的宏块拆分成n个4*4的宏块,拆分后的宏块使用原有的MV大小。这样归一化后方便计算,而且由于所有宏块已转换为4*4的块,宏块的位置也更好定位。例如:一个16*16的宏块先拆成4个8*8的宏块,每个8*8的宏块再拆成4个4*4的宏块,其他情况下同理。
步骤2,摄像头初始化;实际测速时,此步骤只需在使用前运行一次即可;
1)分析车道线与车道区域;
固定安装摄像头以后,摄像头拍摄一段时间,通过均值滤波消除前景区域的影响,获得静态背景的画面,以此静态背景获取车道信息;
对静态背景的画面使用canny边缘分割将车道线从图片中提取出来;由于车道线为浅白色,地面道路为深灰色,因此边缘变化明显,使用canny边缘分割时设置低阈值为100,高阈值为300。另外,由于道路中存在停止线、斑马线等其他情况,在分割前划分出车道线所在位置,以免其他道路线对车道线产生影响;
边缘分割后,使用霍夫变换分析属于直线的部分,由于车道线在图像中可能不完整,因此将拟合后的直线延长至整个图像,这些间隔的部分即认为的车道部分,n条车道线可以形成n-1条车道,如图2所示。
2)计算用于像素实际距离和现实距离转化的单应性转换矩阵H;
通过道路标准得到如车道线间隔距离(水平距离),车道线距离人行道间距离(垂直距离),标记对应区域在现实中的距离。通过水平距离和垂直距离可确定至少不共线四点,通过单应性转换矩阵H转化得到像素实际距离和现实距离转化;
单应性(Homography)转换是用来描述物体在世界坐标系和像素坐标系之间的位置映射关系,设单应性转换矩阵H为:
设现实位置坐标为(x’,y’,1),像素坐标为(x,y,1),则其转换公式为:
单应性转换矩阵H中一般令h33恒等于1,这样使得单应性转换矩阵归一化,于是可以通过至少两对匹配点,列出八个方程,求解出单应性矩阵中的其他8个参数。
3)学习摄像头可分析的最大车速;
最大车速设为Vmax,假设车辆在第一帧进入摄像头,第二帧驶出摄像头,车辆速度即为Vmax。由摄像头拍摄区域的距离及一帧内时间计算得出最大车速Vmax。由摄像头拍摄区域的距离及一帧内时间即可计算得出Vmax。所有小于Vmax的运动物体均可由摄像头在2帧以上记录到运动状况,即可通过本实施例方法分析估计其运动速度及完成追踪。
步骤3,运动矢量MV预处理;
清除不在车道区域中的运动矢量MV,只对车道区域中的非零运动矢量MV的宏块处理;
时空域检测运动目标:
根据车辆运动是连续且平滑的特性判断在车道区域中的非零宏块是否为运动目标,并以此设置一个阈值来确定当前待测宏块MBc是否为运动车辆的宏块MBreal;
具体的时空域检测运动目标的方法包括:
步骤a、空域处理:根据当前待测宏块MBc的8邻域是否存在运动矢量MV来确定该宏块是否为孤立点,若其邻域存在5个以上的宏块都有非零运动矢量MV,则认为此宏块为非孤立点,否则认为其为孤立点,将该宏块运动矢量MV置零;
步骤b、时域处理:
如图3所示,将当前检测的宏块MBc逆向投影至其参考帧(如前帧)中,以分析MBc的MV是由于物体运动而产生的真实MV还是由于编码需要生成的伪MV。令宏块MBc为待分析宏块,MVc为其运动矢量MV;MBref为宏块MBc投影至参考帧中的宏块,MVref为其运动矢量MV;
将步骤a处理后的宏块MBc进行如下处理:
将待分析宏块MBc与对应MVc合成逆向投影到参考帧上生成MBref,则MBref至多与参考帧四个块重叠,将四个重叠块的MV按重叠面积加权计算MVref大小,并与MVc比较,若相似则认为MBc及其对应MVc真实反映一个运动车辆,将MBc标记为MBreal。
时域处理的计算方法可表述如下:
MBref=MBc-MVc/k
其中,si表示参考帧中宏块i与投影MBref的重叠面积;MVi表示宏块i的MV;k为反映MV不同像素精度的系数,即将MV转换为基于像素大小的矢量;TH为验证MVc与MVref是否相近的阈值,若TH<a则认为相似,a为阈值,可设置a>0针对不同场景不同设置,越小时越严格。
步骤4,标记运动目标;
分割不同车道线的车辆:
当相邻车道有车辆并排行驶时,光凭压缩域信息容易将两个邻近目标连通在一起,从而出现一个目标框内包含多个目标的情况;此时使用步骤2得到的车道区域,对不同车道区域单独分析,避免了两车辆并排时干扰效果的情况。当有一个目标框横跨了两车道,以车道线将该目标框分为两部分,如图4和图5所示,标记目标框,目标框的重心所在车道线为1则其车道线标记为1,另一个目标框重心所在车道线为2,这两个单独进行互不干扰最终目标框的结果是{center,box,linenum,mvs};center为目标框重心,其包含重心坐标;box为目标框大小,其包括左上角坐标和长宽;linenum为道路线;mvs为目标框中非零运动矢量MV的集合;
合并目标框:
由于非零运动矢量MV的宏块不一定连续,二值图像中属于同一辆车的白色区域之间有断层,即同一个车辆会有多个目标框产生,因此考虑合并这些目标框,这些目标框一定是邻近的,并且由于属于同一个物体,运动矢量(MV)也有相似性,可以以距离和相似程度进行合并,合并后也能区分出同一帧中不同的车辆及其位置。分别将已标记的目标框中的非零运动矢量MV累加起来,形成投影MV,记为MVpro;
判断各个目标框的MVpro的相似度与邻近程度;先判断相似度,若相似度接近,继续判断邻近程度,若目标框又相近则进行合并,形成的目标框为某一车辆的目标框;最终合并成多个目标框从而确定多个车辆的位置。
具体的,形成投影MV的计算方法为:
MVi∈mvs
其中,n表示非零运动矢量MV的数量。
相似度计算方法:
其中,MVcpro为当前的目标框中的投影MV,MVnpro为另一个目标框中的投影MV,Scos为余弦相似度;
设定阈值b,若Scos>b,即可认为相似。
邻近程度判断方法采用距离计算方法,如图6所示:
设第一个目标框的坐标为X1min X1max x2min x2max,第二个目标框的坐标为Y1min Y1max y2min y2max;
dx=Min(|X1min-X2min|,|X1max-X2max|,|X1min-X2max|,|X1max-X2min|);
dy=Min(|Y1min-X2min|,|X1max-X2max|,|X1min-X2max|,|X1max-X2min|);
dx为两个目标框x轴距离,dy表示两个目标框y轴距离;
若dx<75并且dy<75,则距离认为接近,扩大对应长度,两目标框合并为一个目标框;
所有目标框合并完成后,计算目标框中的投影MV,目标框最终形式为{center,box,linenum,mvpro}。
步骤5,运动目标追踪;
由于镜头不动,两帧的图像只有运动物体有变化,因此可以使用交并比确定跟踪情况。将一帧的目标框以MV投影到邻帧当中,称为预测目标框,预测目标框与邻帧的目标框计算交并比,若交并比大于0则收录进匹配对,并不再重复对该匹配对进行判断,并且前面已经计算过车辆所在车道线,按每个车道线进行跟踪,各个车道区域不互相影响。
具体做法是:将步骤4得到的目标框按其投影MV(MVpro)移动投影到邻帧当中,作为预测目标框,预测其在邻近帧中的位置(可以是下一帧也可以是上一帧),由于只有位置移动,所以将目标框box中左上角坐标移动对应投影MV大小即可;
将预测目标框记为A,邻帧目标框记为B,计算A与B的交并比IOU,交并比公式若交并比大于0,即确定两帧为同一对象,就将两个目标框加入目标框匹配对列表,并从待搜索的列表中删除,直至匹配对列表中的搜索完毕;
步骤6,计算速度;
计算瞬时速度:
先通过步骤5得到的目标框匹配对列表,由于压缩域信息的不完整,所以车辆目标框的质心不一定是车辆的质心,如果以目标框的质心来计算速度误差较大,因此使用特征匹配的方法,找到对应车辆的相匹配的像素位置;因为已经选取了目标区域,根据公路计算一辆车的面积大约占屏幕的百分之10,如果摄像头离得远,则占比更少,因此,相比于整帧搜索的方法,较大减少了计算量;
再计算当前目标框与匹配目标框的特征匹配点,使用sift获取对应区域特征点,并进行匹配获取所有特征匹配点中最佳的一对坐标(xi,yi)、(xi+1,yi+1);在其它实施例中,还可以使用suft方法、orb方法,以及神经网络方法来计算相邻帧检测匹配点;
通过步骤2得到的单应性转换矩阵H,将坐标(x,y)转换为现实距离的(x’,y’),通过帧率fps得到时间,通过两点的现实距离计算出位移,通过位移除以时间,计算出实际位移速度;
计算实际位移速度的公式如下,Vi为该帧的瞬时速度,i表示发现该车辆的第i帧,1/fps为一帧的时间;
设置停止线并计算平均速度:
如图7所示,根据车辆行驶方向,停止线设置为行驶方向距离驶出界面15%的位置,车辆的目标框越过停止线即停止追踪并计算其平均速度作为记录;
平均速度计算为:
实施例2
本实施例提供一种摄像头,部署在高速公路上用于多车测速,测速的方法采用实施例1所述的基于视频压缩域的多车测速方法。
本实施例提供的摄像头通过对视频码流的提取,在压缩域进行分析,得到车辆对应信息,只需要关注对应车辆信息即可,无需全部解码整帧计算来寻找车辆,避免了所有数据传输至后台服务器计算。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。