论文笔记:Switching Convolutional Neural Network for Crowd Counting
Switching Convolutional Neural Network for Crowd Counting
概要
该文章提出了一种人群计数模型,并实现了将密集人群图像映射至其密度分布的过程。密集人群计数问题的主要挑战在于人像相互遮挡、背景与人像相似度较高以及不同视角下的成像特性。此前表现优异的人群计数网络主要采用多尺度卷积神经网络(CNN)、循环神经网络(RNN)以及多列卷积神经网络(CNN)特征融合的方法来应对这些问题。作者创新性地提出了选择卷积神经网络switching convolutional neural network(Switch-CNN)来提升 crowd counting 的准确性,在具体实现上首先采用了多个卷积核尺寸不同的卷积神经网络(CNN)作为密度图预测的回归器,在此基础上再通过训练优化的一个选择分类器来对每张输入图像选取最优的 CNN 回归器,并将该分类器的结果作为最终预测值。
网络结构
Switch-CNN由三个结构各异的CNN网络模块以及一个专门选择最优网络模块进行集成分类系统构成。在处理每张输入图片时,在图像预处理阶段需要先将其分割为9个互不重叠的部分,并对每个部分进行独立分析处理。这一操作的主要目的是确保每个分割后的图像片段能够独立地反映单一密度特征、尺寸大小以及成像视角信息,并作为评估每个网络模块性能的标准单元进行后续优化计算。

CNN回归器采用了CVPR 2016 论文集《Single-Image Crowd Counting via Multi-Column Convolutional Neural Network》中的架构设计。其中,每一列均包含4个连续的卷积层和随后紧跟2个池化层,并且三个不同的卷积核尺寸分别配置。
该分类器采用了基于VGG-16架构的设计方案,并去除了原有的全连接层。取而代之的是替换了全局平均池化层global average pool(GAP),随后新增了两个较小型的全连接层以及一个 softmax 分类器。其结果即为最终需要选择的回归器。
真实密度图
数据集中标注的图像以离散点形式呈现,因此开发了一种将这些离散点转化为密度图像的方法。作者借鉴了CVPR2016论文中提出的几何适应核技术,在该方法中将高斯变换参数设定为基于标注点与其周围k个近邻区域的距离均值计算得出。这种设置能够较好地模拟不同视角下的空间分布特性。在人群密集区域中,作者采用了几何自适应的高斯核模型;而对于人口稀少的区域,则采用了传统的固定高斯变换方案。
训练
Switch-CNN的培训包含三个主要步骤:初步训练(pretraining)、差异性微调(differential fine-tuning)以及组合性联合微调(coupled joint fine-tuning)。在初步培训阶段中,在线学习算法首先独立地对每个CNN回归器分别进行微调优化;在此过程中所采用的损失函数是基于真实密度图与预测密度图之间的欧几里得距离计算得出

在差异性训练阶段之后,我们对每张训练图片通过已经被训练好的三个回归器产生的结果进行了综合评估,并选择了误差最小的那个回归器单独对其进行进一步优化。该流程最终实现了将所有待分类图像划分为三个独立的学习子集。每个子集则由相应的神经网络模型分别完成学习任务。从而,在分类准确的前提下,测试样本能够通过更适合其特征性质的特定回归器生成更为精细和精确的概率密度分布图。
下一步骤是开展模型训练工作。该系统采用基于VGG16架构设计而成的一个三类别分类模型,在差异学习阶段获得的学习结果基础上展开训练过程,并通过优化机制提升系统的识别能力。在模型构建过程中需注意各类别之间的样本均衡性问题,在此前提下采取随机抽样策略补充数据以增强模型泛化能力。
旨在提高训练效果,在交替的过程中进行差异性训练以及分类器的构建工作。这种操作被作者命名为集成学习流程。整个学习流程如下:

测试
评估标准是总人数的绝对平均误差和平方平均误差:


作者依次对ShanghaiTech数据集、UCF_CC_50数据集、UCSD数据集和WorldExpo'10数据集进行了评估,并获得了相应的评估结果。




为了探讨不同数量的回归器对测试效果的影响, 作者分别采用了单个三个和两个回归器的配置, 并将其结果显示在ShanghaiTech Part A上

实验中三个不同的分类器分别对应的图像类型:

