人群密度估计 CrowdCount
最近在看人群密度估计方面的东西,把博客看到的一些方法简单总结一下,后续继续添加。
1.论文《CrowdNet: A Deep Convolutional Network for DenseCrowd Counting》2015CVPR
论文采用了两个网络(3x3和5x5)的融合,可以理解为不同的网络提取的特征不同,上面 Max Pool 对边缘特征(细节)提取较好,下面的 Shallow Net 采用 Avrg Pool 对于整体特征描述较好,两个网络通过一个 concat 进行连接,然后1*1的conv进行降维。
实验结果表明多个网络进行融合的方法要比单一的网络融合效果要好。
网络架构为:
论文地址:https://arxiv.org/pdf/1608.06197v1.pdf
github地址:https://github.com/davideverona/deep-crowd-counting_crowdnet
2.论文《Single-Image CrowdCounting via Multi-Column Convolutional Neural Network》2016CVPR
论文也采用的是多个网络架构融合的思想,分成(5x5,7x7,9x9)三种网络结构,最后再融合三个网络的特征图,论文在各个数据集上都取得了state-of-the-art的效果。
多列架构的原因是:三列对应于不同大小的感受野(大,中,小),使每个列卷积神经网络的功能对由于透视或不同的图像分辨率造成的人/头大小变化是自适应的(因此,整体网络是强大的)。
网络架构为:
github地址(非官方):https://github.com/svishwa/crowdcount-mcnn
简单梳理一下论文中2. Multi-column CNN for Crowd Counting关于生成密度图时采用脉冲函数卷积高斯核的方式来定义密度图。假设标注点的位置为xi,那么具有N个头的标签可以被表示为:
这里把它与高斯函数做卷积变成一个连续的函数。但是这种密度函数假设每个xi在图像空间中是独立的。然而事实上,每个xi是在3D场景中一个人群密度的样本,并且由于透视失真,不同样本xi相关的像素与场景中区域的不同尺度一致。于是为了精确估计群体密度,需要考虑透视变换。如果假设在一个人头区域的周围,人群的密度是均匀的,它的最近邻给出了一个对于几何形变的合理的估计。 为了使得密度图能够更好地与不同视角(不同人头大小)且人群很密的图像对应起来,作者对传统的基于高斯核的密度图做了改进,提出了基于几何适应高斯核的密度图,由下式表示:
(通俗理解就是:密度图是由delta脉冲函数与一个高斯函数卷积得来,这里先卷积再求和。)
注:其实delta函数是一个简单的脉冲函数,在范围内积分求和值为1,N个人头再求和即得N个人头的标签;
对于每一个人头的xi点,给出了k个近邻距离的的平均值di,于是,与xi相关的像素对应于场景中地面上的一个区域,这个区域的半径与di成正比。于是,为了估计像素xi周围的人群密度,为我们需要把H(x)卷积一个自适应的高斯核的,这个高斯核的的方差σi是可变的并且和di成比例。
总结就是把标签H和一个自适应核的高斯核函数进行卷积,这个高斯核函数的方差为β与xi的K个最近邻平均距离的乘积。在程序中的体现就是从ground truth中提取xi点,做高斯卷积,高斯卷积的sigma是K=2时近邻的平均距离。
(原文内容:Interesting we found that usually the head size is related to the distance between the centers of two neighboring persons in crowded scenes.所以实验中K=2.)
3.论文《Switching Convolutional Neural Network for Crowd Counting》2017CVPR
针对人群密度估计问题提出了一个 Switch-CNN网络,大的思路就是根据图像块的内容信息来选择合适的CNN网络进行人群密度估计。
首先将图像分成3*3=9 个图像块,然后使用一个 CNN网络对每个图像块进行分类,看它适合使用哪个CNN网络来进行密度估计,这里提供了3个CNN网络来进行密度估计。
对于图像中的人群密度,有的区域密度大,有的区域密度小,这里我们对图像进行分块处理。
Switch-CNN网络架构:
这里的三个CNN网络设计R1,R2,R3 和 第二篇CVPR2016年论文中的 MCNN 是一样的。 对于 switch classifier 我们以 VGG16网络为基础
github地址:https://github.com/val-iisc/crowd-counting-scnn
看到一篇非常nice的博客:http://m.blog.csdn.net/u011285477/article/details/51954989
人群密度估计 CrowdCount的更多相关文章
- 人群密度检测MCNN+CSRnet
MCNN(简单理解): 三列卷积神经网络,分别为大中小三种不同尺度的卷积核,表示为L列(使用大尺度卷积核: 9*9, 7*7, 7*7,7*7), M(使用中等尺度卷积核: 7*7, 5*5, 5*5 ...
- MCNN多层神经网络论文笔记
论文原文 https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Zhang_Single-Image_Crowd_Coun ...
- 跑caffe过程中的备忘
1*1卷积比如一张500*500且厚度depth为100的图片在20个filter上做1*1卷积,那么结果大小为500*500*20 只有池化改变图片的大小 一个大的全连接层可以理解为一个神经网络,这 ...
- 【转】用深度学习做crowd density estimation
本博文主要是CVPR2016的<Single-Image Crowd Counting via Multi-Column Convolutional Neural Network>这篇文章 ...
- 泡泡一分钟:Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation
张宁 Geometric and Physical Constraints for Drone-Based Head Plane Crowd Density Estimation 基于无人机的向下平面 ...
- 腾讯QQ内测群新功能:QQ万人群即将袭来!
4月6日早晨有人爆出QQ群正在内部测试QQ万人群的消息,此消息一出,网友们都不蛋定了,各种议论纷纷,可是唯独腾讯没有做出任何有关这方面的解释. QQ是要准备让上万个人在一个群聊天吗? 那不会被刷屏刷死 ...
- 【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)
RT,使用消息队列,信号量和命名管道实现的多人群聊系统. 本学期Linux.unix网络编程的第三个作业. 先上实验要求: 实验三 多进程服务器 [实验目的] 1.熟练掌握进程的创建与终止方法: 2 ...
- IT行业歧视40岁以上人群为找工作还要谎报年龄[转]
IT行业歧视40岁以上人群为找工作还要谎报年龄(这样不好) http://www.aliyun.com/zixun/content/2_6_616161.html [赛迪网讯]4月5日消息,许多40多 ...
- 非参数估计:核密度估计KDE
http://blog.csdn.net/pipisorry/article/details/53635895 核密度估计Kernel Density Estimation(KDE)概述 密度估计的问 ...
随机推荐
- 2014年西安区域赛的几道水题(A. F. K)
A . 问一组数能否全部被3整除 K. S1 = A, S2 = B, Si = |Si-1 - Si-2|; 一直循环问, 出现了多少不同的数: 多模拟几组数, 可以发现和辗转相除法有很大关系 ...
- sersync 开机自启 (仅供自己参考)
sersync是一个实时同步的软件,,将其添加到/etc/rc.local中没有效果 ##之所以没效果是因为:####由于/etc/rc.local是/etc/rc.d/rc.local的软连接,所以 ...
- 关于ajax返回数据处理
查看jquery文档,我们知道jquery有很多种Ajax调用方法,下面结合springmvc返回的数据,假设返回的是data ='{"label":"1",& ...
- Kubernetes持久化存储1——示例
目录贴:Kubernetes学习系列 一.简介 存储管理与计算管理是两个不同的问题.Persistent Volume子系统,对存储的供应和使用做了抽象,以API形式提供给管理员和用户使用.要完成这一 ...
- Beaglebone板子修改usb连接时的默认IP192.168.0.2
首先除了有个USB线外,你还需要一个USB转串口的线(目的是防止修改错误,无法使用原来的usb的IP地址登陆,心大的可以跳过这步直接进入重点),串口线连接方法如下图: 将USB以及串口和PC机相连 ...
- Linux TCP并发请求溺出 调优
TCP并发请求溺出 调优:系统开启某个监听端口后,当多个TCP请求连接监听端后,会把多个请求交给backlog的默认监听队列由socket server一并处理,backlog有自己的队列长度默认12 ...
- Python3 tkinter基础 Menubutton 点击按钮出现下拉菜单
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 2017年天梯赛LV2题目汇总小结
Ⅰ.L2-021 点赞狂魔---STL应用 微博上有个"点赞"功能,你可以为你喜欢的博文点个赞表示支持.每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性 ...
- Fix Python 3 on Windows error Microsoft Visual C++ 14.0 is required
Fix Python 3 on Windows error Microsoft Visual C++ 14.0 is required Fix the error for Python 3.6 and ...
- 从实验室走向世界:HSP90抑制剂,一种新的癌症药物
热休克蛋白90(HSP90)是细胞内一种普遍存在的.十分保守的以及有高度活性的蛋白质,它在肿瘤细胞内的含量要比正常细胞多.作为一种分子伴侣,HSP90协助不同种类的癌蛋白(即HSP90的服务蛋白)进行 ...