一种四级人脸检测和关键点回归的方法及系统与流程

文档序号:20265754发布日期:2020-04-03 18:22阅读:540来源:国知局
一种四级人脸检测和关键点回归的方法及系统与流程

本发明涉及机器视觉的技术领域,尤其涉及一种四级人脸检测和关键点回归的方法及系统。



背景技术:

近年来,人脸识别技术迅速发展并被广泛应用于多个领域,通常的方法是通过图像采集设备如摄像头获取图像并对图像中的人脸进行检测,如果在图像中获取到人脸框,则会进行后续的人脸识别判断等步骤,因此,人脸检测是人脸识别过程中的重要步骤,该步骤的好坏直接决定了接下来的识别和判断效果。

而在现有的人脸检测方法中存在诸多问题,主要包括识别率和召回率等相关指标都比较低,且在复杂光照条件和使用场景下,会产生大量的漏检测和误检测,在人脸存在大角度偏转的时候,也会产生大量的漏检现象。具体来看,在现有技术的图像处理等算法中,通常会针对训练样本中人脸的肤色建立统计学模型,然后根据统计学模型对图像进行二值化处理并找出人脸位置,该方法在光照或者人脸肤色变化较大的情况下会造成大量的漏检和误检;而基于深度学习方法的人脸检测虽然相比较上述算法有了很大的改进,例如mtcnn算法等都获得了良好的效果,但是这种算法在检测的过程中对人脸框的准确位置和关键的回归还不够准确,需要进一步的提升和改进。



技术实现要素:

本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。

鉴于上述现有存在的问题,提出了本发明。

因此,本发明解决的一个技术问题是:提供一种四级人脸检测和关键点回归的方法,提高人脸检测的准确率,并使得人脸关键点的回归效果更好。

为解决上述技术问题,本发明提供如下技术方案:一种四级人脸检测和关键点回归的方法,包括以下步骤,采集模块采集人脸图像数据,并结合公开数据集构建训练样本;处理模块对所述训练样本进行处理,分为完整人脸图像、部分人脸图像和无人脸图像三种类别;识别模块搭建四级人脸检测模型并基于所述训练样本分别对四个人脸检测模型进行训练,输出充分训练后的人脸检测模型;使用采集模块采集待测图像;将所述待测图像输入训练后的识别模块进行人脸检测。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述对训练样本进行处理还包括以下步骤,根据标签信息在正确的人脸框中心点随机生成候选框,然后将候选框和正确框计算iou,并根据iou大小确定候选框的标签。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述分类的标准为,0.65<iou<1时,为完整人脸图像,作为正样本;0.3<iou<0.65时,为有部分人脸图像,作为部分样本;iou<0.3时,为无人脸图像,作为负样本。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述正样本、部分样本和负样本的比例为1:1:3。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述四级人脸检测模型包括a-net、b-net、c-net和d-net四个网络模型,且a-net为包括四个卷积层的轻量级的全卷积网络模型,b-net、c-net和d-net为有全连接的分类网络模型。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述对人脸检测模型进行训练基于caffe深度学习工具进行,训练中的损失包括分类损失和回归损失,当损失函数的值停止收敛在0.08时,停止训练。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述分类损失使用交叉熵损失函数,回归损失使用欧氏距离损失函数,计算公式如下,

其中,l为交叉熵,dist(x,y)为欧氏距离,为预测值,y实际标签,xi为实际的回归值,yi为预测的回归值。

作为本发明所述的四级人脸检测和关键点回归的方法的一种优选方案,其中:所述待测图像的检测还包括以下步骤,所述处理模块对所述待测图像图像进行多尺度的缩放后输入所述识别模块的a-net网络,输出边框回归bbox的值;利用非极大值抑制算法进行边界框的融合,将融合的结果缩放到24*24像素大小的图像imga;将图像imga输入b-net网络,输出为每个图像存在人脸的概率和每个图像的边框回归信息;利用非极大值抑制对边界框bbox进行融合,并把图像缩放到48*48大小的图像imgb;将图像imgb输入c-net网络,输出为每个图像存在人脸的概率和每个图像的边框回归信息;利用非极大值抑制对边界框bbox进行融合.处理之后的图像为imgc;将图像imgc输入d-net网络,d-net的输出为包含边界框回归信息的最终结果图像。

