1、 年月第 卷第期计算机工程与设计 基于特征融合编解码的人群计数和密度估计邹敏,黄虹,杜渂,黄继风(上海师范大学 信息与机电工程学院,上海 ;上海师范大学 商学院,上海 ;上海迪爱斯信息技术股份有限公司,上海 )摘要:为解决人群计数任务中因人群大小不一导致的计数偏差问题,提出一种基于特征融合的编解码卷积神经网络模型()。前端网络模块对输入的人群图像自动编码,提取不同尺度的人群特征语义信息;后端网络模块对编码后的人群特征信息进行融合和解码,得到最终的估计密度图。将该模型在个公开数据集上进行实验,并与历年的主要方法进行对比,实验结果表明,该模型在 、和 数据集上取得了更好的 指标,优于目前的这些算法
2、,验证了模型对不同的人群尺度具有很好的适应性。关键词:人群计数;卷积神经网络;编码器;人群尺度;解码器;特征融合;密度图中图法分类号:文献标识号:文章编号:():收稿日期:;修订日期:基金项目:上海市地方能力建设基金项目()作者简介:邹敏(),男,江西上饶人,硕士,研究方向为计算机视觉;通讯作者:黄虹(),女,上海人,博士,教授,研究方向为金融科技和智能会计;杜渂(),男,上海人,硕士,教授级高级工程师,研究方向为人工智能、大数据、云计算和物联网;黄继风(),男,上海人,博士,教授,研究方向为深度学习与数字图像处理。:,(,;,;,):,(),:;引言目前传统的人群计数研究方案大致分为两类,即
3、基于行人检测的方法和基于人数回归的方法。而基于行人检测方法的局限性在于,当人群之间存在遮挡时无法准确检测到大部分行人,从而导致计数结果远小于实际的人数;而基于人数回归方法虽然能够解决遮挡问题,但单一的人数结果不能反应场景中人群的分布以及空间信息。而后随着深度学习的发展,卷积神经网络在人群计数领域广泛应用,诞生了许多模型和方法,但同时面临着人群尺度变换、背景干扰等诸多更深层次的挑战,所以如何解决这些问题正是目前研究的重点。本文从人群的多尺度角度出发,利用前端网络模块对人群图像的不同尺度特征进行编码,获得不同维度的人群特征图,并通过解码模块对这些特征图进行密度图重建,同时为了防止丢失低维的特征信息
4、,通过融合模块融合不同阶段的密度图以获得最第 卷第期邹敏,黄虹,杜渂,等:基于特征融合编解码的人群计数和密度估计终的估计密度图。相关工作在最近的深度学习方案中,许多学者广泛研究卷积神经网络在人群计数领域的应用,提出了许多对应的模型和方法,这些模型和方法大致可以分为两类:第一类是特征融合网络模型,可总结为种方案:通过设置多列不同大小的卷积核来提取不同尺度的人群信息,再通过特征融合来生成密度图,如多列多尺度 等模型;利用不同的特征提取模块对人群图像进行信息提取,最后通过特征融合模块估计人群密度图,如 等模型;将模型在不同阶段产生的特征图进行特征提取,然后通过上采样和权重特征图估计出人群密度图,如
5、等模型。第二类是单分支网络模型,主要利用前端网络对人群特征语义信息进行提取,得到高维的特征图,再利用后端网络对高维特征图进行解码来生成最终的密度图信息,如 、和 等模型。但这些方法各有不足之处。对于方案一,每一列都需要对人群图像进行特征提取,导致模型的参数量很大;而方案二本质上就是一个多列的模型,仍难以逃离参数量过大的问题;对于方案三和单分支模型,只是一味的进行特征的信息提取和解码操作,容意忽视低维特征图的人群语义信息。因此,针对以上问题,本文提出了一个基于特征融合的编解码卷积神经网络的人群计数框架,我们称其为 (),其目标是学习人群图像到对应密度图的映射,并进行人群计数和密度估计,具体有以下
6、个优点:()提出了一个基于特征融合的编解码卷积神经网络模型 。前端网络对人群图像中不同尺度的人群特征进行特征编码提取,并保留低维特征的人群特征信息;后端网络实现对不同维度的人群特征信息进行特征解码和融合,以获得更为精细的密度图。该模型能有效地解决了人群多尺度问题,同时又获得了更高的人群计数效果。()提出了一个新的特征融合模块,该模块可以对不同阶段的人群特征信息进行特征融合工作,以防止丢失低级的特征信息,同时能够生成高分辨率的特征密度图。()提出了一个新的特征解码器模块,可以有效地对低分辨率的人群特征信息进行特征解码工作,以获得一幅更为精细的特征密度图。解决方案本节将详细介绍基于特征融合的编解码
7、卷积神经网络模型的结构、结构化密度图以及损失函数。基于特征融合的编解码卷积神经网络模型 模型主要由个组件组成:第一个组件是前端网络模块,它可以自动适应不同分辨率的图像,并对人群图像进行自动特征编码,以提取到不同维度的人群特征信息,同时能够有效地保留低级的人群特征信息。第二个组件是特征融合模块(,),用于对高维特征图和低维特征图进行特征融合,以防止丢失更低级的特征 信 息。第 三 个 组 件 是 特 征 解 码 器 模 块(,),主要用于对融合后的特征图进行特征解码,得到更为精细的密度图。前端网络模块在我们提出的 网络模型中,使用了一个分类网络 作为网络的前端网络模块,这一想法是来源于 等的 网
8、络结构,它是利用了 分类网络作为其主干。因此我们对分类模型改进并设计了多尺度的“”网络前端模型。具体地,多尺度的特征提取则主要体现在 块中,如图所示,它由多个具有不同内核大小的过滤器组成,并且针对内核过大的过滤器进行参数量优化,如将的过滤器分解为两个的过滤器,并且进一步将的过滤器分解为和的过滤器,同时采用全局平均池化层取代全连接层,这样能够大大地降低模型的计算量,加速模型计算。后续还可通过过滤器串行的方式合理增加网络的深度、并行的方式增加网络的宽度,以提高网络对不同人群尺度的适应性,并且由于不同分支的感受野是不同的,因此我们利用它来提取人群的多尺度特征。图 块实现原理图展示了 整体模型结构。但
9、为了将分类网络模型应用于人群计数当中,我们对其进行了修剪。首先,删掉了原有分类网络中最后的 层以及全连接层,保留了所有的卷积层,保证网络的输出是一幅特征图。其次由于原始分类网络的输入图像大小为 ,最后的卷积层输出特征图大小为,即输出特征图的大小是输入图像大小的。所以考虑到原始分类网络对图像分辨率的下采样比较深且要保证输出密度图的分辨率,我们将计算机工程与设计 年原始分类网络的前两个 层删除,这样网络的输出特征图的大小就是输入图像大小的,然后从每个阶段延伸出一个输出分支,用于获得个不同维度和深度的特征图,如图所示。因此,前端模块可以表示为,(,)()其中,(,)表示前端网络模块的输出,表示前端网
10、络模块,表示输入的人群图像,表示前端网络模块的模型待训练参数。图 模型架构由于前端模块输出的最底层特征图维度过大,为了防止过大的特征通道数量差异导致意料外的信息损失,我们在前端网络的底层输出部分添加了一个 模块,以实现对前端模块输出的高维特征图实施维度的“软着陆”措施,将高维特征图映射到较低维的特征图中。而 模块是由一个的卷积和一个的卷积组成,具体表示为 (,)()其 中,表 示 模 块 的 输 出,表 示 模 块,表 示 模 块 的 模 型 待 训 练参数。特征融合模块特征融合模块的目的是为了防止丢失低维特征图的特征信息同时适应各个特征解码器的输入需求,通过从前端网络的各层选取最需要的空间信
11、息和语义信息与底层的特征图进行信息融合,再将其输入到对应的特征解码器当中,进行下一步的特征解码工作。该模块是由一个卷积和一个上采样块组成,如图所示。首先卷积是对低维特征图进行非线性重组降维,使得不同维度内的信息能够交互,能够压缩和获取更为有效的特性信息;而上采样块是由一个的卷积和一个采样因子为的上采样组成,一个高维特征图经过上采样块能够得到与低级特征图分辨率一样大小的特征图,从而可以和低级特征图进行相同维度上的合并,实现不同层级间的特征信息融合,具体表示为 (,)()其中,(,)表示第个特征融合模块输出,表示第个特征融合模块,表示前端网络模块第层的输出,表示第个维度在软着陆模块或解码器模块的输
12、出,表示第个特征融合模块的模型待训练参数。图 模块 解码器模块尽管特征融合模块通过融合前端网络的不同层级之间的特征,能够在一定程度上解决人群多尺度问题,但是仅根据模型中一系列的卷积和池化操作只能在有限的尺度范围内提取特征。因此,我们利用瓶颈结构设计了一个特征解码模块,能够获取更大感受野的同时提取到更多有用的人群密度特征信息,从而得到一幅更为精细的密度图。我们将特征融合模块中提取到的浅层特征作为输入,在对特征信息进行解码的同时,该结构能很好地保存多尺度信息。前端网络模型能够对一幅输入图像经过特征提取后得到不同的高维特征图,而高维特征图本身由于维度很大,包含着图像的许多特征信息,因此需要利用解码器
13、对其特征提取及解码。解码器块是一种类似瓶颈结构的设计,如图所示,它是由个卷积层组成:第一个是卷积、第二个是卷积、第三个是卷积。为了进一步提高模型获取多尺度信息的能力,所以我们在第二个块中采用了的卷积,最后根据不同阶段特征解码器调整 、以及 的大小。因此,解码器模块具体表示为 (,)()其中,(,)表示第个维度的解码器模块输出,表示第个解码器模块,表示第个维度的特征融第 卷第期邹敏,黄虹,杜渂,等:基于特征融合编解码的人群计数和密度估计合模块的输出,表示解码器模块的模型待训练参数。图 模块 总结根据提出的 计数模型,利用前端网络模块对人群多尺度特征进行特征编码提取,输出个不同层次的高维特征图,并
14、在最底层的高维特征图后紧跟一个 模块,然后和特征图一起进入特征融合模块,得到输出特征图,然后特征图 再输入到解码器 中,得到 依次如此,最后可以得到精细的密度图,具体通过式()可推得,(,)(,)(,)(,),()最后,根据将密度图 置入一个的卷积层中预测最终的人群密度图。至此,预测的人群密度图和原始人群图像的分辨率相同,并且通过对密度图积分可以得到具体的预测人数。结构化密度图由于训练网络模型需要从输入人群图像中估计人群密度图,我们根据文献 提出的一种自适应高斯核来生成训练所需的密度图。假设在像素位置处有一个头部,可以将其用函数()来表示,则一幅含有个人头部位置标记的图像可以表示为()()()
15、为了将其转换为连续密度函数,这里利用一个高斯核()与该 函 数进行 卷 积,从 而 生 成 一 个 连 续 的 密 度 图()()()。然而图像拍摄角度会造成的地平面和像平面之间的失真,导致图像中的每个人头部大小不一,从而无法确定高斯核的参数。依据文献 的想法,在拥挤场景中,通过每个人头部的位置与其相邻人头部的平均距离自适应地确定每个人的参数。以下给出确定高斯核的参数的方案。对于一幅给定的人群图像中的每个头部,定义与其个相邻头部的距离为,则个相邻头部到头部的平均距离可定义为?()这里头部的高斯核参数是由平均距离?来确定的,定义,且 ,。则密度图最终定义为()()(),?()其中,代表图像中头部
16、的总个数,代表一幅图像中的一个人头部坐标。基于这种方案,可以理解几何自适应高斯核生成密度图一般适用于拥挤的人群场景,而稀疏的人群一般采用固定高斯核生成密度图。对于固定高斯核生成密度图,其原理是同几何自适应高斯核类似,唯一不同之处在于固定了每一个,不同人群数据集有不同的。图()和图()分别展示了稀疏场景和拥挤场景使用两种高斯核生成密度图的效果。图不同场景的密度 损失函数本文模型训练首先采用的是欧几里得损失来计算估计密度图和真实密度图之间的差值,定义如下()(,)()其中,表示参数模型,(,)表示输出模型,和 分别表示训练集中第个原始输入图像和真实密度图。考虑到模型在稀疏场景下的性能,本文引入一个相对人群损失,用于提高模型在稀疏场景中的性能,该损失定义如下()(,)()其中,分母 是为了防止分母为零。因此,可以定义模型的总损失函数为 ()()()其中,表示相对人群损失在总的损失函数中所占的比,在本文中我们取 。实验本节主要从评价指标、实验数据集、实验细节以及实计算机工程与设计 年验配置个方面对人群计数和密度估计的具体研究细节进行描述。评价指标根据 等的研究,使用平均绝对误差(,)和平均均方