基于YOLOv5的DeepSORT行人目标跟踪

介绍

目标跟踪是计算机视觉研究的热点之一。在大数据的背景下,深度学习用于训练网络模型,获得的卷积特征的输出更具表现力。

目前,目标跟踪算法主要分为传统算法和深度学习算法,传统方法主要包括光流法,Meanshift和Camshif。由于这些经典方法无法处理和适应复杂的跟踪变化,模型构建将受到光照变化、运动模糊、低分辨率和目标旋转变形的极大影响,从而影响跟踪精度。深度学习跟踪方法出现后,摒弃了经典的跟踪方法,深度学习算法超越了它们的鲁棒性和准确性。

与传统算法相比,深度学习算法提供更快的跟踪和更高的准确性。

目标跟踪根据要跟踪的目标数量分为单目标跟踪和多目标跟踪。为了满足实时跟踪的需求,提出一种改进的DeepSORT算法,采用YOLOv5作为检测器,代替原有的FasterR-CNN算法,进一步提高了算法的准确性和运行速度,在实验验证后取得了较好的效果。

算法原理

改进的跟踪模型设计用于在弱照明和遮挡的情况下检测泄漏。利用YOLOv5算法作为检测器提取特征信息,改进了DeepSORT算法的网络结构。

Utralytics在2020年提出了YOLOv5,这是基于YOLOv3(一种轻量级检测网络)改进的。YOLOv5网络结构由四部分组成:输入侧,骨干,颈部和预测。

输入端采用Mosaic数据增强,并针对不同数据集获得自适应锚帧计算和自适应图像缩放。然后,骨干网络采用集中结构,同时设计两种CSP结构,一种应用于骨干骨干网,另一种应用于Neck;颈部部分是FPN和PAN结构,与YOLOv4不同,与YOLOv5不同之处在于颈部结构采用了从CSPnet设计中借鉴的CSP2结构,增强了网络特征融合的能力;输出端采用边界框损耗函数,实现更快更好的收敛效果。

YOLOv5网络结构图:(来自于 Mr曲末寒的博客_CSDN博客-emgucv-图像处理+深度学习,AI-训练+部署,TensorRT+深度学习领域博主)

基于YOLOv5的DeepSORT行人目标跟踪_第1张图片

DeepSORT目标跟踪算法

DeepSORT跟踪算法是2017年提出的一种基于检测的多目标跟踪算法,在多目标跟踪中表现优异,成为主要的基于检测的多目标跟踪算法,在多目标跟踪中具有更好的鲁棒性。

DeepSORT使用Faster R-CNN作为检测器,用于每帧中的目标检测,但由于DeepSORT使用Faster R-CNN作为检测器来检测每帧中的目标。但是,由于Faster R-CNN是一种两步目标检测算法,因此需要首先使用区域提取技术提取目标所在的区域,然后检测特定区域的目标,这是一个繁琐的步骤,导致检测速度慢,从而导致整个跟踪过程缓慢。对SORT算法的具体改进包括两个方面:将运动信息与目标的表观特征相结合,作为同一目标的匹配标准;结合使用级联匹配和 IOU 匹配来减少由于遮挡引起的跟踪误差。

DeepSORT算法整体流程:

基于YOLOv5的DeepSORT行人目标跟踪_第2张图片

卡尔曼滤波

卡尔曼滤波是DeepSORT目标跟踪算法的核心算法之一,其作用主要是根据目标的运动状态准确预测跟踪目标位置。卡尔曼滤波是一种算法,它根据输入数据建立描述目标状态的运动方程,以实现对整体系统状态的最优估计。

目标模型是指将目标的标识信息传输到下一帧的运动模型。DeepSORT 使用线性等速模型,该模型独立于其他目标和相机移动,近似每个对象从当前帧到下一帧的位移,并使用 8 维空间矢量按如下方式刻录目标模型。

