赞
踩
DeepSORT的主要思想
想要了解目标跟踪,那么首先需要理解的是跟踪这个概念到底是什么。所有目前主流的目标跟踪算法,底层都是目标检测算法,跟踪是在目标检测的基础上加入了时间这个维度。每一个跟踪输入的是目标检测的检测结果,而跟踪算法输出的是目标的运动轨迹。因此跟踪算法是在目标检测算法的基础上增加了一个时间维度信息
在这个基础上将当前时刻与上一时刻画面中出现的一个又一个目标进行匹配并根据匹配结果,将对应的目标放入对应的轨迹中,从而完成跟踪。
DeepSORT这篇论文主要是使用了更加强大的匹配机制,准确的区分不同目标再有对于原有非深度学习的跟踪算法,优化了目标丢失的问题。这篇文章提出了一个基于深度学习的特征描述符ReID,相比于以往将速度长度,目标坐标信息等特征聚合起来形成的特征向量基于深度学习的特征描述符会有更高的维度来描述物体所表达出的特征,从而能够使跟踪算法更加有效地区分不同目标和相近目标。
并且由于不同目标之间的相似度可以被更加准确区分了,这样在目标丢失的情况下,或者目标没有检测到的情况下,依然可以通过更高维的特征描述符来处理间隔很多帧的同一目标,从而实现更加稳定的长期跟踪,并且优化了原有目标检测算法模型带来的漏检还有遮挡问题。
DeepSORT跟踪检测结果:
deepsort目标跟踪实验
面试中,会问到的问题:
1、什么是目标跟踪?
答:目标跟踪就是在视频中,可以自动检测目标,并且可以反馈每个目标的轨迹的算法
2、目标跟踪算法有哪些?
答:SORT、DeepSort、bytetrack
3、描述一下DeepSort的原理?
答:使用深度学习,优化了SORT,提出了ReID特征描述符,使用级联匹配优化了目标的轨迹,优化了漏检、遮挡等问题带来的轨迹消失。
4、卡尔曼滤波的滤波是什么?
答:卡尔曼滤波,来源于贝叶斯估计,是一种对系统的状态,进行最优估计的算法。由于系统的观测数据,一定会包含世界固有噪声、传感器、模型算法自有噪声,所以在进行最优估计的过程中,通过各种手段处理观测值和估计值和获取最优值,就是一种滤波,因此被成为卡尔曼滤波算法。即,过滤掉各种噪声。
5、卡尔曼滤波是如何用在Deepsort中的?
答:卡尔曼滤波是用在轨迹上的,使用新的观测值,来修正轨迹的系统预测正,得到最优估计。在DeepSort中,t1时刻的目标检测的观测值,会经过一个级联匹配模块,和已有轨迹匹配,配准后的观测值t1和该条轨迹的当前预测值t1,送入卡尔曼滤波生成最优估计值。
6、卡尔曼滤波器的原理和公式?
答:卡尔曼有两个环节,先估计然后通过观测值和卡尔曼增益,修正估计值
估计环节:
1)通过系统的状态转移矩阵,根据上一时刻的状态,推算出当前的转态,这里是估计值。
2)通过系统的状态转移矩阵,根据上一时刻的协方差,推算出当前的协方差,然后加入系统自有噪声,这里是依然是估计值。
3)计算卡尔曼增益:使用估计的协方差矩阵和观测矩阵(由于观测值和状态描述不一定一致,如果一致就是单位阵),以及世界固有噪声,通过分式计算。目的是如果观测准就提高增益,如果估计准就降低增益。
4)修正系统的估计状态,用卡尔曼增益去放大观测值和估计值的误差,然后用这个结果修正,第一步的状态估计,得到最优估计。
5)修正系统的估计状态,用卡尔曼增益去缩放估计时的协方差,得到最优估计的协方差。
7、DeepSort的系统状态有哪些?
答:主要是目标检测的输出,[cx,cy,r,h,cx’,cy’,r’,h’],中心点坐标,长宽比,高度,以及他们对时间t的一阶导数。
8、DeepSort的时间t是多少?
答:由于DeepSort是对视频的检测,因此是一帧帧的输入,时间间隔t=1,代表每一帧都更新一次。
9、ReID为什么不作为系统状态?
答:1)减少计算量 2)延续Sort的代码逻辑 3)系统状态描述的偏向于运动信息,可以从这些信息中直接或检测的于观测状态匹配。而深度学习提取到的特征是深层特征,很难用来描述系统的运动轨迹
10、系统状态的初始值如何设定?
答:cx,cy,r,h 来自目标检测的结果,cx’,cy’,r’,h’初始值设为0。时间设为1。其中,cx’表示了Cx的运动速度,一般来说,cx‘=(cx2-cx1)(t2-t1),但是卡尔曼系统不是这么计算的。由于协方差的存在,描述了各个状态量之间的关系,协方差矩阵就带有了速度信息。因此,构建完协方差矩阵后,在通过观测矩阵和协方差计算卡尔曼增益时,会计算速度相对位置的协方差,然后再通过修正系统的估计状态环节,会把估计到的速度值送入到状态中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。