一种人脸检测方法和存储介质与流程

文档序号:19252077发布日期:2019-11-27 20:23阅读:245来源:国知局
一种人脸检测方法和存储介质与流程

本发明涉及图像识别领域,特别涉及一种人脸检测方法和存储介质。



背景技术:

目前市面上的mtcnn人脸检测的速度都比较慢,主要是因为图像金字塔转换阶段轮询次数太多,且无法自适应找出图片中最小人脸尺寸(minsize)。在人脸识别过程中,对于图像的识别分析处理在gpu中进行(即模型的运算在gpu中进行),对于识别结果的后处理在cpu中进行,这样就造成pnet、rnet、onet三层模型间需要反反复复地将数据从内存拷贝到显存,又从显存拷贝到内存,数据读取效率比较低。同时,在实际应用场景中,很多从图像采集设备(如摄像头)获取到的图片都是静止的状态,前后采集的图片相似度极高,但在进行模型训练时依然需要一张张地将图片输入到模型中,费时费力。



技术实现要素:

为此,需要提供一种人脸检测的技术方案,用以解决现有的人脸检测方法无法快速自适应找出图像的最小人脸尺寸,导致人脸检测效率低的问题。

为实现上述目的,发明人提供了一种人脸检测方法,所述方法包括以下步骤:

接收第一图像,计算所述第一图像与第二图像的相似度,所述第二图像为所述第一图像的上一帧图像;

若所述相似度大小大于第一预设比例,则将第二图像的人脸检测结果作为第一图像的人脸检测结果并输出;

若所述相似度大小不大于第一预设比例,则判断所述相似度大小是否大于第二预设比例,若是则将第二图像对应的缩放参数值作为当前第一图像的缩放参数初始值,否则将预设缩放参数值作为当前第一图像的缩放参数初始值;

根据缩放参数初始值对第一图像进行缩放,得到若干缩放处理图像;

将各缩放处理图像传输至人脸检测模型,根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值,并将当前第一图像的缩放参数初始值更新为所述最优缩放参数值;

根据最优缩放参数值输出第一图像对应的人脸检测结果。

进一步地,“将各缩放处理图像均传输至人脸检测模型”包括:

将各缩放处理图像拼接成预设尺寸图像,并记录各缩放处理图像在所述预设尺寸图像上的位置信息;

将预设尺寸图像以及各缩放处理图像在所述预设尺寸图像上的位置信息传输至人脸检测模型。

进一步地,“根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值”包括:

将人脸检测结果分数最高的各缩放处理图像对应的缩放参数值确定为第一图像的最优缩放参数值;所述脸检测结果分数根据缩放处理图像识别出的人脸数量确定且呈正相关关系。

进一步地,第一图像的人脸检测结果包括第一图像对应的最优缩放参数值和各人脸在第一图像上的位置信息。

进一步地,所述人脸检测模型包括pnet模型、rnet模型和onet模型,pnet模型的输出数据直接传输至rnet模型,rnet模型的输出数据直接传输至onet模型。

发明人还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收第一图像,计算所述第一图像与第二图像的相似度,所述第二图像为所述第一图像的上一帧图像;

若所述相似度大小大于第一预设比例,则将第二图像的人脸检测结果作为第一图像的人脸检测结果并输出;

若所述相似度大小不大于第一预设比例,则判断所述相似度大小是否大于第二预设比例,若是则将第二图像对应的缩放参数值作为当前第一图像的缩放参数初始值,否则将预设缩放参数值作为当前第一图像的缩放参数初始值;

根据缩放参数初始值对第一图像进行缩放,得到若干缩放处理图像;

将各缩放处理图像传输至人脸检测模型,根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值,并将当前第一图像的缩放参数初始值更新为所述最优缩放参数值;

根据最优缩放参数值输出第一图像对应的人脸检测结果。

进一步地,所述计算机程序被处理器执行时实现步骤“将各缩放处理图像均传输至人脸检测模型”包括:

将各缩放处理图像拼接成预设尺寸图像,并记录各缩放处理图像在所述预设尺寸图像上的位置信息;

将预设尺寸图像以及各缩放处理图像在所述预设尺寸图像上的位置信息传输至人脸检测模型。

进一步地,所述计算机程序被处理器执行时实现步骤“根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值”包括:

将人脸检测结果分数最高的各缩放处理图像对应的缩放参数值确定为第一图像的最优缩放参数值;所述脸检测结果分数根据缩放处理图像识别出的人脸数量确定且呈正相关关系。

进一步地,第一图像的人脸检测结果包括第一图像对应的最优缩放参数值和各人脸在第一图像上的位置信息。

进一步地,所述人脸检测模型包括pnet模型、rnet模型和onet模型,pnet模型的输出数据直接传输至rnet模型,rnet模型的输出数据直接传输至onet模型。

上述技术方案所述的人脸检测方法和存储介质,所述方法先通过判断当前图像与上一识别图像的相似度,决定是否将上一图像的检测结果作为当前图像的检测结果,若否,则进一步判断是否采用上一识别图像的缩放参数值作为当前图像的缩放参数初始值,而后开始当前图像的人脸识别,并在识别结束后更新缩放参数值。上述方案可以有效减少图像传入人脸检测模型的次数,提升人脸检测效率。

附图说明

图1为本发明一实施例涉及的图像金字塔的示意图;

图2为本发明一实施例涉及的人脸检测方法的流程图;

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图2,为本发明一实施例涉及的人脸检测方法的示意图。所述方法包括以下步骤:

首先进入步骤s201接收第一图像,计算所述第一图像与第二图像的相似度。所述第二图像为所述第一图像的上一帧图像,第一图像和第二图像上至少包含有一个人脸信息。

具体的,可以通过计算第一图像和第二图像的欧氏距离,来判断第一图像和第二图像的相似度,欧氏距离越小图像相似度越大。

欧式距离算法的核心是:设图像矩阵有n个元素(n个像素点),用n个元素值(x1,x2,...,xn)组成该图像的特征组(像素点矩阵中所有的像素点),特征组形成了n维空间(欧式距离就是针对多维空间的),特征组中的特征码(每一个像素点)构成了每一维的数值,就是x1(第一个像素点)对应一维,x2(第二个像素点)对应二维,...,xn(第n个像素点)对应n维。在n维空间下,两个图像矩阵各形成了一个点,然后利用数学上的欧式距离公式计算这两个点之间的距离,距离最小者就是最匹配的图像。

欧式距离计算公式入下:

假设点a=(x1,x2,...,xn)

点b=(y1,y2,...,yn)

ab^2=(x1-y1)^2+(x2-y2)^2+...+(xn-yn)^2

ab就是所求的a,b两个多维空间中的点之间的距离。

而后进入步骤s202判断所述相似度是否大于第一预设比例,若所述相似度大小大于第一预设比例,则进入步骤s209将第二图像的人脸检测结果作为第一图像的人脸检测结果并输出。

第一预设比例的数值可以根据实际需要进行设定,为了提高人脸识别的准确度,在本实施方式中,第一预设比例的数值大于95%,这样可以保证第一图像与第二图像足够相似,从而保证将第二图像的人脸检测结果作为第一图像的人脸检测结果输出时,也能保证第一图像输出的人脸检测的准确性。

若所述相似度大小不大于第一预设比例,则进入步骤s203判断所述相似度大小是否大于第二预设比例,若是则将第二图像对应的缩放参数值作为当前第一图像的缩放参数初始值,否则将预设缩放参数值作为当前第一图像的缩放参数初始值。

在本实施方式中,所述缩放参数初始值即将要输入到人脸检测模型中的minsize值,根据minsize值就可以构建出第一图像对应的图像金字塔,而后将图像金字塔输入至人脸检测模型中进行进一步识别。图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

如图1所示,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。当向金字塔的上层移动时,尺寸和分辨率就降低。因为基础级j的尺寸是2^j*2^j或n*n(j=log2n),所以中间级j的尺寸是2^j*2^j,其中0<=j<=j。完整的金字塔由j+1个分辨率级组成,由2^j*2^j到2^0*2^0,但大部分金字塔只有p+1级,其中j=j-p,…,j-2,j-1,j,且1<=p<=j。也就是说通常限制它们只使用p级来减少原始图像近似值的尺寸。例如,一幅512*512图像的1*1或单像素近似值将非常小。图1中显示了一个建立图像金字塔的简单系统。j-1级的近似输出用来建立近似值金字塔,包括原始图像的一个或多个近似值。作为金字塔的原始图像和它的p级减少的分辨率近似都能直接获取并调整。j级的预测残差输出用于建立预测残差金字塔。这些金字塔包括了原始图像的j-p级低分辨率的近似信息,以及建立p级较高分辨率的近似信息。j级的信息在相应近似金字塔的j级近似与基于j-1级预测残差得到的近似估计之间是不同的,对这些差异进行编码(用于存储或传输)将比对近似值进行编码有效得多。

在本实施方式中,所述预设缩放参数值的数值为20。第二预设比例的数值可以根据实际需要进行设定,优选为80%至95%。简言之,如果第一图像和第二图像的相似度小于95%,则说明第一图像和第二图像之间不是非常相似,需要近一步判断两者之间的相似度,如果两者之间的相似度在80%到95%,说明两图像之间比较相似,则第一图像的缩放参数初始值可以采用第二图像的人脸检测结果中的缩放参数值,而无需重新从默认值开始再次计算,这样有利于更快速地将第一图像的缩放参数初始值调整第一图像对应的最优缩放参数值,提升人脸检测效率。如果第一图像和第二图像之间的相似度小于80%,说明第一图像和第二图像之间完全不相似,为了保证人脸检测的准确度,则将预设缩放参数值作为第一图像的初始参数值传入模型,而后进行人脸识别。

经过步骤s204或s205确定好第一图像对应的缩放参数初始值后,可以进入步骤s206根据缩放参数初始值对第一图像进行缩放,得到若干缩放处理图像。

优选的,为了提升人脸检测模型的处理效率,减少数据的输入传输次数,“将各缩放处理图像均传输至人脸检测模型”包括:将各缩放处理图像拼接成预设尺寸图像,并记录各缩放处理图像在所述预设尺寸图像上的位置信息;将预设尺寸图像以及各缩放处理图像在所述预设尺寸图像上的位置信息传输至人脸检测模型。

预设尺寸图像,顾名思义,为尺寸大小预定的图像,优选为4k图像。假设第一图像的原有分辨率为4k,那么其经过缩放后,分辨率必然小于4k,通过对这些小于4k的图像进行拼接,并记录各个缩放图像在4k图像上的位置信息,可以保证传输至模型的数据只需要一张拼接后的4k图像即可,相比于将各缩放处理图像(即图像金字塔中各种尺寸的图像)依次传输至图像处理模型的方式,有效减少了输入人脸检测模型的数据传输速度。当然,预设尺寸图像还可以是其他分辨率大小,只需保证其分辨率不高于第一图像即可,拼接的方式与4k图像的原理类似,此处不再赘述。

步骤s206后可以进入步骤s207将各缩放处理图像传输至人脸检测模型,根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值,并将当前第一图像的缩放参数初始值更新为所述最优缩放参数值。

优选的,“根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值”包括:将人脸检测结果分数最高的各缩放处理图像对应的缩放参数值确定为第一图像的最优缩放参数值;所述脸检测结果分数根据缩放处理图像识别出的人脸数量确定且呈正相关关系。

简言之,缩放参数值不同,待测图像的大小也不同,其适应检测的人脸大小尺寸也不同。当第一图像被缩放至某一尺寸,人脸检测模型所识别出的人脸数量最多时,则判定该尺寸对应的缩放参数值为最优缩放参数值。人脸检测模型进行人脸识别的过程,就是不断的校正调整人脸识别框尺寸的过程,也即不断调整minsize(即前文所述的缩放参数值)以使得当前待测图像能够识别出更多人脸的过程。

步骤s207后可以进入步骤s208根据最优缩放参数值输出第一图像对应的人脸检测结果。优选的,第一图像的人脸检测结果包括第一图像对应的最优缩放参数值和各人脸在第一图像上的位置信息。当第一图像的下一帧图像(假设其为第三图像)与第一图像的相似度超过预设第一相似比例(假设为95%),那么就可以将第一图像对应的最优缩放参数值作为第三图像的最优缩放参数值输出。

当然,第一图像的人脸检测结果除了记录各人脸在第一图像上的位置信息之外,还可以通过预定图形标识出各人脸在第一图像上的位置,预定图形可以是圆形、方形等。优选的,预定图形为矩形框,人脸检测模型输出的处理后的第一图像为采用矩形框标识出人脸位置的第一图像。

为了解决人脸检测模型需要反复读取数据,导致人脸检测效率低的问题,在某些实施例中,所述人脸检测模型包括pnet模型、rnet模型和onet模型,pnet模型的输出数据直接传输至rnet模型,rnet模型的输出数据直接传输至onet模型。以下对上述3个模型展开描述:

p-net模型:全称为proposalnetwork,通过浅层的cnn快速生成候选窗口,该网络全部由卷积层实现,获取到候选人脸窗和人脸窗的回归向量(boundingboxregressionvectors),基于人脸窗的回归向量对人脸窗进行校正,然后对所有人脸窗进行nms(非极大值抑制),合并高度重叠的人脸窗。

rnet模型:全称为refinenetwork,其基本的构造是一个卷积神经网络,相对于第一层的p-net来说,增加了一个全连接层,因此对于输入数据的筛选会更加严格。图片在经过p-net处理后,会留下许多预测窗口,而后可以将所有的预测窗口送入r-net,这个网络会滤除大量效果比较差的候选框,最后对选定的候选框进行校正和nms,进一步优化预测结果。

onet模型:全称为outputnetwork,其基本结构是一个较为复杂的卷积神经网络,相对于r-net来说多了一个卷积层。o-net的效果与r-net的区别在于这一层结构会通过更多的监督来识别面部的区域,而且会对人的面部特征点进行回归,最终输出五个人脸面部特征点。

简言之,本发明将原有的mtcnn三个模型整合成一个模型,三者之间的数据传输无需再通过显存或内存进行交互,而是直接进行传输,具体为pnet模型的输出数据直接传输至rnet模型,rnet模型的输出数据直接传输至onet模型,使得整个人脸识别过程数据只有一次从内存到显存,一次从显存到内存,比原有的mtcnn模型少了将近三分之二,减少数据搬运的同时也加快了mtcnn算法速度。

以及发明人还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收第一图像,计算所述第一图像与第二图像的相似度,所述第二图像为所述第一图像的上一帧图像;

若所述相似度大小大于第一预设比例,则将第二图像的人脸检测结果作为第一图像的人脸检测结果并输出;

若所述相似度大小不大于第一预设比例,则判断所述相似度大小是否大于第二预设比例,若是则将第二图像对应的缩放参数值作为当前第一图像的缩放参数初始值,否则将预设缩放参数值作为当前第一图像的缩放参数初始值;

根据缩放参数初始值对第一图像进行缩放,得到若干缩放处理图像;

将各缩放处理图像传输至人脸检测模型,根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值,并将当前第一图像的缩放参数初始值更新为所述最优缩放参数值;

根据最优缩放参数值输出第一图像对应的人脸检测结果。

进一步地,所述计算机程序被处理器执行时实现步骤“将各缩放处理图像均传输至人脸检测模型”包括:

将各缩放处理图像拼接成预设尺寸图像,并记录各缩放处理图像在所述预设尺寸图像上的位置信息;

将预设尺寸图像以及各缩放处理图像在所述预设尺寸图像上的位置信息传输至人脸检测模型。

进一步地,所述计算机程序被处理器执行时实现步骤“根据各缩放处理图像的人脸检测结果确定第一图像对应的最优缩放参数值”包括:

将人脸检测结果分数最高的各缩放处理图像对应的缩放参数值确定为第一图像的最优缩放参数值;所述脸检测结果分数根据缩放处理图像识别出的人脸数量确定且呈正相关关系。

进一步地,第一图像的人脸检测结果包括第一图像对应的最优缩放参数值和各人脸在第一图像上的位置信息。

进一步地,所述人脸检测模型包括pnet模型、rnet模型和onet模型,pnet模型的输出数据直接传输至rnet模型,rnet模型的输出数据直接传输至onet模型。

上述技术方案所述的人脸检测方法和存储介质,所述方法先通过判断当前图像与上一识别图像的相似度,决定是否将上一图像的检测结果作为当前图像的检测结果,若否,则进一步判断是否采用上一识别图像的缩放参数值作为当前图像的缩放参数初始值,而后开始当前图像的人脸识别,并在识别结束后更新缩放参数值。上述方案可以有效减少图像传入人脸检测模型的次数,提升人脸检测效率。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

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