APP下载

基于生成对抗网络动态建模的人群密度预测方法

2023-11-03李夏华刘才华

计算机工程与设计 2023年10期
关键词:光流损失卷积

徐 涛,李夏华,刘才华+

(1.中国民航大学 计算机科学与技术学院,天津 300300;2.中国民用航空局 智慧机场理论与系统民航局重点实验室,天津 300300)

0 引 言

传统的安全管理依靠人工监测区域内的人群分布状况,这需要极高的人力成本,而通过计算机视觉算法等手段预测未来人群分布,能够降低人群聚集可能带来的风险。

Lempitsky等首次提出通过对密度图积分实现对图片中的人群计数[1],由于密度图可以清楚地反映出当前场景下人群的分布状态及拥挤程度,因此预测未来时刻的人群密度图,对于人群异常聚集现象的预防十分有效。人群密度预测问题主要存在以下技术难点:①给定的多个输入帧易产生多个相似的特征表示,这会使预测结果趋于模糊;②视频监控场景下可能存在多个人群及零散的行人,每个行人的运动轨迹独立,模型设计需要对时空特征有效建模;③对于较长时间间隔的预测,帧间时空相关性较小。

为了解决上述问题,本文提出一种基于生成对抗网络动态建模的人群密度预测方法,用于实现未来时刻人群密度预测。主要贡献为:①得益于生成对抗网络[2]良好的图像生成能力,本文模型采用生成对抗网络结构,生成器采用U-Net[3]结构保证预测图像的质量,并利用预训练的光流网络FlowNet[4]提取人群运动特征,提升对未来时刻人群密度分布状态估计的准确性;②优化了U-Net解码阶段,采用扩张卷积[5],在保持特征图分辨率的同时增加网络的感受野,接收更加广泛的人群分布信息;③针对时空序列预测问题,不同于其它模型采用MSE均方误差,本文通过联合强度损失、梯度损失、对抗性损失和光流损失,分别从人群空间分布状态和人群运动趋势两个方面加以约束,优化模型的预测结果。

1 相关工作

随着智能化安防的发展,一些研究人员关注到了人群密度预测问题上。本节将介绍与该问题相关的一些研究工作,包括人群密度预测、视频帧预测、人群计数。

1.1 人群密度预测

Minoura等[6]建立基于patch的动态网络模型,通过学习不同patch之间的紧凑特征表示捕捉复杂变化的人群运动,并使用完全卷积的编码-解码架构应对相邻patch之间预测结果的不连续性。Niu等[7]提出了一种全局残差双流网络,首先利用一系列卷积级联LSTM层和ConvLSTM模块提取视频帧的时空特征,接着利用一个循环自编码器抽取对应的密度图更加抽象的人群状态和动态表示,并通过一个基于注意力的融合模块传递融合特征,得到最终的预测结果。人群密度预测的相关工作于近两年才被研究人员所关注,且目前的工作主要集中在短期预测方面,长期预测仍然具备一定的挑战性,是一项极具潜力的研究方向。

1.2 视频帧预测

视频帧预测是指,利用给定的一组连续帧预测未来的视频帧。Shi等[8]提了一种新的网络结构ConvLSTM,将原有的全连接LSTM的门状态转换计算中的矩阵乘运算改为卷积运算,通过在多维数据中进行卷积操作来捕获空间特征,并将其用于气象降水预报。Liang等[9]提出了一种对偶学习机制的生成对抗模型,使用对偶训练的方法来确保预测出来的光流能够帮助网络进行推理,使预测结果更加真实。安利智等[10]提出了一种动态卷积生成对抗模型,利用ConvLSTM和卷积神经动态平流单元融合视频中的时空特征,提高时空建模的准确性。与视频预测不同的是,本文的输入是经过稀疏采样的人群视频帧,相比于视频帧预测方法的输入时间间隔更长,帧与帧之间的相关性更小,具有更大的挑战和应用价值。

1.3 人群计数

