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

Switching Convolutional Neural Network for Crowd Counting CVPR2017 https://github.com/val-iisc/crowd-counting-scnn

针对人群密度估计问题提出了一个 Switch-CNN网络,大的思路就是根据图像块的内容信息来选择合适的CNN网络进行人群密度估计 首先将图像分成3*3=9 个图像块,然后使用一个 CNN网络对每个图像块进行分类,看它适合使用哪个CNN网络来进行密度估计,这里提供了3个CNN网络来进行密度估计。

对于图像中的人群密度,有的区域密度大,有的区域密度小,这里我们对图像进行分块处理

Switch-CNN

这里的三个CNN网络设计R1,R2,R3 和 文献【19】中的 MCNN 是一样的。 对于 switch classifier 我们以 VGG16网络为基础

Switch-CNN 的训练步骤如下所示

Ground Truth 我们采用和 文献【19】一样的方法生成密度真值图,使用 Gaussian geometry-adaptive kernels

Switch-CNN 的训练包括三个步骤: pretraining, differential training and coupled training 3.2. Pretraining 就是对三个 CNN regressors R 1 through R 3 进行独立的训练, regress density maps,每个网络的训练都是在所有训练数据上进行的。 3.3. Differential Training differential training generates three disjoint groups of training patches and each network is finetuned on its own group. The regressors R k are differentially trained until the validation accuracy plateaus. 这里我们将训练图像块进行分为三类,对应三个CNN网络需要的训练数据,然后再对每个CNN网络使用对应的数据集合进行微调

3.4. Switch Training The classifier is trained on the labels of multichotomy generated from differential training

3.5. Coupled Training we co-adapt the patch classifier and the CNN regressors by training the switch and regressors in an alternating fashion

4 Experiments

ShanghaiTech dataset

UCF CC 50 dataset

UCSD crowd-counting dataset WorldExpo’10 dataset

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1211
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1856
来自专栏项勇

笔记68 | 切换fragmengt的replace和add方法笔记

1524
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3215
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1260
来自专栏后端之路

LinkedList源码解读

List中除了ArrayList我们最常用的就是LinkedList了。 LInkedList与ArrayList的最大区别在于元素的插入效率和随机访问效率 ...

21110
来自专栏拭心的安卓进阶之路

Java 集合深入理解(12):古老的 Vector

今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相...

2547
来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

1242
来自专栏开发与安全

算法:AOV网(Activity on Vextex Network)与拓扑排序

在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex ...

3987
来自专栏刘君君

JDK8的HashMap源码学习笔记

3298

扫码关注云+社区