TLNR
- 根据行人一般在视频中的行走特点,设立规则抓取行人的tracklet,给每个tracklet分配一个伪标签。
- 每个摄像头下有好多个伪标签,先不管跨摄像头有可能为同个人,按这样的伪标签训练一个视觉分类器。训练过程共享权重
- 同时在训练上面的过程中,为了解决跨摄像头有可能为同个人的问题,进行聚类,取top-k个作为同样的id, 剩下图片为不同id,之后借鉴SNE的公式,类间距离尽可能小,类外距离尽可能大
- 训练完的结果,在无监督取得了SOTA的结果。而且作者也进行了鲁棒性分析,发现在第一步取tracklet时,如果同摄像头同人却分配不同id,影响会有,但不是非常大。
总体框架
- Tracklet抓取规则(SSTT: Sparse Space-Time Tracklet)
(1) 由于在一个时间内,同个人在同个摄像头出现的频率很低
(2) 那么如果这种人重复出现的时间间隔为,采样的话,取时间间隔,且,那么将大大降低一个人被分配了两个id的概率。
(3) 同个时间下,出现在同个摄像头距离较远的两个tracklet一定为不同人
这里的为超参数,距离远近的靠bouding box来帮忙了
- 同摄像头的人进行区分训练(PCTD: Per-Camera Tracklet Discrimination Learning)
每个摄像头每个伪标签,一个softmax loss,这一步的总loss,取batch size的平均:
为batch size的大小
- 跨摄像头相同人的进行联合(CCTA: Cross-Camera Tracklet Association Learning)
在上一步的基础上,每个tracklet的图片特征取top-k个相近的其他tracklet作为同一个人,其余为不同人。之后最小类内距离,最大类间距离:
为top-k个tracklet的图片特征,为可调整的超参数,为一个目标tracklet,为摄像头数量,为第个摄像头下的tracklet数量。分母的意思就是每个摄像头下的tracklet与目标tracklet的距离。
为batch size中同tracklet图片特征的平均值。
这里的公式与SNE的公式好像。
- 再联合两个loss,共同训练
实验
- 在video和image的数据集上都有进行实验。
video: iLIDS-VID和PRID2011每个摄像头下每个人都只有一个tracklet,所以不用担心了;MARS就不是了,所以要用上面的SSTT的办法采用一些数据。
image: 作者假设一个人在一个摄像头下只会有一个tracklet,照样用SSTT的办法采样。
这里作者并没有告知超参数。而且是这样采样的话,是不是就会丢弃一些训练集的数据呢?应该没关系?
在image数据集上取得了无监督SOTA的效果。
在video数据集上,第一二个效果差,是因为这两个数据集比较小,第三个数据集上效果也是SOTA。
-
模块分析
与baseline对比。这里的baseline就是把多分支softmax训练,搞成一个分支训练。
加不加CCTA,差距是比较大的。
3.鲁棒性实验
考虑要是刚开始取的tracklet是有一定不精确的(可能同个人被分配了两个id),发现效果影响不是非常大。鲁棒性还是ok。
总结
无监督里面,聚类还是比较靠谱的。
而且在聚类之前,一个稳定一些的视觉分类器还是比较重要的。