CVPR 2019人群计数:Learning from Synthetic Data for Crowd Counting in the Wild

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。

表1

关于迁移学习,我们提出了一个SSIM Embedding(SE) Cycle GAN,能有效地将合成场景转化为现实场景。训练中引入了SSIM loss(Structural Similarity Index),作为原图与两个生成器重建的图片之间的惩罚。与原始的Cycle GAN相比,提出的SE能有效保持局部模式与纹理信息。将合成数据转化为photo-realistic图片后,基于它们我们训练了一个计数器,而没有依赖任何现实数据的标签,在现实场景同样工作得不错。图1是两种方法的流程图。

图1

介绍了人群计数、人群计数数据集和人工合成数据集。

3. GTA5 Crowd Counting (GCC) Dataset

介绍了GCC数据集的收集与特性。
图2

图3

4. Supervised Crowd Counting

4.1. Network Architecture

图6

这篇论文使用了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是流程图。

图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惩罚,定义如下:

公式1

此外为$G_{S\to R}$和$G_{R\to S}$建模两个discriminator $D_R$和$D_S$。$D_R$需要区分图片是来自R还是从S迁移而来。以$D_R$为例,其训练目标为adversarial loss,公式为:

公式2

最终loss函数为:
Alt text

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公式为:

公式4

最终loss为:

公式5

Density/Scene Regularization. 迁移时,有的现实数据的背景密度被估计为一个异常大的值。为此定义了一个上界$MAX_S$,定义了合成数据的密度上限,如某像素输出超过它,则将输出设置为0。

由于GCC场景非常多,而有的数据集不具有所有场景,在所有迁移的数据上进行训练会导致性能下降,因此需要有选择的训练。