本发明涉及目标检测领域,具体涉及一种通过多层预处理达到快速且精准地人脸检测方法。
背景技术:
人脸识别技术是一种被广泛应用于各种监控、安保、人员管理以及影像制作领域的重要技术。人脸识别技术包含了人脸的检测和区分两部分,其中人脸检测指的是找到图像中所有人脸出现的位置而人脸区分则是可以判断两张人脸是否是同一人。人脸检测是人脸识别技术的基础,因为只有先找到所有人脸的位置才能进行下一步的处理。
人脸检测作为目标检测领域的一个子领域,已经有了许多成熟的算法,如通过结合数字图像特征和分类算法的haar级联分类器或者深度学习领域中的卷积神经网络。其中卷积神经网络作为目前最先进的算法之一,在人脸检测问题中的表现十分优异,各种经过优化设计和充分训练的卷积神经网络能够十分精准地检测出各种光照、角度甚至部分遮挡情况下的人脸。但是卷积神经网络也有自身的缺点,即快速运算十分依赖具有强大浮点运算能力的gpu进行支持。受限于成本、体积和功率的制约,在小型边缘终端上很难支持卷积神经网络的快速运算。
技术实现要素:
针对上述问题,本发明提供了一种基于多层预处理的快速人脸检测方法,其结合多种图像处理方法和卷积神经网络技术,目的在于解决卷积神经网络运算较为缓慢的问题。
一种基于多层预处理的快速人脸检测方法,具体操作步骤如下:
步骤1:将待检测图像从rgb颜色空间转换至ycbcr颜色空间;
步骤2:利用椭圆肤色模型对步骤1得到的图像中所有像素逐个判断是否为肤色像素,得到肤色区域,其中肤色像素的判断依据为:当某个像素的蓝色色度、红色色度分量满足椭圆肤色模型要求时,判断该像素为肤色像素;
步骤3:对步骤2得到的肤色区域进行形态学处理;
步骤4:对步骤3中处理得到的肤色区域进行有效搜索位置滤波,得到有效搜索位置,利用轮廓提取技术提取有效搜索位置的轮廓,每个轮廓生成一个待测框;
步骤5:使用具有人脸检测功能的卷积神经网络,对步骤4得到的待测框进行逐个检测,并给出其中的人脸定位坐标;
步骤6:根据待测框坐标和其中的人脸定位坐标,计算人脸定位框的坐标,得到最终的人脸检测结果。
进一步,步骤2中利用如下椭圆肤色模型进行像素判断:
cr(13cr-10cb-2900) cb(13cb-1388) 295972≤0
其中,cb表示像素的蓝色色度分量,cr表示像素的红色色度分量。
进一步,步骤4中使用滤波矩阵对肤色区域进行有效搜索位置滤波,具体过程采用以下公式表示:
其中,dst(i,j)为有效搜索位置dst中坐标(i,j)的像素值,src(i x,j y)为肤色区域sre中坐标(i x,j y)的像素值,f(x,y)为滤波矩阵f中坐标(x,y)的像素值,滤波矩阵f的尺寸为(2a 1)×(2b 1)、中心坐标为(0,0),t为预设的有效搜索率esr阈值,area为滤波矩阵f中值为1的像素数量。
进一步,待测框的左上角坐标和右下角坐标分别为:
(left,top)=(left′-b,top′-a)
(right,bottom)=(right′ b,bottom′ a)
其中,(left′,top′)、(right′,bottom′)分别为轮廓外界矩形的左上角和右下角坐标。
进一步,步骤1中利用如下公式对待检测图像进行颜色空间转换:
其中,y、cb、cr分别表示像素的亮度、蓝色色度、红色色度分量,r、g、b分别表示像素的红色、绿色、蓝色分量。
进一步,步骤3中形态学处理包括:通过开操作去除游离的肤色点和细线结构,通过闭操作填补孔洞并弥合缝隙。
进一步,步骤4中还包括对待测框进行合并,具体为:
待测框a和b合并后得到待测框c,待测框c的面积小于等于待测框a和b的面积之和,则将待测框a和b合并,否则待测框a和b不合并。
进一步,待测框c的左上角坐标(lc,tc)和右下角坐标(rc,bc)分别为:
(lc,tc)=(min(la,lb),min(ta,tb))
(rc,bc)=(max(ra,rb),max(ba,bb))
其中,(la,ta)、(ra,ba)分别为待测框a的左上角坐标和右下角坐标,(lb,tb)、(rb,bb)分别为待测框b的左上角坐标和右下角坐标。
进一步,步骤6中人脸定位框的左上角和右下角的坐标分别为:
(l,t)=(lc l′,tc t′)
(r,b)=(rc r′,bc b′)
其中,(lc,tc)、(rc,bc)分别为待测框c的左上角坐标和右下角坐标,(l′,t′)、(r′,b′)分别为卷积神经网络输出的待测框c中某个人脸定位的左上角和右下角坐标。
进一步,有效搜索率定义为待测框中肤色区域面积与待测框面积之比。
有益效果:本发明能在保留人脸检测卷积神经网络高准确率的同时通过多层预处理技术减少其需要搜索区域的大小,从而大幅提升其运行速度。
附图说明
图1是本发明的流程图;
图2是espf滤波示意图;
图3是待测框生成示意图;
图4是待测框合并示意图。
具体实施方式
下面结合附图以及具体实施例对本发明的技术方案作进一步阐述:
一种基于多层预处理的的快速人脸检测方法,如图1所示,具体操作步骤如下:
步骤1:对输入图像进行颜色空间转换,从默认rgb颜色空间转换为ycbcr颜色空间,这是因为ycbcr分离出了颜色的亮度和色度,所以比较适用于不同光照情况下对颜色进行分类的场景。
由于计算机领域中图像或视频的编码绝大部分是基于rgb颜色空间的,因此要使用ycbcr需要先将rgb颜色空间转换到ycbcr颜色空间。因为人眼对红绿蓝三种颜色的敏感度并不相同,所以转换亮度y的时候需要给予红绿蓝不同的权重。具体转换公式如下:
步骤2:经过人工统计大量肤色可以发现,在ycbcr空间中肤色近似呈现椭圆柱状分布,即在cbcr平面中肤色的分布近接近一个椭圆。根据统计经验,如果以cr为横轴cb为纵轴建立平面直角坐标系,那么肤色椭圆的中心位置为(155,113),长轴长度为30,短轴长度为20,倾斜角度为45°(逆时针旋转),椭圆方程为:
有了肤色椭圆模型之后,对于一个像素若其蓝色色度cr和红色色度cb分量构成的点在肤色椭圆内则可以判断其为肤色像素,否则就是非肤色像素。对公式2进行化简,最终判断像素是肤色像素的条件如下:
cr(13cr-10cb-2900) cb(13cb-1388) 295972≤0(公式3)
步骤1中,rgb图像转换到ycbcr空间后,当其中某像素的cb、cr分量满足公式3时,就可以认为该像素为肤色像素。对于输入图像中的每一个像素利用公式3进行判断可以得到肤色蒙版。
步骤3:形态学操作是图像处理领域中一系列处理二值化图像形状特征的技术,其基本思想是利用一个特定形状的结构元和规则来修改图像中像素值,从而达到消除噪点、弥补孔隙、修剪毛刺和光滑边缘等效果,以便进一步进行图像分析和目标识别。基本的形态学操作包括腐蚀(erosion)和膨胀(dilation),腐蚀用来消除噪点、毛刺等精细结构,膨胀用来弥补孔洞、缝隙。进行腐蚀操作时,将结构元在输入图像上逐像素进行滑动,每次滑动将结构元中1值区域对应输入图像区域像素的最小值写入输出图像中正对应结构元锚点位置的像素,用公式表示如下:
其中dst、sre、e分别表示输出图像、输入图像和结构元,结构元中以锚点为坐标中心,(i,j)为当前结构元锚点位置,(x,y)为结构元中相对锚点的偏移量。公式4表明了在腐蚀过程中,只有结构元1值区域完全被输入图像1值区域覆盖时输出图像锚点位置的像素才为1,这会导致图像1值区域轮廓收缩,从视觉上1值区域仿佛被腐蚀了一样。膨胀操作与腐蚀操作类似,只不过最小值变为了最大值,公式表示如下:
公式5表明了在膨胀过程中,只有结构元1值区域完全被输入图像0值区域覆盖时输出图像锚点位置的像素才为0,这会导致图像1值区域轮廓扩张,从视觉上1值区域仿佛膨胀了一样。腐蚀和膨胀会导致肤色区域面积大幅变化,为了在不影响肤色区域大小的情况下消除噪点、填补孔隙,需要使用开操作(opening)和闭操作(closing)。开操作即用同一结构元对图像先后进行腐蚀和膨胀操作,开操作可以断开细小的连接、去除噪点。闭操作则是先膨胀后腐蚀,可以连接相近的区域、填补孔隙。对得到的肤色区域进行形态学处理,通过开操作去除游离的肤色点和细线结构,通过闭操作填补较小的肤色区域孔洞并弥合小缝隙。开操作和闭操作对肤色区域面积的影响不大同时还能去除噪点、填补孔隙。对步骤2中得到的肤色蒙版分别进行开操作和闭操作,可以得到最终的肤色蒙版。
步骤4:对最终得到的肤色区域进行有效搜索位置滤波(effectivesearchpositionfiltering,espf)得到所有有效搜索位置像素区域。espf滤波是一种特殊的图像滤波操作,其使用了椭圆形状的滤波矩阵和基于有效搜索率(effectivesearchrate,esr)的滤波计算操作。其中有效搜索率被定义为待测框中肤色区域面积as与待测框面积之比ar,公式如下:
espf计算过程可以用公式表示为:
公式中的dst、sre和f分别为输出图像、输入图像和滤波矩阵,滤波矩阵的尺寸为(2a 1)×(2b 1)、中心坐标为(0,0),t为预设的esr阈值,area为滤波矩阵中1值像素的数量。在espf滤波中使用的滤波矩阵是一个椭圆矩阵,其中的1值排列为一个内切于矩形的正椭圆形,如图2中滤波矩阵所示。
如图2所示,espf滤波的输出图像即为有效搜索位置,再利用轮廓提取技术提取其中有效搜索位置的轮廓,对每个轮廓生成一个待测框。待测框由轮廓外接矩形向周围扩展一定距离得到,扩展距离等于滤波矩阵尺寸的一半,如果轮廓外接矩形框左上角和右下角的坐标分别为(left′,top′)、(right′,bottom′),滤波矩阵尺寸为(2a 1)×(2b 1),那么扩展得到的待测框的左上角坐标和右下角坐标为:
最终生成待测框效果如附图3所示,经过espf滤波后得到的每个待测框具有较高的esr,此时小面积肤色区域、狭长型肤色区域等非人脸肤色部分被espf滤波消除,而肤色区域连通也问题也被解决。
步骤5:检查是否有可以合并的待测框并将其全部合并,得到最终待测框。合并待测框即用一个更大的待测框c代替两个需要合并的待测框a和b,待测框c应当完全覆盖a和b同时面积尽量小,因此可得待测框c的左上角坐标和右下角坐标为:
同时合并待测框还应该满足总面积不增大的条件,即满足sc≤sa sb,其中面积s=(r-l)(b-t)。如图4所示为合并待测框效果,其中两对大面积重叠的待测框被合并,进一步减小了卷积神经网络需要搜索的面积,提高了搜索效率。
步骤6:使用具有人脸检测功能的卷积神经网络逐个检测每个最终待测框并给出其中的人脸定位坐标,这里输出的定位坐标是相对于待测框的。
步骤7:卷积神经网络会输出待测框内所有人脸定位框相对于待测框的坐标,若待测框左上角和右下角坐标为(lc,tc)和(rc,bc),卷积神经网络输出某个人脸定位框左上角和右下角坐标为(l′,t′)和(r′,b′),那么该人脸定位框左上角和右下角的实际坐标分别为:
根据待测框坐标和其中的人脸定位坐标计算人脸定位框在图像中的实际坐标并输出,得到最终的人脸检测结果。
应当指出,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也在本申请权利要求的保护范围内。
1.一种基于多层预处理的快速人脸检测方法,其特征在于,具体操作步骤如下:
步骤1:将待检测图像从rgb颜色空间转换至ycbcr颜色空间;
步骤2:利用椭圆肤色模型对步骤1得到的图像中所有像素逐个判断是否为肤色像素,得到肤色区域,其中肤色像素的判断依据为:当某个像素的蓝色色度、红色色度分量满足椭圆肤色模型要求时,判断该像素为肤色像素;
步骤3:对步骤2得到的肤色区域进行形态学处理;
步骤4:对步骤3中处理得到的肤色区域进行有效搜索位置滤波,得到有效搜索位置,利用轮廓提取技术提取有效搜索位置的轮廓,每个轮廓生成一个待测框;
步骤5:使用具有人脸检测功能的卷积神经网络,对步骤4得到的待测框进行逐个检测,并给出其中的人脸定位坐标;
步骤6:根据待测框坐标和其中的人脸定位坐标,计算人脸定位框的坐标,得到最终的人脸检测结果。
2.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤2中利用如下椭圆肤色模型进行像素判断:
cr(13cr-10cb-2900) cb(13cb-1388) 295972≤0
其中,cb表示像素的蓝色色度分量,cr表示像素的红色色度分量。
3.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤4中使用滤波矩阵对肤色区域进行有效搜索位置滤波,具体过程采用以下公式表示:
其中,dst(i,j)为有效搜索位置dst中坐标(i,j)的像素值,src(i x,j y)为肤色区域src中坐标(i x,j y)的像素值,f(x,y)为滤波矩阵f中坐标(x,y)的像素值,滤波矩阵f的尺寸为(2a 1)×(2b 1)、中心坐标为(0,0),t为预设的有效搜索率esr阈值,area为滤波矩阵f中值为1的像素数量。
4.根据权利要求3所述的一种基于多层预处理的快速人脸检测方法,其特征在于,待测框的左上角坐标和右下角坐标分别为:
(left,top)=(left′-b,top′-a)
(right,bottom)=(right′ b,bottom′ a)
其中,(left′,top′)、(right′,bottom′)分别为轮廓外界矩形的左上角和右下角坐标。
5.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤1中利用如下公式对待检测图像进行颜色空间转换:
其中,y、cb、cr分别表示像素的亮度、蓝色色度、红色色度分量,r、g、b分别表示像素的红色、绿色、蓝色分量。
6.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤3中形态学处理包括:通过开操作去除游离的肤色点和细线结构,通过闭操作填补孔洞并弥合缝隙。
7.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤4中还包括对待测框进行合并,具体为:
若待测框a和b合并后得到待测框c,待测框c的面积小于等于待测框a和b的面积之和,则将待测框a和b合并,否则待测框a和b不合并。
8.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,待测框c的左上角坐标(lc,tc)和右下角坐标(rc,bc)分别为:
(lc,tc)=(min(la,lb),min(ta,tb))
(rc,bc)=(max(ra,rb),max(ba,bb))
其中,(la,ta)、(ra,ba)分别为待测框a的左上角坐标和右下角坐标,(lb,tb)、(rb,bb)分别为待测框b的左上角坐标和右下角坐标。
9.根据权利要求1所述的一种基于多层预处理的快速人脸检测方法,其特征在于,步骤6中人脸定位框的左上角和右下角的坐标分别为:
(l,t)=(lc l′,tc t′)
(r,b)=(rc r′,bc b′)
其中,(lc,tc)、(rc,bc)分别为待测框c的左上角坐标和右下角坐标,(l′,t′)、(r′,b′)分别为卷积神经网络输出的待测框c中某个人脸定位的左上角和右下角坐标。
10.根据权利要求3所述的一种基于多层预处理的快速人脸检测方法,其特征在于,有效搜索率定义为待测框中肤色区域面积与待测框面积之比。
技术总结