目标跟踪学习 1 (10月17号)

199 阅读14分钟

1  基本知识

目标跟踪的介绍

目标跟踪是指通过对目标的运动轨迹进行分析和预测,实时获取目标的位置信息。目标跟踪技术广泛应用于许多领域,包括视频监控、自动驾驶、机器人导航等。

目标跟踪通常包括以下步骤:

  1. 目标检测:首先需要使用目标检测算法检测出图像或视频中的目标物体。常见的目标检测算法包括基于深度学习的方法如Faster R-CNN、YOLO等。

  2. 特征提取:在目标检测的基础上,提取目标的特征表示,常用的特征包括形状、颜色、纹理等。

  3. 目标匹配:将当前帧中检测到的目标与已经跟踪的目标进行匹配,常见的目标匹配算法有卡尔曼滤波、粒子滤波等。

  4. 轨迹预测:基于过去跟踪的目标信息,通过运动模型对目标未来的位置进行预测,常用的方法有卡尔曼滤波、扩展卡尔曼滤波等。

  5. 目标关联:多目标跟踪情况下,需要对不同帧中的目标进行关联,以保持每个目标的唯一性。

  6. 目标状态更新:利用当前帧中检测到的目标位置信息,更新目标的状态,包括位置、速度等。

目标跟踪是一个复杂的问题,需要综合运用计算机视觉、模式识别、机器学习等技术。随着深度学习的发展,基于神经网络的目标跟踪方法取得了很大的进展,可以更准确地跟踪各种类型的目标。

1 )跟踪的本质

目标跟踪的本质,就是确保不同帧中的同一目标有相同的id号。跟踪算法的任务,就是在不同的帧序列中,将同一目标的检测结果注明同一个id,来标识其在不同帧中的同一身份。

2)轨迹

轨迹就是同一目标在连续帧间的状态连接,它连接着一个帧序列中的同一目标在这些帧中所处的状态。对应于草图中的就是“红色箭头+绿色虚线”(注意不是绿色箭头)。

3)kalman滤波 与 匈牙利算法

简介:卡尔曼滤波(Kalman Filter)和匈牙利算法(Hungarian Algorithm)都是在目标跟踪领域中常用的算法,它们分别用于不同的任务。 卡尔曼滤波是一种递归滤波算法,用于估计具有线性动态模型和高斯噪声的系统状态。在目标跟踪中,卡尔曼滤波可以用于预测目标的位置和速度,并通过将观测数据与预测值进行融合,实现目标的实时跟踪。卡尔曼滤波具有优秀的数学基础和良好的性能,被广泛应用于目标跟踪、导航、控制等领域。 匈牙利算法是一种用于解决指派问题(Assignment Problem)的算法,也被称为最佳分配算法。在多目标跟踪中,通常需要对每个检测到的目标与已经跟踪的目标进行关联。匈牙利算法通过寻找最佳的目标-测量关联匹配,使得总的关联代价最小化,从而实现目标关联。该算法的时间复杂度为O(n^3),在实际应用中表现出较高的效率和准确性。 在实际目标跟踪系统中,通常会将卡尔曼滤波与匈牙利算法相结合。卡尔曼滤波用于状态预测和更新,匈牙利算法用于目标关联。通过这种方式,可以在复杂背景下准确地跟踪多个目标,并且具有较高的鲁棒性和实时性。同时,也有其他目标跟踪算法,如基于深度学习的方法(如SORT、DeepSORT等),可以在特定场景下取得更好的性能。

滤波作用使得曲线状态更加平滑,更加趋于真实值,把其中的噪声给去掉。

滤波的作用是通过对信号或数据进行处理,去除其中的噪声、干扰或不必要的信息,以提取出感兴趣的信号成分或使信号更加平滑。

具体来说,滤波可以实现以下几个方面的功能:

  1. 去噪:信号通常会受到各种噪声的干扰,如高频噪声、低频噪声、随机噪声等。滤波可以通过降低或消除噪声的干扰,提高信号的质量和可靠性。

  2. 平滑:有些信号在时间或空间上具有剧烈变化或波动,滤波可以使信号变得更加平稳。平滑滤波器可以通过减少高频成分的幅度来抑制信号中的快速变化,从而使信号更平滑、更易于分析。

  3. 频率选择:滤波器可以选择特定频率范围内的信号成分,同时抑制其他频率范围的干扰信号。这在许多应用中很有用,例如音频处理、图像处理等。

  4. 信号增强:滤波可以通过增强我们感兴趣的信号成分,提高信号的强度和清晰度,使相关信息更容易被分析和提取。

滤波方法有很多种类,常见的包括移动平均滤波、中值滤波、高通滤波、低通滤波、带通滤波等。选择适当的滤波器类型和参数取决于具体的应用和信号特征。滤波在信号处理、图像处理、音频处理、控制系统等领域都起着重要作用,能够改善系统的性能和准确性。