本发明解决的另一个技术问题是:提供一种四级人脸检测和关键点回归的系统,使得上述方法能够依托于该系统实现。

作为本发明所述的的一种优选方案,其中:一种四级人脸检测和关键点回归的系统,包括,采集模块,所述采集模块能够进行图像的采集;处理模块,所述处理模块能够对采集到的图像进行处理;识别模块,所述识别模块用于搭建人脸检测模型,并对处理后的图像进行人脸检测。

本发明的有益效果:本发明提供的四级人脸检测和关键点回归的方法,相比于传统的人脸检测方法能够在不增加训练样本的基础上,提升人脸检测的精度,并在复杂光照环境下可以获得效果比较好的人脸检测框和人脸关键点,能够在实际应用中提高人脸检测的效果。

附图说明

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

图1为本发明第一种实施例所述四级人脸检测和关键点回归的方法的整体流程结构示意图;

图2为本发明第一种实施例中基于所述四级人脸检测和关键点回归的方法进行人脸检测输出的结果示意图;

图3为本发明第一种实施例中基于传统opencv方法进行人脸检测输出的结果示意图;

图4为本发明第一种实施例中基于两种检测方法下的人脸关键点定位结果对比示意图;

图5为本发明第一种实施例中检测框输出识别准确率数值的示意图;

图6为本发明第二种实施例所述四级人脸检测和关键点回归的系统的整体结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1

参照图1的示意,示意为本实施例中提出的一种四级人脸检测和关键点回归的方法的整体流程结构示意图,为了解决现有技术中人脸检测在复杂光照条件和使用场景下,检测准确率偏低等问题,本实施例提出基于多级网络对人脸进行检测,从而提高对于图像中的人脸检测的准确率和关键点的回归效果。

更加具体的,本实施例提出的四级人脸检测和关键点回归的方法,包括以下步骤,

s1:采集模块100采集人脸图像数据,并结合公开数据集构建训练样本。其中,采集模块100可以为摄像头,用于采集人脸图像作为训练样本;公开数据集为可以公开获取和使用的人脸数据集,本实施例中使用数据集的包括celeba数据集、casia数据和caltech数据集。结合采集模块100和公开数据集共同作为训练样本。

s2:处理模块200对所述训练样本进行处理,分为完整人脸图像、部分人脸图像和无人脸图像三种类别。其中,对训练样本的处理为根据标签信息在正确的人脸框中心点随机生成候选框,然后将候选框和正确框计算iou,并根据iou大小确定候选框的标签。其中,iou是指正确框和候选框的相交部分面积与正确框和候选框的相并部分的比值。

经过处理的训练样本分为三种类别,其中,包含完整人脸图像的作为正样本,有部分人脸图像的作为部分样本,无人脸图像的作为负样本。具体的,0.65<iou<1时,图像为正样本;0.3<iou<0.65时,图像为部分样本;iou<0.3时,图像为负样本。优选的,训练样本中正样本、部分样本和负样本的比例为1:1:3,经过试验,在该比例下的检测结果最为准确。

s3:识别模块300搭建四级人脸检测模型并基于所述训练样本分别对四个人脸检测模型进行训练,输出充分训练后的人脸检测模型。其中,四级人脸检测模型包括a-net、b-net、c-net和d-net四个网络模型,且a-net为包括四个卷积层的轻量级的全卷积网络模型,b-net、c-net和d-net为有全连接的分类网络模型。

具体的,b-net网络模型具有人脸概率估计,人脸检测框回归,人脸关键点检测的功能;c-net网络模型也具有人脸概率估计,人脸检测框回归,人脸关键点检测的功能;d-net网络模型则用于人脸检测框回归,人脸关键点检测。

