一、介绍
作者提出了一个序列联系无监督深度学习框架(Tracklet Association Unsupervised Deep Learning (TAUDL))来解决无监督的行人再识别问题。作者的方法能够联合学习视野内部tracklet的联系以及视野间tracklet的联系,不需要任何额外标注。实验证明TAUDL在6个行人再识别数据集上超过了现有的无监督方法和迁移学习方法。
二、作者的方法
2.1 稀疏时空采样(SSTT)
作者假设行人在短时间内只通过相机视野一次(比较合理)。现有的行人检测、行人跟踪的方法能够很容易对原始视频进行处理,获得行人tracklets。考虑到短时间跟踪丢失,会使得一个视野下在间隔时间很短内,有一个id的多个tracklets。针对这个问题,作者进行时间上稀疏采样,即选取大于行人通过视野时间Q的采样间隔P进行采样。考虑到由于空间遮挡可能造成检测错误的问题,作者进行空间上稀疏采样,仅选择在场景中共同出现且相距较远的tracklets。
通过稀疏时空采样,可以认为同一视野内每个tracklet对应的id都不同。所以对一个多相机视野网络,获得了(S_i, y_i)数据,i表示视野编号。S = {I_1,I_2,...}。I_i为一个视频序列。 作者提出的算法就是在这样的数据下联合学习视野内部tracklet的联系以及视野间tracklet的联系。
2.2 视野内tracklet联系的学习(Per-Camera Tracklet Discrimination (PCTD) learning)
网络结构如下图,每个视野内tracklets经过CNN提取特征后,每个视野一个分支。经过一层fc+softmax进行分类任务。这个分类损失称为L^t_CE。经过这个学习过程,网络能够关注到视野内tracklet的联系,提取对同一视野下更有判别力的信息。
(1)式M_t表示视野下共有M_t类,(2)式t表示相机视野编号。
2.3 视野间tracklet联系的学习 (Cross-Camera Tracklet Association (CCTA) loss function)
对于每个tracklet,在batch内,其他视野中选取K个距离最近最近的tracklet组成集合N^t_i,然后按照下式计算损失:
这个损失使得tracklet提取的特征趋向于其他视野与他相似的tracklet的特征,而远离其他视野与他不相似的tracklet的特征。
2.4 联合损失函数
网络的损失如(4)式,是一个多任务损失。作者指出,L_pctd是tracklet图片损失的平均值 ,L_ccta是tracklet特征的损失值。都是在一个batch里计算得到。
三、实施细节
- 因为没有数据集的原始数据,因此没法进行SSTT采样。但iLIDS-VID和PRID2011数据集单个视野下每人只有一个tracklet,完全符合作者的需求。对于Mars这中单个视野下每个id包含多个tracklets的数据集,随机选择一个tracklet。
- Backbone使用ResNet50,抽取顶部的2048维特征。
- 输入图片resize到256x128,batch_size=384,每个视野随机选择相同数目的训练图片
- 使用Adam优化,初始学习率3.5x10^-4
- 多任务损失中lambda=0.7 sigma=2, K = T/2 (T为相机视野数目)
- 对于图片数据集,每个图片视为一个tracklet。视频数据集,每个图片特征进行平均作为tracklet的特征
四、实验结果
4.1 和图片数据集sota的对比
4.2 和视频数据集sota的对比
4.3 PCTD的效果(学习视野内tracklet联系)
JCC表示不进行多分支,直接把标签由[1,2,3] [1,2]两个分类任务,变成[1,2,3,4,5],进行一个分类任务 。
为了更好的比较,这里的JCC和PCTD都没有加CCTA。
4.4 CCTA的效果(学习视野间tracklet联系)
4.5 模型鲁棒性
作者在MARS数据集上,研究了当每个视野下有一定比例id有两个tracklets时对实验结果的影响(这种情况下作者的方法会分配不同的id)
实验结果显示,这种duplicate tracklets对模型的影响很小,仅仅有3%的下降,说明模型很鲁棒。作者解释是因为1)对每个摄像头都进行了分类任务的学习,当前视野重复其他视野不重复会有修正作用 2)跨视野联系学习通过距离远近这种软的目标限制,而不是直接依赖于tracklet的ID ,对形同id但不同标签的tracklets没有那么敏感