一种实时多人脸的检测及跟踪方法与流程

文档序号:17290317发布日期:2019-04-03 03:54阅读:717来源:国知局
一种实时多人脸的检测及跟踪方法与流程

本发明属于人脸检测及跟踪领域,具体涉及一种实时多人脸的检测及跟踪方法。



背景技术:

随着科学技术的快速发展,基于计算机视觉的相关技术得以广泛应用,其中人脸跟踪技术在视频安防、自动门禁、商场购物等场景下得以广泛应用。

人脸跟踪技术主要包括人脸检测和人脸跟踪技术。人脸检测技术是指在图片中找到人脸位置。人脸跟踪技术是指给定初始人脸位置,在连续视频帧中进行持续人脸位置预测。当前主流的人脸跟踪技术按原理大致分为三种,一是基于相关滤波跟踪方法,二是基于深度学习跟踪方法,三是基于光流跟踪方法。

基于相关滤波跟踪方法具有代表性的是kcf(kernelizedcorrelationfilter)和srdcf(spatiallyregularizeddiscriminativecorrelationfilter)。kcf方法采用循环矩阵获取正负样本,并在跟踪过程中训练一个目标检测器,利用目标检测器去检测下一帧的跟踪目标是否为真实目标,然后再使用新检测结果去更新训练集进而更新目标检测器。该方法的缺陷是,当物体移动速度很快,出现边界效应或动态模糊现象时,会丢失跟踪目标。srdcf方法提出多尺度,采用更大的检测区域解决边界效应,但是此方法运行速度很慢,无法满足实时性要求。

基于深度学习的跟踪方法具有代表性的是mdnet(multi-domainconvolutionalneuralnetwork),网络由共享层和特定域的层多分支组成,其中域对应于独立的训练等级,并且每个分支负责一个二分类去识别每个域中的目标,针对每个域采用迭代方式去训练网络,获得共享层中的通用目标特征提取。在跟踪视频序列中的目标时,结合预训练cnn(convolutionneuralnetwork)中共享层与二分类层构成一个新的网络,同时提出在线跟踪(onlinetracking),在线跟踪是通过评估前一帧目标周围随机采样得到的候选窗口实现的,跟踪目标特征提取准确度较高,但因网络参数较多,使用cpu很难达到实时性目标跟踪。

基于光流跟踪的方法具有代表性的是lk(lucas-kanade)光流估计差分方法,该方法是一种基于梯度的局部微分光流计算方法,这种光流法首先要满足三个假设,假设1,亮度恒定,就是同一点随着时间的变化,其亮度不会发生改变。假设2,小运动,就是时间的变化不会引起位置的剧烈变化。假设3,空间一致,一个场景上邻近的点投影到图像上也是邻近点,且邻近点速度一致。光流法能够在任何复杂的场景下进行目标跟踪。该方法可以准确、快速完成目标跟踪,比较适合应用在计算力比较小的终端上。

要在计算力比较小的cpu(比如i5-6200)上实现,所以要求实现方法的计算量要小,算法设计不能太复杂。相比于相关滤波跟踪方法和深度学习跟踪方法,基于光流跟踪方法的优势是可以更快速实现目标跟踪,而且对于人脸遮挡、人脸姿态表情复杂、人脸移动速度快、跟踪环境背景复杂有更好的鲁棒性,适合在计算力比较小的cpu处理器上实现。

但是,目前的基于光流跟踪的方法在处理人脸检测及跟踪过程中,出现了如下问题:

1.遮挡问题,遮挡包括人与人,人与物之间的遮挡,会造成人脸信息的缺失,这将直接导致跟踪目标丢失,跟踪准确率下降。

2.动态模糊和边界效应,这将造成人脸信息模糊,特征提取不准确,直接导致跟踪目标的丢失。

3.背景环境复杂,背景环境包括光照条件的变化、色彩和物体多种多样,有时跟踪目标颜色会和背景环境颜色一致,这些都将给人脸跟踪任务带来巨大的挑战。

