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