多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感

多目标跟踪算法的核心以及瓶颈之处,即是在得到两个set的DR(detection response,其中一个前序set可能是tracklets,但也由DR来表征)之后如何实现二部图匹配。传统的Hungarian算法和Kuhn-Munkras算法可以在最理想情况下以O(n^2)时间复杂度求解。但是在深度学习的时代,如何由DL得方式解决多目标跟踪中的data association问题,也即一个类二部图匹配问题,是有待开发的。

第一次尝试E2E用DL的途径把Data association按照一个二部图匹配问题来解的代表作可以看做A。Mlian在AAAI2017上发表的《Online Multi-target Tracking Using RNN》,其中一个LSTM被用于在Affinity Matrix的基础上生成association matrix,完成匹配。同样是在AAAI2017上,Milan还配套地发布了《Data-driven Approximations to NP hard Problems》,这一篇可以看做上一篇中关联技术的泛化和推广。

然而,Mialn的这两次尝试都可以算是不成不就,其中第一个工作是在Torch上implement的,code很messy,联系过Milan大神本人,他也明确声称算法的performance还不好,只是一次tentative的尝试。

在此之后,再鲜有用如此的工作。可能确实因为多目标跟踪问题本身spatial-temporal错综复杂的属性,再加之训练样本的匮乏(尤其是online methods),再加之implementation需要的effort比较大,导致大家不愿意在如此高产的年代死磕如此低产出的topics。。。直到刷到今年CVPR的这一神作!

本文是两位数学系作者出品,highly mathmatical,对matrix factorization和matrix back-propagation的完整推导令人叹为观止。

下接正题:

Graph matching, 狭义可以理解为二部图匹配,是在连个set之间计算一个点于点的affinity matrix,再依据于此A-matrix,得到一个1-on-1的匹配结果(permutation matrix or indicator vector)。二部图匹配在众多基于matching的领域有重要的研究价值。传统方法是利用Hungarian Algorithm or Khun-Munkres算法求解。研究这篇文章的目的在于继续推进与Shah合作的基于Deep的二部图匹配多目标数据关联文章,用本文的思想代替原先的LSTM模块。这篇文章来自CVPR2018,是据我所知第一篇有严谨推导的E2E deep graph matching。这篇文章的E2E,是由feature extractor开始,指导最后的loss,解决一个geometric or semantic correspondence问题。

核心贡献在于给出了基于矩阵的完整的BP梯度反传推导。整个E2E的梯度流是从loss开始经过对Affinity matrix的求最大特征向量(factorization),一路反传到开始的CNN

具体地,本文是端到端地训练了一个二部图匹配,匹配的目的是将两张图中的对应点关联起来。具体的体现是一个localization。即,假设img1和img2中各有n和m个点,算法构建一个affinity matrix M矩阵如下:

多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感_第1张图片

可见M并不是一个传统的n*m维度的assignment矩阵,而是一个nm * nm维度矩阵

算法的匹配结果,也就是我们期待的n*m维度的association矩阵,是上(1)中的解v*,而可见v*是矩阵M的最大特征向量。换言之,整个E2E的过程,是在学习如何通过CNN提取feature,然后依据feature构建M,再如何求解M的最大特征向量v*。求解Mv*用到的是power iteration的算法。

也就是说,整个学习过程,是建立在矩阵计算的基础之上。大部分流程是heuristic的现成算法,learnable的部分主要是前面的feature extraction CNN,和构建Mmatrix factorization用到的中间参数矩阵symmetric parameter matrix。

E2E的loss,是一个localization的L2 loss。为何是一个localization问题呢?在我们已经得到img1和img2之间的association confidence matrix S(n*m维度)的基础上,通过将S的每某一行im个值(softmax归一化)乘以所有mimg2node的位置,相当于加权求得了一个位置,因为S的每一行应该是近似one-hot,所以这个求得的位置应当就是与img1中i点对应的点的位置。这一步相当于一个多anchor点加权求和算一个点位置。这个算好了的点的位置,减去GT中与之对应的点的位置,可以得到一个displacement d,这个displacement来自于一对儿点分别在来那个张图上处在不同的location,这一对相互关联的点在两张图上位置坐标之间的displacement。(注意,在GT中,一对匹配的点也不是出现在两张图上完全重合的位置,所以也会有一个gt displacement其实上述加权求和的方法的alternative是之间在S中的每一行选择最大值作为1,其他都化为0,这样直接得到一一对应的结果。但是作者采用了这种soft voting而不是hard one-hot的方式,是为了可以让一行中的每一个元素都可以在计算loss的时候contribute,这样便于收敛。

  1. 应用:

所谓geometric or semantic correspondence问题,描述为在两张图片(两张图片含有同一个或者同一类物体或物体的部分)中建立匹配,将相似的物体或者部分连接起来。效果如下图:

多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感_第2张图片

可见本文的application更偏向于semantic correspondence,即将两张不同图片里的相似部分(如鸟的翅膀)相匹配(用同样颜色的点标注)。

在我们的应用里,即多目标跟踪的DA问题,是把连续两帧中同一个人匹配起来。似乎比semantic correspondence更为简单。

  1. 方法:

有输入的一对儿图像,经过CNN feature extraction,affinity matrix construction,再对A-matrix求的最大特征向量,再把该向量转化为最终的permutation matrix,全程E2E。包括了关键技术如Matrix BP【1】,A-matrix Factorization【2】等等。

多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感_第3张图片

  1. Affinity Matrix Layer:由CNN feature vectors计算两图间的Affinity Matrix:

多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感_第4张图片

  1. 幂迭代power iteration求M的最大特征向量v*

  1. 把最大特征向量v*转化为矩阵表示,然后计算该矩阵的双随机变形(Bi-stochastic variant):Confident matrix SS就是一个n * m的矩阵,其中n是图一中的目标数,m是图二中的目标数
  2. Soft voting,对S进行加权并softmax逐行归一化,然后用归一化之后的S逐行(m个值,代表图一某个目标与图二各个目标的association score乘以P(图二中各个目标的真实(xy)坐标),得到一个相当于加权平均后的图一中该目标在图二中的预测位置。然后在用这个预测位置减去P,得到预测位置与真实位置之间的displacement d

  1. Loss:d与GT displacement之间的l2距离:

你可能感兴趣的:(多目标跟踪,二部图匹配)