《Learning from Synthetic Data for Crowd Counting in the Wild》论文笔记

论文翻译

Abstract

       ~~~~~~ 最近,统计人群中的人数成为热门话题,因为它具有广泛的用途(例如,视频监视,公共安全)。在户外,这是一项艰巨的任务:多变的环境,大量重叠的人导致当前的方法无法正常工作。此外,由于缺乏数据,许多方法在不同程度上都存在过度拟合的问题。为了解决上述两个问题,首先,我们开发了一种数据收集器和标签器,可以生成人工场景并同时对它们进行批注,而无需任何人工操作。在此基础上,我们构建了一个大规模,多样化的综合数据集。其次,我们提出了两种利用合成数据来提高野外人群计数性能的方案:1)在合成数据上预训练人群计数器,然后使用真实数据对其进行微调,这极大地促进了模型在真实数据上的性能; 2)提出了一种通过域自适应的人群计数方法,可以使人类摆脱繁重的数据注释。大量实验表明,第一种方法可以在四个真实数据集上实现最先进的性能,而第二种方法则优于基线。

1. Introduction

       ~~~~~~ 人群计数是人群分析的一个分支,它在视频监控、公共区域规划、交通流监测等方面起着至关重要的作用。这项任务的目的是预测密度地图和估计人群场景的人数。目前,许多CNN和GAN在现有的数据集上获得了惊人的性能。上述方法着重于如何学习有效的和有区别的特征(如局部模式、全局上下文、多尺度特征等)来提高模型的性能。
       ~~~~~~ 同时,上述主流的深度学习方法需要大量的准确标记和多样化的数据。不幸的是,当前的数据集不能完全满足需求,这也导致了两个难以解决的难题。首先,它导致现有的方法无法处理一些在野外看不到的极端情况(如多变的天气、不同的照明和大范围的人)。其次,由于带标签的数据很少,很多算法都存在过度拟合的问题,导致算法在野外或其他场景中的性能大幅下降。此外,拥挤的人群数据集有一个固有的问题:标签不是很准确,比如UCFCC50和Shanghai Tech A(简称SHTA)中的一些样本。
       ~~~~~~ 为了解决上述问题,我们从数据和方法两个方面入手。从数据的角度,我们开发了一个数据收集器和标签器,它可以生成合成的人群场景并自动标注。通过收集器和标签器,我们构建了一个大规模的、多样化的合成人群计数数据集。数据收集自电子游戏《侠盗猎车手V》(GTA5),因此被命名为GTA5Crowd Counting(简称GCC)数据集。与现有的真实数据集相比,它有四个优点:1)无需收集和注释;2)数据量大,分辨率高;3)场景更丰富,4)注释更准确。具体统计数据见表1:
在这里插入图片描述
       ~~~~~~ 从方法学的角度,我们提出了两种利用合成数据来提高野外性能的方法。首先,我们提出一种监督策略来减少过拟合现象。具体来说,我们首先利用大规模的合成数据来预训练一个人群计数器,这就是我们设计的空间全卷积网络(SFCN)。然后利用实际数据对得到的计数器进行了修正。该策略可以有效地提高实际数据的性能。传统的模型(从零开始训练或图像分类模型)存在一些层具有随机初始化或规则分布,这不是一个好的方案。与它们相比,我们的策略可以提供更完整和更好的初始化参数。
       ~~~~~~ 其次,我们提出了一种领域自适应的人群计数方法,可以提高跨领域的转移能力。具体来说,我们提出了一个SSIM嵌入(SE)循环GAN,它可以有效地把合成的人群场景转换成真实的场景。在训练过程中,我们引入了结构相似度指标(SSIM)损失。这是原始图像和通过两个生成器重建的图像之间的一个损失。与原循环GAN相比,该方法有效地保留了局部图案和纹理信息,特别是在特别拥挤的人群区域和某些背景下。最后,我们将合成的数据转换成逼真的图像。基于这些数据,我们训练了一个没有真实数据标签的人群计数器,它可以在野外很好地工作。图1展示了提出的方法的两个流程图。
在这里插入图片描述
       ~~~~~~ 总之,本文的贡献有三方面:

  1. 我们是第一个开发人群计数的数据收集器和标签器,可以自动收集和注释图像,不需要任何劳动力成本。通过使用它们,我们创建了第一个大规模、综合性和多样化的人群计数数据集。
  2. 我们提出了一种预训练方案,以提高原始方法在真实数据上的性能,与随机初始化和ImageNet模型相比,能更有效地减少估计误差。此外,通过该策略,我们提出的SFCN实现了最先进的结果。
  3. 我们首先提出了一种基于领域自适应的人群计数方法,该方法不使用任何真实数据的标签。通过我们设计的SE循环GAN,可以显著减小合成数据与实际数据之间的畴隙。最后,该方法的性能优于两个基线。

