一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度学习和边缘计算的交通流信息监测方法与流程

2022-02-22 18:19:08 来源:中国专利 TAG:


1.本发明属于信息处理技术领域,具体涉及一种基于深度学习和边缘计算的交通流信息监测。


背景技术:

2.近年来城市化机动化不断加快,交通拥堵情况日益严重,智能交通系统(intelligent transportation system,its)成为时下的研究焦点。而交通流监测作为its的关键技术之一,是实现交通智能化必不可少的基础。
3.现有的交通流监测方法,如yi-qi huang等人提出了一种基于tensorflow框架的单级深度神经网络yolov3-dl来改进车辆视频中难以对车辆进行准确的定位和分类的问题;西安电子科技大学的chen chen等人将基于yolov3-tiny和deepsort的车辆监测方法移植到边缘智能设备中,并通过设定一条虚拟线对车辆进行计数。但上述现有的交通流监测方法仅对车辆数量进行了计数,对于实施速度、车辆占有、排队长度等重要交通流信息没有给出详细的监测及计算方法,而且随着监测算法的优化,现有的yolov5、yolovx等算法的效果已超越上述研究中采用yolov3算法。


技术实现要素:

4.本发明针对于现有方法存在的不能实时监测速度、车辆占有、排队长度的技术问题,提出一种基于边缘计算和深度学习的交通流信息监测方法,该方法事先在云中心利用yolov5和deepsort算法通过大量的交通数据训练出车辆跟踪模型,然后将其迁移并部署到边缘服务器上,通过架设在道路交通杆上的高分辨率摄像机上传交通视频至边缘服务器进行车辆追踪,运用vibe背景建模算法,完成实时速度、车辆占有、排队长度等交通流信息的计算;在显示屏上显示实时更新的交通数据;定期把这些数据传输至云中心,同时利用yolov5和deepsort算法进行车辆追踪,并用这些结果更新车辆跟踪训练模型,以提高其准确度。
5.本发明采用如下技术方案:
6.一种基于深度学习和边缘计算的交通流信息监测方法,包括如下步骤:
7.步骤1:云服务器运用yolov5和deepsort算法训练车辆跟踪模型;
8.步骤2:将训练好的车辆跟踪模型移植到边缘服务器上,通过架设在道路交通杆上的高分辨率摄像机收集交通视频数据并实时上传至边缘服务器;
9.步骤3:分布式边缘服务器使用已训练好的车辆跟踪模型对交通视频中的车辆进行追踪;
10.步骤4:在边缘服务器上运用vibe背景建模算法,完成交通流数据及拥堵程度指数的计算并上传云中心;定期把这些数据传输至云中心,并用这些结果更新车辆跟踪训练模型。
11.步骤5:将交通信息及拥堵程度在屏幕中展示。
12.所述步骤1包括:
13.步骤11:使用yolov5算法训练车辆监测模型。
14.步骤111:将输入的交通视频序列图片进行预处理,通过k-means算法生成先验框。在k-means算法中,使用的是欧氏距离来完成聚类,而yolov5采用处理后的iou作为欧氏距离。
15.distance(i,center)=1-iou(i,center)
16.然后得到的五个聚类中心便是先验框的宽高。
17.步骤112:利用focus结构得到没有信息丢失情况下的二倍下采样特征图。每张图片首先通过focus结构复制为四份并分别进行切片操作,再将得到的四个切片从深度上做concat,最后对得到的新图片进行卷积操作,生成下采样特征图并传入yolov5的backbone。
18.步骤113:首先在backbone中通过一系列卷积核数不同的卷积层、cspnet结构以及spp结构进行特征提取,并在卷积核数为192、384和768的卷积层输出三个特征图。接着利用panet结构对上述三个特征图进行一系列上采样、下采样、卷积以及concat操作,最后输出通道数为162的三个特征图并传递到预测层生成边界框和预测类别。
19.步骤114:利用步骤111的先验框对网络输出的特征层进行解码。将步骤113得到的输出通道数为162的三个特征图输出分别进行reshape操作,并把其中的(t
x
,ty,tw,th)四个参数分离出来,根据公式计算出预测框的实际位置。
20.b
x
=σ(t
x
) c
x
21.by=σ(ty) cy[0022][0023][0024]
(b
x
,by)是预测框的中心坐标,bw,bh分别是预测框的宽度和高度。(t
x
,ty)为网络预测的边界框中心偏移量,tw,th分别为宽、高缩放比。(c
x
,cy)为先验框在特征图上的中心坐标。pw,ph分别为先验框在特征图上的宽和高。
[0025]
步骤115:将每个车辆预测框中的最大预测概率乘以置信度得到每个预测框的分数。
[0026]
车辆预测框(b
x
,by,bw,bh,confidence,{pr(classi|object)|i=1、2

n})
[0027]
iou计算公式为:
[0028][0029]
置信度的计算公式为:
[0030][0031]
预测框分数计算公式为:
[0032][0033]
confidence为车辆预测框的置信度;pr(object)表示是否有车辆落在一个grid cell里;表示预测框和真实框之间的交并比iou;pr(classi|object)为预测框内车辆为第i类的概率;n表示有n个预测类别;score表示车辆预测框的得分。
[0034]
步骤116:对得到的分数进行筛选与排序,将得分大于0.5的框作为预选框。采用非极大抑制,在同一个类别中选择一个最高分数的框,计算它和其他框的重合度,去除iou超过0.7的框,重复该步骤直到没有比当前预选框的iou值0.7高的框,则将其作为最终结果。
[0035]
步骤117:定义损失函数并训练车辆监测模型。损失函数定义为分类损失、定位损失和置信度损失之和:
[0036][0037][0038]
以上公式中n表示类别总个数,xi为当前类别预测值,yi为经过激活函数后得到的当前类别的概率,则为当前类别的真实值(0或1),b表示预测框,b
gt
表示真实框,ρ2(b,b
gt
)为真实框和预测框中心点距离的平方,c2为闭包真实框和预测框最小框的对角线的平方,为预测框和真实框长宽比例差值的归一化,其中w
gt
为真实框的宽,h
gt
为真实框的高,w为预测框的宽,h为预测框的高,α为权衡长宽比例造成的损失和iou部分造成的损失的平衡因子,tn代表目标(即真实值),xn是车辆监测模型输出的值。
[0039]
通过分析损失函数随着迭代次数的变化,判断其收敛性以评估训练得到的车辆监测模型。
[0040]
步骤12:将监测到的车辆对象作为输入使用deepsort算法训练车辆跟踪模型。
[0041]
步骤121:首先利用第一帧的各车辆监测框创建对应的tracker并设定其轨迹状态为非确定态完成初始化,然后使用卡尔曼滤波预测目标车辆在下一帧的位置。
[0042]
xk=ax
k-1
[0043]
pk=ap
k-1at
q
[0044]
x
k-1
为目标的状态信息即其中(u,v)是bounding box的中心坐标,γ是长宽比,h表示高度,其余四个变量分别表示在图像坐标系中u、v、γ、h的速度变化值;p
k-1
为目标的估计误差,a为状态转移矩阵,q为系统误差。
[0045]
步骤122:使用匈牙利算法将步骤121得到的预测框和下一帧中的车辆监测框进行级联匹配和iou匹配,利用匹配成功的轨迹信息对卡尔曼滤波中所有tracker的状态进行更新。
[0046]
步骤123:根据步骤122得到的iou匹配结果经由1-iou计算代价矩阵,然后以此作为匈牙利算法的输入得到线性匹配结果。匹配成功则更新卡尔曼滤波的运动变量;车辆跟踪轨迹匹配失败但曾为确认态则失配大于30次后删除其id和轨迹信息,否则直接删除;车辆观测量匹配失败则重新创建tracker。
[0047]
步骤124:重复步骤122直至交通视频中的所有帧均比较完即结束。
[0048]
所述步骤2将训练好的车辆跟踪模型移植到边缘服务器上,通过架设在道路交通杆上的高分辨率摄像机收集交通视频数据并实时上传至边缘服务器,具体包括:
[0049]
步骤21:将训练好的车辆跟踪计数模型移植到边缘服务器上,在道路的交通杆上架设高分辨率摄像机,拍摄分辨率为608
×
608;
[0050]
步骤22:摄像机将拍摄所得的视频通过socket上传至边缘服务器,并以二进制的形式存入边缘服务器的非易失存储器中;
[0051]
所述步骤3分布式边缘服务器使用已训练好的车辆跟踪模型对交通视频中的车辆进行追踪,具体包括:
[0052]
步骤31:对车辆跟踪模型的计数速度进行监测,判断其是否达到实时。
[0053]
步骤32:设置虚拟监测线圈,将其与deepsort输出的跟踪图相融合,便于后续获取期望的交通指标。
[0054]
所述步骤4包括:
[0055]
步骤41:在步骤3设定好的虚拟线圈的基础上,进行脉冲数据、车头时距、车流量、实时速度、车辆占有、排队长度以及交通拥堵程度的计算。
[0056]
步骤411:车辆进入虚拟线圈的时刻和离开虚拟线圈的时刻即为脉冲,分别记录这两个时刻的脉冲数据。
[0057]
步骤412:步骤411所述的脉冲数据中,以车辆在虚拟线圈的进入区域边界作为道路截面,记录车辆进入虚拟线圈的时刻,而车道内前后两辆车进入虚拟线圈的时刻差即为车头时距。
[0058]
步骤413:分析行驶轨迹的完整性,以车辆离开虚拟线圈的车道位置进行流量计数即为车流量。
[0059]
步骤414:分析行驶轨迹,假设行驶轨迹是直线行驶,在摄像机标定的基础上,计算车辆进入虚拟线圈的起点和离开虚拟线圈的终点之间的实际距离,再除以视频序列的时长,即可得到实时速度。
[0060]
步骤415:使用背景建模算法生成车道前景二值化图,分析前景区域与虚拟线圈是否交叉占有,来判断车辆占有的情况。
[0061]
步骤416:在摄像机标定和步骤415背景建模的前景分析基础上,获取最远处车辆的尾部位置,然后计算尾部位置距离停车线的实际距离,以此作为该摄像机可见范围的排队长度。
[0062]
步骤417:选择归一化车流量、空间占有率和归一化平均速度作为交通拥堵判定的分析决策变量并利用层次分析法确定其权值,再通过交通拥堵指数计算公式、决策变量及其权值,判定交通拥堵程度。
[0063][0064]
其中,kv,ko,kf分别是归一化平均速度、排队长队、归一化车流量的权值;分别为归一化平均速度、排队长度、归一化车流量。
[0065]
与现有技术相比,本发明的有益效果在于:
[0066]
本发明所述交通流监测方法应用yolov5和deepsort算法不仅能对车辆数量进行计数,还能监测实时速度、车辆占有、排队长度、交通拥堵指数等重要交通流信息。
附图说明
[0067]
图1为基于深度学习和边缘计算的交通流信息监测方法框架图。
[0068]
图2为基于深度学习和边缘计算的交通流信息监测方法流程图。
具体实施方案
[0069]
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
[0070]
结合图1描述本发明的技术细节。在本发明中,将深度学习中的yolov5算法、deepsort算法和边缘计算运用到交通流信息监测方法中,该方法主要包括以下三个步骤:一是使用准确度高且训练速度快的yolov5m网络和deepsort算法在云中心进行车辆跟踪模型的训练;二是在边缘服务器上利用训练好的车辆跟踪模型进行车辆追踪并设定虚拟线圈;三是在边缘服务器上运用vibe背景建模算法进行交通流信息及拥堵程度计算。
[0071]
以下结合图2详细描述各步骤的具体实现过程:
[0072]
步骤1、使用yolov5m网络和deepsort算法进行车辆跟踪模型的训练具体包括如下步骤:
[0073]
步骤11:使用yolov5m网络训练车辆监测模型。
[0074]
步骤111:将输入的交通视频序列图片进行预处理,通过k-means算法生成先验框。在k-means算法中,使用的是欧氏距离来完成聚类,而yolov5采用处理后的iou作为欧氏距离。
[0075]
distance(i,center)=1-iou(i,center)
[0076]
然后得到的五个聚类中心便是先验框的宽高。
[0077]
步骤112:输入的交通视频序列图像应为分辨率是608
×
608的3通道rgb图像,通过focus结构进行切片操作,再将得到的四个304
×
304
×
3的切片,将四个切片从深度上concat为304
×
304
×
12的特征图,最后经过卷积核数为48的卷积层,生成304
×
304
×
48的输出并传入yolov5m的backbone。
[0078]
步骤113:首先在backbone中通过卷积核数为96、192、384、768的卷积层、cspnet结构以及spp结构进行特征提取,得到76
×
76
×
192、38
×
38
×
384和19
×
19
×
768三个特征图。接着利用panet结构对上述三个特征图进行一系列上采样、下采样、卷积以及concat操作,最后输出76
×
76
×
162、38
×
38
×
162和19
×
19
×
162三个特征图并传递到预测层生成车辆边界框、预测13个车辆类别。
[0079]
步骤114:利用先验框对网络输出的特征层进行解码。将步骤113得到的76
×
76
×
162、38
×
38
×
162和19
×
19
×
162三个特征图输出分别进行reshape操作,并把其中的(t
x
,ty,tw,th)四个参数分离出来,根据公式计算出预测框的实际位置。
[0080]bx
=σ(t
x
) c
x
[0081]by
=σ(ty) cy[0082][0083]
[0084]
式中,(b
x
,by)是预测框的中心坐标,bw,bh分别是预测框的宽度和高度。(t
x
,ty)为网络预测的边界框中心偏移量,tw,th分别为宽、高缩放比。(c
x
,cy)为先验框在特征图上的中心坐标。pw,ph分别为先验框在特征图上的宽和高。
[0085]
步骤115:将每个车辆预测框中的最大预测概率乘以置信度得到每个预测框的分数。
[0086]
车辆预测框(b
x
,by,bw,bh,confidence,{pr(classi|object)|i=1、2

n})
[0087]
iou计算公式为:
[0088][0089]
置信度的计算公式为:
[0090][0091]
预测框分数计算公式为:
[0092][0093]
confidence为车辆预测框的置信度;pr(object)表示是否有车辆落在一个grid cell里;表示预测框和真实框之间的交并比iou;pr(classi|object)为预测框内车辆为第i类的概率;n表示有n个预测类别;score表示车辆预测框的得分。
[0094]
步骤116:对得到的分数进行筛选与排序,将得分大于0.5的框作为预选框。采用非极大抑制,在同一个类别中选择一个最高分数的框,计算它和其他框的重合度,去除iou超过0.7的框,重复该步骤直到没有比当前预选框的iou值0.7高的框,则将其作为最终结果。
[0095]
步骤117:定义损失函数并训练车辆监测模型。损失函数定义为分类损失、定位损失和置信度损失之和:
[0096][0097]
以上公式中n表示类别总个数,xi为当前类别预测值,yi为经过激活函数后得到的当前类别的概率,则为当前类别的真实值(0或1),b表示预测框,b
gt
表示真实框,ρ2(b,b
gt
)为真实框和预测框中心点距离的平方,c2为闭包真实框和预测框最小框的对角线的平方,为预测框和真实框长宽比例差值的归一化,其中w
gt
为真实框的宽,h
gt
为真实框的高,w为预测框的宽,h为预测框的高,α为权衡长宽比例造成的损失和iou部分造成的损失的平衡因子,tn代表目标(即真实值),xn是车辆监测模型输出的值。
[0098]
通过分析损失函数随着迭代次数的变化,判断其收敛性以评估训练得到的车辆监测模型。
[0099]
步骤12:将监测到的车辆对象作为输入使用deepsort算法训练车辆跟踪模型。
[0100]
步骤121:首先利用第一帧的各车辆监测框创建对应的tracker并设定其轨迹状态为非确定态完成初始化,然后使用卡尔曼滤波预测目标车辆在下一帧的位置。
[0101]
xk=ax
k-1
[0102]
pk=ap
k-1at
q
[0103]
x
k-1
为目标的状态信息即其中(u,v)是bounding box的中心坐标,γ是长宽比,h表示高度,其余四个变量分别表示在图像坐标系中u、v、γ、h的速度变化值;p
k-1
为目标的估计误差,a为状态转移矩阵,q为系统误差。
[0104]
步骤122:通过卡尔曼滤波预测可得到确认态和非确认态的车辆轨迹信息。将确认态对应的车辆预测框与下一帧的目标车辆监测框进行极联匹配,即利用外观模型(reid)和运动模型(马氏距离)计算相似度矩阵。匹配成功则更新为确认态tracker分配的id的集合以及卡尔曼滤波的运动变量;匹配失败则与非确认态对应的车辆预测框一同与下一帧的目标车辆监测框进行iou匹配。
[0105]
步骤123:根据步骤122得到的iou匹配结果经由1-iou计算代价矩阵,然后以此作为匈牙利算法的输入得到线性匹配结果。匹配成功则更新卡尔曼滤波的运动变量;车辆跟踪轨迹匹配失败但曾为确认态则失配大于30次后删除其id和轨迹信息,否则直接删除;车辆观测量匹配失败则重新创建tracker。
[0106]
步骤124:重复步骤122-步骤123直至交通视频中的所有帧均比较完,即结束。
[0107]
步骤2、将训练好的车辆跟踪模型移植到边缘服务器上,通过架设在道路交通杆上的高分辨率摄像机收集交通视频数据并实时上传至边缘服务器,具体包括:
[0108]
步骤21:将训练好的车辆跟踪计数模型移植到边缘服务器上。
[0109]
步骤211:在瑞芯微rk3399的arm开发板中安装安装pytorch依赖项,将pytorch的wheel文件复制到其中。
[0110]
步骤212:搭建好pytorch后,将训练好的车辆跟踪计数模型移植到瑞芯微rk3399的arm开发板上。
[0111]
步骤213:在道路的交通杆上架设高分辨率摄像机,拍摄分辨率为608
×
608;
[0112]
步骤22:摄像机将拍摄所得的视频通过socket上传至边缘服务器,并以二进制的形式存入边缘服务器的非易失存储器中。
[0113]
步骤3、分布式边缘服务器使用已训练好的车辆跟踪模型对交通视频中的车辆进行追踪,具体包括:
[0114]
步骤31:对车辆跟踪模型的计数速度进行监测,如果在纯cpu情况下达到每帧44ms的速度,基本上达到实时。
[0115]
步骤32:设置虚拟监测线圈,将其与deepsort输出的跟踪图相融合,便于后续获取期望的交通指标。
[0116]
步骤321:根据图中车道数量,确定虚拟线圈的数量。每个车道加入一个虚拟线圈,例如有三个车道,则需要三个虚拟线圈(6条与车道垂直的虚拟直线)。
[0117]
步骤322:确定虚拟线圈的宽度(两条虚拟直线间的距离),为方便监测与计算,根据摄像头拍摄角度,设定线圈宽度为输入帧宽度的1/5。
[0118]
步骤323:使用opencv中的add函数,将虚拟直线与deepsort输出的跟踪图相融合。
[0119]
步骤4、在边缘服务器上运用vibe背景建模算法进行交通流信息及拥堵程度计算。具体包括如下步骤:
[0120]
步骤41:在步骤3设定好的虚拟线圈的基础上,根据车辆监测框的中心坐标(u,v)进行脉冲数据、车头时距td、车流量f、实时速度v
t
、车辆占有p、排队长度l以及交通拥堵指数μ的计算。
[0121]
以下参数中,(w1,h1)为虚拟线圈左上角的坐标,(w2,h2)为虚拟线圈右下角的坐标;t
in
为车辆监测框中心点进入虚拟线圈的时刻,t
out
为离开虚拟线圈的时刻;t
in(front)
为相邻车辆中前者进入虚拟线圈的时刻,t
in(behind)
为后者进入虚拟线圈的时刻;h为虚拟线圈宽度。
[0122]
步骤411:当w1≤u≤w2时匹配得到当前车道虚拟线圈的坐标,若v≥h1时车辆进入虚拟线圈,v≥h2时车辆离开虚拟线圈,分别记录车辆进入和离开的时刻t
in
、t
out
即为脉冲数据。
[0123]
步骤412:步骤411所述的脉冲数据中,以车辆在虚拟线圈的进入区域边界作为道路截面,记录车辆进入虚拟线圈的时刻,而车道内前后两辆车进入虚拟线圈的时刻差td=t
in(front)-t
in(behind)
即为车头时距。
[0124]
步骤413:分析行驶轨迹的完整性,当w1≤u≤w2时匹配得到当前车道虚拟线圈的坐标,若v≥h2时车辆离开虚拟线圈的车道位置,计数车辆通过该位置的总次数即为车流量f。
[0125]
步骤414:分析行驶轨迹,假设行驶轨迹是直线行驶,在摄像机标定的基础上,计算车辆进入虚拟线圈的起点和离开虚拟线圈的终点之间的实际距离,再根据脉冲数据计算视频序列的时长t
out-t
in
,即可得到实时速度
[0126]
步骤415:为每个像素点分配一个含20个样本值的背景模型,计算像素点与样本值的欧式距离,若存在2个及以上距离小于20的样本值,则该像素点分类为背景。重复上述操作,生成车道前景二值化图,接着通过计算车道每一行前景占有的比率来分析是否是前景点,还是干扰点,然后将连续的前景行合并,生成车道的前景区域(白色像素点的占比),分析前景区域与虚拟线圈是否交叉占有,来判断车辆占有的情况,若占有则虚拟线圈变为红色,否则为绿色。
[0127]
步骤416:在摄像机标定和步骤415背景建模的前景分析基础上,获取最远处车辆的尾部位置的坐标,然后计算尾部位置距离停车线的像素距离,再使用坐标系转换公式将像素距离转化为实际距离,以此作为该摄像机可见范围的排队长度l。
[0128]
l=camera
matrix
.inverse()
×
center
×
dis
buttom
[0129]
其中:camera
matrix
是摄像机标定得到的相机内参;center为向量(x,y,1),x,y是车辆尾部位置到停车线的像素距离;dis
buttom
是相机距离车辆的高度。
[0130]
步骤417:选择归一化车流量、空间占有率和归一化平均速度作为交通拥堵判定的分析决策变量并利用层次分析法确定其权值,再通过交通拥堵指数计算公式、决策变量及其权值,判定交通拥堵程度。
[0131][0132]
其中,kv,ko,kf分别是归一化平均速度,排队长度,归一化车流量的权值;分别为归一化平均速度,排队长度,归一化车流量。
[0133]
在显示屏上显示实时更新的交通数据,并定期把这些数据传输至云中心,并用这些结果更新车辆跟踪训练模型,以提高其准确度。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献