论文贡献:

  • 提出了一种新颖的通用CNN架构Switch-CNN,用于预测人群场景的人群密度。
  • Switch-CNN将人群patches从人群场景映射到独立的CNN回归器,以最大程度地减少计数误差并利用场景内的密度变化来提高密度定位。
  • 在主要人群计数数据集上,包括ShanghaiTech数据集,UCF CC 50数据集和WorldExpo’10数据集上,我们的方法都表现良好。

Approach

在本文中,我们考虑switching CNN架构(switch -CNN),该架构将人群场景中的网格补丁传递给基于switch分类器的独立CNN回归器。与在多列CNN网络中一样,选择具有不同接收场和视场的独立CNN回归器,以增强对大型变化建模的能力。如果一个特定的CNN回归器在一个人群场景patch上的表现最好,那么这个回归器就会在这个patch上训练一个特定的CNN回归器。switch分类器与多个CNN回归器交替训练,正确地将一个patch传递给一个特定的回归器。该模型用于人群分析的显著特点是:(1)对大c尺度变化进行建模的能力(2)在人群场景中利用局部密度变化的能力。利用局部密度变化的能力很重要,因为在多列网络中用于融合特征的加权平均技术是全局的。

1. Switch-CNN

我们提出的Switch-CNN结构包含三个结构不同的CNN回归器和一个为输入人群场景patch选择最优回归器的switch分类器,如图2所示。

输入图片被分为9个不重叠的patches,对于这样的图像划分,可以假设人群场景的一个给定patch中的密度、外观等人群特征是一致的。将patch作为输入输入到网络中,可以帮助CNN回归器独立地回归图像的不同区域,该回归器最适合于patch中的人群的密度、背景、尺度和视角变化等属性。我们使用[19]中的回归器R1到R3在switc -CNN中预测人群的密度。这些CNN回归有不同的接受域,可以捕捉不同规模的人。R1-R3的结构是类似的,四个卷积层和两个池化层。R1有一个大的9×9的初始过滤器大小,它可以在场景中捕获高层特征,如人脸、城市立面等。在R2和R3中,初始滤波器大小分别为7×7和5×5,以较低的尺度捕获人群,检测斑点状特征。

patch使用一个switch被传入一个回归器里。这个switch包括一个switch分类器和一个switch层。switch分类器推断patch要传递到的回归器的label。switch layer获取从switch分类器推断出的label,并将其传递给正确的回归器。例如,在图2中,switch分类器将用红色突出显示的patch传递到R3中,这个patch有比较高的人群密度。Switch将其传递给接受域较小的R3回归器:非常适合检测具有高人群密度斑块特征。我们使用VGG16[11]网络作为switch分类器进行3路分类。除去VGG16最后的全连接层,我们对Conv5特征使用全局平均池(GAP)来去除空间信息和聚集判别特征。GAP之后是一个较小的全连通层和3类softmax分类器,对应于Switch-CNN中的三个回归网络。

Ground Truth我们使用几何自适应高斯核来生成ground truth密度图。密度图减轻了CNN回归的难度,因为预测头部标注的准确位置的任务简化为预测一个粗略的位置。在上面的密度图中,高斯分布是固定的。然而,当人群密度变化较大时,由固定扩散高斯分布产生的密度图是不合适的。我们使用几何自适应核[19]来改变高斯分布的参数依赖于当地的人群密度。它根据距离k最近的邻近头部标注的平均距离来设置高斯分布。这使得在人群场景中,稠密人群的高斯模糊度较低,稀疏密度区域的高斯模糊度较高。在我们的实验中,我们同时使用这两种方法来生成ground truth密度图。采用几何自适应核的方法,对人群密集、场景间计数变化大的数据集生成地面真实密度图。利用固定扩散高斯方法生成的密度图对具有稀疏人群的数据集进行训练。Switch-CNN的训练分为三个阶段,即sec2 - 5中描述的pretraining, differential training and coupled training(预训练、差分训练和耦合训练)。

2. Pretraining

分别对三个CNN回归器R1-R3进行预处理,得到回归密度图。预训练有助于学习良好的初始特征,从而改进以后的细化阶段。每个CNN回归器都用欧式距离作为损失进行训练,使用SGD优化器。

3. Differential Training

在differential training阶段,每一张训练patch都经过三个回归器得到三个计数结果,然后选取和真实count误差最小的一个回归器再训练一次,反向传播更新对应回归器的参数。这一个过程使得所有的训练patch根据再每个回归器上的预测效果被分为三组,每组由一个网络进行拟合,使得测试图片在分类正确的情况下可以由更符合图片特征的回归器计算出更精确的密度图像。

4. Switch Training

接下来的步骤是训练switch分类器,switch是一个基于VGG16的三分类分类器,依据differential training阶段得到的分类结果进行训练,使得switch分类器能够将更多的图片patch分给正确的回归器。在这个过程中可能会导致某个分组的patch数量较少,所以需要对数量较少的分组进行随机取样扩充训练样本。

