https://arxiv.org/pdf/2403.09281v1 CLIP(Contrastive Language-Image Pretraining,对比语言-图像预训练)模型在识别问题中表现出了卓越的性能,如零样本图像分类和对象检测。然而,由于其固有的挑战——即将计数(一项回归任务)转化为识别任务,CLIP在计数方面的能力仍然研究不足。在本文中,我们研究了CLIP在计数方面的潜力,特别是聚焦于人群规模估计。现有的基于分类的人群计数方法遇到了包括不恰当的离散化策略在内的问题,这些问题阻碍了CLIP的应用并导致性能次优。为了解决这些挑战,我们提出了增强的分块分类(Enhanced Blockwise Classification,EBC)框架。与以往方法不同,EBC依赖于整数值的箱(bins),这有助于学习稳健的决策边界。在我们的与模型无关的EBC框架内,我们引入了CLIPEBC,这是第一个能够生成密度图的完全基于CLIP的人群计数模型。通过对不同人群计数数据集的综合评估,我们方法的先进性能得到了证明。特别是,EBC可以使现有模型的性能提升高达76.9%。此外,我们的CLIP-EBC模型超越了当前的人群计数方法,在上海科技大学A部分和B部分数据集上分别实现了55.0和6.3的平均绝对误差。代码将公开提供。
人群计数涉及对图像或视频中个体数量的自动估计。近年来,由于其在管理流行病[1]和避免人群拥挤崩塌[2]等关键领域的潜在应用,这一任务受到了广泛关注。准确量化人群密度对于提升公共安全、城市规划和事件管理至关重要。
目前最先进的人群计数方法依赖于图像中个体头部中心的标注二维坐标。这些方法通常将点标注转换为二进制密度图,其中值1表示该像素对应于一个标记的头部中心,而0则表示不是。大多数方法[3]-[9]采用编码器-解码器框架,旨在直接回归密度图。通常,这些模型输出的密度图具有由模型特定的缩减因子确定的空间尺寸。密度图中的每个元素估计图像中对应块中的计数值。然而,这些方法忽略了这样一个事实,即计数值呈现出长尾分布,其中大值区域存在严重的采样不足。
为了应对这一挑战,一些工作[11]、[12]通过将计数值合并到箱(类别)中来将人群计数重新定义为分类任务,从而增加了稀有值的样本量。与基于回归的方法类似,这些方法也基于分块预测,但输出的是减小了空间尺寸的概率图,其中每个空间位置的向量表示箱的概率得分。在推理阶段,这些方法通过聚合每个箱的平均值(每个值根据其相关的概率得分进行加权)来计算预测的密度图。然后通过对得到的密度图进行积分来得出最终的预测计数。然而,这些方法遇到了几个挑战,导致它们的性能不佳。
值得注意的是,与许多基于回归的方法[3]、[4]、[8]一样,这些分类方法也在预处理真实密度图时采用了高斯平滑,这引发了一个关键问题:选择合适的高斯核宽度。由于图像中个体常因透视畸变而以不同尺度呈现,理想情况下应将核宽度与头部大小相匹配,但遗憾的是,计数任务并未提供这些头部大小信息。因此,现有的基于分类的方法会在标签中引入噪声,从而导致性能下降。此外,高斯平滑将最初的离散计数值转换为连续空间,这需要使用一系列相邻的实值区间作为箱。这种量化策略使得边界附近的样本特别难以分类,使得模型难以学习最优的决策边界。当前基于分类方法的另一个局限性是它们仅关注分类错误,而没有考虑预测计数值与真实值之间的接近程度。这一缺陷会在测试中损害性能,因为两个具有相同分类错误的概率分布可能表现出不同的期望值。
尽管CLIP[1]在各种与识别相关的下游任务(如目标检测[13]和语义分割[14])中取得了成功,但其计数能力在很大程度上仍未被探索。这一差距源于两个主要挑战:1) 原本为识别任务设计的CLIP与构成回归任务的人群计数之间存在固有的不匹配;2) 现有基于分类的计数方法的局限性和次优结果。为了弥合这一差距,本文专注于人群计数,并提出了一种增强的分块分类(EBC)框架,该框架专门设计用于解决当前基于分类方法所面临的挑战。通过最小的修改,现有的基于回归的方法可以无缝地集成到我们的EBC框架中,从而显著提高其性能。此外,在EBC框架的基础上,我们探索了利用CLIP原始结构进行人群计数的潜力,并引入了CLIP-EBC(如图1所示)。与其他方法[15]、[16]相比,CLIP-EBC是第一个能够生成人群热图的完全基于CLIP的模型。在四个数据库上的实验结果强调了我们的EBC框架相比现有基于回归方法的显著改进。EBC展现出了显著的有效性,在NWPU[17]数据集上,将CSRNet[3]的RMSE降低了高达76.9%。此外,我们提出的CLIP-EBC模型超越了最先进的人群计数方法,展示了其有效性。具体来说,CLIP-EBC在上海科技大学[18]数据集A部分实现了55.0的平均绝对误差,在B部分实现了6.3的平均绝对误差。这些结果表明,在EBC的支持下,CLIP能够准确地估计人群密度图。

