本发明涉及视频图像处理技术领域,尤其涉及一种基于深度学习的人脸检测与跟踪方法。
背景技术:
在传统的人脸检测与跟踪方法中,人脸检测只对正脸效果较好,对侧脸或部分遮挡的效果不佳,并且受光照强弱的影响;人脸跟踪过程中,人脸容易遭遮挡或转身等行为而丢失,造成人脸跟踪终止,从而再次检测后作为新目标再次被跟踪,使得人脸重复抓拍。
对人脸识别系统中的人脸比对的限制,即抓拍人脸图片为正脸,则比对效果会更好。但是现有技术中进行人脸特征点提取后,然后对人脸进行旋转而获取的人脸会让信息产生失真,从而导致人脸比对不正确,
技术实现要素:
本发明的目的就在于克服现有技术存在的缺点和不足,提供一种基于深度学习的人脸检测与跟踪方法
本发明的目的是这样实现的:
使用人脸和非人脸样本,对其提取特征进行训练后,对人脸检测与跟踪过程中产生的人脸图像进行判断,获取质量最高的人脸并完成人脸输出。
本发明所要解决的技术问题是:
1)人脸检测中对人脸采取什么样的检测,防止人脸检测过程中,对人脸的丢失;
2)人脸跟踪过程中,人脸跟踪易遭遮挡或转身等行为而丢失,同一目标多次抓拍;
3)对人脸图片中人脸朝向的判定问题,即什么样的人脸图片才适合输出。
具体地说,本方法包括下列步骤:
①人脸检测
进行该帧图像数据的人脸检测任务,对于检测到的目标信息,包括人脸矩形框、人脸类别和人脸特征点,形成队列输出;
②人脸跟踪
将人脸检测得到的结果队列进行匹配和更新,完成人脸跟踪的任务;
③人脸判定对跟踪列表中的最新跟踪人脸进行人脸正脸判定,如满足一定条件即可作为检测到的高质量人脸进行输出。
本发明具有下列优点和积极效果:
①对人脸遮挡和旋转而造成跟踪失败的问题都进行了全面解决,减少了人脸图像数据重复上报的问题;
②对人脸是否为正脸以达到上传的目的的判别方法进行了设计和训练,达到了预期的效果;
③对人脸比对等算法提供了可靠的、信息含量高的人脸图像。
附图说明
图1是本方法的步骤总图;
图2是人脸检测算法流程图;
图3是人脸跟踪算法流程图;
图4是人脸判定算法流程图;
图5是人脸特征点坐标图;
图6是人脸大数据实战系统图。
英译汉:
1、mtcnn:multi-taskconvolutionalneuralnetworks,即多任务卷积神经网络,现有人脸检测网络结构;
2、p-net:proposalnetwork,即候选框网络结构;
3、r-net:refinenetwork,即精细化候选框网络结构;
4、o-net:outputnetwork,即输出候选框网络结构;
5、iou:intersectionoverunion,即交并比;
6、kcf:kernelcorrelationfilter,即核关联滤波器,现有跟踪方法;
7、svm:supportvectormachine,即支持向量机。
具体实施方式
下面结合附图实施例详细说明:
一、方法
如图1,本方法包括下列步骤:
①人脸检测-101
进行该帧图像数据的人脸检测任务,对于检测到的目标信息,包括人脸矩形框、人脸类别和人脸特征点,形成队列输出;
②人脸跟踪-102
将人脸检测得到的结果队列进行匹配和更新,完成人脸跟踪的任务;
③人脸判定-103
对跟踪列表中的最新跟踪人脸进行人脸正脸判定,如满足一定条件即可作为检测到的高质量人脸进行输出。
下面对各个模块具体的实施流程进行说明:
1、步骤①的流程
如图2,步骤①的流程如下:
a、使用离线训练的p-net模型进行检测-201
在p-net网络结构中将conv4-1层的输出个数num_output由2变为3,即添加一类目标后脑勺,加入训练样本和验证样本进行离线训练得到离线训练的p-net模型,使用该模型进行检测,得到目标使用nms方法进行多余目标矩形框的删除和合并,得到目标检测矩形框和类别标签;
b、判断是否有检测目标-202,是则进入步骤c,否则跳转到步骤f;
判断是否有检测到的目标,包括人脸和后脑勺;
c、使用离线训练的r-net模型进行检测-203
在r-net网络结构中将conv5-1层的输出个数num_output由2改为3,即添加一类目标后脑勺,加入训练和验证样本进行离线训练得到离线训练的r-net模型,使用该模型进行检测,得到目标使用nms方法进行多余目标矩形框的删除和合并,得到目标检测矩形框和类别标签;
d、判断是否有检测目标-204,是则进入步骤e,否则跳转到步骤f;
判断是否有检测到的目标,包括人脸和后脑勺;
e、使用离线训练的o-net模型进行检测-205
在o-net网络结构中将conv6-1层的输出个数num_output由2变为3,即添加一类目标后脑勺,加入训练样本和验证样本进行离线训练得到离线训练的o-net模型,使用该模型进行检测,得到目标使用nms方法进行多余目标矩形框的删除和合并,得到目标检测矩形框、类别标签和人脸五个特征点;
f、输出检测到的目标信息进入人脸跟踪-206
输出检测到的目标信息进入人脸跟踪,目标信息包括目标检测矩形框、类别标签(包括人脸和后脑勺)和人脸五个特征点(包括左眼中心点、右眼中心点、鼻尖、左嘴角和右嘴角)。
2、步骤②的流程
如图3,步骤②的流程如下:
a、将检测到的目标信息压入待匹配目标队列-301;
b、待匹配目标队列与跟踪目标队列进行iou匹配结果计算-302
iou即交并比;
c、判定待匹配目标是否为新目标-303,是则进入步骤d,否则跳转到步骤e
使用计算结果,判断待匹配目标与跟踪目标队列是否匹配成功,即所计算的结果小于一个阈值,如果不成功,则为新目标,进入步骤d,否则跳转到步骤e;
d、根据待匹配目标信息新建一个kcf对象并初始化-304
新建一个kcf对象对新目标进行跟踪并根据新目标信息初始化此对象,进入步骤j;
e、判定跟踪目标是否找到相应的待检测目标-305,是则进入步骤i,否则跳转到步骤f;
使用步骤b的计算结果,判定跟踪目标是否在待检测目标队列中找到匹配目标,是则进入步骤i,否则跳转到步骤f;
f、kcf对象跟踪目标丢失次数加1-306
g、跟踪目标丢失次数是否大于阈值-307,是则进入步骤h,否则跳转到步骤j;
h、删除该kcf跟踪对象-308;
i、使用待检测目标信息对kcf跟踪框进行更新-309
使用待检测目标信息,即目标矩形框对kcf在线模型进行更新,无论目标是人脸或后脑勺,从而使得跟踪过程不会由于人头转动而中断;
j、更新kcf跟踪目标队列-310
3、步骤③的流程
如图4,步骤③的流程如下:
ⅰ、从跟踪目标队列提取目标信息-401
目标信息包括目标检测矩形框、类别标签和人脸五个特征点;
ⅱ、跟踪目标标签判定是否为人脸-402,是则进入步骤ⅲ,否则跳转到步骤ⅶ;
ⅲ、计算10维特征向量-403
如图5所示,根据人脸的五个特征点(a点为左眼中心点,b点为右眼中心点,c点为鼻尖点,d点为左嘴角点,e点为右嘴角点)和人脸图片高度h及宽度w(o坐标系原点,x为横轴,y为纵轴,其中x*代表点*的横坐标,y*代表点*的纵坐标),提取10维特征向量,特征值计算如下:
1)[左眼边距(xa)-右眼边距(w-xb)]的绝对值除以[左眼边距(xa)+右眼边距(w-xb)];
2)[上眼边距(ya+yb)-下嘴边距(2*h-yd-ye)]的绝对值除以[上眼边距(ya+yb)+下嘴边距(2*h-yd-ye)];
3)[瞳孔距(xb-xa)+嘴角距(xe-xd)]除以[左眼到左嘴角的垂直距离(yd-ya)+右眼到右嘴角的垂直距离(ye-yb)];
4)[瞳孔距(xb-xa)]除以宽度w;
5)[嘴角距(xe-xd)]除以宽度w;
6)左眼到左嘴角的垂直距离(yd-ya)除以高度h;
7)右眼到右嘴角的垂直距离(yd-ya)除以高度h;
8)[鼻尖yc-瞳孔垂直中心(ya+yb)/2]除以[嘴角垂直中心点到鼻尖的垂直距离(yd+ye)/2-yc)];
9)[鼻尖到左眼和左嘴角的水平中心点水平距离(xc-(xa+xd)/2)]除以右眼和右嘴角的水平中心点到鼻尖的水平距离[(xb+xe)/2-xc];
10)宽度w/高度h;
ⅳ、使用离线训练的模型进行计算-404
离线训练模型通过对正样本(正脸)和负样本(非正脸)方式,计算10维特征向量,输入svm支持向量机完成模型的训练工作;使用离线训练好的人脸正脸判断模型,输入当前计算好的特征向量,得到计算结果;
ⅴ、判定是否为正脸-405,是则进入步骤ⅵ,否则跳转到步骤ⅶ;
ⅵ、进行人脸输出-406
直接进行人脸图片编码后输出人脸图片及相关信息;
ⅶ、继续目标跟踪-407。
二、系统
1、总体
如图6,人像大数据实战系统a包括人脸检测服务器503、人脸识别服务器504、存储服务器505、数据库506和管理服务器507;
监控平台b包括管理服务器502和媒体服务器501;
设置客户端508提供用户体验;
本专利算法实施于人脸检测服务器503中;
其连接关系是:
(1)管理服务器501和媒体服务器502互联,为人像大数据实战系统a提供待分析视频数据;
(2)人脸检测服务器503、人脸识别服务器504、存储服务器505、数据库506和管理服务器507和客户端508依次连接,实现用户命令下发、视频人脸分析管理、视频人脸检测、人脸图像识别和存储功能。
2、工作原理
由客户端-508下发指令给人像大数据实战系统b,其中由管理服务器507对指令发送到监控平台a获取视频数据,媒体服务器501进行视频数据的传输,到达人像大数据实战系统b中的人脸检测服务器503进行人脸检测任务,在人脸检测服务器503中使用本发明的实施例完成人脸图像数据的提取工作,将人脸图像数据下发到人脸识别服务器504,得到人脸信息数据,人脸图像数据存储到存储服务器505,人脸信息数据存储到数据库506中,并且由管理服务器507将分析到的人脸信息数据发送至客户端508,达到用户体验的效果。