APP下载

DNeStCount:数据相关的拆分注意力机制的编码器-解码器结构的人群计数方法

2022-09-24孟晓龙

计算机与现代化 2022年9期
关键词:解码器计数卷积

孟晓龙

(1.上海师范大学旅游学院,上海 201418; 2.上海旅游高等专科学校计算机教研室,上海 201418)

0 引 言

人群计数[1]是一项准确估计拥挤场景中人数的任务。在十字路口、体育场馆、景区等场景中,人群统计在社会安全和控制管理中发挥着不可或缺的作用。随着人口的不断增长和城市化进程的加快,人群统计已成为一项即有意义而又具挑战的工作。人群计数任务中存在如视频监控的透视失真、尺度变化、严重遮挡、光照变化、野外背景复杂、人群分布不均等的各种挑战。鉴于人群计数任务的特殊重要性和现实困难性,越来越多的研究者试图设计各种复杂的方法来解决人群计数问题。早期的人群计数工作使用基于特征检测的方法[2],通常通过滑动窗口在图像上应用头部或人的检测器,以人工编制整体或部件特征的检测方式(如Haar小波特征、HOG特征、纹理特征等)进行行人检测。这类方法在稀疏场景下可以达到显著的目标检测和计数效果,但在遇到密集场景的严重遮挡或背景复杂等情况时,效果并不理想。为克服上述问题,一些工作引入了基于回归的方法[3],该方法通常先提取全局或局部特征,再利用线性回归或高斯混合回归[4]等回归技术来学习特征到人数的映射。基于回归的方法在处理上述问题上是成功的,但往往忽略了空间信息。一些研究通过建立图像特征与密度图之间的映射关系,提出了基于密度图估计的方法。然而,传统的手工特征提取方法无法引导密度图估计出更精确的计数。近年来,得益于卷积神经网络(Convolutional Neural Networks, CNNs)强大的特征表示能力,越来越多的研究者利用它来改进密度图估计[5]。得益于先前的研究,本文提出一种端到端的的数据相关拆分注意力机制的编码器-解码器结构DNeStCount,用于人群计数任务。本文选择拆分注意力机制的深度卷积神经网络ResNeSt作为骨干网络,在设计中采用优化后的密集空间金字塔池化模块DASPP和数据相关的特征聚合模块DFA。本文的主要工作如下:

1)将更密集的空洞采样比率应用到密集空洞空间金字塔池化模块DASPP的设计中,来应对视频监控的尺度变化和透视失真的挑战。

2)将可学习的、数据相关的上采样方法DUpsampling应用到特征聚合模块DFA的设计中,来提升密度图(像素级预测)估计的准确性。

3)采用Smooth L1损失来弥补欧几里德损失可能存在对离群值敏感、训练不稳定等缺点,从而在密度图估计任务中获得更好的鲁棒性。

1 相关工作

在本章中,把相关工作的讨论分为3大类:1)基于CNN的密度图估计和人群计数;2)更深层次的网络;3)编码器-解码器结构。

1.1 基于CNN的密度图估计和人群计数

人群统计是项重要而富有挑战性的任务,它可以用来估计人群流量,防止过度拥挤事故的发生。众多研究者借助卷积神经网络强大的特征表示能力来改进密度图估计,进而获得更为准确的人群计数结果[5]。针对不同类型的卷积神经网络结构,本文将此类基于CNN的密度图估计和人群计数方法分为3类:基于多列的方法、基于单列的方法和基于检测的方法。

1)基于多列的方法(multi-column-based methods)。

这类网络结构通常采用不同的列来捕获不同接受域对应的多尺度信息,在人群计数方面具有优异的性能。

Zhang等人[6]在2016年提出了简单但有效的多列卷积神经网络MCNN结构。该结构具有不同卷积核大小(小、中、大)以捕获相应的头部特征映射,其每一列是自适应比率变化的,且采用1×1卷积层而不是全连接层,将特征映射合并可得到较好的密度图估计。Sam等人[7]在2017年提出了切换卷积神经网络Switch-CNN模型。该模型由3个具有不同接受域的卷积神经网络回归器组成,以增强对大尺度变化的能力,而Switch判别器则利用图像中人群密度的分布不同将人群图像小块正确地中继到特定的回归器中。该结构设计使得切换卷积神经网络Switch-CNN对典型人群场景中大尺度和透视变化的问题具有健壮性。Gao等人[8]在2019年提出了透视人群计数网络PCC-Net结构。在该结构中,随机高级别密度模块R-HDC提取全局特征,预测图像中随机小块的粗粒度标签;密度图估计模块DME专注学习局部特征;前/背景分割模块FBS将缓解对背景区域的错误估计。此外,DULR模块(Down,Up ,Left and Right)有效编码各方向的视角变化,并将全局空间信息引入到整个密度图的生成中。

尽管这些多列网络的方法已经取得很大的进展,但它们仍然存在一些显著的缺点。多列的网络结构很难训练,因为它具有更膨胀的网络结构和需要更多的训练时间。而且,具有不同分支但几乎相同的多列网络结构不可避免地会导致大量的信息冗余,降低密度图生成的质量。

2)基于单列的方法(single-column-based methods)。

单列网络结构通常部署单一且是更深层次的卷积神经网络,而不是多列网络的臃肿结构,前提是不增加网络的复杂性。

Li等人[9]在2018年提出了易于训练的拥塞场景识别网络CSRNet。该网络主要由2个部分组成:VGG-16的前10层作为特征提取的前端和扩张卷积层作为特征融合的后端。该设计使用扩张卷积来提供更大的接收域,在不增加参数量或计算量的情况下替代传统的池化操作。Jiang等人[10]在2018年提出了新颖的网格编码器-解码器网络TEDnet。该网络由一个多尺度编码器(Multi-scale Encoder)和一个多路径解码器(Multi-path Decoder)组成,采用多尺度特征提取和密集多路径跳跃连接来生成高质量的密度估计图。同时,提出空间抽象损失SAL和空间相关损失SCL的组合损失来实现局部一致性和空间相关性的分布式监督,弥补传统的欧几里德损失的像素级独立假设问题,进而改善密度图质量和计数性能。Xu等人[11]在2019年提出了一个简单而有效的方法,该方法由2个密切相关的步骤组成:1)尺度保持网络SPN提取堆叠的特征生成初始密度图;2)缩放学习模块L2SM将初始密度图按密度划分为K×K小块级别的密度图,并采用多极中心损耗MPCL学习策略,根据适当的比例自动归一化小块级别的密度图,进而拼接小块级别的密度图来预测最终的密度图。这种SPN+L2SM的结构显著缓解了稀疏区域与稠密区域之间密度变化较大导致的密度模式偏移问题。

3)基于检测的方法(detection-based methods)。

尽管前述2类基于卷积神经网络的密度图估计方法是目前人群计数的主要范式,并取得良好的计数效果,但也存在一些严重的障碍。理想情况下是期望模型提供场景中每个物体的真实位置,诸如在计数的同时实现行人识别和跟踪的应用。因此,基于卷积神经网络的检测方法再次进入研究人员的视野。

Xu等人[12]在2020年从密度图长尾分布的角度重新思考缩放学习模块L2SM的有效性,引入定制的动态交叉熵DCE损失,以进一步提高定位的精度。结合L2S和DCE在高密度区域处理计数的联合损失,利用特征金字塔网络FPN模型[13],Xu等人将基于回归和检测的方法与缩放学习模块L2SM相结合,提出了自动放缩模型AutoScale。AutoScale模型在2个稀疏的数据集上取得有竞争力的性能,并在跨数据集迁移验证中显示出值得关注的鲁棒性。Sam等人[14]在2021年提出用于人群计数的密集检测框架LSC-CNN,该框架有3个功能部分:1)自上而下特征调制器TFM提取多分辨率的特征,融合跨尺度的信息,并进行框预测;2)非最大抑制NMS从多个分辨率中选择有效的框预测,并组合生成最终输出;3)网格赢者全取GWTA实现损失反向传播和自适应地真值框选择。实验表明,该模型比现有的回归方法有更好的人群计数性能和定位性能。

1.2 更深层次的网络

深度卷积神经网络(Deep Convolutional Neural Networks, DCNNs)可以显著提高特征表示能力,进而导致一系列视觉识别任务的突破[15-16]。网络深度(指连续堆叠的层数)在这些突破中发挥了至关重要的作用。但更深层次的网络并非意味着简单的层数堆叠,因为存在着臭名昭著的梯度消失问题。虽然一些归一化方法可以在很大程度上解决这个问题,但事实证明,对更深层次的网络进行优化要困难得多。

Srivastava等人[17]在2015年提出了Highway Networks结构。Highway Networks结构利用深度卷积神经网络来学习丰富的特征表示,并创新地引入跨层连接机制,即使用门单元来调节信息流,这为研究极其加深和高效的卷积神经网络提供可能性。He等人[18]在2016年将跳接(shortcut connections)机制引入残差网络ResNet中,在既不增加额外的参数,也不增加计算复杂度的情况下,缓解了网络深度增加时的退化问题,可轻松享受深度增加的精度增益,产生的结果优于以往的网络。Xie等人[19]在2017年提出简单且高度模块化的网络结构ResNeXt,采用ResNet的模块复用策略[16]和Inceptions的分裂-转换-合并(split-transform-merge)技术[20],进而在较低计算成本的情况下获得高密度和大规模的特征表示能力。Hu等人[21]转而关注通道关系,在2018年构建精致的挤压和激励(Squeeze and Excitation, SE)单元。SE单元通过建模通道之间的依赖关系,自适应地重新校准通道方向的特征响应。因此,SE单元在增加少量的计算成本的情况下,对优秀的深度卷积神经网络具有显著的改进作用。Li等人[22]关注卷积模块的重组,在2019年提出选择性内核(Selective Kernel, SK)的动态选择机制。该机制允许网络分支根据输入信息的多个尺度自适应调整其感受野的大小,并采用Soft-max Attention注意力机制来融合不同网络分支的信息。Zhang等人[23]在2020年提出拆分注意力机制(Split-Attention)模块的残差结构ResNeSt。该结构将通道方向的注意力应用于不同的网络分支,以捕获跨特征映射的交互信息,并在诸多计算机视觉任务都具有更好的性能。

1.3 编码器-解码器框架

编码器-解码器(Encoder-Decoder)框架被广泛应用于像素级预测任务,通常以全卷积网络(Fully Convolutional Networks, FCNs)来提取特征表示并合成高分辨率的输出。作为像素级预测任务,基于密度图估计的人群计数任务同样可采用编码器-解码器结构来产生与初始输入图像相同大小的高质量密度图。

Chen等人[24-27]从2014年—2018年提出一系列DeepLab算法应用于语义分割等像素级预测任务中。DeepLabV1使用全连接条件随机场(Conditional Random Fields, CRFs)来缓解深度卷积神经网络DCNNs中的空间不变性难题[24],可在保证计算效率的情况下,生成准确的语义预测和详细的像素分割。DeepLabV2在解决深度学习的像素分割任务中[25]提出3个主要的观点:1)空洞卷积(Atrous Convolution)在不增加计算复杂度的情况下,有效地扩大滤波器的视野,以纳入更多的上下文;2)空洞空间金字塔池化(Atrous Spatial Pyramid Pooling, ASPP)模块融合卷积层提取的特征表示在不同采样率滤波器下的上下文信息;3)条件随机场CRFs捕捉精细的边界细节,从而提高目标边界的定位性能。为处理多尺度分割难题,DeepLabV3采用堆叠的空洞卷积来捕获多尺度上下文[26]。同时,文献[26]中详细阐述了实现的细节,并分享模型的训练经验。DeepLabV3+使用编码器-解码器框架[27]来扩展DeepLabV3,该框架包含编码器模块的丰富语义信息提取及解码器模块简单有效的对象边界恢复。编码器模块允许在任意分辨率下提取特征、空洞卷积权衡精度和运行时间,从而产生更强大的编码器-解码器网络。

得益于先前的研究,本文提出端到端的数据相关的拆分注意力机制的编码器-解码器结构DNeStCount,用于人群计数任务。

2 DNeStCount模型

在本章中,将详述DNeStCount模型,包括总体网络结构的设计、损失函数的优化和密度图的构建。

2.1 网络结构设计

DNeStCount是端到端的编码器-解码器结构,用于精确估计密度图,如图1所示。该结构包含ResNeSt骨干网络作为特征提取器以及用于捕获密集多尺度信息的密集空洞空间金字塔池化(Dense Atrous Spatial Pyramid Pooling, DASPP)模块和数据相关的特征聚合(Data-Dependent Feature Aggregation, DFA)模块。

图1 DNeStCount整体结构一览

1)ResNeSt特征提取器(ResNeSt Feature Extractor)。

虽然图像分类模型在不断进步,但大多数下游应用,如目标检测和语义分割,仍然使用ResNet及变体作为骨干网络来提取特征,因为它的设计简单和模块化结构。本文采用Zhang等人[23]在2020年提出的拆分注意力网络ResNeSt作为骨干网络来提取特征,并针对人群计数任务进行修正。拆分注意力网络ResNeSt保留基本的ResNet结构,加入拆分注意力(Split-Attention)模块,在不引入额外的计算成本的情况下直接用于下游任务。

为便于直观地描述拆分注意力模块,给出以基数为主(radix-major)的布局,如图2所示,使用标准的卷积神经网络操作符即可实现拆分注意力模块的模块化。

输入的图像特征被划分为多个特征映射组,特征映射组的数量由Cardinality超参数K给出,所得的特征映射组亦称之为Cardinal Groups;同时,每个基数组内拆分为多个分支(Split),分支的数量由Radix超参数R给出。因此,输入的图像特征被划分为R×K组,每个组有一个Cardinality-index和Radix-index,且具有相同Radix-index的组彼此相邻。通道数合并操作(Concatenate),将具有相同Cardinality-index但不同Radix-index的特征映射组(基数组)融合在一起。全局池化层(Global Pooling Layer)在保持通道维度分离的情况下,在空间维度上将对每个独立的基数组聚合在一起。相邻2组等于Cardinality的全连接层(Convolutional Layers)和r-Softmax层预测每个分支的注意力权重。

图2 ResNeSt模块的基数为主(Radix-major)的基本实现

而且,对于人群计数这类密集像素点预测任务,减少计算参数和保留空间信息也是至关重要的。本文借鉴3个简单而有效的修改:1)对于输入干线(input stem),将7×7卷积层替换为3个连续的3×3卷积层,从而具有与原设计相同的感受野大小和较少的计算参数;2)对于残差(residual connection)路径,将stride=2下采样操作由1×1卷积层改到3×3卷积层中,以更好地保留空间信息;3)对于跳接(shortcut connection)路径,1×1的卷积层前增加2×2的平均池化层来防止信息的丢弃,且对计算成本影响很小。上述提高性能的网络设计调整已得到经验验证[28]。

此外,针对人群计数任务中密度图(像素级预测)生成,模型移除标准的ResNeSt结构中用于图像分类任务的全局平均池层、全连接层和Softmax层。表1(括号内列出残差模块的形状和具有特定参数设置的操作,括号外显示某一瓶颈结构的堆叠块数)给出ResNet101和ResNeSt101/200特征提取器的详细描述,这样既可节省计算量,又可提高精度。此外,实验研究发现使用仅组合前3个瓶颈(Bottleneck)结构的特征映射可以获得更好的性能和更低的计算成本。

表1 ResNet101、ResNeSt101/200特征提取器的详细描述

2)密集空洞空间金字塔池化(Dense Atrous Spatial Pyramid Pooling)模块。

传统的深度卷积神经网络逐渐降低分辨率,直到图像由微小的特征映射表示,此时场景的空间结构不再可见。这种空间结构的损失会限制模型的准确性,并使模型下游应用更加艰难,因为下游应用往往需要对场景进行详细的理解。经典的空间金字塔池化模块通过在多个尺度上对输入特征进行滤波和在不同接收域上进行池化操作来编码多尺度的场景空间结构。受编码器-解码器结构DeeplabV3+的启发,本文在解码器模块中应用深度可分离卷积[27],并提出密集空洞空间金字塔池化模块,进而得到面向人群计数任务的编码器-解码器结构。

为应对人群计数中尺度变化的挑战,本文需要一种网络结构,能够以尽可能密集的方式捕获大的范围。原始的DeepLabV3+采用级联或并行的空洞卷积,通过设置不同空洞采样比率来捕获多尺度的上下文信息,进而处理像素分割的问题。然而,较大的空洞采样比率(6像素倍数)导致不同的接受域大小之间的巨大差距,这并不适用于人群计数任务。由于摄像机透视引起的人群场景尺度变化几乎是连续的,所以需要更密集的空洞采样比率。本文提出密集空洞空间金字塔池化模块,它包含3个空洞卷积层,空洞采样比率分别为1、2、3像素。这种精心选择的空洞采样比率的突出优势是克服原始的DeepLabV3+中的网格效应。如图3(灰色表示信息来源)所示,由于空洞采样比率分别为6和12的空洞卷积层,最终图像只能以网格方式采集原始信息。网格效应对需捕捉细节特征的密集人群计数任务来说是有害的,可能导致原始特征映射的局部信息被缺失,或者采样的信息往往是不相关的。而新颖的空洞采样比率组合(1、2、3像素)可以覆盖原始特征映射的所有像素信息,避免空洞采样比率过大而导致保留大尺度的不相关信息。

(a) 空洞采样比率为6和12的堆叠卷积层丢失大量的像素信息

(b) 空洞采样比率为1、2、3的堆叠卷积层覆盖所有像素信息图3 不同空洞采样比率下像素信息保留情况

3)数据相关的特征聚合模型模块。

DeepLabV3+的解码器在恢复经过下采样之后特征映射时,往往使用双线性插值上采样插值方法。但双线性上采样插值的缺点是不考虑像素预测之间的相关性,故其在准确恢复像素预测方面的能力有限。Tian等人[29]在2019年设计了一种可学习的、数据相关的上采样方法DUpsampling。DUpsampling可用来替换被广泛使用的双线性插值上采样方法,利用标签空间的冗余,恢复特征映射的分辨率,实现准确地像素级预测。DUpsampling允许解码器在合并之前将融合的特征降采样到特征映射的最低分辨率。这样,不仅减少解码器的计算量,而且可实现融合特征和最终预测的解耦。这种解耦使解码器能够实现任意特征的聚合,从而尽可能提高像素级预测性能。为改善人群计数中密度图估计的准确性,将数据相关的上采样方法DUpsampling应用到特征聚合模块中,即数据相关的特征聚合模型模块,其过程如图4所示。

图4 DUpsampling的基本处理过程

在图4中,F∈H′×W′×C′表示底层特征映射,R∈H″×W″×C″表示与高层特征映射同H″×W″尺寸的目标特征映射,其中C′和C″分别为这些特征映射的通道数。r表示H′×W′到H″×W″的比率(如果H″和W″不能被r整除,则应用填充操作)。为方便表述,将图4中的比率r设置为2。首先,向量ν∈1×C′与矩阵W∈C′×N相乘(其中N=r×r×C′),被扩展成向量x∈1×N。然后,向量x被重塑成高维的张量D∈r×r×C′。最终,全部的张量D在水平或者垂直方向堆叠得到R。DUpsampling上采样过程本质上与沿空间维度应用1×1卷积相同,卷积核存储在W中。

2.2 损失函数优化

损失函数的设计是训练有效深度学习模型的重要环节。基于卷积神经网络的密度图估计的人群计数方法多为回归任务,通常采用欧几里德距离作为损失函数[3-5],来度量估计的密度图与真实的密度图的差值。虽然欧几里德损失被广泛应用,但它可能存在对离群值敏感、训练不稳定等缺点。因此,本文采用对离群值更健壮、训练过程更平滑的Smooth L1损失来解决上述问题[30-31],进而提高生成的密度图的质量。

Smooth L1损失函数综合了L1距离和L2距离(欧几里德距离),其定义如下:

(1)

其中,

2.3 密度图构建