4.效率问题,现有多人脸跟踪技术较难以满足实时性要求,尤其是在计算力比较低的cpu设备上。

在人脸姿态表情复杂、人脸存在遮挡、外界环境背景复杂以及光照条件多变等情况下,容易导致跟踪的准确性降低且不能做到实时跟踪的效果。



技术实现要素:

基于现有技术的上述缺陷,本发明的目的是提供一种实时多人脸的检测及跟踪方法,以解决现有的人脸识别及跟踪的准确性不高且不能达到实时跟踪的问题。

本发明采用的技术方案如下:

一种实时多人脸的检测及跟踪方法,所述方法包括:

从输入的视频流中获取每一视频帧的图像;

通过人脸检测模型对获取的视频帧进行人脸位置坐标的检测,并将人脸位置坐标存储到人脸位置坐标容器;

人脸跟踪初始化操作,从人脸位置坐标容器中提取跟踪的目标人脸的位置坐标直至取完,采用空间梯度矩阵提取目标特征点并存储到特征点容器以用于后续人脸跟踪的更新;

建立图像金字塔模型,根据该模型预测当前视频帧人脸目标的位置;

统计跟踪帧数,当跟踪帧数满足设定的跟踪帧数阈值,就重新进行一次人脸检测,当不满足时,则计算检测到的人脸位置坐标框中心点与人脸跟踪更新预测到的人脸位置坐标框中心点之间的距离,当计算距离小于设定的距离阈值则不需要进行人脸跟踪初始化,当计算距离大于设定的距离阈值则需要进行人脸跟踪初始化,将最终结果进行显示输出。

进一步地,对目标人脸的位置坐标提取包括:

根据公式:计算输入图像i给定跟踪目标区域a中每个像素点p的空间梯度矩阵g,ax为目标区域a在x轴方向的梯度,ay为目标区域a在y轴方向的梯度;

计算每个g的最小特征值λm且存储λm大于给定特征值阈值λth所对应的像素点p,再判断该像素点p是否大于周围3×3邻域内其他像素点,如果大于,则保留像素点p并从所有存储的最小特征值λm中找到最大值λmax,如果小于,则不再保留,执行下述操作;

计算保留下来的像素点之间的距离distance并与距离阈值distanceth比较,保留distance大于距离阈值distanceth的像素点,保留的这些像素点即为提取的特征点,用于后续的人脸跟踪及更新。

进一步地,根据图像金字塔模型对人脸跟踪具体包括:

建立金字塔,定义i0是金字塔最底层,也就是第0层的图像,其分辨率最高,l表示金字塔层数,l取大于1的自然数,il表示第l层图像;

将金字塔顶层的光流计算结果反馈到次顶层,gl作为顶层初始时的光流值估计,设为0,次顶层的光流值估计为gl-1,金字塔顶层,也即第l-1层的光流值dl-1,gl-2=2(gl-1+dl-1)=2(0+dl-1)=2dl-1,继续沿着金字塔向下反馈,重复迭代,直至到达金字塔最底层,得到最终的原图光流值d为:d=g0+d0,最终光流值就是所有层的分段光流值d的叠加,即:

由上一帧图像给定目标区域a提取的目标特征点位置a(x,y)计算出当前帧目标区域b特征点位置b(x+vx,y+vy),vx,vy为光流值d在x轴,y轴的位移分量;

在当前帧图像显示出跟踪目标人脸的位置。

进一步地,在当前帧图像画出跟踪目标人脸的位置后,判断是否已将所有特征点从人脸位置坐标容器中取出,若容器不为空,则继续取出,若为空,则执行下述操作:

如果统计的跟踪帧数等于设定跟踪帧数阈值,则对获取到的第一帧图像进行人脸检测,如果不满足,则进行下述操作:

根据跟踪预测到的人脸位置中心点ftrack(xt_center,yt_center)和人脸检测得到的人脸位置中心点fdetection(xd_center,yd_center),计算两点的距离l,