总结来说,我们的贡献如下:
A. 基于回归的方法
人群计数主要由多种基于编码器-解码器的模型主导,这些模型通过回归密度图来进行计数。一些模型专注于解决由透视畸变引起的尺度变化问题。Zhang等人[18]引入了一种多列CNN结构,每个分支提取不同感受野大小的特征图,随后通过拼接进行融合。相比之下,Liu等人[4]提出了一个基于VGG-16[20]的单分支模型,该模型包含一个多尺度模块,用于跨尺度提取和融合特征。认识到扩大感受野的重要性,Li等人[3]提倡在生成密度图时使用空洞卷积。由于真实密度图通常比较稀疏,使用高斯核进行平滑是一种常见的策略,以促进模型优化。然而,这种方法带来了选择合适核宽度的挑战,理想情况下核宽度应与尺度相匹配。不幸的是,在人群计数任务中通常不提供头部大小信息。因此,高斯平滑不可避免地会在标签中引入误差和噪声:如果核大小设置得太小,则在密度图中对应于个体头部的像素将被设置为0;相反,如果核大小设置得太大,则对应于背景的像素可能会被误认为是行人。为了解决这个问题,Wang等人[6]通过利用离散最优传输理论引入了DMCount损失函数。这种损失函数不需要高斯平滑,并且使用它训练的模型可以具有增强的性能。

B. 基于分类的方法
现有的基于分类的方法源于纠正计数值长尾分布(如图2所示)的动机,其中大值被严重低估,对基于回归的模型性能产生不利影响。为了解决这个问题,基于分类的方法将支持范围[0, ∞)划分为不重叠的区间,以增加每个类别的样本量。在推理过程中,将每个区间的中点(根据概率分数加权)相加作为预测的计数。例如,Xiong等人[12]引入了DCNet,它通过使用相同的一组区间来预测多个级别的计数。然而,这种方法忽略了这样一个事实,即大值在局部层面出现的可能性较小,从而加剧了类别不平衡。为了处理这个问题,Liu等人[11]提出了基于块分类的概念,该模型输出概率图,其中每个像素的向量表示预测的概率分数。然而,与基于回归的方法类似,这些方法也用高斯核对真实密度图进行平滑处理,从而引发以下问题:1)如第II-A节所述,高斯平滑可能会在标签中引入噪声;2)高斯平滑将计数从离散的整数空间转换为连续的实数空间,因此区间必须相互邻接(例如,(0,0.5]和(0.5,1]))。这种量化策略使得难以对边界附近的样本点进行分类。此外,这些方法仅关注分类结果,忽略了两个概率分布可能具有相同的分类误差但期望不同的事实,从而在测试期间严重影响性能。
C. 人群计数中的CLIP
对比语言-图像预训练(CLIP)模型[10]在下游任务中表现出了卓越的性能,如下游零样本图像分类[10]、目标检测[13]和[14],但在人群计数方面的研究却相对较少。Liang等人[15]提出了一种基于排序的无监督方法。他们的方法利用嵌套图像块序列和预定义的计数数字序列作为输入,目的是最小化相似性的排序损失。然而,该方法的一个局限性是无法生成密度图,这对于疫情控制和公共安全监控等应用至关重要。Jiang等人[16]介绍了一种文本引导的零样本计数方法,该方法利用CLIP生成文本指导,但仍以密度图回归为基础,导致在人群计数任务中的性能次优。相比之下,我们是第一个研究仅使用CLIP来估计人群密度图潜力的团队。为此,我们引入了CLIP-EBC,这是第一个完全基于CLIP的人群计数方法,并证明了CLIP可以在尽可能保留其结构的同时,准确地估计人群分布。
在本节中,我们首先描述我们的增强块分类(EBC)框架以及我们在离散化、标签校正和损失设计三个方面的贡献。然后,基于这个与主干网络无关的框架,我们介绍了如何利用CLIP进行密度图估计,并提出了CLIP-EBC。
A. 增强型分块分类(EBC)
由于点标签中存在的固有噪声,使得在像素级别预测密度图变得具有挑战性。因此,我们的EBC框架采用了分块预测的方式,类似于最新的方法[3]、[5]、[6]、[11]、[12]。然而,由于基于回归的方法在大计数值上存在欠采样问题(如图2所示),EBC将计数值分组到不同的区间(bins)中,以增加每个区间的样本量,从而缓解样本不平衡的问题。设为预定义的个区间,使得,且,其中是计数值的支持集。设为输入图像,其中表示通道数,和分别表示空间高度和宽度。EBC输出一个维度为的概率图,其中表示向下取整除法运算符,整数是与模型相关的缩减因子。对于空间位置处的维向量,即,它表示图像区域内各个区间的概率分数。在推理过程中,对于每个区间,设为该区间的代表计数值。从预测的概率图中,我们可以通过加权平均得到预测的密度图:
。
对进行求和,可以得到整个图像的预测计数。图4比较了基于回归的方法(左)和我们的EBC框架(右)。现有的基于回归的方法只需改变输出维度,就可以很容易地适应EBC。


