Generating High-Quality Crowd Density Maps using Contextual Pyramid CNNs
参考:
CP-CNN,设计了两个网络分别用于提取全局上下文信息和局部上下文信息,设计了一个类似mcnn的多列cnn用于将输入数据映射到一个高维度的特征图,将之前提取到的上下文信息和高维特征图融合在一起,输入最后的融合网络,由最后的融合网络生成最终的密度图.
我们提出了一个新颖的方法,称为上下文金字塔神经网络,通过结合全局的上下文信息和局部的上下文信息来生成高质量的人群密度图和人数估计.
CP-CNN包含了四个模块,全局上下文预测器(GCE),局部上下文预测器(LCE),密度图预测器(DME)以及一个融合网络(F-CNN).
VGG-16
的神经网络,通过解析全局的上下文信息将输入图片分成不同密度等级.当今社会,人群密度估计被广泛估计.
现有的基于CNN的方法运用了不同的多尺度结构,在人群密度估计上取得了巨大的成功.但这些方法在人群低密度和高密度的情况下,估计的误差都比较大.如Figure 2所示.
考虑到上述问题,我们提出将上下文信息加入学习过程,以提高密度图的质量.
由于在DME中使用最大池化层会导致低分辨率的密度图,F-CNN被设计成使用一系列的小数步长卷积层(解卷积层)来提高分辨率,从而产生高质量的密度图.同时损失函数使用了对抗损失和像素级欧氏损失的组合.对抗性损失的使用帮助我们克服了通过将欧几里得损失最小化而获得的模糊结果的问题。
总的来说,我们的主要的贡献为:
CP-CNN的结构如Figure3所示,包含了GCE, LCE, DME,F-CNN四个模块.
GCE和LCE用于提取输入图像的全局和局部的上下文信息,并和DME生成的高维特征图融合在一起输入F-CNN,最后由F-CNN生成高质量的密度图.
如前面所述,现有的多尺度,多列方法在低密度和高密度的情况下会产生错误的估计,我们相信加入全局的
的上下文信息能改善这种情况.为达到这种目的,我们考虑通过学习图片的全局上下文信息,来将输入图片分成五类:极低密度(ex-lo),低密度(lo),中等密度(med),高密度(hi),极高密度(ex-hi).
Note:不同的数据集需要的密度类别数量不同,尺度变化多的会需要更多的密度类别,但是我们发现仅适用五类就可以明显提升密度图估计效果.
我们微调了VGG-16
来完成分类任务,GCE的结构如Figure4所示,我们保留了VGG-16
的所有卷积层,用新的全连接层替换掉了最后的三个全连接层来完成分类任务.后面两个卷积层参数被微调,其他卷积层参数固定不变。
当前的人群密度估计方法更侧重于降低人群总数估计的误差,所以它们的人群密度图质量相对降低,我们相信某些局部的上下文信息能够帮助我们提升密度图质量。和 GCE 思路类似,这里我们使用一个 CNN网络将图像根据其人群密度分为5类, {ex-lo, lo,med, hi, ex-hi} ,LCE的结构如Figure5.包括一系列的卷积层和最大池化层,然后是三个全连接层,在前两个全连接层之后加入了适当drop-out层,最后一个全连接层之后跟着一个sigmoid层,其他所有卷积层和全连接层都跟着RELU层.
我们使用类似MCNN的多列网络结构,并使用了更深的网络,修改了卷积核的尺寸和个数.DME将输入图片映射到高维的特征图,而不是直接生成密度图.网络细节如Figure 6 所示.
注意:不同的数据集的人头尺寸不同,卷积核需要进行相应的修改,下面网络是针对所有数据集,并不是最佳的解决办法.
在DME中使用最大池化层(这对于实现平移不变性是必不可少的),导致了变小的特征图和细节的丢失.为了生成高分辨率高质量的密度图,F-CNN使用了一系列卷积层和小数步长卷积层,小数步长卷积层帮助我们重建密度图的细节.
F-CNN的结构为:CR(64,9)-CR(32,7)-TR(32)-CR(16,5)-TR(16)-C(1,1),C:卷积层,R:relu层,T:小数步长卷积层(反卷积层),小数步长卷积层保证了输入和输出的大小相同.
上下文预测网络(GCE,LCE)预先训练,DME和F-CNN采用端到端的训练方式.为了弥补L2损失的模糊效果,我们加入了对抗损失,F-CNN和DME的损失函数定义如下:
L T L_T LT:总的损失, L E L_E LE:L2损失, L A L_A LA:对抗损失.X是W x H的输入图像,Y是ground truth密度图.
φ φ φ是DME和F-CNN网络, φ D φ_D φD:用于计算对抗损失的判别器网络.其结构为: CP(64)-CP(128)-M-CP(256)-M-CP(256)-CP(256)-M-C(1)-Sigmoid,C:卷积层,P:PRelu层,M:max-pooling层.
VGG-16
,所以输入图片被resize成224x224,LCE用64x64的patch训练,训练的ground truth种类由图片的人数决定.GCE,LCE都使用交叉熵损失.全局上下文信息 F g c i F^i_{gc} Fgci由以下方法生成:
效果图: