本发明涉及目标跟踪技术领域,具体涉及一种基于yolov4的多目标车辆检测跟踪方法。
背景技术:
目标检测和跟踪是计算机视觉领域的热点问题,在智能视频监控、智慧交通、机器人视觉导航航以及军事制导等方面具有重要意义。近年来,随着深度学习的不断发展,卷积神经网络被广泛地应用到目标检测与跟踪上,衍生出了不少采用深度学习网络的跟踪算法,在目标检测与跟踪领域取得了极大的成功。
目前目标检测算法一般分为四个步骤:第一步,目标检测,使用目标检测网络选取出目标边界框;第二步,提取特征,通过建立表观特征提取网络提取出目标的表观信息和运动信息,然后预测目标下一帧的位置;第三步,通过关联矩阵求相似度,利用表观特征和位置特征计算关联矩阵,然后求出前后两帧目标的相似度;第四步,目标匹配,将当前帧检测到的目标和已追踪到的目标进行关联,关联成功后为其分配相同的id。
技术实现要素:
针对现有技术中的缺陷,本发明提供了一种基于yolov4的多目标车辆检测跟踪方法,克服了目标跟踪中多目标和弱小目标错检漏检的问题,提高了目标跟踪算法的鲁棒性以及适应性。
为了解决上述技术问题,本发明提供了以下技术方案:
一种基于yolov4的多目标车辆检测跟踪方法,包括以下步骤:
s1:通过k-means聚类算法产生anchorbox,anchorbox在单层目标检测算法中被广泛用于设置boundingbox初始尺寸,因为anchorbox优于其他非监督学习算法;
s2:改进了yolov4的目标检测网络,在原有的yolov4三个尺度特征融合的基础上继续增加尺度,增加为四种不同尺度的特征图;
s3:通过改进的yolov4目标检测网络对视频帧进行车辆检测,获得所有检测到的目标车辆框detectionboxes;
s4:通过卡尔曼滤波器对目标车辆检测框中的车辆进行状态预测,获得对应的目标跟踪框trackboxes;
s5:利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵;
s6:根据匈牙利算法对关联成本代价矩阵中的关联代价进行关联匹配,计算前后两帧之间的匹配程度,进而确定跟踪结果,为每个对象分配目标的id,实现多目标车辆检测。
进一步地,所述步骤s1通过k-means聚类算法产生anchorbox具体包括以下步骤:
s1.1:获得数据集上的目标真实的边界框;
s1.2:k-means算法随机选取k个边界框作为聚类头来初始化归一化过程,然后围绕最近的质心重新分配聚类,并根据一定的阈值进行更新,直到收敛产生k个anchorbox。
进一步地,所述步骤s2改进了yolov4的目标检测网络,具体包括以下步骤:
s2.1:修改yolov4的主干网络cspdarknet-53,再增加一个特征层,使cspdarknet-53有四个特征层;
s2.2:将最后一层特征层输入到spp结构中进行四次最大池化操作,最大池化的池化核大小分别为13x13、9x9、5x5、1x1;
s2.3:将四个特征层的输入到panet结构中实现从上到下的特征提取和从下到上的特征提取。
s2.4:最后利用yolohead对获得的特征进行预测。
进一步地,所述步骤s5利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵具体包括以下步骤:
s5.1:使用平方马氏距离度量trackboxes和detectionboxes之间的距离,来计算两者之间的相似度,其具体公式为:
dj代表第j个trackboxes,yj代表第i个trackboxes,
公式(2)是一个指示器,比较的是马氏距离和卡方分布的阈值,t(1)=9.4877,通过阈值衡量detectionboxes与trackboxes的匹配程度;
s5.2:使用consine距离来度量表观特征之间的距离,其计算公式如下:
s5.3:利用运动目标相似度和表观相似度加权得到关联代价矩阵,公式如下:
ci,j=λd(1)(i,j) (1-λ)d(2)(i,j)(5)
其中λ是一个超参数,默认为0。
进一步的,所述步骤s6根据匈牙利算法对关联成本代价矩阵中的关联代价进行关联匹配,计算前后两帧之间的匹配程度,进而确定跟踪结果,为每个对象分配目标的id,实现多目标车辆检测具体包括如下步骤:
s6.1:设置相似度阈值,并与步骤s5中计算出的代价矩阵进行比较;
s6.2:将大于相似度阈值的代价矩阵对应的detectionboxes和trackboxes中的目标分配相同的id,作为一组跟踪结果。
本发明的有益效果主要表现在:
(1)通过k-means聚类算法优化anchorbox的预测,以便yolov4更加适应车辆数据集的要求,提高了detectionboxes的精度;
(2)修改yolov4的主干网络cspdarknet-53,再增加一个特征层,使cspdarknet-53有四个特征层,提高了对小目标的检测精度;
(3)利用卡尔曼滤波算法和匈牙利算法来解决预测讲过和跟踪结果之间的数据关联问题,利用目标运动相似度和表观相似度生成代价矩阵,有效地减少了idswitch现象。
附图说明
图1为本发明的跟踪模型流程图;
图2为本发明改进的目标检测网络结构图;
图3为卡尔曼滤波和匈牙利算法进行detectionboxes和trackboxes匹配的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,应当理解,此处所描述的具体实施例进用于解释本发明,并不限定本发明,对本技术领域的普通技术人员来讲,只要各种变化在所附的权力要求限定和去认定的本发明的京生和范围之内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
参照图1~图3,一种基于yolov4的多目标车辆检测跟踪方法,所述方法包括以下步骤:
s1:通过k-means聚类算法产生anchorbox,anchorbox在单层目标检测算法中被广泛用于设置boundingbox初始尺寸,因为anchorbox优于其他非监督学习算法;
s2:改进了yolov4的目标检测网络,在原有的yolov4三个尺度特征融合的基础上继续增加尺度,增加为四种不同尺度的特征图;
s3:通过改进的yolov4目标检测网络对视频帧进行车辆检测,获得所有检测到的目标车辆框detectionboxes;
s4:通过卡尔曼滤波器对目标车辆检测框中的车辆进行状态预测,获得对应的目标跟踪框trackboxes;
s5:利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵;
s6:根据匈牙利算法对关联成本代价矩阵中的关联代价进行关联匹配,计算前后两帧之间的匹配程度,进而确定跟踪结果,为每个对象分配目标的id,实现多目标车辆检测。
上述步骤s1通过k-means聚类算法产生anchorbox具体包括以下步骤:
s1.1:获得数据集上的目标真实的边界框;
s1.2:k-means算法随机选取k个边界框作为聚类头来初始化归一化过程,然后围绕最近的质心重新分配聚类,并根据一定的阈值进行更新,直到收敛产生k个anchorbox。
上述步骤s2改进了yolov4的目标检测网络,具体包括以下步骤:
s2.1:修改yolov4的主干网络cspdarknet-53,再增加一个特征层,使cspdarknet-53有四个特征层;
s2.2:将最后一层特征层输入到spp结构中进行四次最大池化操作,最大池化的池化核大小分别为13x13、9x9、5x5、1x1;
s2.3:将四个特征层的输入到panet结构中实现从上到下的特征提取和从下到上的特征提取。
s2.4:最后利用yolohead对获得的特征进行预测。
上述步骤s5利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵具体包括以下步骤:
s5.1:使用平方马氏距离度量trackboxes和detectionboxes之间的距离,来计算两者之间的相似度,其具体公式为:
dj代表第j个trackboxes,yj代表第i个trackboxes,
公式(2)是一个指示器,比较的是马氏距离和卡方分布的阈值,t(1)=9.4877,通过阈值衡量detectionboxes与trackboxes的匹配程度;
s5.2:使用consine距离来度量表观特征之间的距离,其计算公式如下:
s5.3:利用运动目标相似度和表观相似度加权得到关联代价矩阵,公式如下:
ci,j=λd(1)(i,j) (1-λ)d(2)(i,j)(5)
其中λ是一个超参数,默认为0。
上述步骤s6根据匈牙利算法对关联成本代价矩阵中的关联代价进行关联匹配,计算前后两帧之间的匹配程度,进而确定跟踪结果,为每个对象分配目标的id,实现多目标车辆检测具体包括如下步骤:
s6.1:设置相似度阈值,并与步骤s5中计算出的代价矩阵进行比较;
s6.2:将大于相似度阈值的代价矩阵对应的detectionboxes和trackboxes中的目标分配相同的id,作为一组跟踪结果。
以上阐述的是本发明提出的一种基于yolov4的多目标车辆检测跟踪方法,集体流程图为附图1。
本发明的有益效果为:
(1)通过k-means聚类算法优化anchorbox的预测,以便yolov4更加适应车辆数据集的要求,提高了detectionboxes的精度;
(2)修改yolov4的主干网络cspdarknet-53,再增加一个特征层,使cspdarknet-53有四个特征层,提高了对小目标的检测精度;
(3)利用卡尔曼滤波算法和匈牙利算法来解决预测讲过和跟踪结果之间的数据关联问题,利用目标运动相似度和表观相似度生成代价矩阵,有效地减少了idswitch现象。
1.一种基于yolov4的多目标车辆检测跟踪方法,其特征在于,包括以下步骤:
s1:通过k-means聚类算法产生anchorbox,anchorbox在单层目标检测算法中被广泛用于设置boundingbox初始尺寸,因为anchorbox优于其他非监督学习算法;
s2:改进了yolov4的目标检测网络,在原有的yolov4三个尺度特征融合的基础上继续增加尺度,增加为四种不同尺度的特征图;
s3:通过改进的yolov4目标检测网络对视频帧进行车辆检测,获得所有检测到的目标车辆框detectionboxes;
s4:通过卡尔曼滤波器对目标车辆检测框中的车辆进行状态预测,获得对应的目标跟踪框trackboxes;
s5:利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵;
s6:根据匈牙利算法对关联成本代价矩阵中的关联代价进行关联匹配,计算前后两帧之间的匹配程度,进而确定跟踪结果,为每个对象分配目标的id,实现多目标车辆检测。
2.根据权利要求1所述的一种基于yolov4的多目标车辆检测跟踪方法,其特征在于,所述步骤s1通过k-means聚类算法产生anchorbox具体包括以下步骤:
s1.1:获得数据集上的目标真实的边界框;
s1.2:k-means算法随机选取k个边界框作为聚类头来初始化归一化过程,然后围绕最近的质心重新分配聚类,并根据一定的阈值进行更新,直到收敛产生k个anchorbox。
3.根据权利要求1所述的一种基于yolov4的多目标车辆检测跟踪方法,其特征在于,所述步骤s2改进了yolov4的目标检测网络,具体包括以下步骤:
s2.1:修改yolov4的主干网络cspdarknet-53,再增加一个特征层,使cspdarknet-53有四个特征层;
s2.2:将最后一层特征层输入到spp结构中进行四次最大池化操作,最大池化的池化核大小分别为13x13、9x9、5x5、1x1;
s2.3:将四个特征层的输入到panet结构中实现从上到下的特征提取和从下到上的特征提取;
s2.4:最后利用yolohead对获得的特征进行预测。
4.根据权利要求1所述的一种基于yolov4的多目标车辆检测跟踪方法,其特征在于,所述步骤s5利用所有detectionboxes和trackboxes之间的运动相似度以及表观相似度,构建detectionboxes和trackboxes之间的代价矩阵具体包括以下步骤:
s5.1:使用平方马氏距离度量trackboxes和detectionboxes之间的距离,来计算两者之间的相似度,其具体公式为:
公式(2)是一个指示器,比较的是马氏距离和卡方分布的阈值,
s5.2:使用consine距离来度量表观特征之间的距离,其计算公式如下:
s5.3:利用运动目标相似度和表观相似度加权得到关联代价矩阵,公式如下:
其中