MCNN(简单理解):

三列卷积神经网络,分别为大中小三种不同尺度的卷积核,表示为L列(使用大尺度卷积核: 9*9, 7*7, 7*7,7*7), M(使用中等尺度卷积核: 7*7, 5*5, 5*5, 5*5), S列(使用小尺度卷积核: 5*5, 3*3, 3*3, 3*3)),其目的在于使用多种尺度的卷积核来适应不同尺度的人头大小。最后将L,M,S三列卷积神经网络进行合并,得到网络生成的密度图。

从图中可观察到,MCNN实际的下采样系数为4,因此网络输出的密度图也是原图宽高的1/4,在制作其作为训练数据的标签密度图时,除了要制作为原图1/4的密度图外,几何自适应高斯核相关的的限制,也要相应为1/4,将限制在100/4=25个像素之内

        

                     图 MCNN网络结构

CSRNet 网络可以理解高度拥挤的场景并执行准确的计数估计以及呈现高质量密度图

1.CSRnet网络结构

CSRnet网络模型主要分为前端和后端网络,采用剔除了全连接层的VGG-16作为CSRnet的前端网络,输出图像的大小为原始输入图像的1/8。卷积层的数量增加会导致输出的图像变小,从而增加生成密度图的难度。所以本文采用空洞卷积神经网络作为后端网络,在保持分辨率的同时扩大感知域, 生成高质量的人群分布密度图。

1.1网络结构

采用剔除了全连接层的VGG-16网络,并且采用3×3的卷积核。研究表明,对于相同大小的感知域,卷积核越小,卷积层数越多的模型要优于那些有着更大卷积核且卷积层数较少的模型。为了平衡准确性和资源开销,这里的VGG-16网络采用10层卷积层和3层池化层的组合。后端网络采用六层空洞卷积层,空洞率相同。最后采用一层1×1的普通卷积层输出结果。网络结构如下:

              

其中所有的卷积层均被填充保持原来大小。表中显示的卷积层的参数被表示成“conv-(卷积核大小)-(通道数)-(空洞率)”,其中最大池化层大小为2×2,步数为2。

1.2空洞卷积

CSRnet中最重要的部分是后端网络中的空洞卷积神经网络。定义一个二维的空洞卷积如下:

     

x(m,n)是长宽分别为M和N的输入图像信息,经过卷积核w(i,j)得到空洞卷积的输出y(m,n),其中参数r表示空洞率。如果r=1则空洞卷积就是普通卷积。实验证明,空洞卷积利用稀疏的卷积核,实现交替卷积和池化操作,在没有增加网络参数和计算规模的前提下增大了感知域,更适合人群密度估计任务。而普通的卷积操作需要增加卷积层数才能获得更大的感知域,而且也增加了更多的数据操作。空洞率为r 的空洞卷积操作,K x K的卷积核会被扩大为K+(K-1)(r-1)。图1中卷积核大小为3×3的感知域分别被扩大为5×5和7×7。

 2.训练过程

 2.1生成密度图

通俗理解:根据josn文件中的标注,对训练集中每张图片生成密度图,原理为先生成一个与图片大小相同的全0矩阵,然后将人头坐标位置设为1,其他位置设为0,然后根据高斯核函数生成的矩阵保存在.Xls文件中作为密度图,即为label。

 2.2损失函数

作为端到端网络的CSRnet,采用最直接的方法进行模型训练即可。前端网络中10个卷积层来自已经训练好的VGG-16,所以只需要进行微调训练。对于其他卷积层的参数采用0.01的标准偏差的高斯初始化。在训练期间,随机梯度下降的学习率固定为1e-6。采用欧氏距离测量我们生成的密度图与真实值的距离。损失函数定义如下:
    

N表示batch size,Z表示生成的密度图,ZGT表示密度图ground truth

3实验结果

3.1评估标准

采用普遍被研究人员采用的均方误差(MSE)和平均绝对误差(MAE),MSE用来描述模型的准确度,MSE越小则准确度越高,MAE能反映出预测值的误差情况。

    

N表示一次测试序列中图片的数量,Ci表示对图片Xi的预测人数(得到的密度图求和即可),CiGT表示真实人数

参考:https://blog.csdn.net/weixin_41548113/article/details/85912714

人群密度检测MCNN+CSRnet的更多相关文章

  1. 基于CNN的人群密度图估计方法简述

    人群计数的方法分为传统的视频和图像人群计数算法以及基于深度学习的人群计数算法,深度学习方法由于能够方便高效地提取高层特征而获得优越的性能是传统方法无法比拟的.本文简单了秒速了近几年,基于单张图像利用C ...

  2. 利用opencv作透明重叠人群密度热度图

    在作热度图的时候我们经常需要将热度图调整透明度后叠加在原图上达到更好的展示效果.比如检测人气密度的热度图: (来自sensetime) 一般作图的时候会第一时间想到matplotlib,因为可以很方便 ...

  3. MCNN多层神经网络论文笔记

    论文原文 https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Zhang_Single-Image_Crowd_Coun ...

  4. 人群密度估计 CrowdCount

    最近在看人群密度估计方面的东西,把博客看到的一些方法简单总结一下,后续继续添加. 1.论文<CrowdNet: A Deep Convolutional Network for DenseCro ...

  5. CVPR2019目标检测方法进展综述

    CVPR2019目标检测方法进展综述 置顶 2019年03月20日 14:14:04 SIGAI_csdn 阅读数 5869更多 分类专栏: 机器学习 人工智能 AI SIGAI   版权声明:本文为 ...

  6. Andrew Ng-ML-第十六章-异常检测

    1.问题动机 图1.飞机发动机检测例子 对飞机引擎的例子,如果选取了两个特征x1热量产生度,x2震动强度.并得到如下的图,如果有一个新的引擎来检测其是否正常,x_test,那么此时如果点落在和其他点正 ...

  7. 【转】用深度学习做crowd density estimation

    本博文主要是CVPR2016的<Single-Image Crowd Counting via Multi-Column Convolutional Neural Network>这篇文章 ...

  8. BETA-3

    前言 我们居然又冲刺了·三 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 过去两天完成了哪些任务 一堆deadline截至前的两天,为了图形学和编译原理毅然决然地放弃冲刺 接下 ...

  9. 5G关键技术研究方向

    对于还没体验4G移动通信魅力的国内的移动通信用户而言,5G也许还是镜中花,雾中月:但对于科研界而言,5G研究已经启程,三星电子5月份宣布,率先开发出了首个基于5G核心技术的移动传输网络,实现每秒1Gb ...

随机推荐

  1. 自动为DEV GridView控件添加SizeChanged事件

    实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件. //2016.5.13 by sngk //根 ...

  2. git clone和download zip的区别

    采用git clone的项目包含.git目录,这里面有历史版本信息 采用下载zip文件的是没有版本历史信息的.只是当前分支的最新版本 克隆指令: $ git clone git://github.co ...

  3. C# GUID ToString

    最近在看到小伙伴直接使用 Guid.ToString ,我告诉他需要使用 Guid.ToString("N") ,为什么需要使用 N ,因为默认的是 D 会出现连字符. Guid ...

  4. requires php ~7.1 -> your PHP version (7.0.18) does not satisfy that requirement

    一个大兄弟本地用了 PHP 7.1 进行开发,而我本地是 PHP 7.0, 于是悲剧发生了. composer install 之后报错 Loading composer repositories w ...

  5. java的四种代码块

    用{}括起来的称为代码块: 普通代码块:类中方法的方法体 构造代码块:类中{}直接括起来的语句,每次创建对象都会被调用,先于构造函数执行 静态代码块:类中static{}括起来的语句,只执行一次,先于 ...

  6. Gym - 101102D Rectangles (单调栈)

    Given an R×C grid with each cell containing an integer, find the number of subrectangles in this gri ...

  7. Java 学习笔记(11)——异常处理

    异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error:如果你用System.ou ...

  8. 使用idea构建Hibernate5项目

    使用工具:IntelliJ IDEA 2017.2.5 x64 MySql-8.0.1 hibernate-release-5.3.1.Final 导入的jar包: 以及连接MySql的jdbc包.和 ...

  9. Service Mesh服务网格清单

    Service Mesh服务网格清单 Istio Istio官网 Istio中文官网 Istio开源 无需太多介绍Service Mesh明日之星,扛把子,截止2019.11还有太多问题没解决 复杂性 ...

  10. TCP/IP DNS

    1.概述   域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,提供主机名字和ip地址转换的选路信息,在应用的角度上,DNS的访问通过地址解析器(resolver)完成,在unix中,解 ...