设定距离阈值lth=15,当距离l大于距离阈值lth时,表明检测到的人脸位置和跟踪的人脸位置相差较大,此时应根据检测到的人脸位置重新进行人脸跟踪初始化操作,当距离l小于等于距离阈值lth时,表明检测到的人脸位置和跟踪的人脸位置相差不大,不用重新进行人脸跟踪初始化,并执行下述操作;

进行人脸检测和多人脸跟踪显示;

判断视频流是否结束,若结束则退出。

进一步地,所述人脸检测模型包括第一网络模块和第二网络模块,所述第一网络模块由2个卷积层,2个激活层,2个归一化层,2个池化层组成,所述第二网络模块采用三个inception结构组成。

进一步地,在使用该人脸检测模型之前还对该人脸检测模型进行训练和测试。

进一步地,对该人脸检测模型的训练包括:

获取大量自然场景下的人脸样本图片,对得到的图片进行人脸位置标注,并生成xml格式的标注文档;

对标注完成的人脸数据进行清洗,人脸分辨率小于20×20的直接去掉;

清洗完成的数据直接生成lmdb格式文件,用于在深度学习框架caffe中进行数据读取;

完成轻量级的网络模型搭建;

开始模型训练,人脸预测损失函数采用softmaxloss函数,其中,yi表示第i组数据及对应的标注类别,若实际上该组数据是人脸,则y=1,若实际上该组数据不是人脸,则y=0,f(xi,θ)表示预测为人脸的概率值,xi表示第i组数据输入,θ表示可学习参数,m表示样本数;

反向传播,采用随机梯度下降算法,不断迭代,令损失函数得到的值尽可能接近0;

如果达到设定的迭代次数,则结束,如未达到继续训练。

与现有技术相比,本发明所公开的一种实时多人脸的检测及跟踪方法,达到了如下技术效果:

1、本发明提取到的特征点能够代表要跟踪目标的主要特征,即使在外界光照条件复杂、背景复杂、存在动态模糊和边界效应、存在遮挡等条件下也具有良好的泛化能力。也就是说,即使环境比较复杂、目标存在小面积遮挡,提取到的特征点还是可以表征目标特征的,完成跟踪。

2、本发明对目标的跟踪设定了矫正条件,当遇到极端条件,如光照十分强烈视频呈现一片白、或者无光条件下视频呈现一片黑,或者提取到的特征点恰好被完全遮挡了(注意特征点是分散在目标区域的,即使小部分特征点被遮挡或缺失还是可以继续跟踪的)这时会有目标跟踪丢失的情况,就需要重新进行人脸检测、人脸跟踪初始化、人脸跟踪更新。

3、通过人脸检测模型实现人脸的精准检测,通过跟踪方法实现动态人脸的实时性跟踪。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所述的人脸检测模型中的inception结构的模型示意图。

图2为本发明实施例所述的人脸检测模型的网络结构图。

图3为本发明实施例所述的人脸检测模型的进行训练的原理图。

图4为本发明实施例所述的人脸检测模型进行测试的原理图。

图5为本发明实施例所述的实时多人脸的检测及跟踪方法的完整的流程示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

本发明要处理输入视频帧中检测到的所有人脸,并对其跟踪,既包括对单个人脸的跟踪,也包括对多个人脸的跟踪。本发明基于光流跟踪方法,能更快速的实现目标跟踪,对于人脸遮挡、人脸姿态表情复杂、人脸移动速度快、跟踪环境背景复杂有更好的鲁棒性,适合在计算力比较小的cpu处理器上实现。

本发明实施例所公开的一种多人脸的检测及跟踪方法,基于人脸检测模型和人脸跟踪模型来实现,人脸检测采用深度学习技术实现,人脸跟踪采用基于光流的跟踪方法实现。

