最后更新:2020-05-05 10:41:48 手机定位技术交流文章
随着信息技术的发展,基于视觉的运动目标检测和跟踪已经逐渐渗透到人们生活的各个方面,其重要性日益突出,吸引了越来越多的国内外学者和研究机构参与到这一领域的研究中来。目前,基于视觉的运动目标检测与跟踪已经广泛应用于视频监控、虚拟现实、人机交互、星球检测、行为理解等领域。
排序是一种基于TBD检测跟踪策略的快速在线多目标跟踪算法。这些特征决定了SORT的实用性。多目标跟踪方法的重点是将有效的相关对象应用于在线和实时应用。
排序算法仅使用卡尔曼滤波器和匈牙利算法等基本算法作为跟踪组件。本文将让您对目标跟踪任务和SORT算法的工作流程有一个初步的了解。
卡尔曼滤波算法
卡尔曼滤波理论是卡尔曼博士在1960年访问美国宇航局时首次提出的。它震惊了美国宇航局,并促成了著名的“阿波罗”计划,使人类首次登上月球。
卡尔曼滤波器是一个基于时域描述的线性动态系统。该模型是基于高斯噪声干扰的线性算子的马尔可夫链。
系统的状态可以用向量来表示,向量的元素是实数。随着离散时间的增加,线性算子将作用于当前状态,产生新的状态,带来一些噪声,并添加一些已知的控制信息。同时,另一个受噪声干扰的线性算子将产生这些隐藏状态的可见输出。
假设我们想要实时获得机器人在空之间的位置,我们需要一个机器人运动模型。如果我们不知道机器人的精确运动模型,我们可以简单地假设它是一个匀速运动模型。
对于运动模型,我们可以通过一组状态变量来表示它:

其间

我们只记录位置和速度。根据我们的模型和预期数据,我们可以将任何数据变量置于系统状态。
根据时间k-1处轨道的状态x,我们预测时间k处的状态x为:

假设f是状态转移矩阵,那么

卡尔曼滤波器假设所有变量的值服从正态分布,那么系统变量之间的不确定性可以用协方差来表示。系统状态的协方差记为P_k,因为我们有以下公式:

基于上述运动模型,我们可以获得状态变量和误差的更新公式:

我们将这个预测误差矩阵记录为Q,它代表预测中的高斯噪声。一个完整的预测转换方程可以通过简单的误差叠加得到:

我们还需要一个传感器来提供系统状态的观测数据,并通过测量值来改进前一阶段模型的预测值。传感器可以测量的变量由其功能决定。
假设我们有一个传感器,可以直接获得机器人的位置状态量p,p =
其中h是变换矩阵。由于高斯噪声的影响,传感器读数将在一定范围内波动。我们将传感器测量值的不确定性方差记为r,将传感器返回的实际值记为z _ k。
卡尔曼增益是测量值和当前状态估计值的相对权重,可以对其进行“调整”以获得特定的性能。

经过简化,我们可以得到三个更新的公式,它们共同构成卡尔曼滤波器的五个核心公式:

我们估计了当前位置值和更新后的系统方差,这将用作下一次迭代。
匈牙利法律
匈牙利法是一种能够在多项式时间内解决分配问题的组合优化算法。它是由哈罗德·库恩在1955年提出的。由于该算法严重依赖于两位匈牙利数学家德尼斯·柯尼希和李帝努·埃格尔瓦里,因此被命名为“匈牙利方法”。
1957年,詹姆斯·孟克里斯重新检验了这种方法,并证明它是一个严格的多项式,因此也被称为库恩-孟克里斯算法或孟克里斯分配算法。原匈牙利算法的时间复杂度为O(n ^ 4),但埃德蒙兹、卡普和托米扎瓦分别发现,经过一些修改后,算法的时间复杂度可以达到O(n ^ 3)。福特和富尔克森将这种方法扩展到解决一般的交通问题。
让我们引入0-1个变量:

我们使用cij来表示第一个人完成第二项工作所需的资源量,这称为价值因素。因此,指派问题的数学模型是:

第一个表达式表示完成所有N个任务所消耗的资源总量应该是最少的;第二个意味着个人我只能完成一项任务,第三个意味着工作J只能由一个人完成。最后一个表达式表示决策变量只能取0或1。
任务分配问题可以通过0-1整数规划或更简单的匈牙利方法来解决:
对于大小为n×n的值系数矩阵,步骤1:对于每行的所有元素,减去该行的最小元素。步骤2:对于每一列中的所有元素,减去该列中的最小元素。第三步:在适当的行或列上画直线,使它们覆盖所有的零元素,同时使用最少数量的直线。步骤4:最佳检测1。如果直线的最小数目是N,这意味着存在大小为N的独立零元素组,即可以进行最优分配并结束。
2.如果直线的数量小于N,则不能实现最优分配。在这种情况下,请转到步骤5。步骤5:确定该行未覆盖的所有元素的最小值,从该行未覆盖的每一行中减去最小值,然后将该元素添加到行覆盖中,然后返回步骤3。
在多目标跟踪问题中,可以简单地理解为在前后两帧中寻找多个目标最优匹配解的算法。卡尔曼滤波器可视为一种运动模型,用于预测目标的运动轨迹,并利用高置信度的跟踪结果来修正预测结果。
简单的在线实时跟踪
排序采用线速度模型和卡尔曼滤波器进行位置预测。首先进行位置预测,然后进行匹配。在没有合适的匹配检测帧的情况下,运动模型的结果可以用于预测目标的位置。
首先,我们使用单镜头多盒检测(SSD)框架来检测对象,该框架将捕获的图像作为输入并生成边界框作为输出。
我们使用线性分布将每个盒子分配给跟踪器。我们使用跟踪器包围盒和检测包围盒的交集(IOU)作为度量。我们用匈牙利算法来解决借据分配的最大化问题。

根据线性分布结果,我们保留了两个列表,分别用于不匹配检测和不匹配跟踪器。当一个物体进入一帧并被第一次检测到时,它不匹配任何现有的轨迹,所以这种特殊的检测被称为不匹配检测。
此外,重叠小于阈值的任何匹配指示存在未跟踪的对象。当对象离开帧时,先前建立的轨迹不再具有与其相关联的检测。在这种情况下,该轨道被称为不匹配轨道。因此,匹配中关联的跟踪器和检测被分别添加到不匹配跟踪器和不匹配检测的列表中。

然后用卡尔曼滤波器跟踪目标。卡尔曼滤波具有以下重要特征:
预测目标的未来位置根据新的测量值来校正预测,减少由错误检测引起的噪声,并促进多个对象和它们的轨迹之间的相关过程。尽管目标在两帧之间的运动量可能不大,但是由于检测器本身的检测结果不准确,目标帧的偏移可能很大,这仍然可能导致IOU太小。
本文由 在线网速测试 整理编辑,转载请注明出处。