2 卡尔曼滤波

卡尔曼滤波,

两个输入作用于一个系统输出的,    第二个表示一个输出等于两个输出之和,这两个输出分别对应不同的输入作用于不同的系统产生的输出。

方程理解:

齐次性

假如说均值是零,标准差是σ

高斯正态分布的概率密度函数可表示为:

其中,μ是分布的均值(期望值),σ是标准差。

高斯分布具有以下特点:

  1. 对称性:高斯分布是关于均值μ对称的,即其概率密度函数在均值处取得最大值,并随着与均值的偏离而逐渐减小。

  2. 峰形曲线:高斯分布的概率密度函数呈现典型的峰形曲线,通常被称为钟形曲线。

  3. 均值和标准差决定分布形状:高斯分布的均值μ决定了分布的中心位置,而标准差σ决定了分布的扁平程度。较小的标准差表示分布更为集中,而较大的标准差表示分布更为分散。

  4. 中心极限定理:高斯分布在许多情况下都是随机变量的极限分布。根据中心极限定理,当独立随机变量的数量足够大时,其和的分布接近高斯分布。

正态分布的性质:

  •  概率密度曲线在均值u 处达到最大,并且左右对称;
  • 一旦均值和标准差确定,那么正态分布的曲线也就确定了;
  • 当X的取值向横轴左右两个方向无限延伸时,曲线的两个尾端也无限渐近横轴,但理论上永远不会与之相交;
  • 正态随机变量在特定区间上的取值概率由正态曲线下的面积给出,而且其曲线下的总面积等于1;
  • 均值u可取实数轴上的任意数值,它决定了正态概率密度曲线的具体位置;
  • 标准差决定了概率密度曲线的“陡峭”或“扁平”程度,标准差越大,曲线越扁平;标准差越小,曲线越陡峭。这是因为,标准差越小,意味着大多数变量距离均值的距离越短,也就是说大多数变量都紧密地聚集在均值周围,图形所能覆盖的变量值就少些,图形上呈现瘦高型。相反,标准差越大,数据跨度就越大,分散程度越大,所覆盖的变量就越多,图形呈现“矮胖型”。 

这两个点综合起来就是线性高斯系统:

线性高斯系统是指具有线性动态模型和高斯噪声的系统。在线性高斯系统中,系统的状态更新和观测模型都可以表示为线性方程,并且系统的过程噪声和观测噪声都是高斯分布的。

估计值的权重和观测值的权重选择最终融合在一起,就是最佳的修正值

Uk 输入,Xk 当前状态的值  Wk 过程噪声 A状态转移矩阵 B控制矩阵    Vk 观测噪声向量

上一个状态的温度值,Uk就是变量 T , 加上Wk 就是当前的温度值,C 就是 1 ,Vk 的观测噪声,加起来就是Yk  ,就是上面系统方程的方框图。就是状态空间的表达式。

在线性高斯系统中,状态方程和观测方程用于描述系统的动态演化和观测过程。它们是卡尔曼滤波器和其他相似滤波算法的核心组成部分。

  1. 状态方程(State Equation): 状态方程描述了系统状态如何通过线性变换进行时间上的更新。通常使用一阶线性差分方程的形式来表示。对于离散时间的线性高斯系统,状态方程可以表示为:

    x(k) = A * x(k-1) + B * u(k) + w(k)

    其中:

    • x(k) 表示系统在时间步 k 的状态向量,即系统的内部变量。
    • A 是状态转移矩阵,描述了系统状态从上一个时间步更新到当前时间步的线性转移关系。
    • B 是控制输入矩阵,描述了外部输入对系统状态的影响。
    • u(k) 是控制输入向量,表示系统的外部输入。
    • w(k) 是过程噪声向量,表示系统状态更新过程中的随机噪声。
  2. 观测方程(Observation Equation): 观测方程描述了如何通过线性变换从系统状态中得到观测值。通常使用线性关系来表示。对于线性高斯系统,观测方程可以表示为:

    z(k) = C * x(k) + v(k)

    其中:

    • z(k) 表示在时间步 k 时得到的观测向量,即通过对系统状态进行观测所得到的外部测量值。
    • C 是观测矩阵,描述了系统状态与观测之间的线性关系。
    • v(k) 是观测噪声向量,表示观测过程中的随机噪声。

状态方程和观测方程共同构成了线性高斯系统的数学模型。通过卡尔曼滤波等方法,可以利用观测数据来推断和估计系统的内部状态,同时考虑系统的不确定性,从而实现状态估计、滤波和预测等任务。

2 , 高斯分布

高斯分布的直观图解

二维的图。无论在 x, 还是在 y ,的投影都是属于正态分布。三维的话就是一个立体图。

   投影在x

第二个图无论投影到x还是投影到y ,都是正态分布,