参照图1、图2所示,本实施例中,人脸检测模型是采用端到端的结构,分成两个子模块,第一网络模块和第二网络模块。第一网络模块由2个卷积层,2个激活层,2个归一化层,2个池化层组成,主要作用是快速提取输入图片的特征信息,经过第一次卷积运算、激活处理、归一化处理和池化后,再经过第二次卷积运算、激活处理、归一化处理和池化后输出给第二网络模块,由于第一网络模块网络模型简单,模型参数较少,计算量也小,能够比较快速的提取到人脸特征信息。第二网络模块由采用3个inception结构,图1为inception结构的网络结构图,inception结构包含多种不同的卷积分支,可获得多种感受野,能够对各种尺度或者说对多尺度人脸进行更好的检测。经过三个inception结构处理后的图片,可更加准确的检测到输入图片中各种尺度的人脸。

经过人脸检测模型,输出人脸框的位置坐标及图片,而人脸跟踪模块则依据坐标从输入图片中找到要跟踪的人脸目标的区域。

为了实现人脸检测模型的精准检测,在检测之前,对模型进行了训练和测试。

对人脸检测模型的训练过程如图3所示,具体包括如下步骤:

1)获取大量自然场景下的人脸图片,来源于网络爬虫、客户提供或者公开数据集,对得到的图片进行人脸位置标注,并生成xml格式标注文档,执行2)。

2)对标注完成的人脸数据进行清洗,人脸分辨率小于20×20的直接去掉,不用于训练,防止网络模型不收敛,执行3)。

3)清洗完成的数据直接生成lmdb格式文件,用于在深度学习框架caffe中进行数据读取,执行4)。

4)完成轻量级的网络模型搭建,执行5)。

5)开始模型训练,人脸预测损失函数采用softmaxloss,yi表示第i组数据及对应的标注类别,若实际上该组数据是人脸,y=1,若实际上该组数据不是人脸,y=0。f(xi,θ)表示预测为人脸的概率值,xi表示第i组数据输入,θ表示可学习参数,m表示样本数。公式如下:

反向传播,采用随机梯度下降算法,不断迭代,令损失函数得到的值尽可能接近0,执行6)。

6)如果达到设定的迭代次数,则结束,如果未达到设定的迭代次数,则执行5)。训练完成后的数据格式为caffemodel,在调用的时候是需要指定模型存储路径。

通过对模型进行训练,能够更加精准快速的检测识别到人脸。

在对人脸检测模型训练完毕之后,对模型进行测试。测试过程如图4所示。

1)输入视频流,执行2);

2)获取视频帧,执行3);

3)转换图片格式,执行4),图片的hwc通道转换成cwh通道;

4)将数据输入给人脸检测模型,执行5)

5)输出结果。输出当前视频帧中人脸位置坐标和人脸概率值。

当人脸检测模型的测试合规后,进入到人脸跟踪过程,人脸跟踪端口的输入是人脸检测模型输出的人脸框坐标(左上角起点(x,y)宽(width)高(height))和图片,人脸跟踪会依据坐标从输入图片中找到要跟踪目标的区域。图片从视频流中获取,获取到后先进行人脸检测,然后判断是否进行人脸跟踪初始化,再判断是否进行人脸跟踪更新,最后获取下一张或者结束。

在正式使用模型之前,对训练好的模型进行测试,以提高使用模型的精准性。

参照图5所示,一个完整的人脸跟踪的过程如下:

1)检测模型初始化,执行2)。

2)输入视频流,执行3)。

3)从输入视频流中获取视频帧图像i,执行4)。

4)对获取到的第一帧图像进行人脸检测,执行5)。

5)如果检测到人脸,则执行6),如果没有检测到人脸,则执行22)。

6)将人脸位置坐标存放在人脸位置坐标容器中,执行7)。

7)如果进行人脸跟踪初始化,则执行8),如果不进行人脸跟踪初始化,则执行12)。

8)从人脸位置坐标容器中获取1个人脸位置坐标,则执行9)。

9)提取目标人脸特征点,计算输入图像i给定跟踪目标区域a(就是人脸位置坐标)中每个像素点p的空间梯度矩阵g,ax为目标区域a在x轴方向的梯度,ay为目标区域a在y轴方向的梯度,