人群计数的目的是计算图像中的人数,并估计人群在图像中的空间分布情况。早期大多基于检测技术以及基于回归技术实现。随着深度学习技术的发展,基于卷积神经网络(CNN)的方法在人群计数中表现出优异的性能。Cao等[11]利用尺度聚合模块对多尺度特征提取,利用转置卷积生成高分辨率的人群密度图像,另外联合欧几里得损失和局部模式一致性损失优化模型训练。Li等[12]通过使用扩张卷积代替池化操作来扩大感受野,并提取更深层次的特征。崔宇超等[13]提出一种基于帧间辅助的视频人群计数方法,通过获取相邻帧之间的空间关联特性融合相邻帧之间的特征实现单张图像计数。尽管人群计数有大量的前期工作,但基于视频的人群密度估计[14]研究较少,并且主要关注的是如何利用时间连续性来改进人群密度估计,并非如何预测未来时刻的人群密度。与以往的人群计数工作不同,本文工作是在给定先前观察到的多个人群分布图像序列的情况下,预测未来人群的空间分布。

2 本文方法

2.1 问题描述

对公共场景下未来时刻的人群分布状态预测是指,给定一段人群视频,生成对应的人群密度图,并根据密度图预测未来时刻人群分布情况。为了有效捕捉人群运动状态,并能够更好地应用到实际当中,获取人群在较长一段时间内的运动变化是十分重要的,这也有利于人群密度监测系统提前发出预警。因此,以相等时间间隔对给定人群视频帧间隔采样,预测下一相同时间间隔的人群分布情况。

基于此,我们将该问题描述为

P(t+NΔt)=F({It,It+Δt,…,It+(N-1)Δt})

(1)

其中,{It,It+Δt,…,It+(N-1)Δt} 表示模型F的输入帧,包含从人群视频以相等时间间隔Δt顺序采样的N帧。根据给定输入帧,预测下一相同时间间隔第N+1帧(即t+NΔt帧)的人群密度图P。

2.2 模型架构

图1为本文提出的模型整体结构。模型整体采用生成对抗网络结构,利用生成器与判别器之间的博弈思想指导生成器生成更加准确的预测结果。首先将输入视频的每一帧根据数据集的标签信息转换为人群密度图,将得到的人群密度图送入生成器网络生成预测结果。对预测结果与ground-truth之间施加强度损失和梯度损失,同时利用预训练的光流网络FlowNet分别计算输入最后一帧图像与预测图像之间的光流图和输入最后一帧图像与ground-truth图像之间的光流图,通过最小化上述二者之间的L1损失学习时序信息。最终,联合强度损失、梯度损失、对抗性损失和光流损失,分别从空间特征和时序特征两个方面加以约束,进一步优化生成器的预测结果。

2.2.1 生成器

现有工作中用于图像生成的网络通常是由编码器和解码器两个模块组成的。编码器通过逐步降低空间分辨率得以提取图像特征,解码器通过增加空间分辨率得以逐渐还原图像。然而,这种方法会导致梯度消失和信息不平衡等问题出现。为了解决这些问题,U-Net模型被提出,它在具有相同分辨率的编码层和解码层之间加入了跳跃连接,能够有效抑制梯度消失并保证信息对称。

对于人群密度预测问题,输入视频来自于固定摄像机拍摄,跳跃连接可帮助预测图像快速重建。具体实施过程中,本文对U-Net进行了一些修改,对于每两个卷积层,保持输出分辨率不变,当添加跳跃连接时,它不再需要对图片裁剪和调整大小。另外,将解码层采用扩张卷积,以增加网络的感受野。扩张卷积的原理如图2所示,将紧密的卷积核按照扩张系数增大,用0填充空位,这样可以在拥有同样的计算成本的情况下,使卷积计算获得更宽的视野。相比于U-Net网络原始解码层所采用的反卷积,扩张卷积可以在减少信息丢失的同时保证执行效率;相比于池化层来说,扩张卷积可以在控制过拟合的同时保证空间分辨率。人群密度图存在尺度变化的问题,一般的卷积核无法准确地提取到不同尺度下的行人特征信息,而扩张卷积可以通过设置不同的扩张率聚合不同尺度的上下文信息,充分提取特征。

图2 扩张卷积感受野变化[5]

2.2.2 判别器

