Algorithm 人脸匹配的匈牙利算法

Algorithm 人脸匹配的匈牙利算法,algorithm,hungarian-algorithm,Algorithm,Hungarian Algorithm,我正在为Android构建多人脸跟踪器,我正在使用Kalman滤波器,它显然需要一些算法来区分跟踪的对象,目前我对匈牙利算法感兴趣 我不知道该算法是如何工作的,但如果我有二维空间和坐标,我就无法理解如何构建输入矩阵。让我们假设我在画面中发现了3个人: **Person1** on the coordinates [10, 20] **Person2** on the coordinates [100, 125] **Person3** on the coordinates [50, 200]

我正在为Android构建多人脸跟踪器,我正在使用Kalman滤波器,它显然需要一些算法来区分跟踪的对象,目前我对匈牙利算法感兴趣

我不知道该算法是如何工作的,但如果我有二维空间和坐标,我就无法理解如何构建输入矩阵。让我们假设我在画面中发现了3个人:

**Person1** on the coordinates [10, 20]
**Person2** on the coordinates [100, 125]
**Person3** on the coordinates [50, 200]
在下一帧中,在新坐标上仍检测到3个人,但现在我想知道在上一张图片中,哪个是Person1,哪个是Person2,等等

现在我不太确定如何构建矩阵。 列应该是不同的人,如下所示:

+---------+-x1--y1--x2--y2--x3--y3-+
| Person1 |                        |
| Person2 |                        |
| Person3 |                        |
+---------+------------------------+
这些值是当前位置和最后找到的位置之间的距离? 我知道这可能看起来很愚蠢,但我很困惑


谢谢你的帮助。

匈牙利方法解决了二部匹配问题。据我所知,它在运动跟踪中的应用解决了分配问题

假设模型中有两个类型相同的点
A
B
;这些可能是空间中的几何点(或其他模型的实例)

现在有两个测量值(想象位置),即在某个时刻测量
X1
X2
,在另一个时刻测量
Y1
Y2
。现在的问题是决定
X1
是否对应于
Y1
X2
是否对应于
Y2
,或者反过来


方法是对点进行一些测量(想象一下欧几里德距离)。因此,每种解释都对应于一项任务;该任务将有一个由该措施引起的总成本。使用匈牙利方法,选择成本最小的分配。这种方法是合理的,因为最便宜的赋值就是最可能的赋值。

谢谢你,所以如果我用更简单的方式说:我的行是当前帧中检测到的坐标,列是前一帧中的坐标,值是这些点之间的欧氏距离?这似乎是正确的。据我所知,您希望匹配的分区(在您的公式中,成本矩阵的行和列)将是不同框架中的人员。然而,在你原来的问题中,你写的是3个人,他们构成了行,然后是6列。您希望有3列。