为了使模型具有分类功能,需要结合步骤s2中获得的训练样本对识别模块300搭建人脸检测模型进行训练,本实施例中具体使用caffe深度学习工具对搭建的四个网络模型分别进行训练,且训练中的损失包括分类损失和回归损失,当损失函数的值停止收敛在0.08时,停止训练,此处损失函数的值是指分类损失和回归损失的平均值。

更加具体的,分类损失使用交叉熵损失函数,回归损失使用欧氏距离损失函数,其计算公式如下,

其中,l为交叉熵,dist(x,y)为欧氏距离,为预测值,y实际标签,xi为实际的回归值,yi为预测的回归值。

s4:使用采集模块100采集待测图像。其中,采集模块100可以为摄像头,待测图像为需要被检测图像中人脸位置的图像。

s5:将待测图像输入训练后的识别模块300进行人脸检测。具体的,对待测图像的检测还包括以下步骤,

处理模块200对待测图像进行多尺度的缩放后输入识别模块300的a-net网络,输出边框回归bbox的值;其中,将图像进行多个尺度的缩放后,得到图像金字塔,然后对每层图片提取不同尺度的特征,得到特征图,最后对每个尺度的特征图都进行单独的预测。

利用非极大值抑制算法进行边界框的融合,将融合的结果缩放到24*24像素大小的图像imga;

将图像imga输入b-net网络,输出为每个图像存在人脸的概率和每个图像的边框回归信息;

利用非极大值抑制对边界框bbox进行融合,并把图像缩放到48*48大小的图像imgb;

将图像imgb输入c-net网络,输出为每个图像存在人脸的概率和每个图像的边框回归信息;

利用非极大值抑制对边界框bbox进行融合.处理之后的图像为imgc;

将图像imgc输入d-net网络,d-net的输出为包含边界框回归信息的最终结果图像,此时检测完成。

场景一:

参照图2~3,图2为使用本发明提出的四级人脸检测和关键点回归的方法对图像进行人脸检测后输出的检测结果,图3为基于传统的opencv技术进行人脸检测输出的检测。结合检测结果图像能够直观地看出,本发明的检测结果中对于人脸图像和关键点的检测更为准确。

更进一步的,为了体现本发明提出的四级人脸检测和关键点回归的方法在人脸检测方面的优势,在iou>0.65的情况下做为正确的人脸样本进行结果的对比,数据集来自公司全体员工采集的人脸信息,人数为50人,数据的评价指标准确度为正确识别的样本占所有样本的比例(也可以为现有人脸识别准确率的评测方式,采用人脸框检测detection来直接输出检测准确率具体数值,通过roc曲线计算检测框并直接输出精度值,多次测试计算平均值完成检测,参照图5),此处现有技术选择的是传统的三级人脸检测算法,具体为基于mtcnn的人脸检测方法,结果如下表1所示:

表1:测试结果。

从表中可以看出本方法在高iou要求的情况下对于人脸检测效果的准确率有所提升。为了进一步具体体现检测效果的差异,可以参照图4的示意,其中第一行为使用本发明专利算法下的人脸关键点定位效果,第二行为使用传统的三级网络算法的定位效果,可以直观地看出,传统算法下的人脸关键点定位不准,尤其在嘴角和眼镜等部位会出现明显的误差,而本发明提供的方法在人脸关键定位中更加准确,精度上获得了大幅度的提升。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

实施例2

参照图5的示意,为实现上述四级人脸检测和关键点回归的方法,本实施例中提出了一种四级人脸检测和关键点回归的系统。具体的,该系统包括采集模块100、处理模块200和识别模块300。其中,采集模块100能够进行图像的采集;处理模块200能够对采集到的图像进行处理;识别模块300用于搭建人脸检测模型,并对处理后的图像进行人脸检测。

进一步的,采集模块100可以是摄像头,摄像头是基于图像传感器进行图像采集的工具。处理模块200是对图像进行处理的模块,通过计算机和软件代码实现,识别模块300同样需要通过计算机和软件代码进行实现。

如在本申请所使用的,术语“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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