针对未来时刻人群密度预测问题,既要获取输入图像中人群分布的局部相关性,又要保证预测结果清晰。受到Isola等[15]的启发,判别器结构采用PixelDiscriminator,通过逐次叠加的卷积层一次判断一个N×N的图像块是否为真,将所有图像块的结果求平均,作为整张图像的判别结果。这种结构在减少训练所需参数量的同时,能够更好地捕捉到图像局部信息,增强生成器输出预测图像的局部相关性,提高生成图像的质量。具体实施过程中,采用4个卷积层构建判别器,其中前3个卷积层均具有批量归一化层并采用LeakyReLU作为激活函数,最后一层卷积层作为输出层。这种结构可以覆盖到输入的人群密度图像的每个局部区域,可以更好地指导生成器学习人群分布的局部相关性,并帮助生成器重建图像的边缘、轮廓等高频信息,进而保证生成器预测图像的质量。

2.3 损失函数

本文采用强度损失、梯度损失对空间特征施加约束,保证预测图像的质量;采用光流损失、对抗性损失对时序特征施加约束,保证输入序列和预测结果的时序一致。

2.3.1 强度损失和梯度损失

为了使预测结果与ground-truth更加接近,采用强度损失和梯度损失[16]约束空间特征信息。强度损失保证RGB空间下所有像素的相似性,梯度损失可以锐化生成的图像,使预测的图像更加清晰。

具体而言,强度损失将预测结果I′与真实结果I之间的L2距离最小化,定义为

(2)

梯度损失定义为

(3)

其中,i和j表示视频帧的空间索引值。

2.3.2 光流损失

过去的研究方法仅通过强度损失和梯度损失约束图片的空间特征来生成未来帧,然而即使预测帧的所对应的强度损失和梯度损失极小,也可能导致完全不同的光流,也就丢失了视频重要的时序特征,因此采用光流估计网络FlowNet来计算预测图像与ground-truth图像的光流信息。具体而言,通过最小化输入帧最后一帧It分别与预测图像I′t+Δt和ground-truth图像It+Δt产生的光流图的L1距离,定义为

(4)

其中,F为FlowNet网络,实验中所采用的F经过文献[4]中的合成数据集预训练,并且保持参数固定不变。

2.3.3 对抗性损失

对于生成对抗网络来说,生成器G试图通过最小化损失函数优化自身,而判别器D试图通过最大化损失函数来指导生成器学习,对抗性损失定义为

(5)

将上述对空间时序特征约束的损失函数加权组合,得到目标函数,定义为

L=αintLint+αgdLgd+αopLop+αadvLadv

(6)

其中,αint,αgd,αop,αadv分别为强度损失、梯度损失、光流损失和对抗性损失的系数因子。

3 实验结果与分析

3.1 数据集

Mall[17]是从一个购物中心的监控录像中收集的公共数据集。Mall数据集中的视频序列由2000帧640×480的图像组成,总共包含62 325个行人,帧率小于2 Hz,该数据集标注了每一帧中的行人的头部位置。对Mall数据集将前1200帧作为训练数据,对后800帧进行测试。

除此之外,我们还手动标注了一段来自于国内某机场航站楼内的监控录像,对其中每一帧的行人头部位置进行了标注,本文将该手动标注数据集称为Airport,共包含800帧人群图像,每一帧图像大小为480×270。

3.2 评价指标

在时空序列预测领域,广泛使用的评价指标依赖于基于图像相似性的度量,例如均方误差MSE(mean-square error)、峰值信噪比PSNR(peak signal to noise ratio)以及结构相似性SSIM(structural similarity index measure)。本文采用这3种评价标准对结果定量分析。

MSE评价指标定义如下

(7)

其中,n表示预测密度图像的数量,x′i表示第i张预测密度图像,xi表示对应于第i张预测图像的ground-truth密度图像。MSE用于衡量算法的鲁棒性,MSE值越小,说明模型的鲁棒性越好。

PSNR评价指标定义如下

(8)

其中,n表示预测密度图像的数量,x′i表示第i张预测密度图像,xi表示对应于第i张预测图像的ground-truth密度图像。PSNR用于衡量预测图像的质量,PSNR值越大,说明生成图像质量越好。

给定两张图像x和y,SSIM评价指标定义如下

(9)

3.3 实验设置

