Learning from Synthetic Data for Crowd Counting in the Wild
Qi Wang, Junyu Gao, Wei Lin, Yuan Yuan
西北工业大学 2019
用游戏生成数据集,并进行迁移学习,非常有意思的想法。btw,一个老朋友还在西工大读博士,非常有亲切感呀。
人群计数任务很大一个问题是数据集过少。很多方法都或多或少的过拟合了。这篇论文提出了一个数据收集器和标注器,能够基于GTA5生成人工合成的人群场景,并同时自动标注它们。基于此构建了一个大规模的,各种各样的人工合成数据集。其次,提出了两个利用合成数据集提升现实人群计数性能的方法:1) 在合成数据集预训练,在现实数据集调优,显著的提升了模型的现实性能。2)提出一个基于迁移学习的人群计数方法,能从数据标注解放人力。第一个方法在4个数据集上达到SOTA,第二个超越了自己的baseline。数据集与代码已开源。
1. Introduction
生成的数据集GTA5 Crowd Counting(GCC)与现实数据集相比,具有4个优点。1) 免费收集与标注; 2) 更大的数据容量和更高的分辨率; 3) 更多不同场景; 4)更准确的标注。细节统计见表1。
关于迁移学习,我们提出了一个SSIM Embedding(SE) Cycle GAN,能有效地将合成场景转化为现实场景。训练中引入了SSIM loss(Structural Similarity Index),作为原图与两个生成器重建的图片之间的惩罚。与原始的Cycle GAN相比,提出的SE能有效保持局部模式与纹理信息。将合成数据转化为photo-realistic图片后,基于它们我们训练了一个计数器,而没有依赖任何现实数据的标签,在现实场景同样工作得不错。图1是两种方法的流程图。
2. Related Work
介绍了人群计数、人群计数数据集和人工合成数据集。
3. GTA5 Crowd Counting (GCC) Dataset
介绍了GCC数据集的收集与特性。
4. Supervised Crowd Counting
4.1. Network Architecture
这篇论文使用了spatial FCN(SFCN)来生成密度图,数据流见图6。backbone采用了VGG-16或ResNet-101,spatial encoder加于backbone之上。encoder后添加一个regression layer,直接输出尺寸为输入1/8的密度图。训练时优化目标为像素级的MSE。
4.2 Experiments
基于GCC预训练再在实际数据集调优的SFCN取得了超过SOTA的性能。
5. Crowd Counting via Domain Adaptation
上一个方法仍依赖实际数据的标签。而极度拥挤的场景,手工标注工作量巨大,而人工标注总是会有错误。因此我们提出了基于迁移学习的方法。从人工合成数据中学习特定的模式或特征,并迁移到现实世界中,从而无需任何现实数据标注。但合成数据与现实非常不同(色彩风格,纹理等),这就是“domain gap”。即使是现实中,这一gap也很常见。例如Shanghai Tech Part B和WorldExpo’10,从不同位置的不同摄像头采集的。因此有效的迁移是一个重要的任务,即“Domain Adaptation”(DA)问题。
本论文利用SE Cycle GAN进行迁移,再利用SFCN进行训练。图7是流程图。
5.1. SSIM Embedding Cycle GAN
DA的目的是学习在人工合成领域$S$和现实领域$R$间的迁移映射。$S$提供图片和$I_S$和数量标签$L_S$。$R$仅提供图片$I_R$。即给定$i_S \in I_S, l_S \in L_S, i_R \in I_R$,我们想要训练一个预测$R$的密度图的人群计数器。
Cycle GAN. 原始的Cycle GAN[44]关注未配对的图片-图片的迁移。对于两个领域$S$和$R$,我们定义了两个生成器$G_{S\to R}$和。按照原文的做法,我们引入了cycle-consistent loss来正则化训练过程。具体对于样本$i_S$和$i_R$,我们的一个目标是$i_S \to G_{S\to R}(i_S) \to G_{R \to S}(G_{S \to R}(i_S)) \approx i_S$,另一个目标是对$i_R$的流程。cycle-consistent loss是循环中的一个L1惩罚,定义如下:
此外为$G_{S\to R}$和$G_{R\to S}$建模两个discriminator $D_R$和$D_S$。$D_R$需要区分图片是来自R还是从S迁移而来。以$D_R$为例,其训练目标为adversarial loss,公式为:
最终loss函数为:
SSIM Embedding Cycle-consistent loss. 人群场景中,高度密集的区域与其他区域最大区别是局部的模式与纹理特征。但原始的cycle-consistency有丢失它们的倾向。
本论文将Structural Similarity Index (SSIM)引入CycleGAN以缓和这一问题。SSIM是一个广泛应用于图片质量评价的指示器,它以局部形式(mean,variance, covariance)计算两张图片的相似度。在人群计数领域,CP-CNN使用它来评估生成的密度图质量。SANet使用它作为loss。
SSIM是一个额外加入的惩罚。SSIM的值为[-1,1],更大的值意味着更高的质量。增加的loss公式为:
最终loss为:
Density/Scene Regularization. 迁移时,有的现实数据的背景密度被估计为一个异常大的值。为此定义了一个上界$MAX_S$,定义了合成数据的密度上限,如某像素输出超过它,则将输出设置为0。
由于GCC场景非常多,而有的数据集不具有所有场景,在所有迁移的数据上进行训练会导致性能下降,因此需要有选择的训练。