人群计数 ICCV2019 Crowd Counting with Deep Structured Scale Integration Network (DSSINET)

Crowd Counting with Deep Structured Scale Integration Network

概述

  本文介绍了ICCV 2019中的Crowd Counting with Deep Structured Scale Integration Network一文。
  由于人群计数的数据中,人群的数目存在着较大的变化,因此一种做法是提炼图片不同尺度的特征进行融合,但在人群计数中许多的做法仅仅是对主干网络不同层级的特征进行融合。而这篇文章中使用了多个子网络,使用不同尺寸的图片作为输入来得到不同尺度的特征,对这些特征又提出了使用CRF来融合。

网络结构

  网络结构如下图所示,backbone依然采用VGG16,而值得注意的是,网络由三个子网络组成,每个子网络输入图片的大小分别为原图的2倍,原大小和0.5倍大小。不同大小的图片通过不同数量的下采样子模块,在输入SFEM结构时,特征具有相同大小的尺寸。
人群计数 ICCV2019 Crowd Counting with Deep Structured Scale Integration Network (DSSINET)_第1张图片
  网络中创新的部分主要在SFEM模块中,它将两个子网络的特征作为输入,融合后的特征作为输出。融合的过程借鉴了CRF的思想。由势函数:
φ ( f ^ i , f ^ j ) = ( f ^ i ) T w j i f ^ i \varphi (\hat{f}_{i},\hat{f}_{j})=(\hat{f}_{i})^{T}w_{j}^{i}\hat{f}_{i} φ(f^i,f^j)=(f^i)Twjif^i
  可转换为:
f ^ i = f i + ∑ j ≠ i w j i f ^ i \hat{f}_{i}=f_{i}+\sum_{j\neq i}^{ }w^{i}_{j}\hat{f}_{i} f^i=fi+j=iwjif^i
  其中的 w j i w^{i}_{j} wji可看做是将特征 f j f_{j} fj传向 f i f_{i} fi的参数。虽然看起来很复杂,但实际中文章只是简单使用了1*1的卷积,将i特征投影到j,反之也将j特征投影到i,然后与两条支路原本的特征相加,再将得到的特征进concat与之前上采样的输入结合作为M0,M1等子图。
  将M0,M1等和对应的GT密度图输入到一个多层的参数固定的空洞卷积网络层(DMS-SSIM network)中,这个卷积层就是一个归一化高斯核,从这个网络中输出的特征来计算SSIM LOSS。空洞卷积的作用是获取更大感受野内的信息。
人群计数 ICCV2019 Crowd Counting with Deep Structured Scale Integration Network (DSSINET)_第2张图片

实验结果

  实验中,从图片中随机裁剪出224*224大小的子图作为输入,batch size为16,使用Adam作为优化器。这个网络在多个数据集上的表现都非常优异:
人群计数 ICCV2019 Crowd Counting with Deep Structured Scale Integration Network (DSSINET)_第3张图片
  这篇文章还是颇具创新点的,使用了多个尺寸的图片作为输入来得到多尺度的特征。利用CRF的思想来结合特征,也提出了利用空洞卷积来计算SSIM LOSS,这一思路与风格迁移中的损失有些许相近的意味。作者也开源了代码。

源代码

论文地址

下一篇:人群计数 ICCV2019 Adaptive Density Map Generation for Crowd Counting (ADMG)

上一篇:人群计数 AAAI2019 Almost Unsupervised Learning for Dense Crowd Counting(GWTA-CCNN )

你可能感兴趣的:(深度学习,人群计数)