基于视频流的人脸超分辨率识别方法转让专利

申请号 : CN201910218852.0

文献号 : CN109948555B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于建岗

申请人 : 于建岗

摘要 :

本申请提供了一种基于视频流的人脸超分辨率识别方法,本方法获取包含人脸的连续多帧图像;对每帧中的各人脸特征进行定位,人脸特征包括眼睛,眉毛,嘴;根据相同人脸特征在连续多帧图像中的定位结果,对各人脸特征进行动态跟踪;根据各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计;根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像。本申请提供的方法,根据包含人脸的连续多帧图像中各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计,再根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像,可以提升移动情况下的人脸识别准确率。

权利要求 :

1.一种基于视频流的人脸超分辨率识别方法,其特征在于,所述方法包括:S101,获取包含人脸的连续多帧图像;

S102,对每帧中的各人脸特征进行定位,所述人脸特征包括眼睛,眉毛,嘴;

S103,根据相同人脸特征在所述连续多帧图像中的定位结果,对各人脸特征进行动态跟踪;

S104,根据各人脸特征的动态跟踪结果,对所述连续多帧图像进行矢量估计;

S105,根据矢量估计结果,对所述多帧图像进行超分辨率恢复,得到人脸图像;

所述S102包括:

针对任一帧图像,

S201,根据预先基于深度神经网络训练的人脸特征识别模型,识别所述任一帧图像中左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置;

S202,根据左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置,确定双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度;

S203,将左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度均作为对所述任一帧中各人脸特征的定位结果;

所述S201中识别出的所述任一帧图像中左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置包括:左眼睛的内眼角位置,左眼睛的外眼角位置,左眼睛的眼球中心位置,右眼睛的内眼角位置,右眼睛的外眼角位置,右眼睛的眼球中心位置,左眉毛的眉头位置,左眉毛的眉尾位置,左眉毛的眉峰位置,右眉毛的眉头位置,右眉毛的眉尾位置,右眉毛的眉峰位置,嘴的左嘴角位置,嘴的右嘴角位置,嘴的唇峰位置,嘴的唇底位置;

所述S202包括:

S202-1,根据所述人脸特征识别模型确定所述任一帧图像中的人脸面积;

S202-2,确定所述任一帧图像的图像面积;

S202-3,确定所述任一帧图像的比值=所述任一帧图像中的人脸面积/所述任一帧图像的图像面积;

S202-4,确定眼睛调整系数=所述任一帧图像的比值×|左眼睛的外眼角位置-左眼睛的内眼角位置|/|右眼睛的外眼角位置-右眼睛的内眼角位置|;

S202-5,确定眉毛调整系数=所述任一帧图像的比值×|左眉毛的眉头位置-左眉毛的眉尾位置|/|右眉毛的眉头位置-右眉毛的眉尾位置|;

S202-6,确定嘴调整系数=所述任一帧图像的比值×|嘴的左嘴角位置-左眼睛的内眼角位置|/|嘴的右嘴角位置-右眼睛的内眼角位置|;

S202-7,双眼之间的最大间距=眼睛调整系数×|左眼睛的外眼角位置-右眼睛的外眼角位置|/所述任一帧图像的比值;

双眼之间的最小间距=眼睛调整系数×|左眼睛的内眼角位置-右眼睛的内眼角位置|;

双眼之间的高度差=眼睛调整系数×|左眼睛的眼球中心位置-右眼睛的眼球中心位置|;

双眉之间的最大间距=眉毛调整系数×|左眉毛的眉尾位置-右眉毛的眉尾位置|;

双眉之间的最小间距=眉毛调整系数×|左眉毛的眉头位置-右眉毛的眉头位置|;

双眉之间的高度差=眉毛调整系数×|左眉毛的眉峰位置-右眉毛的眉峰位置|;

嘴长度=嘴调整系数×|嘴的左嘴角位置-嘴的右嘴角位置|;

嘴宽度=嘴调整系数×|嘴的唇峰位置-嘴的唇底位置|。

2.根据权利要求1所述的方法,其特征在于,任一帧图像中人脸像素不大于50×50。

3.根据权利要求1所述的方法,其特征在于,所述S103包括:S103-1,将每帧中左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,按照[左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差]格式,形成眼睛矢量;

S103-2,将每帧中左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,按照[左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差]格式,形成眉毛矢量;

S103-3,将每帧中嘴的位置,嘴长度,嘴宽度,按照[嘴的位置,嘴长度,嘴宽度]格式,形成嘴矢量;

S103-4,将眼睛矢量,眉毛矢量,嘴矢量,按照[眼睛矢量,眉毛矢量,嘴矢量]格式,形成二维特征矢量;