参数分析:

w(k) 是过程噪声向量,表示系统状态更新过程中的随机噪声,符合正态分布,均值为0,方差为Qk , 

v(k) 是观测噪声向量,表示观测过程中的随机噪声,也符合正态分布,均值为0,方差为Rk。

以上两个统称为 高斯白噪声,

高斯白噪声是一种常见的随机信号,通常在信号处理和通信系统中使用。它具有以下特性:

  1. 高斯性:高斯白噪声指的是其样本值符合高斯分布(也称为正态分布)。每个样本点的取值是独立的,并且服从均值为零、方差为常数的高斯分布。

  2. 白噪声:白噪声是指在所有频率上都有均匀分布的噪声。这意味着高斯白噪声在频域上具有平坦的功率谱密度,即在所有频率上具有相同的能量。

    高斯白噪声在实际应用中具有重要作用,例如:

    • 在通信系统中,高斯白噪声模型常被用于描述信道背景噪声,对信号传输性能进行分析和优化。
    • 在信号处理中,可以用高斯白噪声作为参考信号,用于信号源分离、滤波器设计、信号检测等任务。
    • 在系统识别和参数估计中,高斯白噪声可以用作输入信号,帮助确定系统的模型和参数。

    需要注意的是,实际噪声往往不是完全的高斯白噪声,因为存在各种实际因素和系统限制。但在许多情况下,高斯白噪声模型仍然是一种合理且有效的近似假设。

Vk (观测噪声) , Vk(对应的方差)GPS 检测到车子的position,检测到车子开了1000m,检测到GPS还是有误差的。会产生&就是上面红笔圈起来的噪声,就是误差。也就是Vk,方差 Rk 就是Vk(对应的方差)就是1m ,

关于Wk ,Qk 的定义,小车5m/s ,正负& 就是误差 相当于5m/s是 Wk , &m/s 是Qk

w(k) 是过程噪声向量,表示系统状态更新过程中的随机噪声。

关于方差,噪声的方差就是Qk ,Rk。 状态的方差也就是估计值的方差,状态的方差它的结果Wk ,加上Wk,仍然满足正态分布。

以上都是一维的,到了二维的时候,有两个不同的状态,对应着不同的噪声,对应着不同的方差 COV .

关于超参数,在用这个滤波器的时候的调参,调的主要就是Q 和 R。

超参数和PID(Proportional-Integral-Derivative)控制器是两个不同领域的概念,下面将分别介绍它们的含义和应用。

  1. 超参数(Hyperparameters): 超参数是机器学习和深度学习等领域中的一种参数,用于控制算法模型的行为和性能。与模型训练过程中通过学习得到的参数(如权重和偏差)不同,超参数需要在训练之前手动设置。超参数的选择可能会对模型的准确性、收敛速度和泛化能力等产生重要影响。常见的超参数包括学习率、正则化参数、批量大小、网络结构的层数和节点数等。确定合适的超参数通常需要进行实验和调优。

  2. PID控制器(Proportional-Integral-Derivative Controller): PID控制器是一种经典的反馈控制方法,常用于工业控制系统中。它根据当前系统的测量值与期望值之间的差异(误差),计算出一个控制信号来调节系统的输出或行为。PID控制器将误差分解为比例项(Proportional),积分项(Integral)和微分项(Derivative),以调节控制信号的变化速度和幅度。比例项可以根据误差大小来调整控制信号,积分项用于消除持续的偏差,微分项用于稳定控制系统的响应。

总结来说,超参数是机器学习算法中的手动设置参数,而PID控制器是一种用于控制系统的经典反馈控制方法。它们分别用于不同领域的应用,但都对系统的行为和性能产生重要影响。

关于卡尔曼直观图解,X k-1 :修正值(也叫后验概率值) 第二个值是根据X k-1 估计出来的当前的一个估计值,Yk 就是当前时刻的估计值,缺少一个当前时刻的最优估计值。红色

横轴是position,纵轴是概率密度,就是车的位置在哪里的概率是多少。红色的是当前时刻的估计值,方差会变小。

总结

修正值就是后验估计值,头上加杠就是先验估计值,Yk 就是估计值。就是当前时刻的观测值。

明显方差变小了,就发现多次滤波之后,方差会变小。就是趋于稳定状态,它的方差自然就会变小了。当前的最优估计值是由先验估计Xk 和当前的观测值Yk ,取它们共有的部分,得到当前时刻的最优估计值。

左边是事件发生的概率,右边是传感器的观测值。下图圈圈就是最优估计值。

1.3 卡尔曼公式

p 位置,v 是速度,得到二维向量。F 状态转移矩阵, Xt 先验估计结果,B 是控制矩阵,

    U t-1就是控制矩阵。

头上带横线就是先验估计的结果,Pt 头上带杠就是它的协方差。