人群计数论文解读之《CrowdNet:A Deep Convolutional Network for Dense Crowd Counting》

 

前言

本篇博客介绍ACMMM2016发表的论文 CrowdNet 同样是非常早期的将深度学习应用于人群计数的工作。 注:正文包括笔者对原论文的翻译和自己的理解,请读者注意区分人称。


Abstract

我们的工作提出了一种新颖的深度学习框架,用于从高密度人群的静态图像中估算人群密度。我们使用深层和浅层全卷积网络组合预测给定人群图像的密度图。这样的组合用于有效地捕获高级语义信息(面部/身体检测)和低级特征(团块检测),这对于大规模变化下的人群计数是必需的。由于大多数人群数据集的训练样本有限(<100张图像),并且基于深度学习的方法需要大量的训练数据,因此我们进行了多尺度数据扩充。以这种方式增强训练样本有助于指导CNN学习尺度不变表示。我们的方法在具有挑战性的UCF_CC_50数据集上进行了测试,并显示出优于最新方法的结果。

Introduction

在这项工作中,我们提出了一种基于深度学习的方法,用于从静态图像估计人群密度以及人群数。在高度密集的场景(> 2000人)中对人群进行计数带来了各种挑战。 高度密集的人群图像会受到严重的遮挡,从而使传统的面部/人物检测无效。 由于图像采集自多种角度,带来了透视问题。 这导致人群的缩放比例不一致,因此必须使估算模型对于角度变化而言是比例不变的。 此外,与其他视觉问题不同,标注高度密集的人群图像是一项艰巨的任务。 这使得创建大规模人群计数数据集变得困难,并且限制了可用于基于学习的方法的训练数据量。 人工创造的图像特征(SIFT,HOG等)通常无法对遮挡和角度变化鲁棒。 我们的人群计数方法改为使用全卷积网络的深度学习方法。 我们使用浅层卷积和深层卷积组合解决了人群图像中的比例变化问题。 此外,我们通过从多尺度图像采样小块进行数据增强,使算法对尺度变化具有鲁棒性。 我们的方法在具有挑战性的UCF_CC_50数据集上进行了评估,并获得了最优的结果。

Method

Network Architecture

简要来讲,就是一个深网络和一个浅层网络concat起来。

Deep Network

把VGG-16的前三个pooling层保持不变,第四个pooling改为stride=1,第五个pooling去掉。另外还使用了空洞卷积。

Shallow Network

Combination of Deep and Shallow Networks

Concat两个branches的结果,用一个$1 \times 1$卷积生成结果。

Data Augmentation

  1. 解决人群图像中比例变化的问题,首先构建图像金字塔,然后从中切patch,
  2. 重复采样高密度patch.

    Experiments