本发明属于计算机领域,尤其涉及一种基于低成本运算平台的人脸检测方法、装置及介质。
背景技术:
近年来,作为机器学习领域标志技术的深度学习,在计算机视觉方面取得了很多标志性的进展,特别是人脸相关的诸多任务中,不过深度学习特有的多层的网络以及数目繁多神经元特性,使其对与计算机硬件算力的要求十分严苛,诸多经典的网络结构难以真正的应用于实际场景,特别是在一些edge端,例如嵌入式系统、nuc及手机等等。因此,需要一种解决深度学习在这些低算力硬件系统中无法进行人脸检测的技术方案。
技术实现要素:
本发明的目的在于提供一种基于低成本运算平台的人脸检测方法、装置及介质,通过人脸检测连同人脸关键点定位法,在保证机器学习的精度时,减少对算力的要求,同时在具有低算力的硬件系统中也能够完成人脸检测的多个任务。
本发明是这样实现的,包括一种基于低成本运算平台的人脸检测方法,其特征在于:包括前置处理、微调及回归处理;所述前置处理包括:对输入的图片使用神经网络框架进行特征提取,得到若干人脸预选框;所述微调用于对所述神经网络进行微调,包括:通过多个微型的卷积核以及可配置的网络结构的自定义组合,其中每个所述卷积核设置有对应的步长参数,所述卷积核用于神经网络的卷积及池化;所述回归处理包括:基于所述人脸预选框的平均关键点执行回归过滤处理,得到人脸框有效位置及人脸关键点的位置。
如所述的基于低成本运算平台的人脸检测方法,其中对输入的图片使用神经网络框架进行特征提取包括:输入所述图片中的每个像素点,计算对应一个人脸框的预测值以及置信。
如所述的基于低成本运算平台的人脸检测方法,其中图片可自定设置,根据输入的所述图片的类型的不同,配置所述神经网络框架最后一层神经网络的神经元数量及训练方式,所述图片类型包括但不限于人脸。
如所述的基于低成本运算平台的人脸检测方法,其中通过多个卷积核级联执行卷积运算包括:根据卷积层为线性运算公式
如所述的基于低成本运算平台的人脸检测方法,其中配置的网络结构包括具有不同步长的所述卷积核和全连接层组合,具体地,根据卷积层为线性运算公式
如所述的基于低成本运算平台的人脸检测方法,其中神经网络框架包括但不限于resnet50、resnet18或darknet53。
如所述的基于低成本运算平台的人脸检测方法,其中回归处理包括:在所述全连接层的神经网络结构后添加特定数量的神经元,设置人脸脸部及人脸预选框对应的损失函数。
如所述的基于低成本运算平台的人脸检测方法,其中脸部、所述预选框及所述回归树对应的损失函数分别配置为:
lclassfication=-(yilong(pi)) (1-yi)(1-log(pi));
lbox=|y’box-ybox|2;
llandmark=|y’landmark-ylandmark|2;
其中,p代表输入人脸的概率,其中y’代表这预测值,y代表真实值,y’landmark及ylandmark分别为回归树的预测值及真实值,其中所述脸部的损失函数lclassfication为熵计算,所述预选框及所述回归树对应的损失函数分别为预测值与真实值之间的欧几里得距离和l2范数。
本发明的技术方案还包括一种基于低成本运算平台的人脸检测装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的方法步骤。
本发明的技术方案还包括一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述任一项所述的方法步骤。
附图说明
图1是本发明实施例提供的总体流程图;
图2是本发明实施例提供的低成本运算平台的人脸检测流程图;
图3是本发明实施例提供的神经网络结构示意图;
图4是本发明实施例提供的前置过程的示意图;
图5是本发明实施例提供的过滤及回归操作示意图;
图6是本发明实施例提供的装置示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例提供的总体流程图,本实施例包括:包括前置处理、微调及回归处理;前置处理包括:对输入的图片使用神经网络框架进行特征提取,得到若干人脸预选框;微调用于对神经网络进行微调,包括:通过多个微型的卷积核以及可配置的网络结构的自定义组合,其中每个卷积核设置有对应的步长参数,卷积核用于神经网络的卷积及池化;回归处理包括:基于人脸预选框的平均关键点执行回归过滤处理,得到人脸框有效位置及人脸关键点的位置。为了使得本发明实施方式能够运行于低成本运算平台,通过对神经网络框架进行微调:通过多个微型卷积核级联执行卷积运算,每个卷积核设置对应的步长参数,以及,采用可自定义配置的网络结构,可自定义配置的网络结构用多个小型的卷积核去取代大的卷积核,使用其他的网络结构(例如,卷积的不同步长的有机组合)来替代全连接和采样层;使得神经网络所需的算力降低。其中微型卷积核级为参数和计算量较小的卷积核。
图2是本发明实施例提供的低成本运算平台的人脸检测流程图。首先执行前置处理输入人脸图片,确定图像的尺寸(图中的scale1、scale2……scalen),可以使用神经网络框架,例如,resnet50,resnet18或者darknet53,本实施方式的框架为经典框架,能够实现得到图片尺寸及特征的神经网络均可以使用,不限于上述的三种框架。得到图像的特征其最后产生一个关于人脸检测框的特有分布。即输入图片中的每一个点,均对应一个人脸框的预测值以及相关置信(即对于该判断成功的概率),以实现减少算力的消耗。此外,如果希望判定的物体不局限于人脸。例如,杯子,眼镜,手提包等之类的检测,可以仅仅改变最后一层神经网络的神经元个数,同时添加其他类别进行训练即可。在系统和模型的设计过程,为了有效提高其运算速度以及降低其对于硬件算力方面的要求,可以对于模型进行一些微调。然后执行回归处理,通过候选框的过滤及关键点的回归对于最后的过滤操作,以实现整个训练过程的复杂程度有效降低。
图3是本发明实施例提供的神经网络结构示意图,参考该图,卷积层为线性运算,具体操作为:
由上述线性卷积层公式可以知道,卷积运算作用在局部,其卷积核的大小代表着感受野的大小,所以,两个3*3所产生的感受野与1个5*5是完全一致的,不过其参数量相差十分明显,前者为18,后者为25。类似的,采用3个3*3所构建的感受野与1个7*7的感受野是相同的。不过,前者所需要的参数量为27,而后者为49,可以明显的看出其参数量上的差别,其也会直接导致计算量的差别,这些差别也会在一些低成本的硬件上体现的十分明显。
图4是本发明实施例提供的前置过程的示意图,结合图3,为了使的其算力降低,采用resnet50,resnet18或者darknet53等框架时,所以,使用多个小的卷积核级联,可以在保证其感受野不变的情况下,有效降低运算的复杂度。
还可以通过用别的网络结构(例如,卷积的不同步长的有机组合)来替代全连接和采样层。对于全连接层,其基本框架参照图3。
对于n2层的每一个神经元,yi=δ(∑wx b),由此可以看出,如果m-1层一个特征图的维度为1000*1000,中间层设计了10^6的隐藏神经元,则可以发现需要的权重维度为10^12,如果在辅以偏置,则参数更多。这样的参数量会使得模型十分臃肿。还会因此造成难以解决的过拟合问题。反之,如果采用不同的步长的卷积层,则可以有效减少运算量,前面已经提及,卷积核产生的滤波操作是线性运算
所以,根据上述公式可以推论出,其输出维度为(w-f 2p)/s 1,其中w代表输入图像的维度,f代表卷积核或者滤波矩阵的大小,p代表这padding,即填充的维度,s即为stride,步长的大小,如果将其扩大,例如令s=1,则可以迅速的达到降低维度或者降采样的效果;
也可以有效提高网络的运行速度。除此之外,传统的池化或者采样操作,对于低维特征,都有不同程度的损失。例如,无论是直接丢去部分低通量的特征,或者采用平均化神经元数值,都会造成低维特征的有效表达不够充分。采用不同的卷积核,辅以不同的步长,可以有效保护取得的低维特征,这一特性在小型目标检测任务中十分有效。
基于卷积核的线性操作为
图5是本发明实施例提供的过滤及回归操作示意图,于最后的过滤操作,此时有不同的选择,比较普遍的即为全连接层,框架参考图3,
对于n2层的每一个神经元,yi=δ(∑wx b),
基于上述前置过程产生的候选框,其已经代表了关于人脸框位置的初步预测。因此,此时整个网络所有的神经元已经得到了有效降低,因此结合nms,可以在最后设计一个十分全连接层,即使该结构对于参数量要求较高的,也不会产生较高的算力要求。
对于回归操作,可以有很多不同的选择,本实施方式紧接全连接层后设计一个特有的卷积层,这个卷积层包括三种对应的损失函数:
faceclassification(脸部损失函数),
lclassfication=-(yilong(pi)) (1-yi)(1-log(pi));
p代表这输入人脸的概率,其实,上述公式也可以理解为交叉熵,
boundingboxregression(候选框损失函数);
lbox=|y’box-ybox|2其中y’代表这预测值,y代表真实值,
同理,landmarkregression(回归树损失函数):
llandmark=|y’landmark-ylandmark|2
y’landmark及ylandmark分别为回归树的预测值及真实值,回归树用于表示对应检测类别(人脸、杯子、眼镜、手提包等)的概率。
以上的技术方案可以输出人脸框的最终有效位置和人脸关键的位置。
以上的技术方案可以使得人脸检测以及人脸关键点预测的任务,可以在一些弱算力的硬件设备上得到有效落地,例如嵌入式硬件设备,日常使用的手机亦或一些nuc....)。
图6是本发明实施例提供的装置示意图。装置包括存储器及处理器,其中处理器存储有计算机程序,计算机程序用于执行:包括前置处理及回归处理;其中前置处理包括:对输入的图片使用神经网络框架进行特征提取,得到若干人脸预选框;回归处理包括:通过全连接层的神经网络结构对人脸预选框执行回归过滤处理,得到人脸框有效位置及人脸关键的位置。其中,存储器用于存储数据,处理器用于处理数据。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
1.一种基于低成本运算平台的人脸检测方法,其特征在于:
包括前置处理、微调及回归处理;
所述前置处理包括:对输入的图片使用神经网络框架进行特征提取,得到若干人脸预选框;
所述微调用于对所述神经网络进行微调,包括:通过多个微型的卷积核以及可配置的网络结构的自定义组合,其中每个所述卷积核设置有对应的步长参数,所述卷积核用于神经网络的卷积及池化;
所述回归处理包括:基于所述人脸预选框的平均关键点执行回归过滤处理,得到人脸框有效位置及人脸关键点的位置。
2.如权利要求1所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述对输入的图片使用神经网络框架进行特征提取包括:输入所述图片中的每个像素点,计算对应一个人脸框的预测值以及置信。
3.如权利要求1所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述图片可自定设置,根据输入的所述图片的类型的不同,配置所述神经网络框架最后一层神经网络的神经元数量及训练方式,所述图片类型包括但不限于人脸。
4.如权利要求1所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述通过多个卷积核级联执行卷积运算包括:根据卷积层为线性运算公式
5.如权利要求1所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述配置的网络结构包括具有不同步长的所述卷积核和全连接层组合,具体地,根据卷积层为线性运算公式
6.如权利要求4或5所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述神经网络框架包括但不限于resnet50、resnet18或darknet53。
7.如权利要求1所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述回归处理包括:在所述全连接层的神经网络结构后添加特定数量的神经元,设置人脸脸部及人脸预选框对应的损失函数。
8.如权利要求6所述的基于低成本运算平台的人脸检测方法,其特征在于:
所述脸部、所述预选框及所述回归树对应的损失函数分别配置为:
lclassfication=-(yilong(pi)) (1-yi)(1-log(pi));
lbox=|y’box-ybox|2;
llandmark=|y’landmark-ylandmark|2;
其中,p代表输入人脸的概率,其中y’代表这预测值,y代表真实值,y’landmark及ylandmark分别为回归树的预测值及真实值,其中所述脸部的损失函数lclassfication为熵计算,所述预选框及所述回归树对应的损失函数分别为预测值与真实值之间的欧几里得距离和l2范数。
9.一种基于低成本运算平台的人脸检测装置,该装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一项所述的方法步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一所述的方法步骤。
技术总结