2.Related Works

       ~~~~~~ Crowd Counting Methods
       ~~~~~~ 主流的基于cnn的人群计数方法通过设计有效的网络架构,产生了新的记录。有的利用多任务学习探索不同任务之间的关系,提高计数性能。有的综合多流、多尺度、多级网络的特点,提高密度图的质量。有的尝试对人群场景的大范围上下文信息进行编码。针对数据量少的问题,有的提出了一种基于自监督学习的无标记网络数据挖掘方法,或者给出了一种负相关学习方法来减少过拟合。

       ~~~~~~ Crowd Counting Datasets
       ~~~~~~ 除了算法之外,数据集还可能促进人群计数的发展。UCSD是Chanet等人在加利福尼亚大学圣地亚哥分校发布的第一个人群计数数据集,它记录人行道上的人群,这是一个稀疏的人群场景。 切奈特[9] 提出一个公共购物中心数据集,该数据集记录购物中心场景。Idreeset等人针对高度拥挤的人群场景发布UCFCC50数据集。ZhangExp等人提出了WorldExpo’10数据集,该数据集是从2010年上海世博会的监控摄像头捕获的。尚特尔目前的上海科技数据集,包括高质量的真实世界图像。Idreeset al提出大规模的极端拥塞数据集。表1列出了有关它们的更多详细信息。

       ~~~~~~ Synthetic Dataset
       ~~~~~~ 注释地面真相是一项耗时且劳动密集的工作,尤其是对于像素级任务(例如语义分割,密度图估计)。为了解决这个问题,发布了一些综合数据集,以节省人力。Johnson-Robersonet等人提出了一种根据深度信息分析内部引擎缓冲区的方法,该缓冲区可以产生准确的对象蒙版。有的基于一些开源游戏引擎构建合成模型。利用统一引擎构建自动驾驶的合成街景数据,生成像素级的分割标签和深度地图。开发了一个基于虚幻引擎4的合成人再识别数据集。

3. GTA5 Crowd Counting (GCC) Dataset

       ~~~~~~ 侠盗猎车手V (GTA5)是一款由Rockstar Games于2013年发行的电脑游戏。在GTA5中,玩家可以沉浸在游戏的虚拟世界中,即基于洛杉矶的虚构城市洛斯桑托斯。GTA5采用自主研发的Rockstar高级游戏引擎(RAGE),提高了绘制距离渲染能力。得益于优秀的游戏引擎,它的场景渲染、纹理细节、天气效果等都非常接近真实世界的情况。此外,Rockstar游戏允许玩家开发非商业性或个人使用的mod。
       ~~~~~~ 考虑到上述优点,我们开发了一种基于Script Hook V的GTA5,用于人群计数的数据收集器和标签器。Script Hook V是一个用于开发游戏插件的C ++库。我们的数据采集器利用虚拟世界的对象来构造复杂拥挤的人群场景。然后,收集器从构建的场景中捕获稳定的图像。最后,通过对模板绘制数据的分析,自动标注人员头部的准确位置。
       ~~~~~~ 之前的合成GTA5数据集是由游戏编程指导的场景实景。不幸的是,GTA5没有拥挤的场景。因此,我们需要设计一个策略来构建人群场景,这是最明显的区别。

3.1. Data Collection

       ~~~~~~ 本节介绍数据收集的管道,该管道包括以下三个模块。
       ~~~~~~ Scene Selection
       ~~~~~~ 《侠盗猎车手5》中的虚拟世界是建立在一个虚构的城市上的,其面积为252平方公里。在城市中,我们选择了100个典型的地点,例如海滩,体育场,购物中心,商店等。对于每个位置,四个监视摄像机配备了不同的参数(位置,高度,旋转/俯仰角)。在这些场景中,我们根据常识精心定义了用于放置人员的感兴趣区域(ROI),并排除了一些无效区域。
       ~~~~~~ Person Model
       ~~~~~~ 人是人群场景的核心,因此,有必要在我们提出的数据集中描述人模型。在GCC数据集中,我们在GTA5中采用了265个人模型:不同的个人模型具有不同的肤色,性别,形状等。此外,对于每个人模型,它在外观上有六种变化,例如衣服,发型等。为了提高人模型的多样性,每个模型都被命令在稀疏​​的人群场景中进行随机动作。
       ~~~~~~ Scenes Synthesis for Congested Crowd
       ~~~~~~ 由于GTA5的限制,人数必须少于256人。考虑到这一点,对于拥挤的人群场景,我们采用分步生成场景的方法。具体来说,我们把几个不重叠的区域分割,然后把人放在每个区域。接下来,我们将多个场景整合到一个场景中。图3描述了主要的整合过程:人依次被放置在红色和绿色区域。最后,这两个图像被合并在一个图像中。