高保真密度图的生成是密度图估计方法的人群计数任务的基础。幸运的是,Zhang等人发现头部的大小与2个相邻的人之间的距离有关[7],从而提出了基于几何自适应核的密度图生成方法,此后众多研究采用该方法对训练数据进行优化。利用几何自适应地高斯核对头部标注进行模糊处理,生成真实密度图,其定义如下:

(2)

3 实验与结果分析

本章首先介绍本文实验的实现细节、评估的数据集和评估指标。其次,阐述基础实验验证中的预训练策略和骨干网选择的重要性。再次,通过消融实验研究验证模型在不同模块上的改进的效果。最后,通过比较和迁移实验来评估本文模型与经典的人群计数方法的性能。实验表明本文提出的模型具有竞争力、可扩展性和鲁棒性。

3.1 实现细节

实验在RTX3090上使用PyTorch框架实现。开源人群计数代码框架为C3-F,便于对人群计数任务进行实验比较[32]。实验设定初始学习率为1×10-4,权重衰减为2×10-2,训练轮次为300次。与对比方法模型训练过程相似,本文实验过程的预处理阶段同样采用随机裁剪、随机翻转、归一化等数据增强措施,以模拟严重遮挡、光照变化等场景来提高模型的健壮性。ResNetCount、ResNeStCount、DNeStCount分别选择ResNet、ResNeSt、ResNeSt作为骨干网,采用表1和图1所示的DASPP模块和DFA模块。针对不同类型的网络结构,实验中对比方法为多列方法MCNN、Switch-CNN和PCC-Net[6-8],单列方法CSRNet、TEDnet和SPN+L2SM[9-11],基于检测的方法FPN、AutoScale和LSC-CNN[12-14]。

3.2 实验数据集

在人群计数数据集UCF-QNRF[33]、ShanghaiTech 下的Part_A和Part_B[6]及车辆计数数据集TRANCOS[34]这4个公开的主流数据集上展示模型的结果。表2给出这些数据集的统计比较。

表2 实验数据集的统计比较

3.3 评价指标

参考现有的工作,本文采用平均绝对误差(Mean Absolute Error, MAE)和均方根误差(Root Mean Squared Error, RMSE)来评估模型的能力[6-11]。平均绝对误差MAE评估模型的准确性,而均方根误差RMSE则体现模型的鲁棒性,其值越小说明该模型的性能越好。MAE和RMSE定义分别如下:

(3)

(4)

3.4 基础实验

预训练一直是深度神经网络参数学习的有效策略。早在2006年,Hinton等人[35]指出通过预训练可以得到比较接近最优模型参数的初始化权值,并经全局微调达到模型优化重建的目的。实验结果如表3所示,分别以骨干网ResNet101和ResNeSt101为例,基于ShanghaiTech 下的Part_A和Part_B数据集,证实预训练策略对人群计数任务同样有效。

在表3中,“3-”表示不使用预训练策略,“3”表示使用预训练策略。在相同的训练300次的情况下,预训练策略可以将MAE、RMSE等评价指标提高30%~40%。He等人[36]在2019年验证了预训练策略可在训练早期加快收敛速度,但不一定会提高最终准确性,除非训练的数据集太小。虽然上述预训练策略对随机初始化和目标任务准确性的影响也在本文的人群计数实验中得以验证,但受训练时间和资源的限制,预训练策略可节省训练迭代的次数,保证随机初始化的收敛性,仍然是利大于弊的。

表3 预训练策略实验

3.5 消融实验

为了解各优化在网络设计中的有效性,本文分别基于ShanghaiTech 下的Part_A和Part_B、UCF-QNRF数据集进行消融实验,如表4所示。其中,以ResNeSt101/200作为骨干网,采用表1和图1所示的密集空洞空间金字塔池化DASPP模块。表4中,“+DUpsampling”表示特征聚合模块DFA采用数据相关的上采样方法DUpsampling替换传统的双线性插值上采样方法;“+Smooth L1”表示目标损失函数采用Smooth L1损失替换传统的欧几里德损失。

表4 消融实验

表4的消融实验表明:

