摘要
行人重识别领域的一个关键挑战是如何在当前的标准数据集(Market1501,DukeMTMC-reID,CUHK03)没有充足的行人姿态变换的数据的情况下训练一个鲁棒的行人重识别系统。为了解决这个问题,论文提出了一个可变换行人姿态的行人重识别框架。
论文的工作主要有两点,一是通过将含有大量人体姿态的MARS数据集中的行人图片迁移到目标数据集中来做进一步的训练;二是在给一个行人生成新的姿态的图片的过程中,除了用GAN的判别器之外,还提出一个guider sub-network 来使得生成的图片更好的适应ReID的loss ,同时也提出了新的方法来训练论文提出的 Generator-Guider-Discriminator 网络。效果上,这种方法在Market-1501,DukeMTMC-reID 和CUHK03数据集上都有很好的性能,在不需要对ReID模型精心调参的情况下的性能比许多当前较好的ReID模型的性能要好。
1. Motivation
标准的行人数据集中比较缺少同一个人的不同姿态的数据。而比较少的工作考虑到利用GAN去生成训练数据。论文就提出一个 G-R-D(Generator - Guider - Discriminator)模型,提取MARS数据集中的行人骨架,然后迁移到目标数据集中,之后将这些生成的数据加入到目标数据集中进行训练。
2. Method
2.1 Skeleton-to-Image Generation
论文直接使用了 Realtime multiperson 2d pose estimation using part affinity fields 中预训练好的skeleton detector 算法来检测 MARS 数据集中的行人姿态并生成对应的骨架图片(RGB)。然后将这些骨架图片迁移到目标数据集中。
训练一个skeleton-to-image 网络需要输入三元组数据:一个行人的图片 x ,一个不同姿态的骨架图片 s ,真实的行人 x 以姿态 s 走路的图片。测试的时候,通过 将随机噪声 z 、一个行人图片 x 和一个 新的姿态图片 s 转换成行人 x 以 s 姿态在走路的图片 . 判别器 D 则辨别三元组 (x,s,y) 和 。实现时,将(x,s,y) 和 作为不同的 channel 同时输入到判别器中。另外,为了减小重建误差,论文加了一个 L1 loss, 最终的目标函数如下:
2.2 Guider Module:ReID Boosting
论文认为上面的 skeleton-to-image 模型只考虑了使生成的图片尽可能的看起来真实,但并不能保证用这些数据来给ReID模型训练可以提升 ReID 模型的性能。所以论文提出了一个新的 guider 模块来使得生成的图片更好的适应 ReID 问题。也就是说,G 生成的图片要同时输入到判别器 D 和 Guider R 中。这里的 R 其实就是用 cross-entropy loss或者 triplet loss 在目标数据集上预训练好的 ReID 模型。在训练G-R-D网络的时候需要固定 R 的参数。
基于Cross-Entropy 的 Guider Loss:
full objective
这里的 optimization target
在训练的时候,由于目标数据集(Market等)中存在的三元组(x,s,y)数据较少,论文在收集目标数据集的三元组数据的同时,从MARS数据集中收集了大量的三元组(x,s,y)做训练数据。但从MARS数据集中收集的数据只输入到判别器D中,不输入到Guider R 中,因为从MARS数据集中收集到的数据不包含人物的id 信息。
2.4 Training with Balanced Data
通过上述方法,可以为目标数据集中的每个行人生成大量的各种姿态下的图片数据用作训练。但是,要生成逼真的行人图片仍旧困难。因此,在训练 ReID 模型的过程中,不可以认为生成的行人 k 的图片和真实的行人 k 的图片一样可靠。在实验中,作者发现,使用过多的生成样本去训练ReID 模型反而会导致模型性能的下降。因此,论文使用一个 soft labeling 来替代 hard label(给每张生成的图片一个确定的标签)
若ReID 模型使用的loss 是 cross-entropy loss ,论文使用 Rethinking the inception architecture for computer vision 中提到的 label smoothing regularization (LSR) 来给生成的数据打标。
LSR
这里的
2.5 网络架构
论文中的生成器 G 和判别器 D 直接使用作者之前的工作
Skeleton-aided Articulated Motion Generation 中所采用的结构。生成器使用了 siamese + U-Net ,输入真实的行人图片和想要转换的姿态图片。
生成器具体结构如下表(Conv : convolution, BN :batch normalization, lReLU: leaky rectified linear unit,):
details of generator
判别器的结构如下表:
details of discriminator
3. Experiment
论文在3个公开的数据集(Market1501,DukeMTMC-reID,CUHK03)上测试了文中方法的性能。选这三个数据集的原因是它们的训练数据中同一个行人的姿态不多。用ResNet-50做baseline,比较结果如下。
论文先跟不使用生成数据训练的baseline 做比较,然后跟用真实数据和无监督方法LSRO生成的无标签样本图片数据一起训练的模型作比较。结果显示,论文的方法比前两种方法都要好,但对于第二种方法的优势不算大。
Comparison of the proposed method with the state-of-the-art on different datasets
然后论文与当前的其他方法做了比较,效果也不错。接下来对于guider 的影响做了实验,结果如下:
可以看到,没有使用Guider之后,对视觉效果和模型识别性能都有明显的提升。论文还发现Guider的结构跟用于重识别的模型结构不一样时,模型的性能会比两者的结构一样时的性能低0.5%左右。
最后,论文还做了另外一些实验:探索为一个行人生成不同姿态的图片数量 N 的大小对于 ReID性能的影响、超参数
4. Conclusion
论文主要的工作在于提出一个给re-id模型做数据增强的方法,通过变换各种姿态来生成更多的数据给re-id模型做训练。在我看来,生成行人的不同姿态图片来给re-id模型做训练是为了给re-id模型提供更多的信息,而这些生成的信息如果不能很好的还原真实信息的话,很难确定会提高还是降低re-id模型的性能。文章使用一个guider模块的话,相当于用一个训练好的re-id模型来告诉生成器自己需要提取的是哪些行人特征,迫使生成器生成的图片更利于re-id提取特征,感觉能work,效果也说明Guider的作用比较大。但这样会使得生成的图片不能很好的适应所有的re-id模型。
网友评论