在这里插入图片描述
在这里插入图片描述
       ~~~~~~ Summary
       ~~~~~~ 生成流程图如下所示。构建场景:a)选择地点并设置摄像机;b)人群感兴趣区域(ROI);c)设置天气和时间。放置人物:a)在图中创建人物并获取头部位置;b)从模板中获取人物面具;c)将多个图像整合到一个图像中;d)去除遮挡头部的位置。

3.2. Properties of GCC

       ~~~~~~ GCC数据集由15,212张图像组成,分辨率为1080×1920,包含7,625,843人。与现有的数据集相比,GCC在图像数量和人数上都是更大规模的人群计数数据集。表1比较了GCC和现有数据集的基本信息。除了上述优点之外,GCC比其他真实世界数据集更加多样化。
       ~~~~~~ Diverse Scenes
       ~~~~~~ GCC数据集包含400个不同的场景,其中包括多种类型的位置。室外场景:商场、街道、广场、体育场等。此外,所有场景都根据它们的空间容量分配了一个级别标签。图2的第一行是不同层次的典型场景。一般来说,为了覆盖范围更广的人,更大的场景会有更多的图像。因此,如下进行设置:具有前/中/后三个级别的场景包含30/40/50个图像。 此外,应删除包含一些不当事件的图像。 最后,某些场景中的图像数量可能少于其预期值。 图4展示了我们GCC数据集的人口分布直方图。
在这里插入图片描述
       ~~~~~~ 现有的数据集只关注稀疏或拥挤人群中的一个。然而,一个大的场景也可能包含很少的人在野外。考虑到在图像的生成过程中,将人的数量设置为其水平范围内的随机值。因此,GCC具有比其他实际数据集更多的大范围数据。
       ~~~~~~ Diverse Environments
       ~~~~~~ 为了构建接近野外的数据,在一天中的任意时间和随机天气条件下捕获图像。在GTA5中,我们选择了七种天气类型:晴天、多云、雨天、雾天、雷天、阴天和晴天。图2的最后一幅图说明了不同时间和不同天气下的样本。在生成过程中,我们倾向于在一般条件下生成更多的图像。图5中的两个扇区图分别显示了GCC数据集的时间戳和天气条件的预测分布。
在这里插入图片描述

4. Supervised Crowd Counting

       ~~~~~~ 基于FCN的方法可获得良好的人群计数性能。 在本节中,我们设计了一个有效的空间全卷积网络(SFCN),以直接回归密度图,该密度图能够对全局上下文信息进行编码。

4.1. Network Architecture

       ~~~~~~ Longet等人提出了全卷积网络(FCN)。在2016年,它专注于像素级任务(例如语义分割,显着性检测)。FCN使用卷积层代替传统CNN中的全连接层,从而确保网络可以接收任意大小的图像并产生相应大小的输出。为了对上下文信息进行编码,Panet等人通过在四个方向(向下,向上,从左到右和从右到左)上的卷积等式,提出一种空间编码器。
在这里插入图片描述
       ~~~~~~ 在本文中,我们设计了一个空间FCN(SFCN)来生成密度图,该图以VGG-16或ResnNet-101为骨干。具体而言,将空间编码器添加到骨干网的顶部。功能图流程如图6所示。在空间编码器之后,添加了一个回归图层,该图层直接输出是输入1/8大小的密度图。在这里,我们不审查空间编码器,因为有限的空间。在训练阶段,目标是在像素级最小化标准均方误差;学习率设定为 1 0 5 10^{-5} ;并利用Adam算法对SFCN进行了优化。

4.2. Experiments

       ~~~~~~ 在本节中,介绍了两种类型的实验:1)在GCC数据集中进行训练和测试;2) GCC预培训和实际数据集的调优。

4.2.1 Experiments on GCC Dataset

       ~~~~~~ 我们报告了GCC数据集中广泛实验的结果,该数据从三种不同的训练策略验证了SFCN:随机,跨相机和跨位置拆分。1)随机分割:将整个数据集随机分为两组,分别为训练集(75%)和测试集(25%)。2)跨摄像机拆分:针对特定位置,随机选择一台监控摄像机进行测试,其他进行训练。3)跨位置拆分:我们随机选择75/25个位置进行培训/测试。 这些方案可以有效地评估GCC算法。 表2报告了我们的SFCN的性能以及在建议的GCC数据集上两种流行的方法(MCNN [43]和CSRNet [19])的性能。
在这里插入图片描述

