一种基于功率谱分析的车辆双闪检测方法及装置
未命名
08-29
阅读:124
评论:0

1.本发明涉及车辆行驶安全检测技术领域,具体涉及一种车辆双闪检测方法。
背景技术:
2.交通事故是道路交通安全的重要威胁之一,每年在道路上会发生大量的交通事故,可能包括碰撞、碾压、刮擦、翻车等情况。一旦出现交通事故,若交通管理部门及时介入,将会极大缓解交通压力,保障通行。随着道路车辆逐渐增多以及机动车驾驶证考核逐渐严格,驾驶人员的安全规范意识不断增强,一般车辆在出现异常后,车主会就近停车并且打开双闪灯,将车辆置于双闪状态,甚至有的车辆在发生交通事故后会自动打开双闪灯,无需人工操作。因此,快速识别双闪车辆对于交通安全预警和处理至关重要。
3.现有技术中,车辆双闪检测方法主要包括以下几种:
4.亮度差判别法:中国专利申请201710593280.5,一种双闪识别以及车辆避障的方法和系统。首先获取至少两组车辆摄像头的信息感知数据,信息感知数据为沿着时间间隔拍摄的相同车辆的图像,标记为第一图像组和第二图像组,时间间隔小于车辆双闪频率,且时间间隔为相同的时间值,信息感知数据中的图像经过预处理后再识别出车辆的车灯轮廓并判断车灯的亮度值,将第一图像组中提取至少三张图像,且三张图像内的车辆亮度值至少有一张与其余两张亮度差大于亮度差阈值时,再将第二图像组中提取至少三张图像,且三张图像内的车灯亮度值至少有一张与其余两张亮度差大于亮度差阈值,若上述关系成立,则车辆处于双闪状态,否则处于非双闪状态。
5.该方法需要先定位车灯轮廓区域,然后根据亮度差实现双闪判定。在实际道路场景中,由于车辆运动及周围环境条件变化的影响,车灯轮廓区域提取较为困难,导致无法精确定位车灯位置,在此基础上,双闪判别很难实现。并且不同车辆双闪时车灯变化区域不同,有的甚至差异较大,若将亮度差与统一的阈值相比较,对于多场景实际表现并不友好。
6.对比学习法:中国专利申请202210904131.7,一种车辆双闪灯的识别方法及装置。对输入的视频流数据,经过车辆检测及多目标跟踪后,将车辆视频数据经过车灯检测提取车灯样本,通过车灯状态特征提取网络对车灯样本进行车灯状态特征提取,计算每一辆车的当前帧的车灯特征与上一帧的车辆车灯特征间的欧氏距离作为特征距离,根据特征距离与特征距离阈值间的关系判断车灯状态是否发生变化,若发生变化,则统计同一车辆的所有车灯在预设时间t内的状态变化次数,并与变化次数阈值进行比较,若超过变化次数阈值,判定车辆开启双闪,否则未开启双闪。
7.该方法采用对比学习的方法,通过车灯状态特征提取网络实现双闪判断。但是该方法在目标检测及多目标跟踪之后,仍需外接车灯检测及车灯状态特征提取网络,通过四个部分实现双闪检测,每一视频帧数据经过多个网络结构,计算量较大,若视频流中每一帧都做上述操作,则效率较低。
8.深度学习法:中国专利zl202210983816.5,一种基于深度学习的车辆异常停止监测方法。截取当前帧及当前帧前连续多个历史帧的车辆目标框图像,总计20帧目标框图像,
将连续20帧的目标框图像送入车辆双闪检测模型检测双闪亮灯状态,若连续20帧中的目标框图像处于双闪亮灯状态的图像帧数在[6,14]范围内,则判断车辆处于双闪状态,否则处于非双闪状态。
[0009]
该方法使用车灯亮暗检测模型通过一定检测逻辑实现双闪判别。现阶段并没有双闪车辆的公开数据集,若使用私人数据集,在图像分类模型较复杂的情况下,容易使得模型过拟合,在私人数据集上测试结果非常好,但是在实际场景中模型鲁棒性较差,对于多种实际场景表现并不友好,而且也缺乏对比性。
[0010]
像素均值差判别法:中国专利zl202110614866.1,一种基于无人机的交通事故警示牌安放系统及方法。首先对故障车辆进行尾灯定位,之后构建hsv颜色模型,将rgb图像转换到hsv颜色空间,根据图像阈值分割图像,并设置左右两侧车灯的像素动态阈值,连续三秒提取尾灯区域的像素均值。比较相邻两秒像素均值之差,两侧尾灯均值之差均大于阈值,则判定车辆处于双闪状态,否则,判定车辆处于非双闪状态。
[0011]
该方法通过定位车灯,将分割颜色像素均值差与固定阈值进行比较,从而判别双闪。通过车灯轮廓提取定位车灯,但车灯定位易受环境影响,之后将车灯定位到车辆,最后再将结果与阈值进行比较,这些阈值是手工经验设置,无法满足多种实际场景需要。
技术实现要素:
[0012]
为了克服现有技术存在的问题,本发明提出基于功率谱分析的车辆双闪检测方法,其基本思想是:先使用目标检测器及多目标跟踪算法保证车辆的准确识别及定位,然后构建车辆时间序列管道,最后采用傅里叶分析计算车辆双闪的功率谱,从而提取车辆双闪的周期特征。
[0013]
为达到上述目的,本发明提供如下技术方案:
[0014]
一种基于功率谱分析的车辆双闪检测方法,包括:
[0015]
步骤s1:视频采集,即输入视频流信息,设置视频流的禁止停车区域;
[0016]
步骤s2:车辆目标检测,即对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框;
[0017]
步骤s3:追踪目标车辆,即对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配身份id;
[0018]
步骤s4:获取车辆状态,即获取每一车辆的运动状态并记录静止时间;
[0019]
步骤s5:双闪结束识别,即对之前已经判定处于双闪状态的车辆进行静止判定;
[0020]
步骤s6:潜在双闪车辆判断,即将静止时间超过停止判断时间的车辆筛选出来,并作为潜在双闪车辆;
[0021]
步骤s7:对静止车辆进行双闪判定,即构造车辆时间序列管道,将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,而后构造车辆双闪信息管道,对车辆双闪信息管道做功率谱分析,最后对车辆进行双闪阈值判断,输出双闪判断结果并保存双闪车辆id。
[0022]
进一步的,
[0023]
步骤s1中禁止停车区域设置为整个视频画面,或者为视频中某一位置区域;
[0024]
步骤s2中目标检测识别车辆模型为ppyoloeplus(paddlepaddleyouonlylookonce),训练目标检测识别车辆模型的数据集采用bdd100k
(berkeleydeepdrive100k),用训练好的目标检测识别车辆模型对视频流中所有车辆进行检测,获取车辆位置信息;
[0025]
步骤s3中采用oc-sort(observation-centricsimpleonlineandrealtimetracking)对车辆进行多目标追踪,返回车辆身份id及车辆检测矩形框左上角坐标及车辆检测框宽与高;
[0026]
步骤s5中先利用步骤s4获取当前帧静止车辆id,而后查询之前识别为双闪车辆的id是否在当前帧中仍处于静止状态,即双闪车辆id序列是否在静止车辆id序列中,若在则证明双闪车辆仍然处于静止状态,否则证明双闪车辆静止状态结束,将双闪车辆id从双闪车辆id序列中删除。
[0027]
进一步的,
[0028]
步骤s1中视频中某一位置区域为自定义多边形区域;
[0029]
步骤s2中使用bdd100k中训练集7万张图片和验证集1万张图片,训练目标检测识别车辆模型,ppyoloeplus模型的结构分为主干网络backbone、颈部网络neck、检测头head三部分,车辆位置信息包括车辆检测矩形框左上角坐标和右下角坐标及检测框得分;
[0030]
步骤s3中最大追踪门限帧数在oc-sort中设置为30,如车辆失去追踪超过最大追踪门限帧数,将该车辆id加入删除轨迹。
[0031]
进一步的,
[0032]
步骤s1中自定义多边形区域,最少由三个点组成,多边形区域按照顺时针顺序连成一个封闭区域;
[0033]
步骤s2中训练目标检测识别车辆模型时,将bdd100k数据集数据提前读取到内存中,然后对bdd100k数据集数据进行随机翻转数据增强,采取在线或离线数据增强的方式进行随机水平方向翻转和随机竖直方向翻转,最后使用经过随机翻转数据增强的数据集训练目标检测识别车辆模型。
[0034]
进一步的,
[0035]
步骤s1中封闭区域为矩形区域;
[0036]
步骤s4包括:
[0037]
步骤s4-1:计算前后帧检测框的iosa(intersectionoversmallarea),然后与iosa阈值比较,输出为1或者0;
[0038]
步骤s4-2:计算前后帧检测框中心坐标像素距离,然后与车辆前后帧检测框中心坐标距离阈值比较,输出为1或者0;
[0039]
步骤s4-3:累计像素移动距离,然后与累计像素移动距离阈值比较,输出为1或者0;
[0040]
步骤s4-4:计算车辆状态。
[0041]
进一步的,
[0042]
步骤s4-1中iosa的计算方式是在两个检测框间进行,即检测框间的交集除以小检测框的面积,小检测框是指两个检测框中面积小的检测框,若两个检测框面积相同,返回两个检测框中的任意一个;
[0043]
步骤s4-2中计算同一目标车辆前后帧检测框中心坐标像素距离,之后对其进行归一化处理,归一化处理的计算方式为200*像素距离/(当前帧纵坐标+1);
[0044]
步骤s4-3中计算累计同一目标车辆检测框中心点静止状态下像素移动距离;
[0045]
步骤s4-4中当步骤s4-1输出为1同时步骤s4-3输出为1或者步骤s4-2输出为1同时步骤s4-3输出为1时,车辆处于静止状态,否则车辆处于运动状态;
[0046]
当车辆处于静止状态,记录每一车辆静止的开始时间和结束时间,记录静止状态下车辆的历史帧信息,删除之前处于静止状态,但静止状态持续时间小于ts,ts为停止判断时间,且目前已经失去追踪超过最大追踪门限帧数的车辆历史帧信息。
[0047]
进一步的,
[0048]
步骤s7包括:
[0049]
步骤s7-1:构造车辆时间序列管道,即利用当前帧潜在双闪车辆坐标截取该车辆的历史帧信息,构造车辆时间序列管道;
[0050]
步骤s7-2:将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,其中h代表色调,s代表饱和度,v代表明度;
[0051]
步骤s7-3:构造车辆双闪信息管道,即将黄颜色像素信息作为车辆时间序列管道提取出的车辆双闪信息,将车辆时间序列管道构造为一个车辆双闪信息管道;
[0052]
步骤s7-4:对车辆双闪信息管道做功率谱分析;
[0053]
步骤s7-5:对车辆进行双闪阈值判断;
[0054]
步骤s7-6:保存双闪车辆id,即将双闪车辆id信息保存至双闪车辆id序列,而后进入步骤s2进行下一帧的目标检测。
[0055]
进一步的,
[0056]
步骤s7-3中提取完车辆时间序列管道的车辆双闪信息之后,将静止车辆历史帧信息清空;
[0057]
步骤s7-4中对提取出的车辆双闪信息管道做傅里叶变换,或者采用周期图法、自回归模型、平滑重采样法等方法获取双闪信息的功率谱;
[0058]
步骤s7-4中当双闪信息的功率谱大于功率谱阈值阈值时,判断静止车辆处于双闪状态,双闪信息功率谱阈值设置为0.15。
[0059]
本发明还提供一种基于功率谱分析的车辆双闪检测装置,包括:
[0060]
视频采集模块,用于采集输入视频流信息,设置视频流的禁止停车区域;
[0061]
车辆目标检测模块,用于对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框;
[0062]
追踪目标车辆模块,用于对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配身份id;
[0063]
获取车辆状态模块,用于获取每一车辆的运动状态并记录静止时间;
[0064]
双闪结束识别模块,用于对之前已经判定处于双闪状态的车辆进行静止判定;
[0065]
潜在双闪车辆判断模块,用于获取视频流当前帧所有追踪车辆停止时间,寻找停止时间超过ts的车辆,获取静止车辆的历史帧信息;
[0066]
双闪判定模块,用于对静止车辆进行双闪判定;
[0067]
其中双闪判定模块中先构造车辆时间序列管道,将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,而后构造车辆双闪信息管道,对车辆双闪信息管道做功率谱分析,最后对车辆进行双闪阈值判断,输出双闪判断结果并保存双闪车辆id。
[0068]
进一步的,
[0069]
视频采集模块为海康威视ds-2cd2120f-i,车辆目标检测模块、追踪目标车辆模块在nvidiageforcertx3090ti中实现,获取车辆状态模块、双闪结束识别模块、双闪判定模块在配置为xeon(r)silver4210cpu的计算机上实现。
[0070]
与现有技术相比,本发明的有益效果是:无需定位车灯轮廓区域,避免了定位误差带来的影响;本发明中的阈值根据功率谱的相对大小设定,并非根据亮度差或像素均值差等未体现相对性的绝对阈值设置,因此本发明设置的阈值对视频场景并不敏感,对视频的道路场景适应性较强;本方法检测到处于双闪状态的车辆时,可以很方便地定位双闪车辆,而无需根据车灯位置重新定位双闪车辆。相较于对比学习和深度学习的方法,本方案虽然是在目标检测及多目标跟踪的基础上进行双闪判别,但是本方案采用的目标检测及多目标跟踪算法,计算效率高,并且效果好;本发明方法无需经过多层网络结构,计算量较小;本发明方法充分考虑了车辆双闪的周期性信息,而非根据视频中几帧检测结果便得出双闪结论,减少了双闪车辆的误判,提高了双闪检测的准确性。本发明不仅可以识别双闪车辆后灯闪烁,而且对双闪车辆前灯闪烁也可以识别,若可以同时观测到前后灯闪烁,例如:同时出现三个闪烁灯时,同样可以将双闪车辆识别出来;本发明甚至将车辆临时打开双闪停止而后又离开的这种场景以及车辆翻车而后自动打开双闪的场景考虑进去,具有很强的实用性。
附图说明
[0071]
图1为本发明方法实现步骤流程图;
[0072]
图2为双闪频率为1.25hz的车辆图片;
[0073]
图3为双闪频率为1.38hz的车辆图片;
[0074]
图4为使用本发明方法在实际视频中对某一双闪车辆得到的频谱;
[0075]
图5为使用本发明方法在实际视频中对某一双闪车辆得到的功率谱;
[0076]
图6为使用本发明方法在夜间场景视频检测双闪车辆时一辆检测结果;
[0077]
图7为使用本发明方法在夜间场景视频检测双闪车辆时另一辆检测结果。
具体实施方式
[0078]
为使本发明的目的、技术方法以及优势更加明晰,下面结合附图和实施例对本发明的内容进行进一步详细说明。
[0079]
附图1为本发明方法实现步骤流程图。
[0080]
在本发明的一个具体实施例中。
[0081]
步骤s1:视频采集。即输入视频流信息,设置视频流的禁止停车区域,在本发明的一个具体实施例中禁止停车区域设置为整个视频画面,便于分析视频中所有车辆;
[0082]
通过摄像头获取实际道路场景视频帧信息,并且标注视频禁止停车区域坐标,将禁止停车区域设置为整个视频画面,也可修改禁止停车区域坐标至视频中某一位置区域,禁止停车区域可以设置为自定义多边形区域,最少由三个点组成,即至少包含三对坐标,多边形区域按照顺时针顺序连成一个封闭区域,以矩形区域为例,禁止停车区域坐标设置为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)分别代表禁止停车区域左上角、右上角、右下角、左下
角位置坐标。针对路面在图像中的位置,选择有效区域,可以减少后面计算量。
[0083]
步骤s2:车辆目标检测。即对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框,代表了车辆在视频中的位置坐标。
[0084]
目标检测识别车辆模型为ppyoloeplus(paddlepaddleyouonlylookonce),为目标检测系列中单阶段目标检测算法,属于yolo系列的一个变体;本发明训练目标检测识别车辆模型的数据集采用bdd100k(berkeleydeepdrive100k),该数据集为加州大学伯克利分校ai研究所发布的用于计算机视觉研究的开放驾驶视频数据集,bdd100k中使用二维矩形框共标注了10万张图像,使用其中训练集7万张图片,验证集1万张图片,训练目标检测识别车辆模型,用训练好的目标检测识别车辆模型对视频流中所有车辆进行检测,获取车辆位置信息,车辆位置信息包括车辆检测矩形框左上角坐标和右下角坐标及检测框得分。
[0085]
ppyoloeplus模型的结构分为主干网络backbone、颈部网络neck、检测头head三部分。ppyoloeplus模型的输入维度为[*,3,image_height,image_width],其中*为输入图片的数量,3代表输入图片为rgb3通道图像,image_height代表图像高度,image_width代表图像宽度。模型输出维度为[*,8400,5],8400代表模型对每一张输入图片预测8400个预测框,5代表预测5个数值,对应车辆检测矩形框左上角坐标和右下角坐标及检测框得分,目标检测完之后经过后处理,如非极大值抑制,过滤掉重合度非常高的检测框,就得到了最终*个图像的检测结果。
[0086]
对因碰撞翻倒的双闪车辆进行目标检测的改进方法如下:
[0087]
训练目标检测识别车辆模型时,将bdd100k数据集数据提前读取到内存中,然后对bdd100k数据集数据进行随机翻转数据增强,采取在线或离线数据增强的方式进行随机水平方向翻转和随机竖直方向翻转,最后使用经过随机翻转数据增强的数据集训练目标检测识别车辆模型,使得目标检测识别车辆模型在学习正常车辆特征的同时学习翻倒车辆的特征,保证目标检测尽可能准确识别翻倒后车辆。
[0088]
步骤s3:追踪目标车辆。即对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配id,id代表了视频中每一车辆的身份;
[0089]
对车辆进行多目标追踪的方法采用oc-sort(observation-centricsimpleonlineand realtimetracking),即以观测为中心的简单在线的实时跟踪算法,该方法赋予视频中每一车辆一个身份id,对视频中同一车辆持续追踪,保证视频流中相同车辆的身份id保持不变。多目标追踪完之后,返回车辆身份id及车辆检测矩形框左上角坐标及车辆检测框宽与高。
[0090]
在多目标追踪期间,如果车辆失去追踪超过最大追踪门限帧数,最大追踪门限帧数在oc-sort中设置为30,那么该车辆id就会加入删除轨迹,之后在多目标追踪中,就不会再匹配。
[0091]
假如车辆失去追踪的时间小于最大追踪门限帧数,那么在这段时间内,只要步骤s2目标检测重新检测到了该车辆,通过多目标追踪算法就可以能把该车辆和原本车辆id对应起来,从而减少id跳变,
[0092]
步骤s4:获取车辆状态。即获取每一车辆的运动状态,如运动或静止,并记录静止时间。
[0093]
步骤s4-1:计算前后帧检测框的iosa(intersectionoversmallarea)。iosa的计算
方式是在两个检测框间进行,即检测框间的交集除以小检测框的面积,小检测框是指两个检测框中面积小的检测框,若两个检测框面积相同,返回两个检测框中的任意一个,iosa阈值设置为0.96,当两个检测框间的iosa大于0.96,判断两个检测框基本没有移动,即车辆处于静止状态,输出为1,否则为0;
[0094]
步骤s4-2:计算前后帧检测框中心坐标像素距离。即计算同一目标车辆前后帧检测框中心坐标像素距离,之后对其进行归一化处理,归一化处理的计算方式为200*像素距离/(当前帧纵坐标+1),即考虑了近大远小,车辆前后帧检测框中心坐标距离阈值设置为0.6,若计算出的车辆前后帧检测框中心坐标距离小于该阈值认为车辆处于静止状态,输出为1,否则为0;
[0095]
步骤s4-3:累计像素移动距离。计算累计同一目标车辆检测框中心点静止状态下像素移动距离,累计像素移动距离阈值设置为45,当同一静止车辆检测框中心点坐标累计像素移动距离小于累计像素移动距离阈值,认为车辆处于静止状态,输出为1,否则为0;
[0096]
步骤s4-4:计算车辆状态。即对目标车辆检测框做iosa,并计算同一目标车辆前后帧像素移动距离及累计像素移动距离,将三个参数分别与对应阈值进行比较,当(第一个参数或第二个参数)和第三个参数同时满足阈值要求时,即((第一个参数大于对应阈值)|(第二个参数小于对应阈值))&(第三个参数小于对应阈值)时,车辆会被判定为处于静止状态;否则,被判断为处于运动状态。
[0097]
当车辆满足上述条件时,车辆处于静止状态,记录处于静止状态车辆静止的开始时间,可能一段时间过后,静止车辆会运动,当静止车辆被识别为处于运动状态时,静止状态结束,记录每一车辆静止的开始时间和结束时间,从而计算静止车辆的停止时长。记录静止状态下车辆的历史帧信息,删除之前处于静止状态,但静止状态持续时间小于ts,ts为停止判断时间,且目前已经失去追踪超过最大追踪门限帧数的车辆历史帧信息,失去追踪指的是车辆id从视频中消失,该操作防止内存爆炸。
[0098]
删除历史帧信息的原因是因为在步骤s3目标追踪完成之后,历史帧中某一静止车辆在当前帧可能因为其他车辆遮挡,导致该帧无法恢复该车辆为历史帧中的id,因为没办法恢复所以会赋予该车辆一个新的id,这个新的id会记录车辆的信息,而该车辆旧id历史帧信息在内存中仍然存在,若不将这些历史帧信息删除,内存逐渐增多,就会发生内存溢出的现象,因为静止车辆id跳变是一种较为常见的现象,即使采用了oc-sort这样先进的多目标跟踪算法,仍然存在这样的问题。
[0099]
比如某一辆静止车辆,静止了8s,但是在第9s时,id跳变了,比如车辆原先的id为9,现在id跳变为了10,那么id为9的这块信息中保存了车辆前8s的信息,这些信息因为id未满10s,无法利用,所以会一直在内存中,这时需要将这些信息删除掉,防止占用内存导致内存溢出。
[0100]
步骤s5:双闪结束识别。若静止车辆在ts被识别为双闪车辆,在ts后的一个时间如ts~2ts之间静止车辆关闭双闪并驾驶车辆离开,那么此时需要将之前识别为双闪的车辆与当前帧的静止车辆进行对比,若双闪车辆由静止状态转变为了运动状态,此时将车辆双闪状态消除。
[0101]
对停止判断时间后的双闪车辆即之前已经判定处于双闪状态的车辆进行静止判定,若静止车辆转换为运动状态,则双闪车辆双闪状态结束。具体地,先利用步骤s4获取当
前帧静止车辆id,而后查询之前识别为双闪车辆的id是否在当前帧中仍处于静止状态,即双闪车辆id序列是否在静止车辆id序列中,若在则证明双闪车辆仍然处于静止状态,否则证明双闪车辆静止状态结束,静止状态结束则认为双闪状态也就结束,将双闪车辆id从双闪车辆id序列中删除,从而结束双闪车辆当前的双闪状态,将其回归为正常车辆,保证双闪车辆处于双闪状态时被准确识别,结束双闪状态后也可以被准确识别。
[0102]
步骤s6:潜在双闪车辆判断。获取视频流当前帧所有追踪车辆停止时间,寻找停止时间超过ts的车辆,获取静止车辆的历史帧信息;
[0103]
将静止时间超过ts的车辆筛选出来,并作为潜在双闪车辆,而后进入步骤s7。
[0104]
具体为:对静止超过ts的车辆,获取历史帧信息,历史帧信息对应潜在双闪车辆前ts的视频帧信息,历史帧信息最多保留ts,若视频帧率为25fps,则历史帧信息最多保留25*ts帧,历史帧信息在内存中的表示为[帧1,帧2,帧3,...,帧25*ts];
[0105]
如果没有找到潜在双闪车辆,则跳转至步骤s2开始下一帧的目标检测。
[0106]
步骤s7:对静止车辆进行双闪判定。
[0107]
步骤s7-1:构造车辆时间序列管道。即利用当前帧潜在双闪车辆坐标截取该车辆的历史帧信息,构造车辆时间序列管道,车辆时间序列管道的宽高取决于当前帧潜在双闪车辆检测得到的宽高,车辆时间序列管道包含ts内静止车辆的变化情况,隐含潜在双闪车辆信息,在内存中的表示为[车_帧1,车_帧2,车_帧3,...,车_帧25*ts];
[0108]
步骤s7-2:将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,其中h代表色调,s代表饱和度,v代表明度,hsv颜色空间是一个比较直观的颜色模型,便于图像颜色提取及处理;
[0109]
车辆双闪时,双闪灯的颜色包括黄色像素信息,根据hsv颜色阈值区间获取hsv颜色空间中的黄色像素信息。
[0110]
具体的,对于黄颜色像素信息而言:
[0111]
yellow_h_lower_threshold《h《yellow_h_upper_threshold
[0112]
yellow_s_lower_threshold《s《yellow_s_upper_threshold
[0113]
yellow_v_lower_threshold《v《yellow_v_upper_threshold
[0114]
其中
[0115]
yellow_h_lower_threshold=26
[0116]
yellow_h_upper_threshold=34
[0117]
yellow_s_lower_threshold=43
[0118]
yellow_s_upper_threshold=255
[0119]
yellow_v_lower_threshold=46
[0120]
yellow_v_upper_threshold=255
[0121]
其中yellow_h_lower_threshold为色调下限,yellow_h_upper_threshold为色调上限,
[0122]
yellow_s_lower_threshold为饱和度下限,yellow_s_upper_threshold为饱和度上限,yellow_v_lower_threshold为明度下限,yellow_v_upper_threshold为明度上限。
[0123]
步骤s7-3:构造车辆双闪信息管道。经过上述阈值过滤,提取出车辆时间序列管道中每一帧车辆黄颜色像素信息,之后计算每一帧车辆黄颜色像素信息占该帧车辆像素信息
的比例,这个比例为静止车辆每一帧提取出的双闪信息。
[0124]
将黄颜色像素信息作为车辆时间序列管道提取出的车辆双闪信息,即将车辆时间序列管道构造为一个车辆双闪信息管道,车辆双闪信息管道中包含车辆历史帧中每一帧提取出的双闪信息。
[0125]
提取完车辆时间序列管道的车辆双闪信息之后,将静止车辆历史帧信息清空,该做法也是为了节省内存开销,比如某静止车辆静止了10s,那么在第10*25=250帧进行双闪判定,假如第251帧车辆仍处于静止状态,如果不将静止车辆历史帧内存清空,那么会在第251帧中重新进行双闪判定,之后的历史帧中也会进行同样操作,比较浪费时间,所以将超过ts后静止车辆历史帧信息清空。
[0126]
步骤s7-4:对车辆双闪信息管道做功率谱分析。即对提取出的车辆双闪信息管道做傅里叶变换,或者采用周期图法、自回归模型、平滑重采样法等方法获取双闪信息的功率谱,提取车辆双闪信息管道中双闪信息的频率特性,提取出双闪信息的频率特性包含众多频率分量,比如低频成分、中频成分、高频噪声成分,这些频率分量中包含了双闪信息的频率成分。通过对实际视频进行分析,实际双闪车辆的闪烁频率并不是一个固定的频率,如附图2和附图3所示,附图2和附图3都是从实际视频中截取出的时间连续的双闪车辆图片,视频帧率为25fps,附图2展示的双闪频率为1.25hz,附图3展示的双闪频率为1.38hz,因此车辆双闪频率一般在1hz~2hz之内,通过提取该频段内的频率特性的幅值信息从而判定车辆是否发生双闪。
[0127]
双闪频率幅值信息反映的双闪的周期性信息相较于非双闪周期性信息即其他频率分量不太明显,如附图4和附图5所示,附图4为实际视频中某一双闪车辆得到的频谱,附图5为同一双闪车辆得到的功率谱,对比附图4和附图5发现,采用功率谱不仅拉大了双闪信息与其他频率成分的差距,而且平滑了高频噪声的影响。因此计算实际视频中车辆双闪信息在不同频率下功率谱的相对大小,功率谱的相对大小可以反映双闪频率成分在所有频率成分中所占的比例,若车辆处于双闪状态,则在1hz~2hz内的功率谱所占比例较大。
[0128]
步骤s7-5:对车辆进行双闪阈值判断。提取完车辆双闪信息的功率谱之后,将1hz~2hz内的车辆双闪信息的功率谱分别与power_threshold即功率谱阈值进行比较,当双闪信息的功率谱大于功率谱阈值阈值时,判断静止车辆处于双闪状态,双闪信息功率谱阈值power_threshold设置为0.15,该功率谱阈值也可根据实际情况进行上下浮动调整,但是一般情况下调整不会太大。
[0129]
这里利用黄颜色像素信息提取周期性特征非常有必要,在本发明的一个具体实施例中,在对某一夜间场景视频检测双闪车辆时,该视频中包含两辆双闪车辆,两辆双闪车辆在发生事故后均打开了双闪,提取双闪结果分别如附图6、附图7所示,可见即使在夜间场景下,双闪信息依旧可以清晰地提取到。
[0130]
步骤s7-6:保存双闪车辆id。将双闪车辆id信息保存至双闪车辆id序列,而后进入步骤s2进行下一帧的目标检测。
[0131]
本发明相较于传统方法,如亮度差判别方法和像素均值差判别方法,无需定位车灯轮廓区域,避免了定位误差带来的影响;本发明中的阈值根据功率谱的相对大小设定,并非根据亮度差或像素均值差等未体现相对性的绝对阈值设置,因此本发明设置的阈值对视频场景并不敏感,对视频的道路场景适应性较强;本方法检测到处于双闪状态的车辆时,可
以很方便地定位双闪车辆,而无需根据车灯位置重新定位双闪车辆。相较于对比学习和深度学习的方法,本方案虽然是在目标检测及多目标跟踪的基础上进行双闪判别,但是本方案采用的目标检测及多目标跟踪算法计算效率高,并且效果好;本发明方法无需经过多层网络结构,计算量较小;本发明方法充分考虑了车辆双闪的周期性信息,而非根据视频中几帧检测结果便得出双闪结论,减少了双闪车辆的误判,提高了双闪检测的准确性。本发明不仅可以识别双闪车辆后灯闪烁,而且对双闪车辆前灯闪烁也可以识别,若可以同时观测到前后灯闪烁,例如:同时出现三个闪烁灯时,同样可以将双闪车辆识别出来;本发明甚至将车辆临时打开双闪停止而后又离开的这种场景以及车辆翻车而后自动打开双闪的场景考虑进去,具有很强的实用性。
[0132]
针对本发明计算从构造车辆双闪信息管道到所有双闪车辆识别的平均判定延时,实验设备cpu为intel(r)xeon(r)silver4210cpu@2.20ghz,视频采集设备为海康威视ds-2cd2120f-i,提供1920x1080分辨率和25fps帧速率,在该分辨率下可输出实时图像,它还配备了红外夜视功能,可以在低光条件下捕捉清晰的图像,编程语言为python,编程软件为vscode,延时计算采用python时间模块下的时间方法计算,目标检测模型推理时可以采用cpu推理,也可以采用gpu推理,在本发明的一个实施例中采用gpu推理,gpu型号为nvidiageforcertx3090ti。计算结果为7.41ms,可以看出本发明方法双闪判断时间非常快,计算效率高。
[0133]
基于同样的发明构思,本发明提供了一种基于功率谱分析的车辆双闪检测装置,包括:
[0134]
视频采集模块,用于采集输入视频流信息,设置视频流的禁止停车区域;
[0135]
车辆目标检测模块,用于对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框;
[0136]
追踪目标车辆模块,用于对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配身份id;
[0137]
获取车辆状态模块,用于获取每一车辆的运动状态并记录静止时间;
[0138]
双闪结束识别模块,用于对之前已经判定处于双闪状态的车辆进行静止判定;
[0139]
双闪判定模块,用于对静止车辆进行双闪判定。
[0140]
双闪判定模块中先构造车辆时间序列管道,将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,而后构造车辆双闪信息管道,对车辆双闪信息管道做功率谱分析,最后对车辆进行双闪阈值判断,输出双闪判断结果并保存双闪车辆id。
[0141]
视频采集模块为海康威视ds-2cd2120f-i,车辆目标检测模块、追踪目标车辆模块在nvidiageforcertx3090ti中实现,获取车辆状态模块、双闪结束识别模块、双闪判定模块在配置为xeon(r)silver4210cpu的计算机上实现。
技术特征:
1.一种基于功率谱分析的车辆双闪检测方法,包括:步骤s1:视频采集,即输入视频流信息,设置视频流的禁止停车区域;步骤s2:车辆目标检测,即对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框;步骤s3:追踪目标车辆,即对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配身份id;步骤s4:获取车辆状态,即获取每一车辆的运动状态并记录静止时间;步骤s5:双闪结束识别,即对之前已经判定处于双闪状态的车辆进行静止判定;步骤s6:潜在双闪车辆判断,即将静止时间超过停止判断时间的车辆筛选出来,并作为潜在双闪车辆;步骤s7:对静止车辆进行双闪判定,即构造车辆时间序列管道,将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,而后构造车辆双闪信息管道,对车辆双闪信息管道做功率谱分析,最后对车辆进行双闪阈值判断,输出双闪判断结果并保存双闪车辆id。2.如权利要求1所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s1中禁止停车区域设置为整个视频画面,或者为视频中某一位置区域;步骤s2中目标检测识别车辆模型为ppyoloeplus(paddlepaddleyouonlylookonce),训练目标检测识别车辆模型的数据集采用bdd100k(berkeleydeepdrive100k),用训练好的目标检测识别车辆模型对视频流中所有车辆进行检测,获取车辆位置信息;步骤s3中采用oc-sort(observation-centricsimpleonlineandrealtimetracking)对车辆进行多目标追踪,返回车辆身份id及车辆检测矩形框左上角坐标及车辆检测框宽与高;步骤s5中先利用步骤s4获取当前帧静止车辆id,而后查询之前识别为双闪车辆的id是否在当前帧中仍处于静止状态,即双闪车辆id序列是否在静止车辆id序列中,若在则证明双闪车辆仍然处于静止状态,否则证明双闪车辆静止状态结束,将双闪车辆id从双闪车辆id序列中删除。3.如权利要求2所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s1中视频中某一位置区域为自定义多边形区域;步骤s2中使用bdd100k中训练集7万张图片和验证集1万张图片,训练目标检测识别车辆模型,ppyoloeplus模型的结构分为主干网络backbone、颈部网络neck、检测头head三部分,车辆位置信息包括车辆检测矩形框左上角坐标和右下角坐标及检测框得分;步骤s3中最大追踪门限帧数在oc-sort中设置为30,如车辆失去追踪超过最大追踪门限帧数,将该车辆id加入删除轨迹。4.如权利要求3所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s1中自定义多边形区域,最少由三个点组成,多边形区域按照顺时针顺序连成一个封闭区域;步骤s2中训练目标检测识别车辆模型时,将bdd100k数据集数据提前读取到内存中,然后对bdd100k数据集数据进行随机翻转数据增强,采取在线或离线数据增强的方式进行随机水平方向翻转和随机竖直方向翻转,最后使用经过随机翻转数据增强的数据集训练目标检测识别车辆模型。
5.如权利要求1所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s1中封闭区域为矩形区域;步骤s4包括:步骤s4-1:计算前后帧检测框的iosa(intersectionoversmallarea),然后与iosa阈值比较,输出为1或者0;步骤s4-2:计算前后帧检测框中心坐标像素距离,然后与车辆前后帧检测框中心坐标距离阈值比较,输出为1或者0;步骤s4-3:累计像素移动距离,然后与累计像素移动距离阈值比较,输出为1或者0;步骤s4-4:计算车辆状态。6.如权利要求5所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s4-1中iosa的计算方式是在两个检测框间进行,即检测框间的交集除以小检测框的面积,小检测框是指两个检测框中面积小的检测框,若两个检测框面积相同,返回两个检测框中的任意一个;步骤s4-2中计算同一目标车辆前后帧检测框中心坐标像素距离,之后对其进行归一化处理,归一化处理的计算方式为200*像素距离/(当前帧纵坐标+1);步骤s4-3中计算累计同一目标车辆检测框中心点静止状态下像素移动距离;步骤s4-4中当步骤s4-1输出为1同时步骤s4-3输出为1或者步骤s4-2输出为1同时步骤s4-3输出为1时,车辆处于静止状态,否则车辆处于运动状态;当车辆处于静止状态,记录每一车辆静止的开始时间和结束时间,记录静止状态下车辆的历史帧信息,删除之前处于静止状态,但静止状态持续时间小于ts,ts为停止判断时间,且目前已经失去追踪超过最大追踪门限帧数的车辆历史帧信息。7.如权利要求1所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s7包括:步骤s7-1:构造车辆时间序列管道,即利用当前帧潜在双闪车辆坐标截取该车辆的历史帧信息,构造车辆时间序列管道;步骤s7-2:将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,其中h代表色调,s代表饱和度,v代表明度;步骤s7-3:构造车辆双闪信息管道,即将黄颜色像素信息作为车辆时间序列管道提取出的车辆双闪信息,将车辆时间序列管道构造为一个车辆双闪信息管道;步骤s7-4:对车辆双闪信息管道做功率谱分析;步骤s7-5:对车辆进行双闪阈值判断;步骤s7-6:保存双闪车辆id,即将双闪车辆id信息保存至双闪车辆id序列,而后进入步骤s2进行下一帧的目标检测。8.如权利要求7所述的一种基于功率谱分析的车辆双闪检测方法,其特征在于:步骤s7-3中提取完车辆时间序列管道的车辆双闪信息之后,将静止车辆历史帧信息清空;步骤s7-4中对提取出的车辆双闪信息管道做傅里叶变换,或者采用周期图法、自回归模型、平滑重采样法等方法获取双闪信息的功率谱;步骤s7-4中当双闪信息的功率谱大于功率谱阈值阈值时,判断静止车辆处于双闪状
态,双闪信息功率谱阈值设置为0.15。9.一种基于功率谱分析的车辆双闪检测装置,包括:视频采集模块,用于采集输入视频流信息,设置视频流的禁止停车区域;车辆目标检测模块,用于对视频流中的所有车辆进行目标检测,目标检测的结果为一系列车辆检测框;追踪目标车辆模块,用于对视频流中每一帧图像中的车辆进行多目标追踪,追踪结果为每一车辆分配身份id;获取车辆状态模块,用于获取每一车辆的运动状态并记录静止时间;双闪结束识别模块,用于对之前已经判定处于双闪状态的车辆进行静止判定;潜在双闪车辆判断模块,用于获取视频流当前帧所有追踪车辆停止时间,寻找停止时间超过ts的车辆,获取静止车辆的历史帧信息;双闪判定模块,用于对静止车辆进行双闪判定;其特征在于:双闪判定模块中先构造车辆时间序列管道,将潜在双闪车辆信息由rgb颜色空间转换到hsv颜色空间,而后构造车辆双闪信息管道,对车辆双闪信息管道做功率谱分析,最后对车辆进行双闪阈值判断,输出双闪判断结果并保存双闪车辆id。10.如权利要求9所述的一种基于功率谱分析的车辆双闪检测装置,其特征在于:视频采集模块为海康威视ds-2cd2120f-i,车辆目标检测模块、追踪目标车辆模块在nvidiageforce rtx3090ti中实现,获取车辆状态模块、双闪结束识别模块、双闪判定模块在配置为xeon(r)silver4210cpu的计算机上实现。
技术总结
本发明提供一种基于功率谱分析的车辆双闪检测方法,主要通过提取潜在双闪车辆历史帧信息构造车辆时间序列管道,之后将车辆时间序列管道由RGB颜色空间转换为HSV颜色空间,然后提取车辆时间序列管道中黄颜色像素信息作为车辆双闪信息管道,之后计算车辆双闪信息功率谱,最后比较双闪频率范围内功率谱幅值和功率谱阈值的关系,从而判定车辆是否处于双闪状态;本发明相较于传统方法,无需定位车灯轮廓区域,避免了定位误差带来的影响,本发明设置的阈值对视频场景并不敏感,对视频的道路场景适应性较强,同时本方法检测到处于双闪状态的车辆时,可以很方便地定位双闪车辆,而无需根据车灯位置重新定位双闪车辆。据车灯位置重新定位双闪车辆。据车灯位置重新定位双闪车辆。
技术研发人员:秦浩 常姿朋 宋彬
受保护的技术使用者:西安电子科技大学
技术研发日:2023.05.30
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/