本文主要是介绍Switching Convolutional Neural Network for Crowd Counting(CVPR2017)——论文笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Abstract
本篇论文主要做了以下三点:
- 端到端的switch-CNN来预测人群密度;
- Switch-CNN将人群照片的片段送入到独立的CNN回归网络来得到最小的估计错误和提高密度局部利用人群密度的变化率;
- 我们在三个通用数据集里测试网络的性能。
3 Our Approach
在这篇论文中,我们提出了一个选择CNN结构的网络,通过网络将一张图片分成各个片段(patches),然后通过switch分离器,将patches送到不同的独立的CNN回归网络。
这些独立的CNN回归网络选择不同的receptive fields 和 field-of-view作为multi-column CNN网络来提高参数的范围。
以红色方框圈住的图片patch为例,解释整个switch-CNN结构。该片段经过“SWITCH”到分类结果R3,所以将patch送到R3对应的CNN,从而得到对应的density map。
3.1. Switch-CNN
通过网格将输入图片分为9块patch。这样划分图片,人群的一些特点都能连续。
R1、R2和R3这三个网络使用的是论文《Single-Image Crowd Counting via Multi-Column Convolutional Neural Network》里面的CNN,它们有不同的receptive fields能够在图片中捕获不同尺寸大小的人。
R1第一层卷积层的过滤器的尺寸最大:9x9,这样能够捕获人群场景高维度的抽象特征,例如人脸、建筑物正面等。R2和R3第一层卷积层过滤器的尺寸分别为7x7和5x5.
SWITCH有以下两个部分组成:
- switch classifier;
- switch layer。
switch classifier是将VGG16网络的全连接网络层由平均池化层(global average pool——GAP)代替,然后在GAP后面接一个小的全连接网络和一个将结果分为3类的softmax层。
Ground Truth
我们通过使用高斯核模糊每一个人头的标注来生成我们的Ground Truth。然后将得到的density map求和得到的就是人群的数量。
求density map减少了训练CNN网络的难度,因为准确预测每一个人头的标注的难度已经通过预测人头大致的位置这个方法得到了减少。
上述的density map的高斯核所覆盖的范围是固定的。但是如果density map的变化很大,固定高斯核的spread参数的做法是不恰当的。所以我们根据人群密度的变化,使用geometry-adaptive
这篇关于Switching Convolutional Neural Network for Crowd Counting(CVPR2017)——论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!