人群密度估计 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)概述 密度估计的问 ...
随机推荐
- 斐讯面试记录—TCP滑动窗口及拥塞控制
TCP协议作为一个可靠的面向流的传输协议,其可靠性是由流量控制和滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现. 一.滑动窗口协议 1. “窗口”对应的是一段可以被发送者发送的字节序 ...
- 给zabbix添加percona监控模板
简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.ba ...
- VMware安装步骤既常见问题
一.vmware出问题? 可以使用vmvare的修复功能. 二.创建虚拟机 1)第一步:选择自定义下一步,典型里是都设定好了的. 2)第二步:选择12默认下一步 3)第三步:可以从光驱中安装,可以从文 ...
- [c/c++] programming之路(16)、指针
一.调戏百度云管家 #include<stdlib.h> #include<windows.h> _declspec(dllexport) void go(){ ){ Shel ...
- 剑指offer(55)链表中环的入口节点
题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null. 题目分析 1.一快一慢指针,先找到碰撞点. 2.然后碰撞点到入口节点的距离就是头结点到入口节点的距离. 具体原理可 ...
- Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学
题目传送门 传送点 题目大意 给定$n$个标号依次为$1, 2, \cdots, n$的点,其中一些点被染成一些颜色,剩下的点没有染色.你需要添加一些有向边并将剩下的点染色,满足有向边从编号小的一端指 ...
- 微信小程序wepy开发,$apply()不能更新页面数据的情况
例如userinfo信息获取到后,$apply()更新后还是没有在页面中显示数据 已发现的原因: 当data中没有定义userinfo时,会发生这样的问题
- C++ 将 std::string 转换为 char*
参考: std::string to char* C++ 将 std::string 转换为 char* 目前没有直接进行转换的方法.必须通过string对象的c_str()方法,获取C-style的 ...
- 智能合约遇到的小错误 network up to date解决办法
https://blog.csdn.net/qindong564950620/article/details/68933678 说 network up to date .这个错误我刚开始不知道怎么解 ...
- 【七】jquery之属性attr、 removeAttr、prop[全选全不选及反选]
全选全不选 界面: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...