先前工作[11]、[12]的另一个缺点是它们使用每个区间的中点作为代表计数值,这忽略了计数值并不遵循均匀分布的事实。为了处理这个问题,我们提出使用每个区间内的平均计数值作为代表点:
其中,是区间的基数,是数据集中所有块的数量,是指示函数,是块中的计数值。

其中,是指示函数,是独热编码的真实概率图,是预测概率图,是真实密度图,是预测密度图,可以通过方程(1)和方程(2)获得。计数损失(由加权)可以是测量两个密度图之间差异的任何函数,但在本文中,我们主要考虑使用DMCount Loss[6],因为真实值没有被平滑处理。B. CLIP-EBC的结构
图1展示了我们的CLIP-EBC模型结构,其中包含了精细的箱子{0},{1},...,{m}。由于CLIP-EBC的机制建立在我们提出的EBC框架之上,因此这里我们主要关注如何生成预测概率图。第三节A部分将提供更多关键细节,包括人群密度图的生成、推理过程以及训练损失函数。
CLIP-EBC的图像编码器由一个特征提取器和一个卷积层组成。由于CLIP-EBC基于块预测,我们移除了CLIP图像编码器的最终池化层和线性投影层,并使用剩余的骨干网络来提取特征图,其维度为,其中表示输出通道数(对于ResNet骨干网络)或嵌入维度(对于ViT骨干网络)。随后,我们不是使用多个投影层,而是采用一个卷积层将转换到CLIP嵌入空间,得到,其维度为,其中表示降维因子(对于ResNet)或块大小(对于ViT)。
对于文本特征提取,我们首先从输入文本提示开始考虑。给定一组箱子 ,对于每个箱子 ,我们根据以下规则生成一个文本提示:
接下来,将得到的 个文本提示通过CLIP的分词器进行分词。然后,我们将分词后的文本输入到原始的CLIP文本编码器中,在训练过程中保持其参数不变。此过程生成了维度为 的文本嵌入 。
有了图像特征图 和文本特征 ,我们就可以计算概率图 。首先,我们计算图像特征向量 和 个提取的文本嵌入之间的余弦相似度。随后,我们使用softmax对这些相似度进行归一化,以获得概率 ,它表示块 在 个箱子上的概率分数。为了获得预测的人群密度图 ,我们使用方程(1),而用于训练CLIP-EBC的损失函数则由方程(3)定义。
我们利用四个公开的人群计数数据集进行了全面的实验:ShanghaiTech A和B [18]、UCF-QNRF [19]和NWPU-Crowd [17]。
其中是测试集中的图像数量,是图像的真实全局计数值,是通过在预测的密度图上积分得到的预测计数值。值得注意的是,较低的分数表示更好的结果。
A. 与最先进方法的比较
我们将EBC和CLIP-EBC与最先进的人群计数方法进行比较。具体来说,我们重新实现了CSRNet [3]和DMCount [6],仅通过更改它们的输出维度来使它们适应我们提出的EBC框架。修改后的模型分别表示为CSRNet-EBC和DMCountEBC。表I列出了结果并展示了我们的方法的有效性。根据CSRNet-EBC和DMCount-EBC所达到的性能,并与它们的基于回归的版本进行比较,我们可以得出结论,我们的EBC框架可以提供显著的性能提升。特别是在NWPU验证集上,CSRNet和DMCount可以显著提高性能:在MAE下分别提升和,在RMSE下分别提升和。我们的CLIP-EBC模型也可以达到与最先进方法相当的结果。特别是,我们基于ResNet的CLIP-EBC优于现有的人群计数方法,在上海科技数据集A部分上达到55.0 MAE,B部分上达到6.3 MAE,在NWPU上达到38.6 MAE。这些结果表明,原始的CLIP模型可以在人群计数中以显著的性能得到利用。在UCF-QNRF和NWPU上,我们的DMCount-EBC表现最佳,分别达到了77.2 MAE和39.7 MAE。

