摘要

        人群计数在各个领域引起了越来越多的关注。然而,现有的人群计数任务主要集中在估计总体人群,而忽略了人群中不同社会群体的行为和语义信息。在本文中,我们的目标是解决一个新提出的研究问题,即细粒度人群计数,该问题涉及识别不同类别的个体并在静态图像中对其进行准确的计数。为了充分利用静态人群图像中的类别信息,我们提出了一种两层显著特征传播模型,用于从人群及其周围环境中顺序地提取语义信息;此外,我们引入了类别差异损失来通过突出不同人群类别之间的差异来细化特征表示。此外,我们提出的框架可以适应一种新的问题设置,称为少示例细粒度人群计数。与最初的细粒度人群计数不同,这种设置只需要几个样本点注释,而不是来自预定义类别的密集注释,使其适用于更广泛的场景。通过将模型中的损失函数替换为一种新的混合损失函数来建立该任务的基线模型,该混合损失函数综合了点导向的交叉熵损失和类别对比损失。通过综合实验,我们给出了细粒度人群计数的公式和应用方面的结果。

1、数据集

        站着/坐着分为两类,即站着和坐着。它包含来自互联网上不同场景和不同分辨率的495张图像。其中,待验证图像45幅,待测试图像100幅。

        暴力/非暴力包括有暴力行为和没有暴力行为两类。有412张不同分辨率的图像。在这些图像中,62个图像被用作验证集,100个图像被用作测试集。

        正在排队等候公共汽车的人和没有排队的人分为两类。从Web上获取了420幅分辨率相同但场景不同的图像,其中20幅图像用于验证,100幅图像用于测试。

        靠近/远离包含两个类别,这两个类别根据人的取向进行分类。有2000个相同分辨率的灰度图像,其中400个图像用于验证,1200个图像用于测试。

        此外,为了评估我们提出的几个例子的细粒度人群计数,基于上述数据集,我们建立了一个新的数据集FECount。

2、要解决的问题

2.1  细粒度人群计数问题       

        在这项工作中,我们的目标是解决最近提出的细粒度人群计数任务。在形式上,给出一张包含两个不同类别的人群的静态图像,目标是估计他们各自的密度分布和计数。除了一般人群计数任务中存在的常见挑战(例如,杂乱的背景或人群中的遮挡),细粒度人群计数潜在的主要挑战是输入静态图像中缺乏时间线索。这增加了推断人类行为并因此区分其类别的困难。例如,我们可以很容易地从视频中分辨出一个人的行为是在公交站台排队还是经过,但在静态图像中更难区分。为了处理这一问题,不仅需要充分利用关于人群本身的信息,而且需要充分利用其背景信息。从经验上看,社会环境往往会揭示关键的语义线索。例如,站在公交站牌旁的人可能是在等公共汽车。因此,所提出的模型应该能够自动关注人(例如,人的姿势)和社会环境(例如,公共汽车站)上的那些显著区域,以便推断人群类别。

2.2 训练模型问题

        原始细粒度人群计数任务是完全受监督的,这施加了一定的限制。具体地说,在它们的设置中,每个数据集的类别都是预定义的(例如,暴力或非暴力)。因此,密集的分类标签必须为训练过程人工标注,而专门的模型必须针对特定类别独立训练,这严重限制了其在更广泛场景中的适用性。密集的分类标签必须为训练过程人工标注,而专门的模型必须针对特定类别独立训练,这严重限制了其在更广泛场景中的适用性。

3、提出的创新点

3.1 新的细粒度人群计数模型        

        为此,我们提出了一种新的细粒度人群计数模型,该模型将人群密度估计和人群类别分割分解为单独的子网络或网络分支,称为密度分支和语义分支。由于密度估计在该领域得到了广泛的研究,对于密度回归的人群统计,我们的重点放在语义分支上。具体来说,我们引入了一种新的两层显著特征传播(SFP)模块,它帮助模型连续提取人和环境的显著语义特征。通过这种方式,该模型能够首先关注人群,然后利用其与环境的相关性来发现相关的上下文信息。尽管如此,不同人群类别的特征之间的差异可能仍然太小,无法区分它们。因此,我们打算通过一种新的目标函数来扩大它们之间的差距,称为类别差异损失,该目标函数将不同类别的特征表示尽可能地分开。

3.2    损失函数创新

        我们引入了一种新的公式,称为少示例细粒度人群计数。在没有类别的先验知识的情况下,我们的目标是估计图像中的相应计数,对应于在查询图像中识别来自不同类别的代表性个体的几个样本注释点(请参考图1)。与完全的监督设置相比,我们的问题描述消除了对预定义类别的要求,使设计的通用模型能够适应不同类别的各种人群图像。

        为了解决这一问题,我们提出了一种混合损失函数来补充我们提出的细粒度人群计数模型。混合损失包括点状交叉熵损失和类别对比损失。

3.3 简单总结

        这种结合使得我们的模型能够有效地适应少数几个例子的细粒度人群计数任务。总体而言,我们的贡献包括:

        为了便于细粒度人群统计的类别分割,我们引入了两层显著特征传播模块,该模块依次提取人群和社会背景的关键语义信息。

        对于全监督细粒度人群计数任务,设计了类别差异损失函数来区分不同的人群类别。

        我们提出了一种新颖的人群计数任务,称为少量细粒度人群计数。我们的模型可以很容易地适应这一新的任务,提出了面向点的交叉熵损失和类别对比损失。

        在公共基准方面,我们的细粒度人群计数模型显示出优于以前方法的性能。此外,我们建立了一个新的数据集FECount来评估我们新的问题设置,并基于我们提出的基线模型显示了一些初步结果。

3.4 完全监督的细粒度人群计数

        提出了一种全监督细粒度人群计数任务,对图像中的每个人进行精确的位置标注和类别标注。我们的目标是基于输入图像回归每个类别的密度贴图。在这一部分,我们将介绍我们提出的用于全监督细粒度人群计数的网络模型。具体地说,我们将首先简要描述网络的整体架构,然后详细阐述其中的关键组件:两层显著特征传播模块和类别差异丢失。

3.4.1 总体框架

        总体而言,我们提出的细粒度人群计数框架由两个分支组成,即旨在估计人群密度的密度分支和旨在分割人群类别的语义分支。该框架的流水线如图2所示。具体地说,首先通过预先训练的VGG-16[54]提取查询人群图像I的视觉特征作为主干,然后经过卷积层进行特征变换,然后分别馈送到密度和语义解码分支。接下来,密度分支FD融合多尺度特征,以回归整个图像的人群分布ˆYD,而不考虑人群类别。同时,在语义分支FS上,通过两个连续的SFP模块增强和传播显著区域的特征,以生成两个人群类别的语义地图,即S(i={1,2})。此外,为了更好地学习两个范畴的语义特征,我们引入了范畴差异损失。最后,将人群密度图与类别分割图相结合,得到每个类别的计数。在下文中,我们将详细阐述SFP模块和类别差损。

3.4.2 两层显著特征传播

       2-SFP 由两个子模块组成:人物层突显特征传播(P-SFP)和环境层突显特征传播(E-SFP)。如图 2 所示,这些子模块在语义分支上依次部署。尽管两个子模块具有相同的结构,但它们在网络中的不同部署位置决定了各自的具体作用。P-SFP 主要由特征 X5 引导,该特征侧重于前景语义信息。另一方面,基于特征 X 的 E-SFP 则强调上下文细节。特征 X5 封装了富含高层次语义内容的深度特征,而 X2 则代表一种更浅层的特征,用于捕捉更精细的细节和低层次的视觉信息。因此,P-SFP 和 E-SFP 自然分别专注于前景(如人物)和背景(如环境)。

        P-SFP和E-SFP的内部结构:P-SFP和E-SFP具有相同的结构。如图3所示,首先通过索引选择结构将输入编码特征xEi(i={3,2})和解码特征xdj(j={1,2})连接并传递,以获得表示显著对象或区域的最关键特征的索引ξ和权重ω。索引选择结构由卷积层、Sigmoid激活和最大池算子组成,该算子发现编码和解码特征的重要信息。然后,索引指示模型从XEi中采样显著特征向量作为交叉注意模块的查询Q,并对从Xdj中采样的特征向量进行ω加权,然后作为关键字K和值V。最后,根据索引ξ将交叉注意模块增强的显著区域特征加回到XEi中的相应位置作为输出。

        最后,沿着语义分支的所有解码特征可以合并如下:

其中XS指的是2-SFP的输出,并且它将进一步通过若干卷积层以回归语义映射。

        综上所述,P-SFP利用最深层的编码特征来聚合关于人群本身的语义信息,而E-SFP则基于P-SFP的结果来获取相关的上下文信息。如图4所示,P-SFP的增强功能吸引了在公共汽车站等候的人的注意。相比之下,E-SFP的特点强调环境,例如人行道和标线。

