【】目标检测与跟踪概述( 二 )


卡尔曼增益是赋予测量值和当前状态估计值的相对权重 , 可以“调整”以获得特定的性能 。
【】目标检测与跟踪概述
本文插图
简化后 , 我们可以获得三个更新的公式 , 一起形成了卡尔曼滤波的五个核心公式:
【】目标检测与跟踪概述
本文插图
我们估计了当时的位置值 , 以及更新后的系统方差 , 将作为下一次迭代使用 。
匈牙利法
匈牙利方法是一种能够在多项式时间内解决分配问题的组合优化算法 。 它是由Harold Kuhn在1955年提出的 。 由于该算法严重依赖于两位匈牙利数学家Denes Konig和Jeno Egervary , 因此它被命名为“匈牙利方法” 。
1957年 , James Munkres对该方法进行了重新检验 , 证明该方法是严格多项式 , 故又称Kuhn-Munkres算法或Munkres分配算法 。 原匈牙利算法的时间复杂度为O(n^4) , 但Edmonds和Karp、Tomizawa分别发现 , 经过一定的修改后 , 算法的时间复杂度可以达到O(n^3) 。 Ford和Fulkerson将该方法扩展到解决一般的交通问题 。
让我们引入0-1变量:
【】目标检测与跟踪概述
本文插图
我们使用cij来表示第i个人完成第j个作业所需的资源数量 , 称为值系数 。 因此 , 指派问题的数学模型为:
【】目标检测与跟踪概述
本文插图
第一个表达式表示通过完成所有n个任务消耗的资源总数应该最少;第二个意味着第i个人只能完成一项任务 , 第三个意味着第j个工作只能由一个人完成 。 最后一个表达式表示决策变量只能取0或1 。
任务分配问题可以用0-1整数规划问题来解决 , 也可以用更简单的匈牙利方法来解决:
对于大小为n×n的值系数矩阵步骤1:对于每一行的所有元素 , 减去该行的最小元素 。 步骤2:对于每列中的所有元素 , 减去列中的最小元素 。 步骤3:在适当的行或列上绘制直线 , 以使这些直线覆盖所有零元素 , 并且同时使用的直线数最少 。 步骤4:最佳检测1.如果直线的最小数量为n , 则意味着存在大小为n的独立零元素组 , 即可以进行最佳分配并结束 。
2.如果直线数小于n , 则表示尚无法实现最佳分配 。 在这种情况下 , 请转到步骤5 。 步骤5:确定该行未覆盖的所有元素中的最小值 , 从该行未覆盖的每一行中减去该最小值 , 然后将此元素添加到该行覆盖 , 然后返回到步骤3 。
在多目标跟踪问题中 , 可以简单地理解为在前后两帧中找到多个目标的最优匹配解的算法 。 卡尔曼滤波可以看作是一个运动模型 , 用于预测目标的运动轨迹 , 并利用具有较高置信度的跟踪结果来修正预测结果 。
简单的在线和实时跟踪
SORT采用线速度模型和卡尔曼滤波进行位置预测 , 首先进行位置预测 , 然后进行匹配 。 在没有合适的匹配检测帧的情况下 , 运动模型的结果可以用来预测目标的位置 。
首先 , 我们使用经过Single Shot Multibox Detection (SSD)框架进行对象检测 , 该对象检测将捕获的图像作为输入并生成边界框作为输出 。
我们使用线性分配将每个box配给跟踪器 。 我们使用跟踪器边界框和检测边界框的交集相交(IOU)作为度量 。 我们使用匈牙利算法来解决IOU分配问题的最大化 。
【】目标检测与跟踪概述
本文插图
根据线性分配结果 , 我们分别保留两个列表 , 分别用于未匹配检测和未匹配跟踪器 。 当一个对象进入一个帧并首先被检测到 , 它没有与任何现有的轨道匹配 , 因此这种特殊的检测被称为未匹配检测 。