基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法

基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法

读 'B. Wang, L. Wang, et.al. Joint Learning of Siamese CNNs and Temporally Constrained Metrics for Tracklet Association[j], arXiv:1605.04502v2 [cs.CV] 25 Sep 2016'笔记

这篇文章主要提出了一种借助孪生卷积网络的度量学习方法,用以提升tracklet association 的性能。另外文章还给出了一个具有40段标注序列的数据集。

该方法的主要框架如下:

enter description here

1.jpg

对于一段待跟踪的视频数据,首先使用pre-trained检测子检测出每一帧中的目标。然后使用dual-threshold strategy [1]生成一些比较可靠的小轨迹段。这段过程和基于层次关联的鲁棒多目标跟踪方法类似。接下来使用一些辅助数据预训练孪生cnn网络。然后将预训练得到的孪生卷积网络与短时约束度量结合训练出分别适用于每个轨迹段的度量矩阵,最后通过使用对应的度量矩阵计算轨迹片段之间的相似关系,再利用softassign 算法关联对应的轨迹片段以期得到更长的轨迹段。

Siamese CNN

enter description here

1480332316825.jpg

siamese CNN共享参数。上图给处了孪生CNN中任一个CNN的结构,首先对于一幅待输入的图像,缩放到1027162-20161128192619240-73949729.png大小传递给CNN,CNN包含5层(2个卷积层、2个池化层和1个全连接层)。卷积层和池化层的通道数都是96(即卷积模板有96种),最终的输出层是512维向量。卷积层C1和C2滤波器的大小分别是1027162-20161128192619677-1481163200.png1027162-20161128192619959-1586343370.png,在每个池化层包含cross-channel normalization操作。卷积方式:zero padding, 激活函数 ReLu。

损失函数

使用马氏距离刻画样本将的相似性1027162-20161128192620287-231571228.png,1027162-20161128192620584-1263747662.png是半正定矩阵。

这个时候不考虑时间上的差异性,也就是说所有的轨迹片段都用同一个度量矩阵1027162-20161128192620912-1961330752.png的条件下,得到损失函数

1027162-20161128192621224-1084403033.png

其中1027162-20161128192621490-406710101.png是正则化系数,1027162-20161128192621771-1804722982.png是经验损失函数的权重,1027162-20161128192622146-1397342278.png是决策边界,1027162-20161128192622443-944728966.png是示性函数1027162-20161128192622818-89356523.png,第一项1027162-20161128192623256-538365032.png是正则项,希望样本各向同性,即马氏距离接近于欧氏距离。

考虑到,目标的表观特性随着时间变化也发生显著变化,如上使用同一个度量函数显然并不合适,所以文章中将度量矩阵分为两类:一类是整个视频序列时间段内公用的,反映通用的鉴别信息;另一类是针对于小段时间内的度量矩阵,反映的是特异性。而且考虑到短时约束(时间上相近的sequences应该具有相似的信息),所以损失函数可以定义如下:

1027162-20161128192626584-1269790510.png

写到这里忽然想起一件事,我们使用Siamese CNN不是用来获得tracklets的度量的嘛,为什么输入的是图像而不是轨迹呢?这是因为文章中使用的是具有代表性的图像来表示对应的轨迹,后面会进一步介绍,这里提一下是为了更好理解损失函数。
上面公式中1027162-20161128192627037-1902297484.png是正则化系数,第一项表示公共度量矩阵的正则化限制,第三项是对每一个单独度量矩阵的正则化约束,第二项是temporally constraints,第四项时经验损失函数,定义如下:

1027162-20161128192627287-2028656478.png

为什么这里1027162-20161128192627693-1585333010.png,而1027162-20161128192628068-1454415010.png,我觉得是因为希望1027162-20161128192628412-2140270184.png

Temporally Constraint如下图所示

enter description here

1480332335982.jpg

在执行时,使用1027162-20161128192629224-1824969245.png初始化1027162-20161128192629771-450188511.png.

