(译)解析目标跟踪中的一篇论文,这篇论文是由Anton Milan , S. Hamid Rezatofighi , Anthony Dick , Ian Reid and Konrad Schindler 共同完成的用神经网络在线跟踪多个目标的算法《Online Multi-Target Tracking Using Recurrent Neural Networks》
评析:这个方法实现了完全端到端的训练。在这里,用LSTM循环神经网络同时解决数据关联、新目标出现、老目标消失问题。
当处理大量目标是,有两个额外的挑战:
1、在可以执行状态更新之前,确定哪些测量与哪些目标相关联至关重要。 已经提出了许多算法来解决数据关联的这个问题,包括简单的贪婪技术和复杂的概率方法,如JPDA
2、为了允许时变数量的目标,有必要提供一种机制来产生进入场景的新目标,并移除无限消失的现有目标。
与数据关联一样,此任务非常重要,因为每个未分配的测量可能是新轨迹的开始或虚警。 相反,某个目标的缺失测量值可能意味着目标已消失,或者探测器已失效。 为了应对这一挑战,在线跟踪方法通常基于启发式的轨道出现和消失决策,考虑连续测量错误的数量。
本篇论文提出了一种用循环神经网络在线跟踪多个目标的算法。这种方法实现了端到端的训练。在这里,用LSTM 循环网络同时解决数据关联、新目标出现、老目标消失问题。
首先定义状态向量x,这是一个N X D维向量,表示t时刻所有目标的状态值,其中,D为每个目标的状态个数,在这里D的值为4,状态分别为目标的位置和宽高。定义N为某一帧中能够同时跟踪的最大目标个数。xit为第i个目标的状态。
类似地定义观测向量zt,这是一个M X D维向量,表示t时刻所有观测值。其中,M为每一帧中最大检测目标个数。需要注意的是,我们对模型能够处理的最大目标个数并没有限制。
接下来定义分配概率矩阵A,这是一个N X(M+1)的矩阵,元素取值0~1的实数。矩阵的每一行为一个目标的分配概率向量,即元素Aij表示将第i个目标分配给第j个观测的概率。分配概率矩阵满足约束条件:
在这里矩阵的列数不是M而是M+1,因为一个目标可能不和任何一个观测相匹配。最后定义指示向量ε,这是一个N维向量,每个元素表示一个目标存在的概率值。
跟踪问题被分为两个部分来解决:状态预测与更新,以及跟踪管理;数据关联。前一部分负责单个目标的状态跟踪;后一部分解决目标之间的对应关系。
对于第一个问题,用一个时序循环神经网络来学习N个目标的运动模型,以及目标的指示变化,指示变量用于处理目标的出现与消失。在时刻t循环神经网络输出4种值。
(1)包括所有目标的状态预测值x*t+1
(2)所有目标状态的更新值xt+1
(3)指示向量εt+1,其每个元素的值为(0,1),表示目标是一个真实轨迹的概率
(4)εt+1,这是与εt的差值。
神经网络的输入为前一个时刻的状态值xt、前一个时刻的指示向量εt、当前时刻的观测值zt+1,以及当前时刻的数据关联矩阵At+1。
这个功能模块有3个目标:
(1)预测:为指定数量的目标学习一个复杂的运动模型,这个模型包含每个目标的运动参数,包括速度、加速度等信息
(2)更新:根据当前的观测数据,对预测值进行校正,修正物体的状态值,包括运动状态值。
(3)目标的出现与消失:学习到如何根据目标的状态值、当前时刻的观测值,以及数据关联信息来处理新目标的出现问题和已有的消失问题。
预测值xt+1只取决于状态值x和循环神经网络隐含层的状态值ht。一旦数据关联矩阵At+1已经确定,即已经知道了目标和观测之间的对印关系,就可以根据观测值来更新状态值,完成校正。接下来,将观测值和预测的状态值拼接在一起:
x`=[zt+1,xt+1]
然后乘以矩阵At+1。同时,εt+1也被计算出来。在确定了网络的输出以后,需要定义训练时的损失函数。损失函数定义为:
其中,** x* 、x、ε为预测值,x**、**ε为真实值。上面损失函数的第一部分为预测误差,第二部分为更新误差,第三和第四部分为目标消失、出现以及回归误差。这里只定义了某一个时刻的误差值,训练时需要将每一帧的误差累加起来,然后计算平均值。第一部分误差的意义是在没有观察值的情况下,预测值要和目标的真实运动尽可能接近。第二部分的意义是得到观测值之后,要将预测值校正到与观测值尽可能的接近。
第三部分损失反映了目标的出现与消失。如果ε=1,表示一个目标存在。如果ε**=0,表示这个目标不存在。为此我们定义交叉熵损失函数:
最后一个问题是数据关联。数据关联的目标为每一个目标分配一个唯一的观测值,这是一个组合优化问题,直接求解的话是NP完全问题。在这里采用LSTM网络通过学习来解决此问题。在这里,网络的输入是成对距离矩阵C,这是一个M X N 的矩阵,矩阵元素定义为:
即第i个目标的预测状态与第j个观察值之间的欧氏距离。也可以使用更多的信息,如目标的外观或其他相似度。网络的输出值为概率向量Ai是数据关联矩阵的第i行。最后定义网络训练的损失函数为:
其中,a~ 是一个标量,是目标i的真实分配至,即将目标i分配给观测值 a~。
以上就是我对于这篇文章的理解
深度解读(2)Online Multi-Target Tracking Using Recurrent Neural Networks
最新推荐文章于 2020-12-09 10:09:04 发布