5. Coupled Training

为了提升训练效果,differential training和训练分类器的过程交替进行,也就是coupled traing。

下面是整体的训练过程。

Experiments

Analysis

最后是作者的一些分析,首先作者做了一个消融实验来证明了选择R1-R3三个回归器的效果是最好的。

下图是三个回归器选择出的图片patch,发现从R1到R3选择出的patch的人群密度是由小到大的。

最后作者用手工聚类的方法和differential training方法进行了对比。这个表里面,第一行是作者根据patch的人数手工聚类为三组数据之后分别进行训练的结果,第二行是根据人头之间的距离手工聚类之后的结果,最后证明了还是switch CNN的方式效果最好。

【论文笔记】Switching Convolutional Neural Network for Crowd Counting相关推荐

  1. 人群计数--Switching Convolutional Neural Network for Crowd Counting

    Switching Convolutional Neural Network for Crowd Counting CVPR2017 Code for SCNN is based on Lasagne ...

  2. Switching Convolutional Neural Network for Crowd Counting-论文笔记

    Switching Convolutional Neural Network for Crowd Counting:用于人群计数的转换卷积神经网络 Switching Convolutional Ne ...

  3. 2017_Switching convolutional neural network for crowd counting

    Switching convolutional neural network for crowd counting 说明 概括 一.Switch-CNN简介 二.CrowdNet[2]和MCNN[3] ...

  4. 快速人群密度估计--Multi-scale Convolutional Neural Networks for Crowd Counting

    Multi-scale Convolutional Neural Networks for Crowd Counting https://arxiv.org/abs/1702.02359 对于人群密度 ...

  5. 《Multi-scale Convolutional Neural Networks for Crowd Counting》论文笔记

    Multi-scale Convolutional Neural Networks for Crowd Counting 论文地址 论文翻译 ABSTRACT 1. INTRODUCTION 2. M ...

  6. 人群场景分析--Slicing Convolutional Neural Network for Crowd Video Understanding

    Slicing Convolutional Neural Network for Crowd Video Understanding CVPR2016 http://www.ee.cuhk.edu.h ...

  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network

    台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...

  8. 论文 | An Efficient Convolutional Neural Network for Coronary Heart Disease Prediction

    文章目录 论文信息 ABSTRACT 问题 解决 方法 效果 1. Introduction 2. Data Processing 3. Proposed Architecture 3.1 LASSO ...

  9. 论文笔记:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

    前言 初代频域GCN简单粗暴的将diag(g^(λl))diag(\hat{g}{(\lambda_l)})diag(g^​(λl​))变成了卷积核diag(θl)diag(\theta_l)diag ...

  10. 【论文笔记】Convolutional Neural Networks for Sentence Classification

    Model \(x_i\in{\mathbb{R}^k}\) :第\(i\)个词的\(k\)维词向量表示 经过padding后长度为\(n\)个句子被表示为\(x_{1:n}\), 形状为\(n\ti ...

最新文章

  1. poj 1269 计算几何
  2. 改变窗口背景_办公软件操作技巧063:如何设置ppt母版背景
  3. ProE常用曲线方程:Python Matplotlib 版本代码(蝴蝶曲线)
  4. 官宣!多所高校,整体搬迁!
  5. Leading and Trailing LightOJ - 1282
  6. System Toolkit for Mac(系统维护工具)
  7. linux访问samba命令,smbclient命令
  8. 计算机科学研究算法的局限性,计算机科学中若干难解问题的量子算法的分析.pdf...
  9. protel 99se 负片打印
  10. zynq7000从emmc启动,使用ext4文件系统
  11. Python入门之函数调用
  12. TDS水质及电导率计算方法及电路程序设计
  13. 输入一个年份和一个月份,输出该年该月有多少天
  14. [Python]使用QRCode生成彩色二维码
  15. 如何调教ChatGPT
  16. 焱融科技与趋动科技携手解决一站式存算难
  17. [回炉计划]当输入xxxxhub的时候,居然是这样
  18. 2021春深入理解计算机系统大作业---hello的一生
  19. LeetCode: 953. 验证外星语词典
  20. 学术英语/专业英语——基本结构及特点

热门文章

  1. 核心交换机和普通交换机有何区别?
  2. pinterest,图片网站的传奇
  3. 附录1. DXF组码说明
  4. 给JAVA做个类VS的拖放式界面设计工具
  5. Scrapy爬虫入门教程十 Feed exports(导出文件)
  6. 华为云HECS,集智纳简优化配置,畅享一站式使用场景
  7. 新生儿小名大全:农历三月出生的女孩小名
  8. 汇佳学校|牛畅:帕森斯摄影专业,累计130万奖学金,我用照片沉淀时间
  9. 简书项目实战-main首页开发
  10. 初步搭建 prometheus+ Grafana服务器性能监控平台