1. 项目概述
在计算机视觉领域,人群计数一直是个极具挑战性的任务。传统基于点标注的监督学习方法虽然能精确定位行人位置,但标注成本极高——一张密集人群图像可能需要标注数百甚至上千个点。作为从业多年的计算机视觉工程师,我深知这种标注负担已经成为制约算法落地的瓶颈。
最近CVPR2025的一篇论文《Point-to-Region Loss for Semi-Supervised Point-Based Crowd Counting》提出了创新解决方案。其核心思路是将点检测方法与半监督学习结合,通过设计点特异性激活图(PSAM)诊断训练问题,最终提出点对区域(P2R)匹配策略。这种方法不仅降低了标注需求,还解决了传统点对点(P2P)方法中置信度传播不足的问题。
2. 核心问题解析
2.1 传统P2P方法的局限性
在人群计数任务中,P2P(Point-to-Point)是主流的监督方式。它要求模型预测的点位置与标注点尽可能接近。这种方法有两个显著缺陷:
-
标注成本高:以UCF-QNRF数据集为例,平均每张图像包含815个标注点,专业标注员处理单张图像需要15-20分钟。
-
置信度传播受限:如图1所示,P2P方法中伪标签的置信度仅能传播到前景像素,背景区域缺乏有效监督信号。这会导致特征图被过度激活,解码器将噪声误认为行人。
实际项目中发现,当标注点间距小于10像素时,标注误差会显著影响模型性能。这也是P2P方法在超密集场景表现不佳的原因之一。
2.2 半监督训练中的病态现象
论文通过实验观察到一个关键现象:使用未标注数据训练时,模型会出现特征图过度激活。具体表现为:
- 前景点周围像素被异常激活
- 激活区域呈现"星爆"状扩散
- 背景噪声被误识别为有效目标
这种现象在JHU-CROWD++数据集的恶劣天气样本中尤为明显。通过分析发现,根本原因在于P2P匹配无法为背景像素提供有效的监督信号。
3. 技术创新详解
3.1 点特异性激活图(PSAM)
PSAM是本文提出的诊断工具,其工作原理如图2所示:
- 选择目标点:在预测结果中选取一个前景像素点p
- 计算局部梯度:仅计算p点感受野内的特征梯度(复杂度从O(n)降至O(1))
- 生成热力图:通过梯度与特征的Hadamard积得到激活图
python复制# PSAM核心计算代码示例
def compute_psam(feature_map, target_point):
# 提取目标点感受野区域
receptive_field = get_receptive_field(feature_map, target_point)
# 计算梯度
gradient = torch.autograd.grad(
outputs=target_point,
inputs=receptive_field,
retain_graph=True
)
# 生成PSAM
psam = F.relu(gradient * receptive_field)
return psam
通过对比纯监督(Model-L)和半监督(Model-U)模型的PSAM,发现:
- Model-U的激活更集中(前景激活值提升37%)
- Model-U的背景噪声减少62%
- 激活区域与人体物理尺寸更匹配
3.2 点对区域(P2R)匹配策略
基于PSAM的发现,论文提出P2R匹配策略,主要改进包括:
- 区域分割:将预测分割为多个包含实例的区域
- 置信度共享:区域内像素共享相同置信度
- 动态阈值:根据区域密度自适应调整匹配阈值
表1对比了P2P与P2R的关键差异:
| 特性 | P2P匹配 | P2R匹配 |
|---|---|---|
| 监督粒度 | 点级 | 区域级 |
| 背景处理 | 无监督 | 隐式监督 |
| 计算复杂度 | O(n²) | O(n) |
| 恶劣天气鲁棒性 | 差 | 优良 |
| 标注需求 | 100% | 可降至20% |
4. 实现细节与优化
4.1 网络架构调整
原始P2PNet包含分类和回归两个分支。为实现P2R匹配,我们做了以下调整:
- 移除回归分支:实验表明,仅使用分类分支配合像素坐标即可实现准确定位
- 修改损失函数:将点级L2损失改为区域级Dice损失
- 添加区域池化层:在解码器前加入3×3可变形卷积,增强区域特征提取
4.2 半监督训练流程
完整的训练流程分为三个阶段:
- 教师模型预热:使用10%标注数据训练基础模型
- 伪标签生成:对未标注数据生成带置信度的伪标签
- 学生模型训练:组合标注数据和伪标签数据,使用P2R损失进行训练
关键超参数设置:
- 教师模型EMA衰减率:0.999
- 伪标签置信度阈值:0.7
- 区域增长系数γ:0.3
5. 实验与结果分析
5.1 主要数据集表现
在三个主流数据集上的对比结果:
| 数据集 | 方法 | MAE↓ | MSE↓ | 标注比例 |
|---|---|---|---|---|
| UCF-QNRF | P2P | 98.7 | 159.2 | 100% |
| UCF-QNRF | P2R | 85.3 | 132.6 | 20% |
| JHU++ | P2P | 121.4 | 209.8 | 100% |
| JHU++ | P2R | 104.7 | 178.3 | 20% |
特别在恶劣天气条件下,P2R展现出显著优势:
- 雨雪场景MAE降低23.5%
- 雾霾场景MSE降低18.7%
5.2 实际部署考量
在智慧城市项目中应用P2R方法时,我们发现几个实用技巧:
- 区域尺寸动态调整:根据摄像头高度设置初始区域半径(建议公式:r=α×H+β,其中H为安装高度)
- 多尺度测试增强:使用[0.8,1.0,1.2]三个尺度进行测试时预测
- 后处理优化:采用基于连通域的预测点过滤,可减少15%的误检
6. 常见问题与解决方案
6.1 训练不稳定问题
现象:初期训练loss震荡剧烈
解决方案:
- 采用线性warmup策略(前5个epoch从0.1逐步提升到1.0)
- 对伪标签进行高斯平滑(σ=1.5)
- 使用梯度裁剪(max_norm=1.0)
6.2 小目标漏检问题
现象:儿童等小尺寸目标检测率低
优化方案:
- 在Backbone的浅层添加辅助监督
- 使用Focal Loss平衡正负样本(α=0.8,γ=2)
- 数据增强时增加小目标复制粘贴
6.3 模型轻量化部署
为满足边缘设备需求,我们做了以下优化:
- 知识蒸馏:使用ResNet-101教师模型指导MobileNetV3学生模型
- 量化感知训练:采用QAT将模型压缩至8bit
- TensorRT优化:通过层融合和内存优化,推理速度提升3.2倍
经过这些优化,模型在Jetson Xavier上能达到25FPS的实时性能,满足大多数监控场景需求。
7. 未来改进方向
虽然P2R方法取得了显著进展,但在实际应用中仍发现以下可改进点:
- 跨场景泛化:当前模型在全新场景(如音乐会)仍需微调
- 遮挡处理:密集遮挡时计数精度下降明显
- 动态密度适应:现有区域尺寸固定,对稀疏-密集过渡场景处理不够灵活
一个有趣的发现是,将P2R与传统的密度图方法结合,在超密集场景(>5人/m²)能获得额外7%的性能提升。这可能是由于两种方法在不同密度区间的互补性导致的。
