一种面向监控场景的行人人脸超分辨率重建方法与流程

文档序号:15832633发布日期:2018-11-07 07:29阅读:394来源:国知局
一种面向监控场景的行人人脸超分辨率重建方法与流程

本发明涉及视频监控分析技术领域和人脸超分辨重建领域,特别是涉及一种行人人脸检测和人脸超分辨重建领域,具体涉及一种面向监控场景的行人人脸超分辨率重建方法

背景技术

在大型商场、游乐园等人口密集的公共场所,经常需要从视频监控得到的图像中来查找一些特殊身份的人,而由于行人与摄像头之间的距离较远以及摄像头分辨率有限等原因往往无法识别图像中的行人。人脸作为图像中经常被关注的敏感区域,对特定身份的人的识别起到至关重要的作用,但是从视频监控中获取的低分辨率人脸图像包含信息量比较少,同时伴随着姿态、表情、光照等因素使得提取有效的人脸特征较为困难,增加了人脸识别的难度。因此,如何通过低分辨率的行人图像重建高分辨的行人人脸图像,从而进一步进行识别和应用,一直以来都是监控分析领域和人脸超分辨重建领域中所致力解决的关键问题之一。

现有的研究通常把上述问题分为两个独立的子问题:人脸检测和人脸超分辨重建。在视频监控中的人脸检测技术,与传统的对静态图像的人脸检测技术不同,不是人脸迎合摄像头,而是要由摄像头来捕捉人脸,因此,具有更大的挑战。人脸超分辨率重建是一种从低分辨率人脸图像重建出其相应的高分辨率人脸图像的技术。现有的人脸超分辨率方法常假设输入的人脸图像足够大并且是对齐的、无噪声的。而从视频监控中获得的人脸图像常常是含有噪声的、非对齐的、低分辨率图像,导致现有方法的性能会产生较大幅度的下降。

2016年,dong等率先将卷积神经网络引入到图像超分辨率复原的问题中,设计了基于深度卷积神经网络的图像超分辨率复原方法。该方法的主要思想是:以深度学习与传统稀疏编码之间的关系作为依据,将网络分为图像块提取、非线性映射和图像重建三个阶段,再将这三个阶段统一到一个深度卷积神经网络框架中,实现由低分辨率图像到高分辨率图像之间的端到端学习。该方法的重建结果比scsr(sparsecodingbasedsuperresolution)方法的结果有较大提高。但是该方法的输入为对齐的、无噪声的低分辨率人脸图像,所以,在实际应用场景中的性能会有大幅度下降。

为了弥补从低分辨率的行人图像到高分辨率的人脸图像的差距,同时也为了解决实际中的人脸图像的不对齐、含有噪声的现象所导致重建重影问题,本发明提出一种面向视频监控的人脸检测与人脸超分辨重建方法,该网络使用一个端到端网络实现了人脸检测和将非对齐的、含有噪声的人脸的超分辨重建。

参考文献:

[1]yux,poriklif.hallucinatingverylow-resolutionunalignedandnoisyfaceimagesbytransformativediscriminativeautoencoders[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition.2017:3760-3768.

[2]dongc,loycc,hekm,tangxo.imagesuperresolutionusingdeepconvolutionalnetworks.ieeetransactionsonpatternanalysisandmachineintelligence,2016,38(2):295-307



技术实现要素:

针对真实场景视频监控中的人脸识别问题,本发明提出一种面向视频监控场景的行人人脸检测和人脸超分辨重建方法,将行人人脸检测和人脸超分辨率重建统一到一个网络中,实现以端到端的方式输出人脸超分辨率图像,并给出针对行人人脸不可避免的不对齐、含有噪声等问题的的解决方法。本发明分为两个主要部分:行人人脸检测部分和人脸超分辨重建部分。给定一张行人的图像,首先利用人脸检测网络生成候选人脸的包围盒(boundingboxes),然后将得到的包围盒输入人脸超分辨网络中,生成高分辨率的人脸图像。在联合优化的过程中,人脸检测网络和人脸超分辨网络相互适应。本发明能够为视频监控的行人再识别技术提供有效的信息,帮助完成寻找特定行人的任务,突破现有再识别中依靠行人外表等属性来区分不同的行人,有效利用关键的人脸信息。

本发明是采用以下技术手段实现的:

步骤1:数据预处理;

视频监控中的静态图像作为输入图像,对输入图像进行预处理,即将输入图像依次进行随机裁剪、尺度变换和水平翻转,得到预处理过的图像样本。

步骤2:使用快速消化卷积层得到特征图。

步骤2.1:构建包含2个卷积层、2个池化层和含有2个c.relu激活函数的快速消化卷积层。

步骤2.2:将由步骤1获得的图像样本通过快速消化卷积层,通过卷积层提取特征,再通过c.relu,再通过池化层映射特征,获得特征图。

步骤3:使用多尺度卷积层获得不同尺度的人脸特征图。

步骤3.1:构建inception模块,该模块包含4个分的卷积层和池化层,第一个分支为核大小为1×1的卷积层,第二个分为依次为核大小为3×3的池化层和1×1的卷积层,第三个分支依次为核大小为1×1的卷积层和3×3的卷积层,第四个分支依次为核大小为1×1的卷积层、3×3的卷积层和3×3的卷积层。

步骤3.2:构建包含3个inception模块和4个卷积层的多尺度卷积层。

步骤3.3:将由步骤2获得的特征图通过多尺度卷积层,经过inception模块和卷积层提取特征,以获取第三个inception(inception3)输出的特征图作为第一个特征图,分别以获取第二个(conv3_2)和第四个卷积层(conv4_2)的特征作为第二个和第三个特征图。

步骤4:利用anchor密集化策略扩充anchor

步骤4.1:设置anchor初始尺寸:inception3层的anchor尺寸为32、64和128像素,卷积层conv3_2的anchor尺寸为256和512像素,卷积层conv4_2的anchor尺寸为256和512像素;

步骤4.2:计算anchor的密度:

其中,ascale为anchor的尺寸,ainterval为anchor平移的步长,adensity为anchor的密度。这里,在inception3中的ainterval默认为32、32和32,在conv3_2中的ainterval默认为64,在conv4_2中的ainterval默认为128;

步骤4.3:对密度值不是最高的anchor利用anchor密集化策略进行扩充,得到密度大小相同的anchor:

步骤4.3.1:设置anumber参数,表示anchor扩充的倍数;

步骤4.3.2:在每个感受野中心的周围以anchor中心偏移的方式使anchor变为倍。

步骤5:获得行人人脸的特征图

步骤5.1:将由步骤4获得的每个特征输入分类层和边框回归层:

步骤5.1.1:使用softmax损失函数作为分类器来分类非人脸和人脸,即

其中,p(i)为所属类别概率,为模型参数,x为输入,k为分类类别数。此处,k=2,上式可化简为:

步骤5.1.2:边框回归层利用下式调整每个anchor区域:

其中,x、y、w和h分别为预测框的中心点坐标、宽和高,xa、ya、wa和ha分别表示候选区域框的中心点坐标、宽和高,x*、y*、w*和h*分别表示真实框的中心点坐标、宽和高。tx、ty、tw和th分别为anchor的偏移量,即分别为anchor中心点坐标的平移量和anchor宽和高的平移量。分别为候选区域与真实框之间的中心坐标的平移量、宽和高的平移量。

步骤5.2:获得分类标签为人脸的特征:对分类为非人脸的特征图进行去除,仅保留分类为人脸的特征图;

步骤6:将特征通过roipooling层获得大小一致的特征图:

为了将图像中的anchor定位到特征图中对应部分和获得大小一致的特征图,将由步骤5获得人脸的特征图,通过roipooling层,获得大小一致的特征图,即低分辨率人脸特征图。

步骤7:利用变换区分解码模块获得中间的高分辨率人脸

全文中低分辨率与高分辨为相对概念,其中低分辨率是由于摄像头设备造成的,即摄像头设备采集监控图像中的人脸则处于低分辨率的水平;高分辨率是通过重建方法提高分辨率来获得高分辨率人脸。

步骤7.1:变换区分解码模块包含两个部分:一个对齐上采样模块和一个区分模块。

其中,对齐上采样模块依次包含stn模块、反卷积层、stn模块、反卷积层和卷积层,用于生成高分辨率的人脸图像;区分模块依次包含多个卷积层、池化层和全连接层,用于判断输入的高分辨率人脸图像是真实的人脸还是通过高分辨率重建方法重建的人脸。

步骤7.1.1:使用stn对齐图像得到对齐的特征图:

构建stn,stn包含一个网格生成模块和一个双线性采样器。其中,网格生成网络用于回归出一组六维的变换参数θ,并使用该参数生成网格,其中仿射变换公式如下:

其中,为输出特征图上的坐标,为输入特征图上的坐标,θ11、θ12、θ21和θ22是缩放和旋转变换的参数,θ13和θ23是平移变换的参数。

双线性采样器的公式如下:

其中,为输出特征图的通道c上位置(m,n)的像素值,为输入特征图的通道c上位置(xs,ys)的像素值。若(xt,yt)与(m,n)很接近,即若|xt-m|<1且|yt-n|<1,则在(xs,ys)位置插入

步骤7.1.2:使用反卷积得到高分辨率人脸:

该层在这里相当于进行上采样的操作。通过调整步长来实现对采样因子的调整,两次反卷积分别采用3×3和5×5大小的核。该过程由下面公式表示:

f=σ(wd·fstn+b)

其中f代表反卷积层的输出,σ代表激活函数,wd代表反卷积层的权重参数,·表示反卷积操作,fstn为stn输出的特征,b为偏置。

步骤7.1.3:使用区分模块进行分类:

该区分模块的输入为由对齐上采样模块重建的高分辨率人脸图像,该图像通过多个卷积层和最大池化层,然后通过多个全连接层进行二分类操作。

步骤7.2:将由步骤6获得的低分辨率人脸特征图通过由步骤7.1构建的对齐上采样模块获得粗略对齐的高分辨率人脸特征

步骤8:利用变换编码模块获得对齐的无噪声的低分辨率人脸特征

步骤8.1:依次使用两组卷积层和最大池化层、stn模块、卷积层、最大池化层和stn构建变换编码模块;

步骤8.2:将由步骤7所生成的中间的高分辨人脸特征图通过区分模块生成无噪声、对齐的低分辨率人脸图像。

步骤9:利用变换区分解码模块获得最终的高分辨率人脸

步骤9.1:变换区分解码模块包含两个部分:一个对齐上采样模块和一个区分模块。其中,对齐上采样模块依次包含stn模块、反卷积层、stn模块、反卷积层和卷积层,用于生成高分辨率的人脸图像;区分模块依次包含多个卷积层、池化层和全连接层,用于判断输入的高分辨率人脸图像是真实的人脸还是通过高分辨率重建方法重建的人脸。

步骤9.2:将由步骤8所生成的低分辨人脸特征图通过对齐上采样模块生成最终高分辨率的人脸图像。

步骤10:网络的训练过程

首先分别训练人脸检测部分和人脸超分辨率部分,然后再训练整个网络,微调两个部分的权值,使两者更加适应彼此。

步骤10.1:训练参数设置:

所有参数使用“xavier”方法进行随机初始化。采用随机梯度下降算法训练模型,其中动量设置为0.9。权重衰减率设置为0.0005,batch-size设置为32,学习率初始设置为10-3

步骤10.2:人脸检测部分的训练

人脸检测部分训练的损失函数为:

l(p,u,tu,v)=lcls(p,u)+λ[u=1]lloc(tu,v)

其中,整体损失函数l是由分类层损失函数lcls和检测为人脸即u=1边框定位损失函数lloc在权重参数λ的平衡下相加得到。lcls为分类层损失函数,p=(p0,…,pu,…pk)为softmax层输出k+1类别的概率,此处k=1,即输出非人脸和人脸两个类别的概率,lcls=-logpu表示真实的标签为u的误差,此处u=0表示非人脸或u=1表示人脸;lcls为边框定位的损失函数,仅在检测为人脸时起作用,其中,令

j=1,2,3,4,和vj分别表示v=(v1,v2,v3,v4)=(vx,vy,vw,vh)表示预测人脸框的横坐标、纵坐标、宽度和高度,表示真实人脸的横坐标、纵坐标、宽度和高度;λ为用于平衡lcls和lloc的权重的参数,取值为10。

步骤10.3:人脸超分辨率部分的训练

步骤10.3.1:变换区分解码模块的训练

该模块中对齐上采样模块的损失函数u(s)使用像素间的l2范数,其损失函数写为:

表示最小化损失函数u(s)也就是最小化重建的高分辨率人脸与真实的高分辨人脸hi之误差的l2范数的数学期望,即使得重建的高分辨率人脸与真实的高分辨人脸hi更加接近。其中,s表示对齐上采样模块的参数,表示l2范数,表示输入的含噪声不对齐的低分辨率的人脸特征图,hi表示高分辨率的ground-truth人脸图像,p(ln,h)表示低分辨率和高分辨率人脸的联合概率分布,表示对齐上采样模块输出的高分辨率的人脸图像。

该模块中区分模块的损失函数l(t)为最大化分区模块的交叉熵如下:

表示由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi接近使得区分模块难以分辨,即由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi通过区分模块造成的交叉熵误差损失最大。其中,t表示分区模块的参数,d(hi)表示真实的人脸hi通过分区模块的输出,表示高分辨重建的人脸通过区分模块的输出,p(h)和分别表示真实的人脸概率分布和高分辨率重建的人脸的概率分布。

更新对齐上采样模块的参数:使用最大化区分模块的损失函数l(t)进行反向传播,其中区分模块的参数t在第i+1次迭代时更新过程如下:

其中,r表示学习率,设置为10-4,γ表示衰减率,设置为0.0005,i表示第i次迭代,δ表示损失的残差变化,用于参数t的更新。ε被设置为10-8来避免除数为0。对于对齐上采样模块,联合使用对齐上采样模块的损失函数u和区分模块的损失函数l并通过随机梯度下降算法更新参数s:

其中,μ表示对齐上采样模块的损失函数u和区分模块的损失函数l的偏导数之间的权重因子,设置权重因子的初始值为0.01,并用下面公式更新权重因子的值:

μk=max{μ·0.99k,μ/2}

其中,k表示epoch的次数。

步骤10.3.2:变换编码器模块的训练

该模块的目标函数为:

表示最小化损失函数e(e)也就是最小化重建的高分辨率人脸通过ψ产生的低分辨率人脸与真实的低分辨人脸li之间误差的l2范数的数学期望,即使得通过变换编码器得到的低分辨率人脸(即)与真实的低分辨人脸li更加接近。其中,e表示变换编码模块的参数,li表示真实的低分辨率人脸图像,表示低分辨率和高分辨率重建人脸的联合概率分布表示从中间上采样的高分辨率的人脸图像到低分辨率人脸的映射。

步骤10.3.3:变换区分解码模块的训练

该模块中对齐上采样模块的损失函数u(s)使用像素间的l2范数,其损失函数写为:

表示最小化损失函数u(s)也就是最小化重建的高分辨率人脸与真实的高分辨人脸hi之误差的l2范数的数学期望,即使得重建的高分辨率人脸与真实的高分辨人脸hi更加接近。其中,s表示对齐上采样模块的参数,表示l2范数,表示输入的含噪声不对齐的低分辨率的人脸特征图,hi表示高分辨率的ground-truth人脸图像,p(ln,h)表示低分辨率和高分辨率人脸的联合概率分布,表示对齐上采样模块输出的高分辨率的人脸图像。

该模块中区分模块的损失函数l(t)为最大化分区模块的交叉熵如下:

表示由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi接近使得区分模块难以分辨,即由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi通过区分模块造成的交叉熵误差损失最大。其中,t表示分区模块的参数,d(hi)表示真实的人脸hi通过分区模块的输出,表示高分辨重建的人脸通过区分模块的输出,p(h)和分别表示真实的人脸概率分布和高分辨率重建的人脸的概率分布。

更新对齐上采样模块的参数:使用最大化区分模块的损失函数l(t)进行反向传播,其中区分模块的参数t在第i+1次迭代时更新过程如下:

其中,r表示学习率,设置为10-4,γ表示衰减率,设置为0.0005,i表示第i次迭代,δ表示损失的残差变化,用于参数t的更新。ε被设置为10-8来避免除数为0。对于对齐上采样模块,联合使用对齐上采样模块的损失函数u和区分模块的损失函数l并通过随机梯度下降算法更新参数s:

其中,μ表示对齐上采样模块的损失函数u和区分模块的损失函数l的偏导数之间的权重因子,设置权重因子的初始值为0.01,并用下面公式更新权重因子的值:

μk=max{μ·0.99k,μ/2}

其中,k表示epoch的次数。

步骤10.3:整个网络的训练

采用随机梯度下降算法训练整个网络的模型,其中动量设置为0.9。权重衰减率设置为0.0005,batch-size设置为32,学习率初始设置为10-4

步骤11:网络的测试

输入一张行人图像,通过行人人脸检测部分得到人脸的特征图,然后通过人脸高分辨率部分获得高分辨率重建人脸图像。

本发明与现有技术相比,具有以下的优势和有益效果:

本发明提出一种一种面向监控场景的行人人脸超分辨率重建方法,本发明分为两个主要部分:行人人脸检测部分和人脸超分辨重建部分。给定一张行人的图像,首先利用人脸检测网络生成候选人脸的包围盒(boundingboxes),然后将这些包围盒输入人脸超分辨网络中,生成高分辨率的人脸图像。在联合优化的过程中,人脸检测网络和人脸超分辨网络相互适应。由于实际场景中的人脸图像常常伴随着不对齐和噪声,针对该问题,本方法中的人脸高分辨率重建部分利用stn自主学习与对齐的人脸之间的映射,使网络可以自动地学习并校正;由于将行人人脸检测和人脸超分辨率重建到融合到一个网络中,所以构成了一个从行人图像到高分辨率人脸图像重建的端到端网络,为实际应用中特定的行人搜索提供了有效的信息。

附图说明

图1是行人人脸超分辨率网络的结构图;

图2是行人人脸超分辨率网络中行人人脸检测的结构图;

图3是行人人脸超分辨率网络中人脸超分辨率中的变换区分解码器的结构图

图4是行人人脸超分辨率网络中人脸超分辨率中的变换编码网络的结构图

具体实施方式

计算机环境:操作系统为linux14.04版本,显卡为titanx,软件平台:spyder、caffe。

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。具体包括以下步骤:

1.该网络的输入图像是视频监控中的静态图像,为了获得更多的数据,使用数据扩充技术。随机剪裁,从一张图像中随机的剪裁5方形的patch:其中一个是最大的方形patch,其他的patch的大小是最短边的[0.3,1]。尺度变换,在随机剪裁之后,对选取的方形patch的大小统一成1024×1024。之后对尺度变换之后的图像以0.5的概率进行水平的翻转,得到预处理过的图像样本。

2.如图2所示为整个网络中的行人人脸检测部分,即说明书中步骤2和步骤3所指的快速消化的卷积层和多尺度卷积层部分。

在快速消化的卷积层中,为了平衡加速网络与空间分辨率下降的速度,本方法依次采用卷积层和池化层来构建快速消化卷积层,具体地卷积层1的核为7×7,步长为4,池化层1的核为3×3,步长为2,卷积层2的核为5×5,步长为2,池化层2的核为3×3,步长为2。这样快速消化卷积层的步长为32,即输入图像的大小可以快速下降32倍。为了减少输出通道的数量并减少计算量以加速网络,使用c.relu减少一半的输出通道。

在多尺度卷积层中,本部分依次采用inception1、inception2、inception3、卷积层3_1、卷积层3_2、卷积层4_1和卷积层4_2层,其中inception1、inception2和inception3的结构图相同,一个inception包含4个分支的卷积层和池化层,第一个分支是核为1×1的卷积层,第二个分支依次是一个核为3×3的池化层和一个核为1×1的卷积层,第三个分支依次是一个核为1×1的卷积层和一个核为3×3的卷积层,第四个分支依次是一个核为1×1的卷积层、一个核为3×3的卷积层和一个核为3×3的卷积层。卷积层3_1的核为1×1,卷积层3_2的核为3×3,卷积层4_1的核为1×1,卷积层4_2的核为3×3。为了获得多尺度的特征图,本方法分别提取第三个inception(inception3)输出的特征图作为第一个特征图,分别以获取第二个(conv3_2)和第四个卷积层(conv4_2)的特征作为第二个和第三个特征图;为了学习不同尺度人脸的视觉模式,与多尺度相对应的层应该包含不同大小的感受野,所以,使用inception模块实现。

3.利用anchor密集化策略扩充anchor。其过程如下:

(1)设置anchor初始尺寸:inception3层的anchor尺寸为32、64和128像素,其对应的平移步长为32、32和32,卷积层conv3_2的anchor尺寸为256像素,其对应的平移步长为64,卷积层conv4_2的anchor尺寸为512像素,其对应的平移步长为128。

(2)计算anchor的密度:

其中,ascale为anchor的尺寸,ainterval为anchor平移的步长,adensity为anchor的密度。根据(1)中的值计算anchor的密度分别为1、2、4、4和4。

(3)对anchor的密度值小于4的anchor利用anchor密集化策略进行扩充,得到密度大小相同的anchor:

设置anumber参数,它表示anchor扩充的倍数,此处anchor尺寸为32像素的anchor的anumber参数设置为4,anchor尺寸为64像素的anchor的anumber参数设置为2。具体过程为在多尺度特征图上以每个感受野的中心点的周围以anchor中心偏移的方式使anchor变为an2umber倍,使得不同尺度的anchor的密度均为4。

4.获得行人人脸的特征图

(1)将3.中所获得的每个特征图输入分类层和边框回归层。

分类层使用softmax损失函数作为分类的依据,用于区分人脸和非人脸,

其中,p(i)为所属类别概率,为模型参数,x为输入,k为分类类别数。此处,k=2,上式可化简为:

边框回归层利用下式调整每个anchor区域:

其中,x、y、w和h分别为预测框的中心点坐标、宽和高,xa、ya、wa和ha分别表示候选区域框的中心点坐标、宽和高,x*、y*、w*和h*分别表示真实框的中心点坐标、宽和高。tx、ty、tw和th分别为anchor的偏移量,即分别为anchor中心点坐标的平移量和anchor宽和高的平移量。分别为候选区域与真实框之间的中心坐标的平移量、宽和高的平移量。

(2)获得分类标签为人脸的特征:对分类为非人脸的特征图进行去除,仅保留分类为人脸的特征图;

5.将特征通过roipooling层获得大小一致的特征图:

为了将图像中的anchor定位到特征图中对应部分和获得大小一致的特征图,将由4.获得人脸的特征图,通过roipooling层,获得16×16大小的特征图,即低分辨率人脸特征图。

6.利用变换区分解码模块获得中间的高分辨率人脸

全文中低分辨率与高分辨为相对概念,其中低分辨率是由于摄像头设备造成的,即摄像头设备采集监控图像中的人脸则处于低分辨率的水平;高分辨率是通过重建方法提高分辨率来获得高分辨率人脸。

(1)变换区分编码模块包含两个部分:一个对齐上采样模块和一个区分模块。其中,对齐上采样模块依次包含stn1、反卷积层1、stn2、反卷积层2和卷积层1,用于生成高分辨率的人脸图像;区分模块依次包含2个卷积层和池化层(卷积层2(3)和池化层2(3))、池化层4、全连接层1和全连接层2,用于判断输入的高分辨率人脸图像是真实的人脸还是通过高分辨率重建方法重建的人脸。

(1)构建stn,stn包含一个网格生成模块和一个双线性采样器。其中,网格生成网络用于回归出一组六维的变换参数θ并使用该参数生成网格,其中仿射变换公式如下:

其中,为输出特征图上的坐标,为输入特征图上的坐标,θ11、θ12、θ21和θ22是缩放和旋转变换的参数,θ13和θ23是平移变换的参数。

其中,stn1依次包含步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、全连接层(从400维到20维的映射)和全连接层(从20维到4维的映射)。stn2依次包含步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、全连接层(从180维到20维的映射)和全连接层(从20维到4维的映射)。

(2)双线性采样器的公式如下:

其中,为输出特征图的通道c上位置(m,n)的像素值,为输入特征图的通道c上位置(xs,ys)的像素值。若(xt,yt)与(m,n)很接近,即若|xt-m|<1且|yt-n|<1,则在(xs,ys)位置插入

(3)使用反卷积提升分辨率:

该层在这里相当于进行上采样的操作。通过调整步长来实现对采样因子的调整,两次反卷积分别采用3×3和5×5大小的核来提升重建的质量。该过程可以有下面公式表示:

f=σ(wd·fstn+b)

其中f代表反卷积层的输出,σ代表激活函数,wd代表反卷积层的权重参数,·反卷积操作,fstn为stn输出的特征,b为偏置。

(4)使用区分模块进行分类:

该区分模块的输入为由对齐上采样模块重建的高分辨率人脸图像,该图像通过多个的卷积层和最大池化层,之后通过多个全连接层进行二分类操作,具体来说,依次通过核为5×5的卷积层1和池化层1、核为5×5的卷积层2和池化层2、核为5×5的卷积层3和池化层3、池化层4、含有6144神经元的全连接层、含有1024神经元的全连接层和含有1神经元的全连接层并输出图像的类别,即为真实的图像或者是重建的图像。

将由(3)获得的特征图通过对齐上采样模块获得经过粗略对齐的高分辨率人脸特征

检测的行人人脸是不对齐的、含有噪声的低分辨率的图像。为了获得高分辨率的人脸图像,使用反卷积操作来提升分辨;率为了减少噪声,直接采用已经经过人脸检测部分卷积、池化等操作处理过的特征图;为了对齐人脸,融合stn学习不对齐与对齐之间的映射关系,可以对应并较少仅使用反卷积操作带来的重影;

7.利用变换编码模块获得对齐的无噪声的低分辨率人脸特征

由6中所产生的人脸更多的细节信息,但是会产生重影问题(主要是由噪声所引起)。为了消除重影,也为了进一步对齐人脸,使用区分模块中间高分辨率人脸映射成无噪声、对齐的低分辨率版本。

(1)构建变换编码模块:依次使用核为5×5的卷积层1、池化层1、核为3×3的卷积层2、池化层2、stn3、核为3×3的卷积层3、池化层3、stn4、核为3×3的卷积层4和池化层4,输出低分辨率人脸特征图。具体来说,stn3依次包含步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、全连接层(从80维到20维的映射)、c.relu和全连接层(从20维到4维的映射)。stn4依次包含核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、全连接层(从80维到20维的映射)、c.relu和全连接层(从20维到4维的映射)。

(2)将由6所生成的中间的高分辨人脸特征图通过区分模块生成无噪声、对齐的低分辨率版本。

8.利用变换区分解码模块获得最终的高分辨率人脸

变换区分编码模块包含两个部分:一个对齐上采样模块和一个区分模块。其中,对齐上采样模块依次包含stn1、反卷积层1、stn2、反卷积层2和卷积层1,用于生成高分辨率的人脸图像;区分模块依次包含2个卷积层和池化层(卷积层2(3)和池化层2(3))、池化层4、全连接层1和全连接层2,用于判断输入的高分辨率人脸图像是真实的人脸还是通过高分辨率重建方法重建的人脸。

(1)构建stn,stn包含一个网格生成模块和一个双线性采样器。其中,网格生成网络用于回归出一组六维的变换参数θ并使用该参数生成网格,其中仿射变换公式如下:

其中,为输出特征图上的坐标,为输入特征图上的坐标,θ11、θ12、θ21和θ22是缩放和旋转变换的参数,θ13和θ23是平移变换的参数。

其中,stn1依次包含步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、全连接层(从400维到20维的映射)和全连接层(从20维到4维的映射)。stn2依次包含步长为2的最大池化层、核为5×5的卷积层、c.relu、步长为2的最大池化层、核为5×5的卷积层、c.relu、全连接层(从180维到20维的映射)和全连接层(从20维到4维的映射)。

(2)双线性采样器的公式如下:

其中,为输出特征图的通道c上位置(m,n)的像素值,为输入特征图的通道c上位置(xs,ys)的像素值。若(xt,yt)与(m,n)很接近,即若|xt-m|<1且|yt-n|<1,则在(xs,ys)位置插入

(3)使用反卷积提升分辨率:

该层在这里相当于进行上采样的操作。通过调整步长来实现对采样因子的调整,两次反卷积分别采用3×3和5×5大小的核来提升重建的质量。该过程可以有下面公式表示:

f=σ(wd·fstn+b)

其中f代表反卷积层的输出,σ代表激活函数,wd代表反卷积层的权重参数,·反卷积操作,fstn为stn输出的特征,b为偏置。

(4)使用区分模块进行分类:

该区分模块的输入为由对齐上采样模块重建的高分辨率人脸图像,该图像通过多个的卷积层和最大池化层,之后通过多个全连接层进行二分类操作,具体来说,依次通过核为5×5的卷积层1和池化层1、核为5×5的卷积层2和池化层2、核为5×5的卷积层3和池化层3、池化层4、含有6144神经元的全连接层、含有1024神经元的全连接层和含有1神经元的全连接层并输出图像的类别,即为真实的图像或者是重建的图像。

将由(3)获得的特征图通过对齐上采样模块获得经过粗略对齐的高分辨率人脸特征

检测的行人人脸是不对齐的、含有噪声的低分辨率的图像。为了获得高分辨率的人脸图像,使用反卷积操作来提升分辨;率为了减少噪声,直接采用已经经过人脸检测部分卷积、池化等操作处理过的特征图;为了对齐人脸,融合stn学习不对齐与对齐之间的映射关系,可以对应并较少仅使用反卷积操作带来的重影;

9.网络的训练

首先分别训练人脸检测部分和人脸超分辨率部分,然后再训练整个网络,微调两个部分的权值,使两者更加适应彼此。

(1)行人人脸检测部分的训练

所有的参数使用“xavier”方法进行随机初始化。采用随机梯度下降算法训练模型,其中动量设置为0.9。权重衰减率设置为0.0005,batch-size设置为32,学习率初始设置为10-3

人脸检测部分训练的损失函数为:

l(p,u,tu,v)=lcls(p,u)+λ[u=1]lloc(tu,v)

其中,整体损失函数l是由分类层损失函数lcls和检测为人脸即u=1边框定位损失函数lloc在权重参数λ的平衡下相加得到。lcls为分类层损失函数,p=(p0,…,pu,…pk)为softmax层输出k+1类别的概率,此处k=1,即输出非人脸和人脸两个类别的概率,lcls=-logpu表示真实的标签为u的误差,此处u=0表示非人脸或u=1表示人脸;lcls为边框定位的损失函数,仅在检测为人脸时起作用,其中,令

j=1,2,3,4,和vj分别表示v=(v1,v2,v3,v4)=(vx,vy,vw,vh)表示预测人脸框的横坐标、纵坐标、宽度和高度,表示真实人脸的横坐标、纵坐标、宽度和高度;λ为用于平衡lcls和lloc的权重的参数,取值为10。

(2)人脸超分辨部分的训练

变换区分解码模块的训练:

该模块中对齐上采样模块的损失函数u(s)使用像素间的l2范数,其损失函数可以写为:

表示最小化损失函数u(s)也就是最小化重建的高分辨率人脸与真实的高分辨人脸hi之误差的l2范数的数学期望,即使得重建的高分辨率人脸与真实的高分辨人脸hi更加接近。其中,s表示对齐上采样模块的参数,表示l2范数,表示输入的含噪声不对齐的低分辨率的人脸特征图,hi表示高分辨率的ground-truth人脸图像,p(ln,h)表示低分辨率和高分辨率人脸的联合概率分布,表示对齐上采样模块输出的高分辨率的人脸图像。

但是因为仅仅使用像素间相似性损失进行训练将导致产生平滑的结果,因此利用区分模块的二分类器使得对齐上采样模块所生成的高分辨率人脸图像更趋向真实人脸图像,该二分类器用于判断是真实人脸图像还是通过某种方法所生成的人脸图像,即若根据该信息的值不能判断所生产的高分辨率人脸图像是网络生成的,而是真实的图像,则表明所生成的高分辨率人脸图像与真实的图像非常相似,使得该对齐上采样模块所生成的高分辨率人脸更加真实。因此,最大化分区模块的交叉熵如下:

表示由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi接近使得区分模块难以分辨,即由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi通过区分模块造成的交叉熵误差损失最大。其中,t表示分区模块的参数,d表示该区分模块的函数,d(hi)表示真实的人脸hi通过分区模块的输出,表示高分辨重建的人脸通过区分模块的输出,p(h)和分别表示真实的人脸概率分布和高分辨率重建的人脸的概率分布。

为了更新对齐上采样模块的参数,使用最大化区分模块的损失函数l(t)进行反向传播,其中区分模块的参数t在第i+1次迭代时更新过程如下:

其中,r表示学习率,设置为10-4,γ表示衰减率,设置为0.0005,i表示第i次迭代,δ表示损失的残差变化,用于参数t的更新。ε被设置为10-8来避免除数为0。对于对齐上采样模块,联合使用对齐上采样模块的损失函数u和区分模块的损失函数l并通过随机梯度下降算法更新参数s:

其中,μ表示对齐上采样模块的损失函数u和区分模块的损失函数l的偏导数之间的权重因子,设置权重因子的初始值为0.01,并用下面公式更新权重因子的值:

μk=max{μ·0.99k,μ/2}

其中,k表示epoch的次数。

变换编码器模块的训练:

该模块的目标函数为:

表示最小化损失函数e(e)也就是最小化重建的高分辨率人脸通过ψ产生的低分辨率人脸与真实的低分辨人脸li之间误差的l2范数的数学期望,即使得通过变换编码器得到的低分辨率人脸(即)与真实的低分辨人脸li更加接近。其中,e表示变换编码模块的参数,li表示真实的低分辨率人脸图像,表示低分辨率和高分辨率重建人脸的联合概率分布表示从中间上采样的高分辨率的人脸图像到低分辨率人脸的映射。

变换区分解码模块的训练:

该模块中对齐上采样模块的损失函数u(s)使用像素间的l2范数,其损失函数写为:

表示最小化损失函数u(s)也就是最小化重建的高分辨率人脸与真实的高分辨人脸hi之误差的l2范数的数学期望,即使得重建的高分辨率人脸与真实的高分辨人脸hi更加接近。其中,s表示对齐上采样模块的参数,表示l2范数,表示输入的含噪声不对齐的低分辨率的人脸特征图,hi表示高分辨率的ground-truth人脸图像,表示低分辨率和高分辨率人脸的联合概率分布,表示对齐上采样模块输出的高分辨率的人脸图像。

该模块中区分模块的损失函数l(t)为最大化分区模块的交叉熵如下:

表示由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi接近使得区分模块难以分辨,即由变换区分解码模块所生成的高分辨率人脸与真实的人脸hi通过区分模块造成的交叉熵误差损失最大。其中,t表示分区模块的参数,d(hi)表示真实的人脸hi通过分区模块的输出,表示高分辨重建的人脸通过区分模块的输出,p(h)和分别表示真实的人脸概率分布和高分辨率重建的人脸的概率分布。

更新对齐上采样模块的参数:使用最大化区分模块的损失函数l(t)进行反向传播,其中区分模块的参数t在第i+1次迭代时更新过程如下:

其中,r表示学习率,设置为10-4,γ表示衰减率,设置为0.0005,i表示第i次迭代,δ表示损失的残差变化,用于参数t的更新。ε被设置为10-8来避免除数为0。对于对齐上采样模块,联合使用对齐上采样模块的损失函数u和区分模块的损失函数l并通过随机梯度下降算法更新参数s:

其中,μ表示对齐上采样模块的损失函数u和区分模块的损失函数l的偏导数之间的权重因子,设置权重因子的初始值为0.01,并用下面公式更新权重因子的值:

μk=max{μ·0.99k,μ/2}

其中,k表示epoch的次数。

(3)整个网络的训练

采用随机梯度下降算法训练整个网络的模型,其中动量设置为0.9。权重衰减率设置为0.0005,batch-size设置为32,学习率初始设置为10-4

10.网络的测试

输入一张行人图像,通过行人人脸检测部分得到人脸的特征图,然后通过人脸高分辨率部分获得高分辨率重建人脸图像。

综上所述,针对实际视频监控中的人脸识别与实际中的差距,本发明提出一种联合行人人脸检测和人脸超分辨率的超分辨率重建方法,使得将行人人脸检测和人脸超分辨率方法融合在一个统一的网络中,实现以端到端的方式输出人脸超分辨率图像;并针对行人人脸不可避免的不对齐、含有噪声提出很好的解决方法。本发明将行人图像作为输入,利用行人人脸检测部分检测人脸,之后把人脸的特征图利用roipooling层统一成固定的大小,再通过人脸超分辨率部分,最终输出行人人脸的超分辨率图像。为视频监控的再识别技术提供有效的信息,帮助完成寻找特定行人的任务,突破现有依靠行人再识别中行人外表等属性来区分不同的行人,使得关键的人脸信息可以有效地利用起来。

最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1