S103-5,按照帧顺序排列各帧的二维特征矢量,形成矢量序列;

S103-6,将所述矢量序列作为各人脸特征的动态跟踪结果。

4.根据权利要求3所述的方法,其特征在于,所述S104包括:S104-1,在所述矢量序列的非首个二维特征矢量中,依次选择一个二维特征矢量,计算选择的二维特征矢量与其前一二维特征矢量之间的眼睛矢量差,眉毛矢量差,嘴矢量差;

S104-2,计算所有眼睛矢量差的标准差,所有眉毛矢量差的标准差,所有嘴矢量差的标准差;

S104-3,在非首帧图像中,依次选择一帧图像,计算选择的图像的人脸面积与其前一帧图像的人脸面积之间的差;

S104-5,计算所有人脸面积差的标准差;

S104-6,将所有眼睛矢量差的标准差/所有人脸面积差的标准差确定为眼睛估计值,将所有眉毛矢量差的标准差/所有人脸面积差的标准差确定为眉毛估计值,将所有嘴矢量差的标准差/所有人脸面积差的标准差确定为嘴估计值;

S104-7,将眼睛估计值,眉毛估计值,嘴估计值均作为矢量估计结果。

5.根据权利要求4所述的方法,其特征在于,所述S104-1包括:对于所述矢量序列的非首个二维特征矢量中的任一个二维特征矢量,S301,确定所述任一个二维特征矢量中的眼睛矢量,眉毛矢量,嘴矢量,并将其记为第一眼睛矢量,第一眉毛矢量,第一嘴矢量;

S302,确定所述任一个二维特征矢量的前一二维特征矢量中眼睛矢量,眉毛矢量,嘴矢量,并将其记为第二眼睛矢量,第二眉毛矢量,第二嘴矢量;

S303,确定眼睛矢量差=(min{第一眼睛矢量中的左眼睛位置/第二眼睛矢量中的左眼睛位置,第一眼睛矢量中的右眼睛位置/第二眼睛矢量中的右眼睛位置})×(max{第一眼睛矢量中的双眼之间的最大间距-第二眼睛矢量中的双眼之间的最大间距,第一眼睛矢量中的双眼之间的最小间距-第二眼睛矢量中的双眼之间的最小间距,第一眼睛矢量中的双眼之间的高度差-第二眼睛矢量中的双眼之间的高度差});

S304,确定眉毛矢量差=(min{第一眉毛矢量中的左眉毛位置/第二眉毛矢量中的左眉毛位置,第一眉毛矢量中的右眉毛位置/第二眉毛矢量中的右眉毛位置})×[(第一眉毛矢量中的双眉之间的最大间距-第二眉毛矢量中的双眉之间的最大间距)+(第一眉毛矢量中的双眉之间的最小间距-第二眉毛矢量中的双眉之间的最小间距)+(第一眉毛矢量中的双眉之间的高度差-第二眉毛矢量中的双眉之间的高度差)]/3;

S305,确定嘴矢量差=(第一嘴矢量中的嘴的位置/第二嘴矢量中的嘴的位置)×[(第一嘴矢量中的嘴长度×第一嘴矢量中的嘴宽度)-(第二嘴矢量中的嘴长度×第二嘴矢量中的嘴宽度)]。

6.根据权利要求5所述的方法,其特征在于,所述S105包括:S105-1,根据如下公式对所述多帧图像进行预设数量次超分辨率重建,得到最终重建图像:其中,n为当前重建次数,1≤n≤N,N为预设数量,K为所述多帧图像的帧总数,k为帧标识,yk为第k帧图像,↑为上采样运算,s为预设参数,P为反投影核,Fk为第k帧的向前映射运算, Bk为第k帧的向后映射运算,h为模糊核,*为卷积运算符,↓为下采样运算,X(n)为第n次重建后的图像;

S105-2,根据所述人脸特征识别模型识别最终重建图像中的人脸图像;

S105-3,根据所述矢量估计结果对最终重建图像中的人脸图像进行调整,得到最终人脸图像。

7.根据权利要求6所述的方法,其特征在于,所述S105-3中根据所述矢量估计结果对最终重建图像中的人脸图像进行调整,包括:对于最终重建图像中的人脸图像中的每一像素点,

若该像素点为眼睛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眼睛估计值;

若该像素点为眉毛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眉毛估计值;

若该像素点为嘴对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×嘴估计值;

若该像素点非眼睛,非眉毛,非嘴对应的像素点,则其分辨率不做调整。

说明书 :

基于视频流的人脸超分辨率识别方法

技术领域

[0001] 本发明涉及人脸识别技术领域,尤其涉及一种基于视频流的人脸超分辨率识别方法。

背景技术