计算每个g的最小特征值λm且存储λm大于给定特征值阈值λth所对应的像素点p,再判断该像素点p是否大于周围3×3邻域内其他像素点,如果大于,则保留像素点p并从所有存储的最小特征值λm中找到最大值λmax,如果小于,则不再保留,执行10)。目标人脸的特征点的提取是采用空间梯度矩阵的方法,提取后存储到特征点容器,用于人脸跟踪的更新过程。

10)最后计算保留下来的像素点之间的距离distance并与距离阈值distanceth比较,保留distance大于距离阈值distanceth的像素点,保留的这些像素点即为提取的特征点,用于跟踪,执行11)。通过步骤9)、10),实现特征点的提取,提取的特征点能够表征目标人脸特征,即使在外界光照条件复杂、背景复杂、存在动态模糊和边界效应、存在小面积遮挡等条件下也具有良好的泛化能力,能够完成后续的跟踪。

11)如果人脸位置坐标容器为空,则执行12),如果人脸位置坐标容器不为空,则执行8)。

12)如果进行人脸跟踪更新,则执行13),如果不进行人脸跟踪更新,则执行22)直接进行视频显示。

13)从特征点容器中取出初始化的目标人脸的特征点,执行14)。

14)跟踪帧数计数,用于统计跟踪了多少帧,执行15)。

15)图像金字塔处理,建立金字塔,定义i0是金字塔最底层,也就是第0层的图像,其分辨率最高。l表示金字塔层数,l通常取2,3,4。il表示第l层图像。

金字塔顶层(第l-1层)的光流计算结果(位移情况)反馈到次顶层(第l-2层),gl作为顶层初始时的光流值估计,设为0,次顶层的光流值估计为gl-1,金字塔顶层(第l-1层)的光流值dl-1,

gl-2=2(gl-1+dl-1)=2(0+dl-1)=2dl-1

继续沿着金字塔向下反馈,重复迭代,直至到达金字塔最底层。

最终的原图光流值d为:

d=g0+d0

最终光流值就是所有层的分段光流值d的叠加,

由上一帧图像给定目标区域a提取的目标特征点位置a(x,y)计算出当前帧目标区域b特征点位置b(x+vx,y+vy),vx,vy即为光流值d在x轴,y轴位移分量,执行16)。

16)在当前帧图像画出跟踪目标位置,执行17)。

17)判断是否将所有特征点从容器中取出,若特征容器为空,则执行18),若不为空,则执行13)。

18)如果统计的跟踪帧数等于跟踪帧数阈值δframe=10,则执行4),19),如果不满足则执行22)。

19)获取人脸检测的位置坐标,执行20)。

20)根据跟踪预测到的人脸位置中心点ftrack(xt_center,yt_center)和人脸检测得到的人脸位置中心点fdetection(xd_center,yd_center),计算两点的距离l,

21)设定距离阈值lth=15,当距离l大于距离阈值lth时,表明检测到的人脸位置和跟踪的人脸位置相差较大,此时应根据检测到的人脸位置重新进行人脸跟踪初始化,执行7)。当距离l小于等于距离阈值lth时,表明检测到的人脸位置和跟踪的人脸位置相差不大,不用重新进行人脸跟踪初始化,执行22)。步骤20)、21)设定了矫正条件,当遇到极端条件,如光照十分强烈视频呈现一片白、或者无光条件下视频呈现一片黑,或者提取到的特征点恰好被完全遮挡了(注意特征点是分散在目标区域的,即使小部分特征点被遮挡或缺失还是可以继续跟踪的),这时会有目标跟踪丢失的情况,此时就需要重新进行人脸检测、人脸跟踪初始化、人脸跟踪更新。

22)进行人脸检测和多人脸跟踪显示,在视频帧上显示人脸框的位置,无论人脸检测还是多人脸跟踪返回的结果都是人脸框位置坐标,最后都要在视频帧上将人脸位置以矩形的形式画出来,执行23)。

23)判断视频流是否结束,若结束则执行24),若未结束则执行3)

24)退出整个程序。

本发明通过上述步骤,在人脸姿态表情复杂、人脸存在遮挡、外界环境背景复杂以及光照条件多变等情况下,也能够实现跟踪的准确性且做到实时跟踪的效果。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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