想象一下看着一张座无虚席的体育场或熙熙攘攘的城市广场的照片。你的任务是数清每一个人。在计算机视觉中,这就是人群计数 (Crowd Counting) 任务,它对于城市规划、安全监控和交通控制至关重要。

深度学习在这个领域已经取得了巨大的进步。然而,存在一个瓶颈: 数据标注。为了训练一个模型来数人,目前人类必须手动在成千上万张训练图像中的每一个人的头上点一个点。在密集人群中,单张图像可能包含数千人。其人工成本是天文数字。

这就引出了半监督学习 (Semi-Supervised Learning, SSL) ——一种我们使用少量标注数据和大量未标注数据来训练模型的技术。这听起来像是一个完美的解决方案,但正如香港城市大学的研究人员发现的那样,标准的基于点 (point-based) 的计数方法应用于 SSL 时会彻底失败。

在这篇文章中,我们将深入探讨他们的论文 “Point-to-Region Loss for Semi-Supervised Point-Based Crowd Counting” (面向半监督点基人群计数的点对区域损失) 。 我们将探讨为什么流行的点对点 (P2P) 方法在半监督设置中会失效,使用一种称为 PSAM 的新工具将这种失效可视化,并理解他们的解决方案: 一种点对区域 (Point-to-Region, P2R) 框架,它不仅能稳定训练,还能显著提高训练速度。


1. 人群计数的格局

在理解这项创新之前,我们需要了解现状。现代人群计数通常分为两类:

  1. 密度图回归 (Density Map Regression) : 模型预测一个热力图,其中像素值的总和等于总计数。
  2. 点检测 (Point Detection) : 模型预测每个人的确切坐标 (点) 。

点检测通常更受青睐,因为它提供了精确的定位——我们不仅知道一个模糊的密度团块,还能确切知道每个人的位置。该领域的一个领先方法是 P2PNet , 它使用了一种点对点 (Point-to-Point, P2P) 匹配策略。

P2P 工作流程

在全监督设置下 (即我们要拥有所有标签) ,P2P 的工作原理是使用匈牙利算法 (Hungarian Algorithm) 。 它查看模型预测的点,并尝试与真值点 (Ground Truth,人工标注) 进行一对一匹配,以最小化距离误差。

如果预测点与真值点匹配,它就被作为正样本进行训练。如果不匹配,它就被作为背景进行训练。

半监督的梦想

研究人员旨在将这种基于点的方法调整到半监督框架中。SSL 的标准流程涉及教师-学生 (Teacher-Student) 架构。

Figure 1. The workflow of semi-supervised point-based counting methods. The teacher model generates pseudo labels by extracting the foreground pixels, while the student model takes the corresponding strongly augmented image as input to construct the computation graph. The training loss between the pseudo label and the student’s prediction involves two steps: the proposed P2R matching and the weighted cross-entropy computation.

如上图 1 所示:

  1. 教师模型 (在少量标注数据上预训练) 查看未标注图像并做出预测。
  2. 这些预测变成了伪标签 (Pseudo-Labels)
  3. 学生模型查看同一图像的强增强版本,并试图匹配教师的伪标签。

这看起来很直接。但是,当研究人员试图将标准的 P2P 匹配插入到这个流程中时,训练崩溃了。


2. 崩溃: 为什么 P2P 在半监督学习中失败

要理解这种失败,我们必须查看损失函数。在监督设置中,简化的 P2P 模型包含一个特征提取器 \(\mathcal{F}\) 和一个输出点集 \(\mathcal{P}\) 的解码器 \(\mathcal{D}\)。

Equation 2

模型使用损失函数 \(\mathcal{L}_l\) 进行训练,该函数平衡了正匹配和负背景像素:

Equation 4

然而,在半监督学习中,我们要处理不确定性。教师模型并不完美。因此,我们使用置信度阈值 (通常 \(\tau > 0.5\) 或更高) 过滤教师的伪标签。我们只信任教师“确信”的点。

伪标签集 \(\mathcal{P}'_t\) 定义为:

Equation 5

陷阱就在这里。在 P2P 匹配中,我们使用匈牙利算法将学生的预测与这些过滤后的伪标签进行匹配。我们根据教师的预测是否足够自信来生成置信度掩码 \(\mathbf{Z}\):

Equation 6

当我们计算未标注数据的无监督损失 \(\mathcal{L}_u\) 时,它看起来像这样:

Equation 7

关键缺陷: 在 P2P 匹配中,如果一个像素没有匹配到高置信度的伪标签,它就会被忽略。置信度分数仅针对前景 (匹配的点) 计算。没有机制将置信度传播到背景

在数学上,损失方程的第二项 (本应用于监督背景像素) 实际上变为了零:

Equation 8

因为背景损失项消失了,模型没有收到针对背景的监督 。 它只是被告知“这个特定像素是一个人”,但从未被告知“它旁边的像素不是人”。

结果,模型开始产生“幻觉”。它在真实人物周围的局部区域预测出到处都是人。


3. 可视化失败: 点特定激活图 (PSAM)

研究人员不仅从理论上发现了这个问题;他们还将其可视化了。他们开发了一种称为点特定激活图 (Point-Specific Activation Map, PSAM) 的新可视化方法。

与显示分类任务全局注意力的标准激活图 (如 Grad-CAM) 不同,PSAM 旨在显示单个预测点的感受野和激活强度。

Figure 2. The generation process of PSAM.

PSAM 是通过计算特定点的分数相对于特征图的梯度来计算的。这确切地告诉我们图像特征图中的哪些像素有助于在该特定位置预测一个人。

观察结果

当比较仅使用标注数据训练的模型 (Model-L) 与使用失效的半监督 P2P 方法训练的模型 (Model-U) 时,差异是显著的。

Figure 3. Observations in PSAM. (a) The training process. (b) Comparing sorted values of PSAMs. (c) & (d) Visualizing the average of local PSAM, and (e) & (f) the aggregated PSAM to compare model-L and model-U from a global perspective.

请看上面的图 3 :

  • (a) 验证误差 (MSE/MAE) 在第 100 轮之后飙升,这正是引入未标注数据的时候。
  • (c) vs (d): 监督模型的局部 PSAM (c) 是紧凑且集中的。半监督模型的 PSAM (d) 是发散且模糊的。
  • (e) vs (f): 从全局来看,半监督模型 (f) 处于“过度激活”状态。

诊断: 由于背景损失为零,模型从未学会抑制紧邻人物周围的特征。特征“泄漏”到了背景中,导致解码器将人物周围的区域误解为更多的人


4. 解决方案: 点对区域 (P2R) 匹配

为了解决这个问题,研究人员建议放弃 P2P 僵化的一对一匹配。取而代之的是,他们引入了点对区域 (Point-to-Region, P2R) 匹配。

P2R 的核心理念很简单: 行人不仅仅是一个像素;他们占据一个区域。

P2R 如何工作

P2R 不再使用匈牙利算法寻找单个匹配像素,而是为每个真值点 (或伪标签点) 定义一个“主导区域”或局部区域。

Figure 4. Difference between P2P and P2R matching.

图 4 所示:

  • (a) P2P 方案: 仅关注连接特定的点。如果未建立连接,数据将被忽略。
  • (d) P2R 方案: 分割点周围的区域。它将这种关系视为一个“区域”。

第 1 步: 区域定义 首先,算法识别最近邻并定义区域掩码 \(\beta\)。如果一个像素在真值点的某个半径 \(\mu\) 内,则被视为区域的一部分。

Equation 21

第 2 步: 匹配矩阵 匹配矩阵 \(\mathbf{M}\) 不再是二分图匹配的结果。它是通过将像素分配给其最近的真值点来构建的,实际上创建了一个类 Voronoi 分割,但受限于局部区域。

Equation 18

第 3 步: 选择代表性像素 在这个定义的区域内,我们仍然希望找到最佳像素来代表人的头部。我们基于空间距离和模型当前的置信度分数计算代价矩阵 \(\mathbf{C}\)。

Equation 22

该区域中代价最小的像素被选为训练目标 (one-hot 标签中的“1”) ,而区域中的其他像素有助于定义上下文。

为什么 P2R 能解决半监督问题

P2R 的魔力在于它如何处理未标注数据的置信度传播。

在 P2R 方案中,我们可以定义包含背景的置信度矩阵 \(\mathbf{Z}\):

Equation 24

这个方程表示:

  1. 对于前景 (匹配区域) : 如果教师的置信度高 (\(\zeta\)) ,则信任伪标签。
  2. 对于背景 (远离任何伪点的像素,由 \(1-\beta\) 表示) : 我们可以隐式地确信这些不是人。

在 P2P 中,如果一个点置信度低,我们会忽略它以及它的周围环境。在 P2R 中,即使我们不确定具体的中心点,我们也知道周围巨大的空白空间绝对是背景。这带回了等式 8 中缺失的背景监督项。

P2R 中无监督损失 \(\mathcal{L}_u\) 的完整计算流程如下图所示:

Figure 8. Computation of Lu in P2R.

额外优势: 效率

P2R 的一个主要附带好处是速度。P2P 方法依赖于匈牙利算法,其复杂度为 \(O(N^3)\)。P2R 依赖于简单的矩阵运算 (在区域中寻找最小值) ,这在 GPU 上可以高度并行化。

正如论文中所指出的,对于一张约有 800 个点的图像:

  • P2P 匹配: ~0.43 秒
  • P2R 匹配: ~0.006 秒( 快了约 68 倍 )

5. 实验结果

研究人员在标准人群计数基准上测试了 P2R: ShanghaiTech A/BUCF-QNRFJHU++ 。 他们测试了使用 5%、10% 和 40% 标注数据的协议。

半监督性能

Table 1. Comparison with other recent methods on four benchmark datasets under different labeled protocols.

表 1 中的结果令人信服:

  • 优势: P2R 在几乎所有设置下都优于最先进的方法 (如 OT-M 和 DAC) 。
  • 标签效率: 值得注意的是,仅使用 5% 标注数据训练的 P2R 通常优于旧的全监督方法,并能与使用 10% 数据的其他半监督方法相媲美。
  • 全监督: 即使有 100% 的标签可用 (最后几行) ,P2R 也优于原始的 P2PNet,证明即使没有半监督方面,“区域”概念也优于严格的“点”匹配。

视觉验证

模型真的能产生更好的密度图吗?是的。

Figure 5. qualitative comparison with other models.

在图 5 中,你可以看到与 DAC 和 OT-M 相比,P2R (最后一列) 产生了更清晰、更准确的密度估计,特别是在非常密集的区域。

我们还可以看看 UCF-QNRF 数据集挑战性场景中的具体预测:

Figure 10. Visualization of P2R’s Prediction (# 1).

Figure 11. Visualization of P2R’s Prediction (#2)

该模型有效地处理了不同的尺度——从远处的人到前景中的大群人——并正确地忽略了复杂的背景结构。

PSAM 检查: 我们修复了“幻觉”吗?

回想一下在 P2P 半监督模型中看到的“过度激活”问题。让我们看看 P2R 训练模型 (Model-U_P2R,如下方橙色/红色所示) 的 PSAM。

Figure 7. The comparison of PSAMs among different training schemes.

图 7(a) 中,P2R 模型 (橙色线) 的激活急剧下降,类似于监督模型 (绿色) ,这与保持高位的失效 P2P 模型 (蓝色) 不同。 (b) 中的热力图证实了这一点: P2R 激活紧凑并集中在实际行人身上,有效地抑制了周围的噪声。


6. 结论: 从点到区域

这篇论文 “Point-to-Region Loss for Semi-Supervised Point-Based Crowd Counting” 发现了将基于点的检测应用于半监督学习时一个微妙但具有破坏性的缺陷。通过将行人检测视为严格的点匹配问题,传统损失在使用伪标签时无法监督背景,导致特征过度激活。

P2R 解决方案之所以优雅,是因为它更符合视觉现实:

  1. 物体占据空间 (区域) ,而不仅仅是单个像素。
  2. 监督背景 (知道哪里不是人) 与监督前景同样重要。

通过定义监督区域,P2R 允许置信度正确传播,稳定半监督训练,并通过抛弃匈牙利算法提供了巨大的速度提升。该方法为用最少的人工标注训练高性能人群计数器设定了新标准。