[0002] 随着计算机技术和图像识别技术的应用越来越广泛,在现实生活中,很多场景下都会需要对某图像中的人脸进行识别来进行身份识别。
[0003] 但在很多场景下,例如被拍摄者距离较远,天气不好,移动端成像较差等条件下图像清晰度较差,特别在视频摄像头的拍摄中,大多数的监控摄像头都在很高的位置,对于人脸的成像图像较小和模糊。甚而,很多情况下,人在移动而非静止状态,人的眼睛和嘴唇也是在移动状态。
[0004] 传统的人脸识别技术会对移动情况下的人脸处理较差,在这种情况下,很多情况下人脸识别的准确率较低。

发明内容

[0005] 为解决上述问题,本申请实施例提出了一种基于视频流的人脸超分辨率识别方法。本发明采用的主要技术方案包括:
[0006] 一种基于视频流的人脸超分辨率识别方法,所述方法,包括:
[0007] S101,获取包含人脸的连续多帧图像;
[0008] S102,对每帧中的各人脸特征进行定位,所述人脸特征包括眼睛,眉毛,嘴;
[0009] S103,根据相同人脸特征在所述连续多帧图像中的定位结果,对各人脸特征进行动态跟踪;
[0010] S104,根据各人脸特征的动态跟踪结果,对所述连续多帧图像进行矢量估计;
[0011] S105,根据矢量估计结果,对所述多帧图像进行超分辨率恢复,得到人脸图像。
[0012] 可选地,任一帧图像中人脸像素不大于50×50。
[0013] 可选地,所述S102包括:
[0014] 针对任一帧图像,
[0015] S201,根据预先基于深度神经网络训练的人脸特征识别模型,识别所述任一帧图像中左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置;
[0016] S202,根据左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置,确定双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度;
[0017] S203,将左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度均作为对所述任一帧中各人脸特征的定位结果。
[0018] 可选地,所述S201中识别出的所述任一帧图像中左眼睛,右眼睛,左眉毛,右眉毛,嘴在所述任一帧图像中的位置包括:
[0019] 左眼睛的内眼角位置,左眼睛的外眼角位置,左眼睛的眼球中心位置,右眼睛的内眼角位置,右眼睛的外眼角位置,右眼睛的眼球中心位置,左眉毛的眉头位置,左眉毛的眉尾位置,左眉毛的眉峰位置,右眉毛的眉头位置,右眉毛的眉尾位置,右眉毛的眉峰位置,嘴的左嘴角位置,嘴的右嘴角位置,嘴的唇峰位置,嘴的唇底位置。
[0020] 可选地,所述S202包括:
[0021] S202-1,根据所述人脸特征识别模型确定所述任一帧图像中的人脸面积;
[0022] S202-2,确定所述任一帧图像的图像面积;
[0023] S202-3,确定所述任一帧图像的比值=所述任一帧图像中的人脸面积/所述任一帧图像的图像面积;
[0024] S202-4,确定眼睛调整系数=所述任一帧图像的比值×|左眼睛的外眼角位置-左眼睛的内眼角位置|/|右眼睛的外眼角位置-右眼睛的内眼角位置|;
[0025] S202-5,确定眉毛调整系数=所述任一帧图像的比值×|左眉毛的眉头位置-左眉毛的眉尾位置|/|右眉毛的眉头位置-右眉毛的眉尾位置|;
[0026] S202-6,确定嘴调整系数=所述任一帧图像的比值×|嘴的左嘴角位置-左眼睛的内眼角位置|/|嘴的右嘴角位置-右眼睛的内眼角位置|;
[0027] S202-7,双眼之间的最大间距=眼睛调整系数×|左眼睛的外眼角位置-右眼睛的外眼角位置|/所述任一帧图像的比值;
[0028] 双眼之间的最小间距=眼睛调整系数×|左眼睛的内眼角位置-右眼睛的内眼角位置|;
[0029] 双眼之间的高度差=眼睛调整系数×|左眼睛的眼球中心位置-右眼睛的眼球中心位置|;
[0030] 双眉之间的最大间距=眉毛调整系数×|左眉毛的眉尾位置-右眉毛的眉尾位置|;
[0031] 双眉之间的最小间距=眉毛调整系数×|左眉毛的眉头位置-右眉毛的眉头位置|;
[0032] 双眉之间的高度差=眉毛调整系数×|左眉毛的眉峰位置-右眉毛的眉峰位置|;
[0033] 嘴长度=嘴调整系数×|嘴的左嘴角位置-嘴的右嘴角位置|;
[0034] 嘴宽度=嘴调整系数×|嘴的唇峰位置-嘴的唇底位置|。
[0035] 可选地,所述S103包括:
[0036] S103-1,将每帧中左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,按照[左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差]格式,形成眼睛矢量;
[0037] S103-2,将每帧中左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,按照[左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差]格式,形成眉毛矢量;
[0038] S103-3,将每帧中嘴的位置,嘴长度,嘴宽度,按照[嘴的位置,嘴长度,嘴宽度]格式,形成嘴矢量;
[0039] S103-4,将眼睛矢量,眉毛矢量,嘴矢量,按照[眼睛矢量,眉毛矢量,嘴矢量]格式,形成二维特征矢量;
[0040] S103-5,按照帧顺序排列各帧的二维特征矢量,形成矢量序列;
[0041] S103-6,将所述矢量序列作为各人脸特征的动态跟踪结果。
[0042] 可选地,所述S104包括:
[0043] S104-1,在所述矢量序列的非首个二维特征矢量中,依次选择一个二维特征矢量,计算选择的二维特征矢量与其前一二维特征矢量之间的眼睛矢量差,眉毛矢量差,嘴矢量差;
[0044] S104-2,计算所有眼睛矢量差的标准差,所有眉毛矢量差的标准差,所有嘴矢量差的标准差;
[0045] S104-3,在非首帧图像中,依次选择一帧图像,计算选择的图像的人脸面积与其前一帧图像的人脸面积之间的差;
[0046] S104-5,计算所有人脸面积差的标准差;
[0047] S104-6,将所有眼睛矢量差的标准差/所有人脸面积差的标准差确定为眼睛估计值,将所有眉毛矢量差的标准差/所有人脸面积差的标准差确定为眉毛估计值,将所有嘴矢量差的标准差/所有人脸面积差的标准差确定为嘴估计值;
[0048] S104-7,将眼睛估计值,眉毛估计值,嘴估计值均作为矢量估计结果。
[0049] 可选地,所述S104-1包括:
[0050] 对于所述矢量序列的非首个二维特征矢量中的任一个二维特征矢量,[0051] S301,确定所述任一个二维特征矢量中的眼睛矢量,眉毛矢量,嘴矢量,并将其记为第一眼睛矢量,第一眉毛矢量,第一嘴矢量;
[0052] S302,确定所述任一个二维特征矢量的前一二维特征矢量中眼睛矢量,眉毛矢量,嘴矢量,并将其记为第二眼睛矢量,第二眉毛矢量,第二嘴矢量;
[0053] S303,确定眼睛矢量差=(min{第一眼睛矢量中的左眼睛位置/第二眼睛矢量中的左眼睛位置,第一眼睛矢量中的右眼睛位置/第二眼睛矢量中的右眼睛位置})×(max{第一眼睛矢量中的双眼之间的最大间距-第二眼睛矢量中的双眼之间的最大间距,第一眼睛矢量中的双眼之间的最小间距-第二眼睛矢量中的双眼之间的最小间距,第一眼睛矢量中的双眼之间的高度差-第二眼睛矢量中的双眼之间的高度差});
[0054] S304,确定眉毛矢量差=(min{第一眉毛矢量中的左眉毛位置/第二眉毛矢量中的左眉毛位置,第一眉毛矢量中的右眉毛位置/第二眉毛矢量中的右眉毛位置})×[(第一眉毛矢量中的双眉之间的最大间距-第二眉毛矢量中的双眉之间的最大间距)+(第一眉毛矢量中的双眉之间的最小间距-第二眉毛矢量中的双眉之间的最小间距)+(第一眉毛矢量中的双眉之间的高度差-第二眉毛矢量中的双眉之间的高度差)]/3;
[0055] S305,确定嘴矢量差=(第一嘴矢量中的嘴的位置/第二嘴矢量中的嘴的位置)×[(第一嘴矢量中的嘴长度×第一嘴矢量中的嘴宽度)-(第二嘴矢量中的嘴长度×第二嘴矢量中的嘴宽度)]。
[0056] 可选地,所述S105包括:
[0057] S105-1,根据如下公式对所述多帧图像进行预设数量次超分辨率重建,得到最终重建图像:
[0058]
[0059] 其中,n为当前重建次数,1≤n≤N,N为预设数量,K为所述多帧图像的帧总数,k为帧标识,yk为第k帧图像,↑为上采样运算,s为预设参数,P为反投影核,Fk为第k帧的向前映射运算, Bk为第k帧的向后映射运算,h为模糊核,*为卷积运算符,↓为下采样运算,X(n)为第n次重建后的图像;
[0060] S105-2,根据所述人脸特征识别模型识别最终重建图像中的人脸图像;
[0061] S105-3,根据所述矢量估计结果对最终重建图像中的人脸图像进行调整,得到最终人脸图像。
[0062] 可选地,所述S105-3中根据所述矢量估计结果对最终重建图像中的人脸图像进行调整,包括:
[0063] 对于最终重建图像中的人脸图像中的每一像素点,
[0064] 若该像素点为眼睛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眼睛估计值;
[0065] 若该像素点为眉毛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眉毛估计值;
[0066] 若该像素点为嘴对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×嘴估计值;
[0067] 若该像素点非眼睛,非眉毛,非嘴对应的像素点,则其分辨率不做调整。
[0068] 本发明的有益效果是:根据包含人脸的连续多帧图像中各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计,再根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像,可以提升移动情况下的人脸识别准确率。