3.4.2 损失函数

        为了训练我们的模型,我们使用了两种类型的损失函数,即类别特定密度损失和类别差异损失。类别特定密度损失:如图2所示。我们提出的框架的输出是两个类别特定密度图,计算为由语义分支FS生成的语义图与总密度图的乘积密度分支fd预测如下:

其中XD 1指的是来自第一层解码器的特征。ˆY包含两个类别的两个密度图,即ˆY={ˆY1,ˆY2},并指的是基于元素的乘法。在训练过程中,我们计算了两个类别特定密度图的平均绝对误差(MAE)和均方误差(MSE)作为损失函数。此外,为了更好地训练,还使用MAE和MSE对整体密度图进行了监督。

        类别差异损失:为了鼓励模型学习类别特定的特征,我们引入了类别差异损失,旨在最大化不同类别在嵌入空间中的特征表示之间的距离。为了实现这一点,如图2所示,我们首先在XS上应用基于区域的平均汇集操作(RAP)来获得人群类别的代表性特征向量。

        在实践中,在训练阶段,使用从地面真实情况标注中得到的特定类别的人群区域掩码,提取与每个类别的人群掩码所定义的位置相对应的特征。然后我们计算它们的平均值作为它们的代表性特征嵌入Vk(k={1,2})。因此,我们对两个类别的相似性进行了度量,以期最大限度地扩大它们的边际。因此,类别差异损失定义为:

其中λ指的是平衡重量

3.4 一些细粒度人群计数

        为了满足现实需求,我们在现有的全监督细粒度人群计数任务的基础上,提出了一种新的问题描述--少例细粒度人群计数。在这个公式中,给出任何人群图像中的一些点注释作为例子,我们的目标是将查询图像中的人群分类到两个语义不可知的组中(参见图1)。这一提法基本上包括两个子任务:人群统计和个人分类。在我们的设置下,人群计数子任务需要对图像中的每个人进行定位,使其受到完全监督。相比之下,单独的分类子任务只需要不同类别的几个样本点,而不需要预定义人群类别语义。为此,它能够将具有不同语义类别的图像混合在一起进行训练。更重要的是,对数据注释的少量需求减少了手动工作,使其适用于更广泛的真实世界应用场景。表一详细说明了这两项任务之间的区别。

        为了适应这一新任务,我们只需调整提出的细粒度人群计数模型的语义分支即可。给定属于类别A和B的N对注释点{Pai,Pbi}i=1:N,我们可以通过从样本点的外围计算它们的平均特征,即,NA和Nb,称为样本点的扩展集,来计算它们的代表性特征Va和Vb。接下来,我们不是完全监督学习损失,而是提出以下两个损失来监督我们的模型,用于少数几个例子的细粒度人群计数任务。

        点定向交叉熵损失LPCE:通过测量每个像素与其最接近的代表性特征Va和v‘B的相似度,我们可以确定像素类别。然而,NA和NB的点数没有用于监督的基本事实类。因此,我们对NA和NB内的点的特征进行监控以进行训练。NA和NB内的OINT用于训练。

        类别对比损失LCC:通过对每个类别进行逐点分配,我们提出了一个由两项组成的类别对比损失,即LCC=L++L−。L+鼓励模型绘制每个前景点PK(PK/∈B其中B表示背景)与其最接近的代表特征(Va或Vb)之间的距离如下:

其中VK指的是前景点PK的特征,而A和B表示通过亲和力分别与类别A和B相关联的点的集合。NA和Nb是属于A类和B类的前景点的总数。另一方面,L−强制模型推开A类和B类的代表性特征:

因此,类别对比损失使得模型能够增大给定示例的代表性特征的类别间距离,同时缩小剩余前景点的类别内距离。

        综上所述,我们使用混合损失,即L=LPCE+LCC来监督我们的模型,该模型适应于少数几个例子的细粒度人群计数任务。

4、总结与不足

        在本文中,我们提出了一个新的模型来处理细粒度的人群计数任务。具体地说,我们提出了一个两层显著特征传播模块,从人群和相关的社会环境中依次提取语义信息。此外,我们还引入了类别差异损失,通过放大不同人群类别之间的差异来改进特征表示。此外,我们还提出了一种新的问题描述方法--少示例细粒度人群计数,与原问题设置不同,它只需要少量的样本点标注,而不是密集的类别特定标注来估计细粒度的人群计数。这项任务的基线可以通过简单地用类别对比损失取代我们提议的框架的损失来实现,我们展示了几个初步结果。作为一个新的研究方向,到目前为止,我们重点研究了两大行为类别。目前缺乏针对两个以上类别的场景的数据集和研究。这将是我们今后工作中进一步研究的领域。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