4.2.2 Experiments of Pretraining & Finetuning

       ~~~~~~ 目前的许多方法都存在过度拟合的问题,因为缺乏真实的标记数据。一些方法利用基于ImageNet数据的预训练模型。然而,经过训练的分类模型(VGG、ResNet和DenseNet)并不是回归问题的最佳初始化:回归层和特定的模块仍然按照随机或常规的分布初始化。
       ~~~~~~ 针对上述问题,本文提出了一种新的解决方案:首先,在大型GCC数据集上对设计的模型进行预处理;然后利用真实数据集对GCC的预训练模型进行细化。在最后一步中,对总体参数进行训练,优于传统方法。为了验证我们的策略,我们对两个数据集(UCF-QNRF和SHT B)进行了MCNN,CSR和SFCN。 请注意,SFCN采用VGG-16作为主干,SFCN+使用ResNet101主干。表3示出了比较实验的结果。从中我们发现,使用预训练的GCC模型比不使用或使用ImageNet分类模型更好。具体来说,对于从零开始的MCNN,我们的策略可以将估算误差减少30%左右。对于使用预训练的ImageNet分类模型的SFCN,我们的方案在四组实验中也平均减少了12%的误差。
在这里插入图片描述
       ~~~~~~ 我们还在五个真实的数据集上展示了我们的SFCN的最终结果,这些数据集是在使用GCC的预先训练过的SFCN上完成的。与最先进的性能相比,SFCN刷新四个数据集上的记录。具体结果比较见表4。

5. Crowd Counting via Domain Adaptation

       ~~~~~~ 最后一部分提出了对合成或真实数据集的监督学习,它采用了真实数据的标签。对于非常拥挤的场景,手动注释它们是一件乏味的工作。 不仅如此,还有人造标签的标签错误。 因此,我们尝试提出一种通过域自适应的人群计数方法以节省人力,该方法从合成数据中学习特定的模式或特征并将其转移到现实世界中。通过这种思想,我们不需要任何实际数据的手动标签。遗憾的是,生成的合成数据与现实世界的数据(如颜色样式、纹理等)有很大的不同,这些数据被视为域间隙。即使在现实生活中,领域差距也很常见。例如,上海科技馆B区和世博10区分别采用不同的摄像机在不同的地点进行拍摄,导致它们的数据有很大的差异。因此,如何在不同的域之间传输有效的特征是一个重要的问题,这被称为域适应问题。
       ~~~~~~ 在这项工作中,我们提出了一种通过域自适应的人群计数方法,该方法可以有效地学习合成数据和真实数据之间的域不变特征。具体来说,我们提出了一个SSIM嵌入(SE)循环GAN,将合成图像转换为逼真的图像。然后,我们将在翻译后的数据上训练SFCN。最后,我们直接在真实数据上测试模型。整个过程不需要任何手动标记的数据。图7给出了该方法的流程图。
在这里插入图片描述

5.1. SSIM Embedding Cycle GAN

       ~~~~~~ 在这里,我们回顾了通过数学符号领域适应进行的人群计数。 DA的目的是学习合成域 S S 和真实域 R R 之间的翻译映射。合成域 S S 提供图像 I S I_{S} 和计数标签 L S L_{S} 。真实域 R R 仅提供图像 I R I_{R} 。总之,给定 i S I S i_{S}∈I_{S} l S L S l_{S}∈L_{S} i R I R i_{R}∈I_{R} (小写字母表示相应集中的样本),我们想训练一个人群计数器来预测 R R 的密度图。

       ~~~~~~ Cycle GAN
       ~~~~~~ 最初的Cycle GAN由Zhuet等人提出,其重点是未配对的图像到图像转换。 对于两个不同的领域,我们可以利用Cycle GAN来处理DA问题,这可以将合成图像转换为逼真的图像。对于域 S S R R ,我们定义了两个生成器 G S R G_{S}→R G R S G_{R}→S 。 前者试图学习从域 S S R R 的映射函数,反之亦然,后者的目标是学习从域 R R S S 的映射。我们引入了周期一致的损失来规范训练过程。 具体来说,对于样本 i S i_{S} i R i_{R} ,我们的目标词之一是 i S G S R ( i S ) G R S ( G S R ( i S ) ) i S i_{S} → G_{S} → R(iS) → G_{R} → S(G_{S} → R(i_{S})) ≈ i_{S} 。另一个目标是 i R i_{R} 的逆过程。 周期一致的损失是周期体系结构中的 L 1 L1 损失,定义如下:
在这里插入图片描述
       ~~~~~~ 另外,对应于 G S R G_{S}→R G R S G_{R}→S 对两个鉴别器 D R D_{R} D S D_{S} 建模。 具体而言, D R D_{R} 试图区分图像来自哪里( I R I_{R} G S R ( I S ) ) G_{S}→R(IS)) D S D_{S} 试图区分图像来自$ I_{S}$或者 G R s ( I R ) ) G_{R}→s(IR)) 。以DR为例,其训练目标是对抗损失,其公式为:
在这里插入图片描述
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~
       ~~~~~~

发布了28 篇原创文章 · 获赞 7 · 访问量 8774

猜你喜欢

转载自blog.csdn.net/weixin_42994580/article/details/103730427