人脸检测方法和装置
技术领域
本发明涉及计算机视觉技术领域,更具体地,涉及一种人脸检测方法和装置。
背景技术
人脸检测技术是计算机视觉领域的重要研究方向与课题,人脸检测技术包括人脸识别和人脸定位,人脸识别是识别出输入图像或视频中的人脸,人脸定位是准确地给出人脸所在的位置。人脸检测技术是人脸识别和人脸属性分析等技术的基础,被广泛地应用在智慧零售、体感游戏和监控安防等多种场景中,具有重要的研究价值。
根据输入数据维度的不同,可以将人脸检测分为二维人脸检测和三维人脸检测。对于二维人脸检测,输入的数据为RGB格式,即可见光谱图像数据或视频数据,当光照条件较好时,可见光谱可以提供丰富的细节信息,从而使得人脸与背景之间的差异较大,有利于从背景中识别出人脸,当光照条件不好时,可见光谱图像中人脸较“黑”,很难从背景中识别出人脸。
对于三维人脸检测,输入的数据为深度图像转换成的点云数据,深度图像对有无光照不敏感,即使当光照条件不好时,深度图像数据则依然可以提供丰富的人脸信息。因此从这个角度上来说,三维人脸检测具有更广阔的应用场景。
对于三维人脸检测而言,需要先用大量的三维学习样本和三维学习样本标签对人脸检测模型进行训练,三维学习样本的数量越大,人脸检测模型的学习效果越好,但是三维学习样本的数量越大,三维学习样本标签的标注数量越大,人脸检测模型的数据集的构建效率和检测准确率往往不能同时兼顾。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的人脸检测方法、装置、电子设备和可读存储介质。
第一方面,本发明实施例提供一种人脸检测方法包括:获取三维人脸图像;将所述三维人脸图像输入至人脸检测模型,获取三维人脸候选框;所述人脸检测模型为,以三维人脸样本图像为样本,以与所述三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,所述三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
在一些实施例中,所述三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得包括:任一所述三维人脸样本图像包括彩色人脸样本图像和深度人脸样本图像;使用所述二维人脸检测算法对所述彩色人脸样本图像进行检测,获取二维人脸样本图像人脸框;基于所述二维人脸样本图像人脸框和所述三维人脸建模算法,获取人脸的三维位置信息;基于所述三维位置信息,获取所述三维人脸标注框。
在一些实施例中,所述三维人脸样本图像通过RGB-D相机获取,所述基于所述三维位置信息,获取所述三维人脸标注框包括:基于所述三维位置信息及所述RGB-D相机的参数,获取所述三维人脸标注框。
在一些实施例中,所述将所述三维人脸图像输入至人脸检测模型,获取三维人脸候选框包括:对所述三维人脸图像提取点云特征;使用基于深度网络的霍夫投票对所述点云特征进行检测;生成所述三维人脸候选框。
在一些实施例中,所述使用基于深度网络的霍夫投票对所述点云特征进行检测包括:基于神经网络选择兴趣点;基于网络学习获取投票;基于点云处理网络层实现所述投票的聚类。
在一些实施例中,所述对所述三维人脸图像提取点云特征之前包括:获取深度人脸图像;对所述深度人脸图像进行数据增广与数据预处理,获取所述三维人脸图像。
在一些实施例中,所述生成所述三维人脸候选框包括:生成所述三维人脸候选框的过程中,使用的损失函数包括目标性损失函数、边界框位置损失函数和语义分类损失函数。
第二方面,本发明实施例提供一种人脸检测装置包括:获取单元,用于获取三维人脸图像;检测单元,用于将所述三维人脸图像输入至人脸检测模型,获取三维人脸候选框;所述人脸检测模型为,以三维人脸样本图像为样本,以与所述三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,所述三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
第三方面,本发明实施例提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的人脸检测方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的人脸检测方法的步骤。
本发明实施例的人脸检测方法、装置、电子设备和可读存储介质,利用二维人脸检测算法获取二维人脸样本图像人脸框后,利用三维人脸建模算法将其转化为三维人脸标注框,省去了人工标注样本标签的步骤,节省了大量的人力和物力,提高了检测效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的人脸检测方法的流程图;
图2为本发明实施例的人脸检测装置的结构示意图;
图3为本发明实施例的人脸检测电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明实施例的人脸检测方法。
如图1所示,本发明实施例的人脸检测方法包括步骤S100和步骤S200。
步骤S100、获取三维人脸图像。
可以理解的是,本发明实施例对三维人脸图像的获取方式不作具体限定,本发明实施例以使用RGB-D相机获取三维人脸图像举例。RGB-D相机有两个摄像头,分别拍摄彩色人脸图像和深度人脸图像,利用RGB-D相机的相机参数对深度人脸图像进行数据预处理,将深度人脸图像转换成深度人脸图像对应的点云数据。本发明实施例的人脸检测方法是对三维人脸图像中的深度人脸图像对应的点云数据进行检测。
步骤S200、将三维人脸图像输入至人脸检测模型,获取三维人脸候选框;人脸检测模型为,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
可以理解的是,在人脸检测模型的应用阶段,人脸检测模型的输入为三维人脸图像,人脸检测模型的输出为若干个三维人脸候选框,三维人脸候选框的数量与三维人脸图像中人脸的数量相对应。
在人脸检测模型的训练阶段,人脸检测模型的输入为三维人脸样本图像和三维人脸标注框,人脸检测模型的输出为若干个三维人脸样本候选框,三维人脸样本图像从人脸检测模型的训练集中获取,三维人脸样本候选框的数量与三维人脸样本图像中人脸的数量相对应。
其中,人脸检测模型是以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到。本发明实施例的三维人脸标注框,没有采用人工标注这种费时费力的方式,而是提出了一种基于二维人脸检测算法和三维人脸建模算法自动获取三维人脸标注框的策略,该策略基于二维人脸检测算法和三维人脸建模算法从彩色人脸样本图像中获取二维人脸样本图像人脸框,再将二维人脸样本图像人脸框转换为三维人脸标注框,这样可以极大地提高训练效率。
本发明实施例选用的三维人脸样本图像的采集设备为RGB-D相机,使用RGB-D相机采集了约500万对彩色-深度图像,建立了一个大规模的RGB-D人脸数据集,RGB-D人脸数据集中的采集场景为配合式场景,并进行了配准,即一对图像中人脸所在的位置完全相同,用于为后续步骤中利用二维人脸检测算法对彩色人脸样本图像进行检测,得到二维人脸样本图像人脸框奠定技术基础。随机选取RGB-D人脸数据集中的20万对三维人脸样本图像作为人脸检测模型的训练集。
在构建训练集时,还需要使用一个紧致的三维立体框将三维人脸样本图像中的人脸包围住,作为样本标签。一般来说,这样的标注工作都是由人工完成。但是,人工标注需要耗费大量的人力物力,因此,在本发明实施例中,提出了一种基于二维人脸检测算法和三维人脸建模算法获得三维人脸标注框的策略。
在对人脸检测模型进行训练时,随机选取RGB-D人脸数据集中的2万对三维人脸样本图像作为验证人脸检测模型检测性能的验证集。另外需要提到的是,整个人脸检测模型的参数初始化是利用SUN RGB-D数据集完成的,SUN RGB-D数据集是一个三维通用目标检测数据集,包含了桌子、椅子、床等20类目标。在SUN RGB-D数据集上进行预训练是为了使得人脸检测模型收敛得更快,性能更优(类似于二维检测器经常在ImageNet上进行预训练的策略)。
整个训练过程持续20个epoch,随后在验证集上进行验证,以不断地调整人脸检测模型的超参数,并监控人脸检测模型是否发生过拟合以及决定是否停止训练。在验证过程中,通过可视化模块观察损失函数的下降情况以及检测性能指标的变化趋势,并按照设定的步长保存人脸检测模型的参数。
在对人脸检测模型进行验证时,利用RGB-D相机采集了若干个场景下,若干个人的三维人脸验证图像,使用训练好的人脸检测模型对三维人脸测试图像进行验证,以测试人脸检测模型的泛化能力。本发明实施例提供的人脸检测方法性能优异,检测结果的准确率与召回率可以同时达到90%以上,具有很高的实用价值。
本发明实施例提供的人脸检测方法,利用二维人脸检测算法获取二维人脸样本图像人脸框后,利用三维人脸建模算法将其转化为三维人脸标注框,省去了人工标注样本标签的步骤,节省了大量的人力和物力,提高了检测效率。
在一些实施例中,步骤S200中的三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得包括:任一三维人脸样本图像包括彩色人脸样本图像和深度人脸样本图像;使用二维人脸检测算法对彩色人脸样本图像进行检测,获取二维人脸样本图像人脸框;基于二维人脸样本图像人脸框和三维人脸建模算法,获取人脸的三维位置信息;基于三维位置信息,获取三维人脸标注框。
可以理解的是,本发明实施例选用的三维人脸样本图像的采集设备为RGB-D相机,任一三维人脸样本图像包括彩色人脸样本图像和深度人脸样本图像,利用RGB-D相机的相机参数对深度人脸样本图像进行数据预处理,将深度人脸样本图像转换成深度人脸样本图像对应的样本点云数据,并且彩色人脸样本图像和深度人脸样本图像已自动对齐。
首先利用目前公开的二维人脸检测算法和三维人脸建模算法来检测并获取二维人脸样本图像人脸框,本发明实施例对二维人脸检测算法和三维人脸建模算法不作具体限定。
将二维人脸样本图像人脸框作为三维人脸建模算法的输入,获取人脸的三维位置信息。
随后利用RGB-D相机参数,获得该人脸在点云中的紧致包围框,作为三维人脸检测网络的标签。由于本发明的主要应用场景为配合式场景,目前的二维人脸检测公开算法能够取得很好的效果,因此,可以保证通过这种策略获得的点云中的三维人脸框也较为准确。
本发明实施例提供的人脸检测方法,利用已经在配合式场景中取得很好效果的二维人脸检测算法和三维人脸建模算法来获取三维人脸标注框,既节省了大量的人力和物力,也保证了人脸检测模型训练标签的准确性。
在一些实施例中,步骤S200中的三维人脸样本图像通过RGB-D相机获取,基于三维位置信息,获取三维人脸标注框包括:基于三维位置信息及RGB-D相机的参数,获取三维人脸标注框。
可以理解的是,本发明实施例选用的三维人脸样本图像的采集设备为RGB-D相机,从功能上讲,RGB-D相机是在普通相机的功能上添加了深度测量的功能。因此,基于三维位置信息和RGB-D相机的深度信息,能获取三维人脸标注框。
本发明实施例提供的人脸检测方法,利用二维人脸检测算法和三维人脸建模算法获取二维人脸样本图像人脸框后,将其转化为三维人脸标注框,省去了人工标注样本标签的步骤,节省了大量的人力和物力,提高了检测效率。
在一些实施例中,步骤S200包括步骤S210-S230。
步骤S210、对三维人脸图像提取点云特征。
可以理解的是,本发明实施例的人脸检测方法是对三维人脸图像中的深度人脸图像对应的点云数据进行检测。点云数据与传统的二维图像矩阵数据相比具有不规则性,因此,典型的卷积神经网络(convolutional neural network,CNN)不适合直接用来处理点云数据。在本发明实施例中,利用了一种公开的PointNet++网络结构来提取点云特征,该网络结构是一个用于点云学习的分层深度网络,通过对稀疏点云的直接处理,可以避免将点云转换为规则结构的需要。
PointNet++网络结构由三个部分组成,分别为采样层、组合层和特征提取层。采样层对数据点进行采样,选取能够覆盖整个采样空间的部分数据点来提取局部特征,与对所有数据点都提取特征相比,这样可以大大减少计算量。组合层负责找出通过采样层后的每个数据点周围的数据点,以方便后续提取特征,这里周围的数据点指的是通过采样层后的每个数据点附近一定曼哈顿距离内的数据点,通常由卷积层的卷积核大小来确定。特征提取层由PointNet网络组成,这是一个基于点云数据的特征提取网络,负责对每个数据点及其周围数据点所构成的局部空间进行特征提取。
步骤S220、使用基于深度网络的霍夫投票对点云特征进行检测。
可以理解的是,传统的霍夫投票二维检测器包括离线和在线两个步骤,是通过在预先计算好的码本(codebook)中查找决定的。由于霍夫投票是针对稀疏集合设计,并且基于自底向上的原理(即积累少量的局部信息来完成整体的检测)的,因此很适合于点云这种数据结构。因此在本发明实施例中,使用了基于深度网络的霍夫投票而不是常见的区域候选网络(Region Proposal Network,RPN)来进行检测。
步骤S230、生成三维人脸候选框。
可以理解的是,由于投票聚类实质上是一组高维数据点,因此本发明中利用了PointNet网络来生成候选框。首先将投票位置转化为局部标准化坐标系(这是为了利用局部投票几何)。随后将属于某个聚类的所有投票都输入至PointNet网络中,对不同的投票信息进行进一步的组合。
本发明实施例提供的人脸检测方法,提出了一种基于深度网络的霍夫投票的方法,充分利用了点云数据的稀疏特性,达到了传统方法难以达到的检测精度。
在一些实施例中,步骤S220包括步骤S221-S223。
可以理解的是,由于传统的霍夫投票是由多个独立的模块组成的,因此本发明实施例对传统的霍夫投票做了三步调整。
步骤S221、兴趣点是由神经网络来选择的,而不依赖于手工特征。
步骤S222、投票是通过网络学习得到的,而不使用码本。
步骤S223、投票聚类是通过点云处理网络层实现的。
本发明实施例提供的人脸检测方法,对传统的霍夫投票进行调整,通过深度网络可以滤掉一些质量较低的投票,有利于后续生成候选框,提高了人脸检测的准确率。
在一些实施例中,步骤S210之前包括:获取深度人脸图像,对深度人脸图像进行数据增广与数据预处理,获取三维人脸图像。
可以理解的是,数据增广和数据预处理是深度学习中的常用技巧,本发明实施例中采取的数据增广方法包括图像水平翻转、图像的裁剪、图像的平移和高斯噪声,分别介绍如下:
一般来说,图像的翻转包括水平翻转和垂直翻转,由于本发明实施例检测的对象是人脸,而人脸具有水平方向的轴对称性,并且一般不会是倒的,因此适用于水平翻转。水平翻转的矩阵为:
图像的裁剪一般与缩放结合在一起,通常的做法是将图像放大至原始的1.1或者1.2倍,然后在放大后的图像上进行裁剪操作,并缩放至与原图的尺寸相同。
图像的平移指像素在x和y两个方向上进行平移,对应的变换矩阵如下:
上式中,dx代表像素在x方向上平移的距离,dy代表像素在y方向上平移的距离。
在训练数据中添加一定量的噪声信息可以使训练得到的模型更加鲁棒,常用的噪声为高斯噪声,这些噪声可以生成很有用的图像,增加有效样本,从而增强整个网络对于人脸的学习能力。
本发明实施例中采取的数据预处理方法包括将深度人脸图像根据RGB-D相机的相机参数转换成深度人脸图像对应的点云数据。
本发明实施例提供的人脸检测方法,对深度人脸图像进行数据增广和数据预处理,提高了人脸检测模型检测的准确性。
在一些实施例中,步骤S230包括:生成三维人脸候选框的过程中,使用的损失函数包括目标性损失函数、边界框位置损失函数和语义分类损失函数。
可以理解的是,在生成候选框的过程中,用到的损失函数包括目标性损失函数,边界框位置损失函数以及语义分类损失函数。其中,目标性损失函数的监督信息为投票与真实目标中心很近(距离小于0.3米)或者远离任何中心(距离大于0.6米),使用的是交叉熵损失函数,边界框位置损失函数的监督信息则为真实目标框的位置,使用的L1回归损失函数,而语义分类损失函数的监督信息则为真实目标框的语义类,使用的也是交叉熵损失函数。最终生成的候选框的形式为:位置、维度、方向和分类得分。
本发明实施例提供的人脸检测方法,在生成三维人脸候选框的过程中使用多种损失函数,进一步提高了人脸检测模型检测的准确性。
下面对本发明实施例提供的人脸检测装置进行描述,下文描述的人脸检测装置与上文描述的人脸检测方法可相互对应参照。
下面结合图2描述本发明实施例的人脸检测装置。
如图2所示,该装置包括获取单元310和检测单元320。
获取单元310,用于获取三维人脸图像。
可以理解的是,三维人脸图像为深度人脸图像对应的点云数据,本发明实施例对三维人脸图像的获取方式不作具体限定。
检测单元320,用于将三维人脸图像输入至人脸检测模型,获取三维人脸候选框;人脸检测模型为,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
可以理解的是,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到人脸检测模型。将三维人脸图像输入至人脸检测模型,获取三维人脸候选框。
其中,人脸检测模型的训练集包括三维人脸样本图像和三维人脸候选框,三维人脸样本图像为样本,三维人脸候选框为样本标签。
本发明实施例提供的人脸检测装置,利用二维人脸检测算法获取二维人脸样本图像人脸框后,利用三维人脸建模算法将其转化为三维人脸标注框,省去了人工标注样本标签的步骤,节省了大量的人力和物力,提高了检测效率。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行人脸检测方法,该方法包括获取三维人脸图像;将三维人脸图像输入至人脸检测模型,获取三维人脸候选框;人脸检测模型为,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为PC机,还可以为其他设备,只要其结构中包括如图3所示的处理器410、通信接口420、存储器430和通信总线440,其中处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信,且处理器410可以调用存储器430中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的人脸检测方法,该方法包括获取三维人脸图像;将三维人脸图像输入至人脸检测模型,获取三维人脸候选框;人脸检测模型为,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的人脸检测方法,该方法包括获取三维人脸图像;将三维人脸图像输入至人脸检测模型,获取三维人脸候选框;人脸检测模型为,以三维人脸样本图像为样本,以与三维人脸样本图像对应的三维人脸标注框为样本标签进行训练得到,其中,三维人脸标注框基于二维人脸检测算法和三维人脸建模算法获得。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。