人群计数--Cross-scene Crowd Counting via Deep Convolutional Neural Networks

Cross-scene Crowd Counting via Deep Convolutional Neural Networks CVPR2015

本文主要使用深度学习来完成跨场景人群计数 cross-scene crowd counting,简单的说就是在多个场景训练,在没有训练过的场景测试。 我们建立了一个新的人群计数方面的数据库 http://www.ee.cuhk.edu.hk/~xgwang/expo.html

3 Method 3.1. Normalized crowd density map for training 我们的人群CNN模型主要目标是学习一个映射 F: X-> D,其中 X 是一组从训练图像中提取的 low-level 特征, D 是图像对应的人群密度图。假定每个人的位置被标记,密度图的创建基于 人的空间位置、人体形状、图像的视角变形。从训练图像中随机的选择图像块作为训练样本,图像块对应的密度图作为 CNN模型的真值。 作为一个附带的目标,所选图像块中总的人数通过对密度图积分计算得到。注意这里得到的总人数是一个小数,不是整数。

大多数研究按照文献【12】定义密度图真值为 物体位置上的一组高斯核的和。 这种类型的密度图适用于圆形的物体如 cells and bacteria。但是将他用于人群则不是很合适,因为这种监控相机不是 bird-view,下图就是监控相机拍摄到的一张图像:

从上图我们可以看到三个特征: 1)因为视角原因,图像中的人是多尺度的。 2)人的形状更符合椭圆 3)因为严重的遮挡,人的头和肩膀是主要信息用于判断某个位置是否有人存在,人的躯干不是很稳定的信息 综上所述, the crowd density map is created by the combination of several distributions with perspective normalization

Perspective normalization 是怎么做的了? 受文献【4】启发,对每个场景,我们随机的选择几个成年人,从头到脚标记,假定成年人的平均身高为 175cm。 perspective map M 可以通过线性回归近似,如上图 a 所示, perspective map M(p) 像素值表示 在位置 p 实际场景一米对应的图像有多少个像素个数 The pixel value in the perspective map M(p) denotes that the number of pixels in the image representing one meter at that location in the actual scene

有了 perspective map 和人头的位置信息,我们可以用下面的公式创建 人群密度图

crowd density distribution kernel 包含两个部分,一个对应头部 normalized 2D Gaussian kernel ,一个对应躯干 body part bivariate normal distribution

3.2. Crowd CNN model

网络的输入是从训练图像中随机裁的图像块,为了获得行人的相同尺度,根据图像块中心点对应的 perspective value 来 选出的 图像块位置。这里我们约束我们的每个图像块覆盖的实际尺寸为 3m*3m ,然后图像块被缩放到 72*72 像素大小 输入 CNN 模型。

我们的 CNN 网络结构如下

3个卷积层 3个全连接层。第一个卷积层有 32个 7×7×3 滤波器,第二个卷积层 32个 7×7×32 滤波器,第三个卷积层有64个 5 × 5 × 32 滤波器。第一第二卷积层后面各用一个 2 × 2 最大池化,卷积和全连接层都使用 Rectified linear unit (ReLU) 激活响应函数。

这里我们交替优化 密度图估计任务和人数估计任务,我们的损失函数定义如下:

switchable training procedure

4 Nonparametric fine-tuning for target scene 我们需要在目标场景上进行微调,因为每个场景都有其特有的属性 bridge the distribution gap between the training and test scenes

a data-driven method is proposed to select samples from the training data to fine-tune the pre-trained CNN model adapting to the unseen target scene 这里我们根据使用数据驱动的方法从训练数据中选择一些样本来微调用于目标场景检测的 CNN模型,挑出和 test scene 相似的 图像块来微调 CNN模型。主要通过下面两个步骤来完成: candidate scenes retrieval and local patch retrieval

4.1. Candidate scene retrieval 场景中的 视角和尺度是影响人群外观的主要因素。 perspective map 可以同时表征 view angle and the scale,为了克服不同场景对应不同的尺度,每个图像块被归一化到同一个尺度,根据 perspective map 图像块 覆盖实际场景中的 3m*3m 正方形区域。所以微调的第一步就是从 训练图像中选择与 target scene 类似的 perspective map 的图像块作为微调用的训练数据,这些选出来的scenes叫做 candidate fine-tuning scenes。我们设计了一个 perspective descriptor 来表征每个场景的视角。因为 perspective map 和 y 轴是线性关系的,我们使用 垂直梯度 做为 perspective descriptor。