使用BP算法调整网络参数,先对1027162-20161128192630084-156986982.png求梯度,然后将该梯度传递给CNN,调整CNN的连接参数。(3)式对1027162-20161128192630490-1992185242.png
求导

1027162-20161128192631381-1082762255.png

那么对于两个CNN总的梯度为

1027162-20161128192631631-1022698108.png

1027162-20161128192632177-652980831.png是示性函数。

1027162-20161128192632459-1023534071.png的梯度调整:

1027162-20161128192632896-84429517.png

其中1027162-20161128192633256-899134981.png
对应的更新策略:

1027162-20161128192633584-875313459.png

1027162-20161128192634209-158572847.png是学习步长。

训练样本
在每个tracklets中选择1027162-20161128192634599-843460902.png个可信度较高的measurements,然后随机选择2个配对,组成正样本和负样本进行训练,下面的算法1给出了度量矩阵更新的过程,至于CNN的训练就直接按照通用训练方法。

enter description here

1480332355664.jpg

算法里面有一个需要注意的地方就是对1027162-20161128192635490-1296974752.png的正定投影,保证M的半正定性。这个可以通过SVD分解,对奇异值滤波实现。

Tracklet Association

轨迹片段的关联可以形式化为如下形式:

1027162-20161128192635834-1005813233.png

1027162-20161128192636146-279594400.png表示关联关系,这里没要求行列和为0,是因为存在全不关联的情形

1027162-20161128192636443-1615175753.png分别是基于运动模型和基于表观模型的相似性

1027162-20161128192636881-1407018215.png

这里参见层次关联的鲁棒多目标跟踪算法.

对于基于表观的相似性,首先在每一个tracklet中选取一个执行读最高的measurement作为代表,组成探针集1027162-20161128192637224-1200786341.png,1027162-20161128192637599-1746227666.png是该段时间内的tracklets个数,那么

1027162-20161128192638021-1387142279.png

其中1027162-20161128192638865-1214707467.png表示tracklet1027162-20161128192639287-1954438306.png的第k个观测值, 1027162-20161128192640584-505731070.png分别表示对应轨迹上观测值的个数

这里需要特别注意的是:1. 1027162-20161128192641240-154203436.png不是对称计算的;2. normalization过程中并不是时间上的规范化,而是与所有tracklets相似性上的规范化。

得到了相似矩阵P,为了进一步实现关联的快速精确收敛,对P进行部分约束

1027162-20161128192641693-1278774552.png

然后再进行列归一化。

可以使用匈牙利算法对上述分配问题求解,求解之后关联tracklet之间可能存在gap,这个时候采用linear interpolation进行连接。

Experiments

文章中给出了新的benchmark数据集,但我没有找到网址,所以这里就不说了,我们就来看看在已有的一些benchmark上,该方法的性能如何
为了对比所提算法中每一个component(pre-trained Siamese CNN, Temporal Constraint metric等)的有效性,设置了几个baseline
baseline1:Siamese CNN的参数是独立学习的,即没有经过Temporal Constraint Metric的微调阶段,损失函数使用(2)式,且其中M=I,即欧氏距离。然后训练M,不使用1027162-20161128192642193-2015147266.png即(2)式作为loss function。验证Joint learning的有效性。
baseline2:使用(2)式作为损失函数,同时训练Siamese CNN和M,可以验证Temporally Constraint Metric的有效性。
baseline3: Siamese CNN is pretrained且不进行微调,验证微调的有效性
baseline4: 不使用1027162-20161128192643068-1204823878.png这一项,验证common metric的有效性

在PETS 2009数据集上的结果如下

enter description here

5.jpg

在MOTChallenge 2015数据集上与当前公布代码的教新的方法对比结果如下

enter description here

6.jpg

可以发现,文章提出的算法性能还是可以的。

Computational speed:
工具:MatConvNet toolbox, 2.6GHz CPU, Tesla K20c GPU
速度:0.38,0.55(sec/frame) for PETS 2009 and MOTChallenge 2015.


转载于:https://www.cnblogs.com/YiXiaoZhou/p/6110865.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值