本发明涉及计算机视觉技术领域,尤其涉及一种基于yolov4的改进deepsort目标检测跟踪方法。
背景技术:
车辆检测跟踪的主要目的是为了识别前方感兴趣区域内的车辆并判断他们的状态,然后对其进行跟踪。
yolo的核心思想就是把目标检测转变成一个回归问题,利用整张图作为网络的输入,经过一个神经网络,得到boundingbox(边界框)的位置及其所属的类别,实现端到端(end-to-end)的检测方法。yolov1将一张图片平均分成s×s个网格,每个网格分别负责预测中心点落在该网格内的目标,检测速度快,迁移能力强,但对小目标检测效果不好;yolov2采用darknet-19作为特征提取网络,将浅层特征与深层特征相连,有助于对小尺寸目标的检测,提高了检测精度;yolov3用darknet53代替原来的darknet19,利用特征金字塔网络结构进行多尺度检测,实时性和检测准确性有了很大提升;yolov4主干特征提取网络为cspdarknet53,加入spp和panet结构,比yolov3准确率提升了近10个点。
多目标跟踪技术主要有sort和deepsort算法,sort算法利用卡尔曼滤波对目标进行预测和更新,使用匈牙利算法匹配预测框和检测框,但在有遮挡的情况下跟踪效果很差。deepsort跟踪算法在sort的基础上,引入了级联匹配,在级联匹配中通过匈牙利算法将目标轨迹的预测框和检测框进行数据关联匹配,改善了检测的误检和漏检情况,但在光照强度低和遮挡的情况下,跟踪效果依然不是很好。
技术实现要素:
本发明的目的在于提供一种基于yolov4的改进deepsort目标检测跟踪方法,旨在解决弱光照和有遮挡情况下目标跟踪效果不好的问题。
为实现上述目的,本发明提供了一种基于yolov4的改进deepsort目标检测跟踪方法,包括s101输入数据,获取当前帧的检测框;
s102基于当前帧的检测框通过卡尔曼滤波算法进行轨迹预测,获取预测框;
s103对预测框和下一帧的检测框基于匈牙利算法进行级联匹配;
s104对级联匹配失败的轨迹进行giou关联匹配;
s105基于卡尔曼滤波算法对轨迹进行更新处理,目标跟踪成功则跟踪次数加1,跟踪失败则不计数;
s106重复步骤s101~s105,检测跟踪次数等于设定次数则为追踪成功。
其中,所述在输入数据,获取检测框之后,所述基于卡尔曼滤波算法进行轨迹预测,获取预测框之前,所述方法还包括:对检测框进行筛选。
其中,所述对检测框进行筛选的具体步骤是:去掉置信度小于0.7的检测框;基于非极大值抑制去除重叠的检测框。
其中,所述输入数据,获取检测框的具体步骤是:输入目标图片;将目标图片进行不失真操作,并且归一化,输入卷积神经网络中,进行一次前向传播;对目标图片进行批量添加维度;获得图片的预测结果;利用预测结果对先验框进行解码,获得最终的预测框,并判断先验框内是否包含物体,以及先验框内部物体的种类。
其中,所述对预测框和下一帧的检测框基于匈牙利算法进行级联匹配的具体步骤是:获取下一帧的目标检测框;根据匈牙利匹配算法进行匹配,若预测框出现在所述目标检测框中,则遍历与之相匹配的检测框,匹配成功并跳转到步骤s105;若预测框没有出现在所述目标检测框中,则跳转到步骤s104;若所述目标检测框中出现新目标,则跳转到步骤s102。
其中,对级联匹配失败的轨迹进行giou关联匹配的具体步骤是:
若预测框出现在所述目标检测框中,匹配成功并跳转到步骤s105;若所述目标检测框中出现新目标,则进行初始化,然后返回s102,若预测框没有出现在所述目标检测框中,且超出最大循环检测帧数,则删除跟踪对象。
本发明的一种基于yolov4的改进deepsort目标检测跟踪方法,通过利用匈牙利算法进行匹配,首先是在级联匹配中利用匈牙利算法对预测框和检测框进行匹配,然后对未成功匹配的目标进行giou关联匹配代替iou关联匹配。因为iou匹配只能进行简单的重叠面积比较,无法衡量两框的距离远近和相交方式,而giou增加了相交尺度的衡量方式,考虑了两框相交之外的空间,提高了预测框和检测框的匹配结果。在弱光照和有遮挡的情况下,本发明的方法跟踪效果更好,漏检现象减少,系统的鲁棒性得到提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种基于yolov4的改进deepsort目标检测跟踪方法的流程图;
图2是本发明的输入数据,获取当前帧的检测框的流程图;
图3是本发明的对检测框进行筛选的流程图;
图4是本发明的对预测框和下一帧的检测框基于匈牙利算法进行级联匹配的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1~图4,本发明提供一种基于yolov4的改进deepsort目标检测跟踪方法,包括:
s101输入数据,获取当前帧的检测框;
输入数据后,通过yolov4算法进行检测,获得检测框和图像的深度特征;
具体步骤为:
s201输入目标图片;
s202将目标图片进行不失真操作,并且归一化,输入卷积神经网络中进行一次前向传播;
s203对图片进行批量添加维度;
s204获得图片的预测结果;
通过sess.run(self_out,feed_dict)函数获得图片的预测结果;
s205利用预测结果对先验框进行解码,获得最终的预测框,并判断先验框内是否包含物体,以及先验框内部物体的种类。
在获取当前帧检测框后,还可以对检测框进行筛选。所述对检测框进行筛选的具体步骤是:
s301去掉置信度小于0.7的检测框;
s302基于非极大值抑制去除重叠的检测框。
s102基于当前帧的检测框通过卡尔曼滤波算法进行轨迹预测,获取预测框;
该算法用x=[u,v,r,h,u′,v′,r′,h′]8维状态向量作为目标的直接观测模型,其中(u,v)表示boundingbox的中心位置坐标,r和h分别表示boundingbox的宽高比和高,其它4个向量表示它们相对应的速度信息;
卡尔曼滤波的预测方程为:
其中,
s103对预测框和下一帧的检测框基于匈牙利算法进行级联匹配;
具体步骤是:
s401获取下一帧的目标检测框;
采用与步骤s101相同的方式获取目标检测框。
s402根据匈牙利匹配算法进行匹配,若预测框出现在所述目标检测框中,则遍历与之相匹配的检测框,匹配成功并跳转到步骤s105;若预测框没有出现在所述目标检测框中,则跳转到步骤s104;若所述目标检测框中出现新目标,则跳转到步骤s102。
匈牙利算法通过对运动匹配和表观匹配进行综合匹配得到代价矩阵,使用平方马氏距离来度量track和detection两分布之间的距离,如公式所示:
其中,dj表示第j个检测框,yi表示第i个预测轨迹,
使用cosine余弦距离来度量表观特征之间的距离,如公式所示:
其中,
通过对运动模型和表观模型进行加权得到综合匹配度,如公式所示。
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)(6)
其中,λ为超参数,bi,j为指示器,只有bi,j=1时,第j个检测框和第i个预测轨迹初步匹配上。
s104对级联匹配失败的轨迹进行giou关联匹配;
若预测框出现在所述目标检测框中,匹配成功并跳转到步骤s105;若所述目标检测框中出现新目标,则进行初始化,然后返回s102;若预测框没有出现在所述目标检测框中,且超出最大循环检测帧数,则删除跟踪对象,具体为若一个目标的状态为稳定态,且连续三帧被成功跟踪,则跳转到步骤s105,而第一帧中成功被跟踪,但是在接下来的2帧中都未能成功的匹配到相应的目标检测框,且超出最大循环检测次数,则跟踪失败,认为该目标驶离了跟踪范围,删除跟踪对象;若一个目标的状态为不确定态,直接将其删除。
s105基于卡尔曼滤波算法对轨迹进行更新处理,目标跟踪成功则跟踪次数加1,跟踪失败则不计数;
卡尔曼滤波的更新方程为:
pt|t=pt|t-1-kthtpt|t-1(13)
其中,xt|t是t时刻更新后系统状态的后验预测值,zt为t时刻系统的观测值,
如图2所示,本发明的基于yolov4的改进deepsort网络结构,在级联匹配后用giou匹配代替iou匹配。其中,
1)iou为:
lossiou=1-iou(16)
2)giou为:
lossgiou=1-giou(18)
其中,目标检测框面积为a,预测框面积为b,c为包含a和b的最小矩形框的面积。
如表1所示,为检测跟踪算法的级联匹配流程表。
表1级联匹配表
在输入端,输入轨迹t和检测d的索引以及循环检测最大帧数amax的集合;
1)第一行和第二行,计算出综合匹配的代价矩阵和门控矩阵;
2)对匹配集合和未匹配的检测集合进行初始化;
3)对轨迹寿命n进行迭代循环,来解决目标轨迹的线性分配问题;
4)选择最近n帧没有与检测匹配的轨迹tn的子集;
5)处理tn中的轨迹与未匹配的检测u之间的线性问题;
6)对匹配集合和未匹配的检测集合进行更新;
7)完成跟踪匹配并将其结果返回。
s106重复步骤s101~s105,检测跟踪次数等于设定次数则为追踪成功。
如果设定次数为3,则目标被连续3帧跟踪到,才认为跟踪成功,若一个目标第一帧中成功被跟踪,但是在接下来的2帧中都未能成功的匹配到相应的目标检测框,且超出最大循环检测次数,则跟踪失败,认为该目标驶离了跟踪范围,将其删除,不再跟踪。
本发明的一种基于yolov4的改进deepsort目标检测跟踪方法,通过利用匈牙利算法进行匹配,首先是在级联匹配中利用匈牙利算法对预测框和检测框进行匹配,然后对未成功匹配的目标进行giou关联匹配代替iou关联匹配。因为iou匹配只能进行简单的重叠面积比较,无法衡量两框的距离远近和相交方式,而giou增加了相交尺度的衡量方式,考虑了两框相交之外的空间,提高了预测框和检测框的匹配结果。在弱光照和有遮挡的情况下,本发明的方法跟踪效果更好,漏检现象减少,系统的鲁棒性得到提高。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。