在上述等式中:uv分别表示目标边界框中心的水平和垂直坐标;r 是目标边界框的纵横比;h 是目标边界框的高度;(u, v, r, h) 被称为观测量;(u˙,v˙,r˙,h˙)分别是观测到的量的速度信息。

具有等速运动和线性观测模型特征的标准卡尔曼滤波器可预测和更新目标轨迹状态。预测是系统使用检测帧和最后一刻的运动速度等参数,可以通过时间更新方程预测目标在当前时刻的轨迹位置。更新是对预测值和观测值进行线性加权,以获取误差协方差矩阵等参数,并进入下一个迭代过程,以获得更接近当前系统实际状态的预测值。

卡尔曼滤波算法的时间更新方程:

卡尔曼滤波算法的状态更新方程:

基于YOLOv5的DeepSORT行人目标跟踪_第3张图片

 匈牙利算法

DeepSORT 算法使用匈牙利语算法来匹配预测目标和检测目标。匈牙利算法,也称为KM算法,由库恩于1955年提出,是用于解决最优任务分配问题的算法。卡尔曼滤波算法获得目标状态的最优估计值,生成目标的预测边界框,并将检测算法得到的检测目标与卡尔曼滤波算法得到的目标的预测边界框进行匹配。匹配过程分为两个步骤。

  • 首先,计算成本矩阵,即计算预测和检测目标之间IOU距离和外观相似性距离的加权值。

  • 匈牙利语算法的 Munkres 版本用于最小化总匹配成本,并返回一个匹配矩阵,其中包含已匹配的预测和检测到的目标的标志,以及未匹配的预测或检测到的目标的标志。

该算法通过找到赋值二分图的最优解来对最优匹配问题进行建模。其原理是,如果任何相等的子图具有完美匹配,则此完美匹配是相应赋值二分图的最大权重完美匹配,即使匹配成本是最小的匹配结果,也可以推导出预测和检测目标之间的最优匹配。


实验

实验视频来自B站,为测试改进后的DeepSORT算法的性能,分别以YOLOv3和YOLOv5算法为检测器,对视频每帧中的行人目标进行检测,计算目标外观特征值,然后进行卡尔曼滤波,预测下一帧目标的位置,并利用匈牙利算法基于目标外观特征,将当前帧中的目标与目标相匹配。预测级联匹配和 IOU 匹配基于目标外观特征执行。最后,使用标记的视频进行准确性评估。

基于YOLOv5的DeepSORT行人目标跟踪_第4张图片

可以看出,YOLOv5-DeepSORT在500帧视频中的跟踪精度MOTA为60.1%,比YOLOv3-DeepSORT好9.9%。此外,正确识别的检测与真实和计算的检测IDF1的平均数量之比为76%,提高了6.5%;误报总数FP为156,漏掉目标的总FN总数为227,交换ID的总ID为6,与YOLOv3-DeepSORT相比,所有这些数字均显著减少。

效果对比

目标检测对比:

基于YOLOv5的DeepSORT行人目标跟踪_第5张图片

 YOLOv3-DeepSORT行人跟踪:

基于YOLOv5的DeepSORT行人目标跟踪_第6张图片

 YOLOv5-DeepSORT行人跟踪:

基于YOLOv5的DeepSORT行人目标跟踪_第7张图片

图(a)至(c)分别表示遮挡前、遮挡期间和封堵后的行人跟踪状态。

不同颜色的行人目标框被分配了不同的ID来表示不同的目标。

 在YOLOv3-DeepSORT算法中,行人遮挡过程产生ID切换现象,两个目标的ID被交换。

在YOLOv5-DeepSORT算法中,虽然出现行人遮挡情况,但目标在被遮挡后仍保持其原始ID,这使得行人跟踪更加准确,目标轨迹更加可靠和鲁棒。

结论

结果表明,YOLOv5-DeepSORT能够很好地识别边缘目标,克服因遮挡引起的身份转换和跟踪误差,显著降低漏检和误检现象。提高了检测效果和跟踪效果。

你可能感兴趣的:(YOLO,目标跟踪,人工智能,计算机视觉)