本文基于Pytorch1.1.0深度学习框架开发,使用英伟达RTX5000显卡进行实验。本实验首先对数据集进行预处理,将数据集对照每一帧标签生成人群密度图,再分别以1.5 s、3 s、4.5 s对数据集间隔采样,以保证网络能够捕捉人群运动变化信息。训练过程中,将所有帧的像素强度归一化为[-1,1],输入图像尺寸归一化为256×256,模型输出相同大小的人群密度图。设置输入视频序列长度为5,预测下一相等时间步长的人群密度图。参数优化选择基于Adam的随机梯度下降法,batch-size大小为4。生成器和判别器的学习率分别为0.0002和0.000 02,目标函数L中的系数αint,αgd,αop,αadv分别为1.0、1.0、2.0和0.05。

3.4 结果对比及分析

目前针对人群密度预测这一问题的工作成果较少,本文与文献[7]的D2D-Net以及视频帧预测模型ConvLSTM[8]进行了比较。实验对比结果见表1。

表1 在两个数据集上不同时间间隔下不同预测方法的结果

ConvLSTM通过扩展全连接LSTM,使其在状态转换中具有卷积结构,从而更好捕捉时空相关性。然而在ConvLSTM中空间表示是被层层编码,而隐藏状态自底向上传递,属于每一层的存储单元是相互独立的,这会导致其底层完全忽略上一个时间步的信息。D2D-Net同样采用U-Net结构,并在编码阶段和解码阶段中间连接处插入了3个ConvLSTM单元,用于融合时空特征。然而D2D-Net由于引入了3个ConvLSTM单元,会导致其参数量增加,计算速度慢,同时依然存在帧与帧之间的时间信息丢失的问题。

通过表1可知,本文模型在3个评价标准均取得了更好的结果,在预测更长时间间隔下的人群运动变化更加有效,能够更好将空间信息和时间信息有效融合。

图3展示了在输入序列时间间隔为1.5 s的情况下,本文模型分别在Mall数据集和Airport数据集上预测的结果。前5列是输入的原始视频帧,由原始视频稀疏采样得到。对于Mall数据集,每3帧采样一次,对于Airport数据集,每5帧采样一次。可以看到,本文模型能够预测不同人群场景下的未来时刻人群分布。

图3 预测结果示例

3.5 消融实验

本文首先分析了不同的损失函数对结果的影响,并对不同的损失函数进行了逐步消融。通过把不同的损失结合起来,在Mall数据集上进行实验。表2中的结果显示,更多的损失函数对模型施加约束可以得到更好的预测结果。

表2 不同损失函数对结果的影响对比

接着,在时间间隔为1.5 s的情况下,评估了输入帧的数量。模型默认设置为5帧,并分别以2帧、3帧和4帧作为输入序列长度对模型进行了验证,结果见表3。根据结果分析,输入序列越长,模型的性能越好,因为更长的输入序列能带来更多的时序信息。根据实验观察,当输入超过5帧后,模型的性能不会有太大的提高,但需要消耗更多的计算资源。因此将模型的输入序列长度设置为5帧。

表3 不同输入序列长度对比

对于生成器网络中解码器部分的扩张卷积,我们对不同的扩张率分别进行对比,结果见表4,当扩张率为2时,模型的预测效果最好。

表4 不同扩张率对比

4 结束语

本文提出一种基于生成对抗网络动态建模的人群密度预测方法,用于解决未来时刻人群密度预测问题。首先将视频帧转换成对应的人群密度图送入由改进后的U-Net所构成的生成器中得到预测结果。接着通过联合强度损失、梯度损失、对抗性损失和光流损失,分别从空间特征和时序特征两个方面施加约束,得到较为准确的未来时刻人群密度分布。最后通过实验验证本文方法能够准确预测不同人群场景下的未来时刻人群分布情况。但本文方法在预测更长时间间隔后的人群密度分布以及精准预测较密集区域内的人群密度变化方面仍需改进。后期可以改进模型对更长时间间隔的输入序列中所包含的时序信息的提取,以及对视频场景中不同区域之间的运动关联信息的学习。

猜你喜欢

光流损失卷积
利用掩膜和单应矩阵提高LK光流追踪效果
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于物理学的改善粒子图像测速稳健光流方法研究
基于傅里叶域卷积表示的目标跟踪算法
一般自由碰撞的最大动能损失
损失
融合光流速度场与背景差分的自适应背景更新方法