Cross-scene crowd counting via deep convolutional neural networks
说明
本文是对以下这篇文章的总结及部分翻译。
Zhang C, Li H, Wang X, et al. Cross-scene crowd counting via deep convolutional neural networks[C]//CVPR. 2015: 833-841.
概括
大多数现有的人群计数方法在应用到未见的场景时,其性能显著下降。为了解决这个问题,我们提出了一种用于人群计数的深度卷积神经网络,以人群密度和人群计数两个相关的学习目标交替训练。所提出的可切换学习方法能够获得更好的局部最优。针对未见的目标人群场景,我们提出了一种数据驱动的方法来微调预训练后的CNN模型,使其适应未见的目标场景。
引入了新的数据集WorldExpo ’ 10,包含108个人群场景、近20万个头部标注数据。
一、Introduction
拟解决问题:
为特定场景学习的人群计数模型只能应用于同一场景。给定一个看不见的场景或更改过的场景布局,必须用新的注释对模型进行重新训练。对于一个新的目标场景不需要额外的注释,目标是学习从图像到人群计数的映射,然后在看不见的目标场景中使用映射进行跨场景人群计数。
挑战:
a) 开发有效的特性来描述人群。之前的工作使用的是一般的人工制作特征,对人群的表达能力较低。需要为人群场景专门设计或学习新的描述符。
b) 不同的场景有不同的透视形变(perspective distortions)、人群分布和光照条件。在没有额外训练数据的情况下,在一个特定场景中训练出来的模型很难用于其他场景。
c) 在最近的工作中,前景分割对于人群计数是必不可少的。但是人群分割是一个具有挑战性的问题,在大多数拥挤的场景中都不能准确地得到。场景也可能有静止的人群没有移动。
d) 现有的人群计数数据集不足以支持和评价跨场景计数研究。
提出的方法:
我们提出了一个基于CNN的跨场景人群计数框架。用固定的数据集训练CNN后,引入数据驱动的方法进行微调已经学习到的CNN用于一个未见的目标场景,从训练场景中检索出与目标场景相似的训练样本进行微调。Figure 1说明了总体框架。该方法有以下优点:
a) 我们的CNN模型通过一个可切换的学习过程对人群场景进行训练,该学习过程有两个学习目标:人群密度图和人群计数。**这两个不同但相关的目标可以互相帮助以获得更好的局部最优。**我们的CNN模型学习人群特有的特征,这比人工制作的特征更有效和健壮。
b) 在我们的框架中,目标场景不需要额外的标签来进行跨场景计数。预先训练好的CNN模型针对每个目标场景进行微调,以克服不同场景之间的域间隙。微调的模型是专门适应新的目标场景。
c) 该框架不依赖于前景分割结果,因为我们的方法只考虑外观信息。无论人群是否在运动,CNN模型都会捕捉到人群的纹理,得到合理的计数结果。
d) 介绍了一个新的数据集。
二、方法
Normalized crowd density map for training:
本文密度图是根据行人的空间位置、人体形态和图像的透视形变生成。
许多工作遵循Lempitsky等人(参考文献[2],第一个提出用密度图来计数的文献),并将密度映射回归ground truth定义为以物体位置为中心的高斯核的总和。这种密度图适用于描述细胞、细菌等圆形物体的密度分布。然而,这一假设在行人人群中可能会失败,那里的摄像头通常不是鸟瞰图。监控中的行人具有三个明显特征:1)监控视频中的行人图像由于透视形变而具有不同的尺度;2)行人的形状更接近椭圆而不是圆形(人群密集时可否视为圆形,参考文献[3]中方法);3)由于严重遮挡,头部和肩部是判断每个位置是否有行人的主要线索。行人身体部位的标注不可靠。考虑到这些特征,人群密度图是由几个分布(?)与透视归一化(消除距离镜头远近的透视形变的影响)组合创建的。
透视归一化是估计行人尺度的必要条件。受[4]的启发,在每个场景中,我们随机选择几个成年行人,从头到脚给他们贴上标签。假设成人平均身高为175cm,通过线性回归可以近似得到透视图M,如Figure 2 (a)所示。透视图中的像素值M§表示图像中代表实际场景中该位置1 meter的像素数(?)。在得到透视图和行人头部Ph在感兴趣区域(region of interest, ROI)的中心位置后,我们创建的人群密度图为:
三、模型
本文引入了一个迭代切换过程来交替优化密度图估计任务和计数估计任务。模型的主要任务是估计输入patch的人群密度图。由于CNN模型中存在两个池化层,输出密度图被降采样为18×18(输入的patch大小被调整为72×72)。因此,地面真实密度图也被降采样到18×18。由于密度图包含了丰富丰富的局部详细信息,CNN模型可以通过学习来预测密度图,可以获得更好的crowd patches的表示。将输入patch的总人群计数回归作为次要任务,通过对密度图斑块进行积分计算。两个任务互相帮助,获得更好的解决方案。
两个损失函数为:
训练过程:
可切换的训练过程如Algorithm 1中所示。我们将LD设为第一个目标损失最小化,因为密度图可以给CNN模型引入更多的空间信息。密度图估计需要模型学习人群的一般表示。当第一个目标收敛后,模型切换到最小化全局计数回归目标。与密度图回归相比,计数回归更容易学习,学习速度更快。需要注意的是,这两个目标损失应该归一化到相似的尺度,否则在训练过程中,规模较大的目标将占主导地位。在实验中,我们将密度损失的权重设为10,计数损失的权重设为1。经过约6次切换迭代,训练损耗收敛。我们所提出的切换学习方法比目前广泛使用的多任务学习方法具有更好的性能。
四、针对目标场景的非参数微调
模型是基于所有训练场景数据,通过我们提出的可切换学习过程进行预训练。但是,每个查询人群场景都有其独特的场景属性,如不同的视角、尺度和不同的密度分布。这些特性显著地改变了人群patch的appearance,影响了模型的性能。为了弥合训练场景和测试场景之间的分布差距,我们设计了一种非参数微调方案,将我们预先训练好的CNN模型适应于未见的目标场景。给定一个未见的场景中的目标视频,从训练场景中检索具有相似属性的样本,并将其添加到训练数据中,对人群CNN模型进行微调。检索任务分为candidate scenes retrieval和local patch retrieval两个步骤。
Candidate scene retrieval:
场景的视角和尺度是影响人群出现的主要因素。透视图映射可以指示视图角度和比例,如Figure 2 (a)所示。为了克服不同场景之间的比例尺差距,将每个输入patch归一化为相同的比例尺,根据透视图在实际场景中覆盖3米× 3米的正方形。因此,我们的非参数微调方法的第一步是从所有的训练场景中检索出与目标场景具有相似透视图的训练场景。这些检索到的场景称为候选微调场景。一个透视图描述符被设计用来表示每个场景的视角。因为透视图是沿着y轴线性拟合的,所以我们使用它的垂直梯度ΔMy作为透视描述符。
基于该描述符,对于目标未见场景,从整个训练数据集中检索出top20的perspective-map-similar场景,如Figure 4 (a)所示。将检索到的图像作为候选场景进行局部patch检索。
Local patch retrieval:
第二步是从候选场景中选择与测试场景中密度分布相似的patch。除了影响视角和尺度外,人群密度分布也影响着人群的appearance pattern。密度越大的人群遮挡越严重,只能观察到头肩。相反,在稀疏人群中,行人呈现出全身形态。输入补丁的一些实例如图4 (b)所示。因此,我们尝试预测目标场景的密度分布,并从候选场景中检索与预测目标密度分布匹配的相似patch。例如,对于高密度的人群场景,需要检索更密集的斑块,对预训练模型进行微调,使其适应目标场景。
在上节中展示了预训练好的CNN模型,我们可以粗略预测目标图像中每个patch的密度和总计数。假设具有相似密度图的patch通过预先训练的模型有相似的输出。基于预测结果,计算出目标场景的密度分布直方图。
每个bin计算为:
yihat是样本i的估计密度图的积分计数。因为很少会有超过20名行人站在3平方米的广场上的场景,当yihat>20,这个patch应该被分配到第六个bin,即ci=6。目标场景的密度分布由上式得到。然后从检索到的训练场景中随机选取patch,控制不同密度小块的数量,以匹配目标场景的密度分布。采用所提出的微调方法,检索具有相似视角、尺度和密度分布的斑块。微调的人群CNN模型对目标场景有更好的性能。
五、实验
Table 1是三个数据集的概况。
WorldExpo dataset的跨场景人群计数的定量结果如Table2所示。MAE作为评价指标。首先,我们尝试提取LBP特征,并使用ridge regressor (RR)来估计人群数量,结果列在最上面一行。我们的CNN人群模型没有微调的预测结果显示在第二行。第三行列出了我们提出的数据驱动微调方法的结果。这三种方法不使用任何来自测试场景的数据。我们的CNN人群模型可以有效地估计密度图和人群数。数据驱动的微调方法提高了某些测试场景的性能。从训练数据中检索相似样本,可以帮助模型更好地拟合测试数据。密度估计结果Figure 6所示。
我们也观察到在目标场景中一些辅助标记可以提高我们的方法的性能。因为特定场景的信息被引入,很多背景噪音被消除。我们的预测密度图可以作为特征和ridge regression用于拟合行人数。为了进行比较,我们测试了[5]和[6]中的两个场景特定的方法。[5]是一种使用面积、周长、边缘、局部纹理等各种人工特征的全局回归方法,[6]采用随机回归森林来预测密度图。每个测试场景使用前60帧标记帧对比较方法进行训练,剩余帧作为测试集。采用基于GMM的背景建模方法提取前景分割。由于场景2中存在大量的静止人群,很难准确获取前景。我们的跨场景人群计数方法优于特定场景的方法。测试场景1、场景3、场景4的结果进一步改进,如Table 2所示。然而,在场景2中,ridge regression会导致更糟糕的结果,因为前60个训练帧的密度分布与剩下的测试帧有显著差异。
还比较了我们的迭代可切换学习方案和联合多任务方案。联合多任务损耗LJ定义为:
在提出的跨场景worldexpo10数据集中,两种不同损失的average mean absolute errors如表3所示。我们的迭代可切换训练过程比联合多任务损失获得了更好的性能。不同但相关的目标可以通过转换训练目标相互帮助,从而获得更好的局部最优。相比之下,联合多任务方案比我们的可切换训练过程需要更多的计算量来获得最优λ,并且结果对λ的选择也很敏感。
剩下部分还在UCSD dataset和UCF CC 50 dataset进行了实验。
参考文献
[1]Zhang C, Li H, Wang X, et al. Cross-scene crowd counting via deep convolutional neural networks[C]//CVPR. 2015: 833-841.
[2]Lempitsky V, Zisserman A. Learning to count objects in images[J]. Advances in neural information processing systems, 2010, 23: 1324-1332.
[3] Zhang Y, Zhou D, Chen S, et al. Single-image crowd counting via multi-column convolutional neural network[C]//IEEE conference on computer vision and pattern recognition. 2016: 589-597.
[4]Chan A B, Liang Z S J, Vasconcelos N. Privacy preserving crowd monitoring: Counting people without people models or tracking[C]//2008 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2008: 1-7.
[5]Chen K, Loy C C, Gong S, et al. Feature mining for localised crowd counting[C]//Bmvc. 2012, 1(2): 3.
[6]Fiaschi L, Köthe U, Nair R, et al. Learning to count with regression forest and structured labels[C]//Proceedings of the 21st International Conference on Pattern Recognition (ICPR2012). IEEE, 2012: 2685-2688.