B. 箱粒度的影响
由于计数变量在较大的块中可以取不同的值,我们探索了箱粒度对EBC框架的影响,特别是在块大小为和的情况下。在本实验中,我们研究了三个层次的粒度。细粒度箱被配置为每个箱仅包含一个整数。由于每个箱中的代表性计数值就是包含的整数本身,这种策略可以提供偏差最低的箱。对于粗粒度箱,每个箱包含两个整数(不包括0,因为0自身构成一个箱)。这种方法承认了计数值的长尾分布,并旨在增加每个箱的样本量。在构建动态箱时,我们采用了一种策略,即将小计数值视为单独的箱,而将较大的计数值每两个组合成一个箱。

表II展示了在UCF-QNRF数据集上的结果。对于和,动态粒度提供了最佳性能。这是因为动态粒度可以在减少代表性计数值的偏差和增加样本量之间取得良好的平衡。此外,在这两种情况下,细粒度都优于粗粒度,这得益于代表性计数值的偏差较小。另外,在MAE指标下,使用较小的块大小可以提供更好的结果,因为它可以创建更多的块,因此模型可以在训练过程中更好地利用每个人的位置信息。C. 消融研究
在本节中,我们对EBC的三个关键组成部分进行了消融研究:离散化、标签校正和损失函数。实验特别在UCF-QNRF数据集[19]上进行,使用VGG-16[20]作为骨干模型。基于我们的离散化策略建立的模型具有细粒度的箱,每个箱仅包含一个整数。结果总结在表III中,其中“Enhanced Bins”表示使用我们提出的离散化策略,而表示方程(3)中计数损失项的权重。特别是,当时,仅使用分类损失。基线模型Blockwise[11]将计数值分类为相邻的连续区间,实现了140.6的MAE。然而,将连续区间替换为整数值的箱导致了显著的改进,实现了88.3的MAE,即令人印象深刻的的提升。这一结果强调了在我们的场景中,决策边界可以被更有效地学习。进一步限制标签中的最大允许计数值导致MAE降低到85.8。关于,将其值从0.00增加到1.00会提高性能,最佳结果在时达到(77.9)。然而,的较大值(例如,2)会损害模型的泛化能力。

为了验证性能改进与骨干网络的独立性,我们还使用ResNet[26]、MobileNetV2[27]和DenseNet[28]测试了我们的EBC框架。表IV中的结果表明,与基线的逐块分类方法[11]相比,EBC无论选择哪种骨干网络,始终都能实现重要的性能改进。

在这里插入图片描述
D. 可视化
我们利用具有ResNet图像骨干的已训练CLIP-EBC模型,在上海科技大学数据集[18]上生成预测的人群密度图。为了可视化目的,我们精心挑选了一组六张具有代表性的图像——三张来自A部分,三张来自B部分。图6中,第一行展示了这六张图像,第二行展示了真实的人群密度图(为了说明,已通过高斯核进行平滑处理),第三行展示了预测的人群密度图(已调整至与图像相同大小)。这六张图像的选择确保了覆盖了一系列广泛的人群密度范围,从最稀疏的场景(例如,左列中的15人)到最拥挤的情况(例如,右列中的1111人)。这些结果共同展示了模型在不同人群密度水平上的稳健性能。

在本文中,我们展示了CLIP在精确人群密度估计中的能力。通过将计数重新表述为逐块分类问题,我们缩小了CLIP与人群计数之间的差距,并提出了增强的逐块分类框架(EBC)。在EBC框架内,我们进一步提出了CLIP-EBC,这是第一个基于CLIP并具备密度图生成功能的人群计数方法。为了将局部计数值分类到预定义的箱中,CLIP-EBC比较了相应局部图像特征与每个文本特征之间的相似性,然后在其上使用softmax来生成概率分数。在多个数据库上的实验展示了EBC和CLIP-EBC的有效性。在未来,我们将研究使用CLIP-EBC来计数任何物体,以充分发挥CLIP的潜力。
1) 影响声明: 与其他许多人群计数方法一样,我们的模型也分析人群图像,这可能会引发隐私关注。在现实应用中,人们可能会感到不适,因为他们知道自己正在被监控和计数,而未经他们明确同意。此外,一些数据集可能存在偏差,而基于这些数据集训练的模型可能在预测中表现出偏差。这可能导致某些人口群体被低估或高估,从而导致不公平的后果或加剧现有的社会差异。
2) 局限性: CLIP已经在数百万个图像-文本对上进行了预训练,因此理论上应该能够计算任何类型的物体,但本文仅关注了人类。在未来,我们计划探索其在计算其他物体方面的应用。