基于这个 perspective descriptor,对于每个unseen的目标场景, 从整个训练数据库中挑出 perspective-map 最相似的前20个 scenes, 这些 scenes作为 candidate scenes 用于图像块提取。

4.2. Local patch retrieval 第二步是从 candidate scenes 挑选出 和 test scene 有类似的 人群密度分布的图像块,除了视角和尺度,人群密度分布同样影响人群的外观显示。高密度的人群对应更严重的遮挡,而稀疏密度的人群,可以看到行人的完整躯干。所以我们尝试去预测 目标场景的密度分布,从candidate scenes 提取有类似密度分布的图像。例如一个高密度人群的场景,有密集人群的图像块应该被用于微调CNN网络。

这里我们使用 预训练的CNN模型来对目标场景图像的每个图像块进行预测密度和人数估计。这里假定经过预训练模型,有相似密度的图像块的人数也是大致一样的。有了这个预测结果,我们可以计算 目标场景的密度分布直方图。有了目标场景密度分布直方图,我们可以从retrieved training scenes 选择图像块使其具有类似的密度分布直方图,那么用这些图像块微调CNN模型 就可以模拟使用目标场景的图像进行训练了。

patches are randomly selected from the retrieved training scenes and the number of patches with different densities are controlled to match the density distribution of the target scene

5 Experiment Statistics of three datasets

Mean absolute errors of the WorldExpo’10 crowd counting dataset

UCSD dataset

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云时之间

关于分类问题的一些学习

这几天的时间里看了一下关于分类算法的一些知识,趁热打铁写下博客来拯救下记忆力不好的自己,话不读多说,马上开始! 先说一下前提的题设条件.假设我们现在有了一封邮...

2425
来自专栏小小挖掘机

IJOC“考虑聚合多样性的可扩展优化推荐系统”论文解析

本文是针对发表在《INFORMS Journal on Computing》上的一篇论文 “Incorporating Aggregate Diversity...

2403
来自专栏小小挖掘机

推荐系统遇上深度学习(二十一)--阶段性回顾

本系列已经写了二十篇了,但推荐系统的东西还有很多值得探索和学习的地方。不过在这之前,我们先静下心来,一起回顾下之前学习到的东西!

1383
来自专栏PPV课数据科学社区

【学习】K-means聚类算法

背景 K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这个算法是在学习韩爷爷那本数据挖掘的书中,那本书比较注重应用。看...

2627
来自专栏林欣哲

科个普啦--深度学习

深度学习是现在最火的AI技术之一,其基本原理就是构建一张含有多层的神经元网络,经过带有标签的数据的训练后,将这张网络拟合出符合问题解的函数。 深度学习之三步走:...

2979
来自专栏机器学习、深度学习

人群密度估计--CrowdNet: A Deep Convolutional Network for Dense Crowd Counting

CrowdNet: A Deep Convolutional Network for Dense Crowd Counting published in ...

2248
来自专栏智能算法

分类算法之朴素贝叶斯分类(Naive Bayesian classification)

如果用一句话来概括贝叶斯分类器,那就是:根据样本集中的先验信息,来推算出某一个样本属于某一类的概率,然后根据推算出来的结果将该样本分为某类 。贝叶斯分类是一类分...

34012
来自专栏奇点大数据

Pytorch神器(6)

作者介绍:高扬,奇点大数据创始人。技术畅销书《白话大数据与机器学习》、《白话深度学习与Tensorflow》、《数据科学家养成手册》著书人。重庆工商大学研究生导...

1133
来自专栏专知

【重温经典】吴恩达课程学习笔记二:无监督学习(unsupervised learning)

【导读】前一段时间,专知内容组推出了春节充电系列:李宏毅2017机器学习课程学习笔记,反响热烈,由此可见,大家对人工智能、机器学习的系列课程非常感兴趣,近期,专...

4005
来自专栏AI科技评论

干货 | 浙大博士生刘汉唐带你回顾图像分割的经典算法

AI科技评论按:图像语义分割是 AI 领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。近年的自动驾驶技术中,也需要用到这种技术。车载摄像头探查到图...

3415

扫码关注云+社区