附图说明

[0069] 下面将参照附图描述本申请的具体实施例,其中:
[0070] 图1示出了本申请一实施例提供的一种基于视频流的人脸超分辨率识别方法的流程示意图;
[0071] 图2示出了本申请一实施例提供的一种人脸特征识别示意图;
[0072] 图3示出了本申请一实施例提供的一种眼睛部位示意图;
[0073] 图4示出了本申请一实施例提供的一种眉毛部位示意图;
[0074] 图5示出了本申请一实施例提供的一种嘴部位示意图;
[0075] 图6示出了本申请一实施例提供的一种人脸特征动态跟踪示意图。

具体实施方式

[0076] 但在很多场景下,例如被拍摄者距离较远,天气不好,移动端成像较差等条件下图像清晰度较差,特别在视频摄像头的拍摄中,大多数的监控摄像头都在很高的位置,对于人脸的成像图像较小和模糊。甚而,很多情况下,人在移动而非静止状态,人的眼睛和嘴唇也是在移动状态。传统的人脸识别技术会对移动情况下的人脸处理较差,在这种情况下,很多情况下人脸识别的准确率较低。
[0077] 基于此,本提案提供一种方法,根据包含人脸的连续多帧图像中各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计,再根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像,可以提升移动情况下的人脸识别准确率。
[0078] 参见图1,本实施例提供的一种基于视频流的人脸超分辨率识别方法实现过程如下:
[0079] S101,获取包含人脸的连续多帧图像。
[0080] 其中,每帧图像中人脸像素均不大于50×50。
[0081] 具体实践中可以获取一段包含人脸的视频。
[0082] S102,对每帧中的各人脸特征进行定位。
[0083] 其中,人脸特征包括眼睛(左眼睛和右眼睛),眉毛(左眉毛和右眉毛),嘴。
[0084] 本步骤可以利用深度学习技术训练一个人脸特征识别的深度神经网络,对每帧图像中的人脸进行特征识别,识别出双眼,眉毛,嘴巴,并且定位出各个人脸特征的位置。
[0085] 具体的,针对任一帧图像(如第i帧图像),
[0086] S201,根据预先基于深度神经网络训练的人脸特征识别模型,识别任一帧图像中左眼睛,右眼睛,左眉毛,右眉毛,嘴在任一帧图像中的位置。
[0087] 如图2所示,先根据预先基于深度神经网络训练的人脸特征识别模型识别第i帧图像中的左眼睛,右眼睛,左眉毛,右眉毛,嘴的位置。
[0088] 由于眼睛,眉毛,嘴是个区域,而位置是个点,因此在具体识别时,可以仅识别左眼睛的内眼角位置,左眼睛的外眼角位置,左眼睛的眼球中心位置,右眼睛的内眼角位置,右眼睛的外眼角位置,右眼睛的眼球中心位置,左眉毛的眉头位置,左眉毛的眉尾位置,左眉毛的眉峰位置,右眉毛的眉头位置,右眉毛的眉尾位置,右眉毛的眉峰位置,嘴的左嘴角位置,嘴的右嘴角位置,嘴的唇峰位置,嘴的唇底位置。
[0089] 其中,内眼角为眼睛靠近鼻梁处的眼角,如图3中的1位置。外眼角为眼睛靠近太阳穴处的眼角,如图3中的2位置。眼球中心为眼球的球中心,如图3中的3位置。
[0090] 眉头为靠近鼻梁处的眉端点,如图4中的1位置。眉尾为靠近太阳穴处的眉端点,如图4中的2位置。眉峰为眉最高点,如图4中的3位置。
[0091] 嘴左嘴角为左面嘴角,如图5中的1位置。嘴右嘴角为右面嘴角,如图5中的2位置。唇峰为上嘴唇的最高处,如图5的3位置。唇底为下嘴唇的最低处,如图5的4位置。
[0092] S202,根据左眼睛,右眼睛,左眉毛,右眉毛,嘴在任一帧图像中的位置,确定双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度。
[0093] 虽然多帧图像是针对同一人脸的图像,但是可能由于手抖,运动等原因,会导致拍摄不同帧图像时,图像获取装置(如摄像机,照相机等)与人脸的距离不同,有的远点,有的近点,这会造成,不同帧图像中人脸在图像中的比例不同,有的人脸大点,有的人脸小点。这种人脸比例不同会造成不同帧之间的双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度无可比性。
[0094] 本步骤针对移动情况,通过每帧图像的比值动态确定每帧图像的眼睛调整系数,眉毛调整系数,嘴调整系数,再根据每帧图像的眼睛调整系数,眉毛调整系数,嘴调整系数确定每帧图像的确定双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度,可以有效的去除由于运动造成的人脸比例不同,可保证每帧图像的双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度具有可比性,
[0095] 具体的,
[0096] S202-1,根据人脸特征识别模型确定任一帧图像中的人脸面积。
[0097] S202-2,确定任一帧图像的图像面积。
[0098] S202-3,确定任一帧图像的比值=任一帧图像中的人脸面积/任一帧图像的图像面积。
[0099] S202-4,确定眼睛调整系数=任一帧图像的比值×|左眼睛的外眼角位置-左眼睛的内眼角位置|/|右眼睛的外眼角位置-右眼睛的内眼角位置|。
[0100] S202-5,确定眉毛调整系数=任一帧图像的比值×|左眉毛的眉头位置-左眉毛的眉尾位置|/|右眉毛的眉头位置-右眉毛的眉尾位置|。
[0101] S202-6,确定嘴调整系数=任一帧图像的比值×|嘴的左嘴角位置-左眼睛的内眼角位置|/|嘴的右嘴角位置-右眼睛的内眼角位置|。
[0102] S202-7,双眼之间的最大间距=眼睛调整系数×|左眼睛的外眼角位置-右眼睛的外眼角位置|/任一帧图像的比值。
[0103] 双眼之间的最小间距=眼睛调整系数×|左眼睛的内眼角位置-右眼睛的内眼角位置|。
[0104] 双眼之间的高度差=眼睛调整系数×|左眼睛的眼球中心位置-右眼睛的眼球中心位置|。
[0105] 双眉之间的最大间距=眉毛调整系数×|左眉毛的眉尾位置-右眉毛的眉尾位置|。
[0106] 双眉之间的最小间距=眉毛调整系数×|左眉毛的眉头位置-右眉毛的眉头位置|。
[0107] 双眉之间的高度差=眉毛调整系数×|左眉毛的眉峰位置-右眉毛的眉峰位置|。
[0108] 嘴长度=嘴调整系数×|嘴的左嘴角位置-嘴的右嘴角位置|。
[0109] 嘴宽度=嘴调整系数×|嘴的唇峰位置-嘴的唇底位置|。
[0110] S203,将左眼睛,右眼睛,左眉毛,右眉毛,嘴在任一帧图像中的位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度均作为对任一帧中各人脸特征的定位结果。
[0111] 至此,会得到每帧图像的左眼睛位置,右眼睛位置,左眉毛位置,右眉毛,嘴位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,嘴长度,嘴宽度。
[0112] S103,根据相同人脸特征在连续多帧图像中的定位结果,对各人脸特征进行动态跟踪。
[0113] 在执行步骤S102之后,会识别到每帧图像中的眼睛,眉毛,嘴的位置,将各帧连起来可以对眼睛,眉毛,嘴进行跟踪,如图6所示,图6中左面为前一帧图像中眼睛,眉毛,嘴的位置,右面为后一帧图像中眼睛,眉毛,嘴的位置。
[0114] 在具体实践时,步骤S103会以矢量的形式记录该动态跟踪结果。例如:
[0115] S103-1,将每帧中左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差,按照[左眼睛位置,右眼睛位置,双眼之间的最大间距,双眼之间的最小间距,双眼之间的高度差]格式,形成眼睛矢量。
[0116] 此处,眼睛矢量是一个一维矢量。
[0117] S103-2,将每帧中左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差,按照[左眉毛位置,右眉毛位置,双眉之间的最大间距,双眉之间的最小间距,双眉之间的高度差]格式,形成眉毛矢量。
[0118] 此处,眉毛矢量是一个一维矢量。
[0119] S103-3,将每帧中嘴的位置,嘴长度,嘴宽度,按照[嘴的位置,嘴长度,嘴宽度]格式,形成嘴矢量。
[0120] 此处,嘴矢量是一个一维矢量。
[0121] S103-4,将眼睛矢量,眉毛矢量,嘴矢量,按照[眼睛矢量,眉毛矢量,嘴矢量]格式,形成二维特征矢量。
[0122] 此处的二维特征矢量是由3个一维矢量组成的二维矢量。
[0123] S103-5,按照帧顺序排列各帧的二维特征矢量,形成矢量序列。
[0124] 此处的矢量序列中,每一个元素都是一个二维特征矢量。实际该序列构成三维矢量。
[0125] S103-6,将矢量序列作为各人脸特征的动态跟踪结果。
[0126] S104,根据各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计。
[0127] 本步骤会根据S103得到的各人脸特征的动态跟踪结果确定眼睛、眉毛和嘴所对应的一个矢量估计,该矢量估计实际为调整系数,通过该系数对后续人脸图像识别时的人脸图像进行微调。由于矢量估计是根据所有帧图像的动态跟踪得到的,其翻译所有帧图像作为整体的一段图像序列的整体偏差情况,因此,根据矢量估计进行调整可以进一步消除移动情况对人脸识别准确率的影响。
[0128] 具体的,S104的实现过程如下:
[0129] S104-1,在矢量序列的非首个二维特征矢量中,依次选择一个二维特征矢量,计算选择的二维特征矢量与其前一二维特征矢量之间的眼睛矢量差,眉毛矢量差,嘴矢量差。
[0130] 例如,共有5帧图像,矢量序列为{第1帧的二维特征矢量,第2帧的二维特征矢量,第3帧的二维特征矢量,第4帧的二维特征矢量,第5帧的二维特征矢量}。
[0131] 本步骤在第2帧的二维特征矢量,第3帧的二维特征矢量,第4帧的二维特征矢量,第5帧的二维特征矢量中依次选择一个二维特征矢量。
[0132] 例如,选择第2帧的二维特征矢量,此时,计算选择的二维特征矢量(第2帧的二维特征矢量)与其前一二维特征矢量(第1帧的二维特征矢量)之间的眼睛矢量差,眉毛矢量差,嘴矢量差。
[0133] 在确定眼睛矢量差,眉毛矢量差,嘴矢量差时,实现方法包括但不限于:
[0134] 对于矢量序列的非首个二维特征矢量中的任一个二维特征矢量(如第2帧的二维特征矢量),
[0135] S301,确定任一个二维特征矢量中的眼睛矢量,眉毛矢量,嘴矢量,并将其记为第一眼睛矢量,第一眉毛矢量,第一嘴矢量。
[0136] 例如,第2帧的二维特征矢量中的眼睛矢量,眉毛矢量,嘴矢量记为第一眼睛矢量,第一眉毛矢量,第一嘴矢量。
[0137] S302,确定任一个二维特征矢量的前一二维特征矢量中眼睛矢量,眉毛矢量,嘴矢量,并将其记为第二眼睛矢量,第二眉毛矢量,第二嘴矢量。
[0138] 例如,第1帧的二维特征矢量中的眼睛矢量,眉毛矢量,嘴矢量记为第二眼睛矢量,第二眉毛矢量,第二嘴矢量。
[0139] S303,确定眼睛矢量差=(min{第一眼睛矢量中的左眼睛位置/第二眼睛矢量中的左眼睛位置,第一眼睛矢量中的右眼睛位置/第二眼睛矢量中的右眼睛位置})×(max{第一眼睛矢量中的双眼之间的最大间距-第二眼睛矢量中的双眼之间的最大间距,第一眼睛矢量中的双眼之间的最小间距-第二眼睛矢量中的双眼之间的最小间距,第一眼睛矢量中的双眼之间的高度差-第二眼睛矢量中的双眼之间的高度差})。
[0140] 在确定眼睛矢量误差的时候,考虑到单只眼睛位置的比例和双眼之间距离的差距。单眼位置的比例可以反映两帧图像中眼睛位置的纵向差距,双眼之间距离的差距可以反映两帧图像中眼睛位置的横向差距,通过考虑纵向和横向差距,可以有效的消除两帧图像中眼睛部位由于移动造成的偏差。
[0141] S304,确定眉毛矢量差=(min{第一眉毛矢量中的左眉毛位置/第二眉毛矢量中的左眉毛位置,第一眉毛矢量中的右眉毛位置/第二眉毛矢量中的右眉毛位置})×[(第一眉毛矢量中的双眉之间的最大间距-第二眉毛矢量中的双眉之间的最大间距)+(第一眉毛矢量中的双眉之间的最小间距-第二眉毛矢量中的双眉之间的最小间距)+(第一眉毛矢量中的双眉之间的高度差-第二眉毛矢量中的双眉之间的高度差)]/3。
[0142] 在确定眉毛矢量误差的时候,考虑到单只眉毛位置的比例和双眉之间距离的差距。单眉位置的比例可以反映两帧图像中眉毛位置的纵向差距,双眉之间距离的差距可以反映两帧图像中眉毛位置的横向差距,通过考虑纵向和横向差距,可以有效的消除两帧图像中眉毛部位由于移动造成的偏差。
[0143] 另外,由于眉毛跟眼睛比,眉毛比较细小,因此在描述双眉之间距离的差距时,并未选择描述双眼之间距离的差距的方法,而是选择加权平均的方法,可以可以有效的突出眉毛的差距特征,方便后续调整。
[0144] S305,确定嘴矢量差=(第一嘴矢量中的嘴的位置/第二嘴矢量中的嘴的位置)×[(第一嘴矢量中的嘴长度×第一嘴矢量中的嘴宽度)-(第二嘴矢量中的嘴长度×第二嘴矢量中的嘴宽度)]。
[0145] 在确定嘴矢量误差的时候,考虑到嘴位置的比例和嘴面积之间的差距。嘴位置的比例可以反映两帧图像中嘴位置的纵向差距,嘴面积之间的差距可以反映两帧图像中嘴位置的横向差距,通过考虑纵向和横向差距,可以有效的消除两帧图像中嘴部位由于移动造成的偏差。
[0146] 另外,由于嘴跟眼睛和眉毛比,嘴面积比较大,因此在描述嘴之间的差距时,并未选择描述双眼,或者眉毛之间距离的差距的方法,而是选择面积差,可以有效的突出嘴的差距特征,方便后续调整。
[0147] S104-2,计算所有眼睛矢量差的标准差,所有眉毛矢量差的标准差,所有嘴矢量差的标准差。
[0148] S104-3,在非首帧图像中,依次选择一帧图像,计算选择的图像的人脸面积与其前一帧图像的人脸面积之间的差。
[0149] S104-5,计算所有人脸面积差的标准差。
[0150] S104-6,将所有眼睛矢量差的标准差/所有人脸面积差的标准差确定为眼睛估计值,将所有眉毛矢量差的标准差/所有人脸面积差的标准差确定为眉毛估计值,将所有嘴矢量差的标准差/所有人脸面积差的标准差确定为嘴估计值。
[0151] 在计算眼睛估计值,眉毛估计值,嘴估计值时,通过人脸面积差的标准差进行归一化处理,可以进一步消除移动带来的眼睛,眉毛和嘴的比例影响。保证眼睛估计值,眉毛估计值,嘴估计值的独立性,降低移动对眼睛估计值,眉毛估计值,嘴估计值的影响。
[0152] S104-7,将眼睛估计值,眉毛估计值,嘴估计值均作为矢量估计结果。
[0153] S105,根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像。
[0154] 本步骤对先对多帧图像进行超分辨率恢复得到一个高分辨率的人脸图像,再根据矢量估计结果对分辨率进行微调,保证调整后的人脸图像不再受拍摄者移动的影响。
[0155] 具体的,
[0156] S105-1,根据如下公式对多帧图像进行预设数量次超分辨率重建,得到最终重建图像:
[0157]
[0158] 其中,n为当前重建次数,1≤n≤N,N为预设数量,K为多帧图像的帧总数,k为帧标识,yk为第k帧图像,↑为上采样运算,s为预设参数,P为反投影核,Fk为第k帧的向前映射运算, Bk为第k帧的向后映射运算,h为模糊核,*为卷积运算符,↓为下(n)
采样运算,X 为第n次重建后的图像。
[0159] S105-2,根据人脸特征识别模型识别最终重建图像中的人脸图像。
[0160] S105-3,根据矢量估计结果对最终重建图像中的人脸图像进行调整,得到最终人脸图像。
[0161] 具体根据矢量估计结果对最终重建图像中的人脸图像进行调整的方法为:
[0162] 对于最终重建图像中的人脸图像中的每一像素点,
[0163] 若该像素点为眼睛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眼睛估计值。
[0164] 若该像素点为眉毛对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×眉毛估计值。
[0165] 若该像素点为嘴对应的像素点,则将其分辨率调整为最终重建图像中该点的分辨率×嘴估计值。
[0166] 若该像素点非眼睛,非眉毛,非嘴对应的像素点,则其分辨率不做调整。
[0167] 当对最终重建图像中的人脸图像均进行上述调整后,即得到最终人脸图像。
[0168] 上述调整过程,仅针对眼睛,眉毛,嘴的像素进行调整,对于其他位置像素不进行调整,既可以提升调整效率,降低调整资源消耗,又可以提升调整效果。另外,眼睛,眉毛,嘴针对性的调整可以更加符合个人特性,提升调整效果。
[0169] 本实施例提供的方法,根据包含人脸的连续多帧图像中各人脸特征的动态跟踪结果,对连续多帧图像进行矢量估计,再根据矢量估计结果,对多帧图像进行超分辨率恢复,得到人脸图像,可以提升移动情况下的人脸识别准确率。
[0170] 需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0171] 还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0172] 最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。