1)从ResNet到ResNeSt作为骨干网,模型的人群计数能力依次显著提高。这是由于ResNeSt充分利用通道级注意机制实现多路径特征表示能力。同时,ResNeSt的网络设计采用2.1节介绍的3个简单而有效的优化,与原始的残差结构ResNet相比,ResNeSt具有更好的准确性和延迟权衡。

2)从ResNeSt101到ResNeSt200,可看出随着网络深度的增加,骨干网络特征表示能力的提高促进了人群计数结果的突破。但出乎意料的是,更深层次的网络并不意味着像叠加更多层次那样简单。以ShanghaiTech 下的Part_B为例,人群计数精度趋于饱和并下降。

3)数据相关的上采样方法DUpsampling,相对传统的双线性插值的上采样方法,考虑像素预测之间的相关性,利用标签空间的冗余,可准确地恢复人群计数任务中密度图估计;Smooth L1损失,相对传统的欧几里德损失,对离群值更健壮、训练过程更平滑,进而提高生成的密度图的质量。

3.6 对比实验

为验证本文提出方法的有效性,本文基于3个复杂的人群计数数据集进行对比实验,结果如表5所示,DNeStCount200在各人群计数数据集的可视化预测结果如图5所示。在多数的数据集和评价指标上,本文所提出的方法与先前的方法相比有很好的性能。对比实验表明,该方法在高密度或低密度人群场景上都能取得很好的效果。

表5 对比实验

图5 DNeStCount200在各人群计数数据集的可视化预测结果

本文提出的方法DNeStCount在MAE和RMSE评价上,基本都可达到前3名的水平。特别在UCF-QNRF数据集上,与次优方法SPN+L2SM相比,DNeStCount101和DNeStCount200获得3.2和5.8 的MAE的改进。在ShanghaiTech 下的Part_A和Part_B数据集上的领先表明,本文提出的方法在拥挤或稀疏的人群计数数据集上都取得较好的性能。

3.7 迁移实验

场景变化大多会导致能力的显著下降,跨数据集评估在人群计数中越来越受到重视[11-12,14]。在实际应用中,通常需要一种具有较强通用性的人群计数方法。本文设计交叉数据集下的迁移实验来验证本文所提出方法DNeStCount的可迁移性,即在源数据集上训练模型,在目标数据集上测试模型。实验结果如表6所示,从表中可知本文方法可以很好地推广到不可见的数据集中。

表6 迁移实验

本文提出的方法DNeStCount在迁移实验的整体表现优于其他模型,尤其对比是同属单列方法的模型SPN+L2SM。其中,DNeStCount200在ShanghaiTech Part_A迁移到Part_B数据集的MAE和RMSE指标,相对次优的LSC-CNN分别提升1.2和1.8。迁移实验证实本文提出的方法具有有效性和推广性。

3.8 TRANCOS车辆计数实验

除人群计数任务,本文还在TRANCOS数据集[34]上进行车辆计数的实验来验证方法的健壮性和通用性,结果如表7所示。表7的结果表明本文提出的方法相对最佳方法具有高度竞争力。该方法可以推广到其他物体计算任务中,并具有良好的性能,表明该模型具有很强的鲁棒性和通用性。

表7 TRANCOS车辆计数结果

4 结束语

本文提出数据相关的拆分注意力机制的编码器-解码器结构来处理人群计数任务,称为DNeStCount。该结构包含ResNeSt骨干网络(作为特征提取器)以及用于捕获密集多尺度信息的密集空洞空间金字塔池化DASPP模块和数据相关的特征聚合DFA模块。基础实验表明,DNeStCount算法在人群计数中具有较好的性能和鲁棒性。消融实验证实了骨干网络的重构、网络深度的增加以及损失函数的设计的优点。迁移实验验证该方法的有效性和可推广性。在具有挑战性的数据集上的实验表明,本文方法与其他主流方法相比更具有竞争力。

猜你喜欢

解码器计数卷积
科学解码器(一)
古人计数
基于3D-Winograd的快速卷积算法设计及FPGA实现
科学解码器(二)
科学解码器(三)
递归计数的六种方式
古代的计数方法
卷积神经网络的分析与设计
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
古代的人们是如何计数的?